Could not resolve rikka.ndk:riru:10

FAILURE: Build failed with an exception.

What went wrong:
Could not determine the dependencies of task ':module:generateJsonModelRelease'.

Could not resolve all files for configuration ':module:releaseCompileClasspath'.
Could not resolve rikka.ndk:riru:10.
Required by:
project :module
Could not resolve rikka.ndk:riru:10.
Could not get resource 'https://dl.bintray.com/rikkaw/Libraries/rikka/ndk/riru/10/riru-10.pom'.
Could not GET 'https://dl.bintray.com/rikkaw/Libraries/rikka/ndk/riru/10/riru-10.pom'. Received status code 403 from server: Forbidden

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 4s

same problem seems like 'https://dl.bintray.com/rikkaw/Libraries/rikka/ndk/riru/10/riru-10.pom'. cant be accessed?

So, riru il2cppdumper not works now?

AFAIR it's hosted on MavenCentral too.

FAILURE: Build failed with an exception.

What went wrong:
Could not determine the dependencies of task ':module:generateJsonModelDebug'.

Could not resolve all files for configuration ':module:debugCompileClasspath'.
Could not resolve rikka.ndk:riru:10.
Required by:
project :module
No cached version of rikka.ndk:riru:10 available for offline mode.
No cached version of rikka.ndk:riru:10 available for offline mode.
No cached version of rikka.ndk:riru:10 available for offline mode.
No cached version of rikka.ndk:riru:10 available for offline mode.

For temporary workaround, try to add the repository to Maven Central. Replace this line
https://github.com/Perfare/Riru-Il2CppDumper/blob/2d6a2924e11ef09ec4d5c839468e6b764db7bb93/module/build.gradle#L45
into implementation group: 'dev.rikka.ndk', name: 'riru', version: '10'
and also this line
https://github.com/Perfare/Riru-Il2CppDumper/blob/2d6a2924e11ef09ec4d5c839468e6b764db7bb93/module/build.gradle#L33
https://github.com/Perfare/Riru-Il2CppDumper/blob/2d6a2924e11ef09ec4d5c839468e6b764db7bb93/build.gradle#L22
into mavenCentral()

I have upgraded the riru version to 26, it should have been fixed.


Update README to reflect the correct environment variable for OpenAI

I've updated the README to correctly reflect the environment variable used for OpenAI's access token. But since Anthropic uses ANTHROPIC_API_KEY, maybe you want OpenAI to use OPENAI_API_KEY? But this would be a breaking change, so maybe you support both?  Let me know if you'd like me to implement support for both environment variables.

Great find! I wanted to keep it consistent with the biggest Ruby libs, in this case https://github.com/alexrudall/ruby-openai so that it can be a drop-in replacement.


Add e2e tests for vm report config creation with collections

Description
Adds a Cypress e2e test to cover:

Creation of a VM report config
Creation of an email notifier via modal from within the VM config page
Creation of a collection via modal from within the VM config page

Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Local Cypress run:

Current dependencies on/for this PR:

master

PR #4197

PR #4200

PR #4331   👈

PR #4198

This comment was auto-generated by Graphite.

/retest


query string in blacklistPage option

I would like to use a query string in the blacklistPage option so when a visitor is on a page with a query string e.g. /sub-folder/file-name.shtml?value=pair they do not see the cookie popup.
Ideally, I would like something like this:
"blacklistPage": [/\/[a-zA-Z-]+\/[a-zA-Z0-9-]+\.shtml\?hybrid=true/]
I have tried various values for blacklistPage e.g.
"blacklistPage": ["/sub-folder/file-name.shtml"]
This works OK as expected (cookie popup not shown)
"blacklistPage": ["/sub-folder/file-name.shtml?value=pair"]
This does not work (cookie popup is shown)

@DrMadvibe If you get to this before me, I'll merge the PR.
However PLEASE make sure you make the edits in the dev branch as we're on v4 and will not be porting new features and enhancements back into v3
Cheers!


Why don't share the code

At first, thank you for the pretty nice tutorial!
But why images? Why don't share the code? Just out of curiosity.

Thanks!  I didn't know how to add the code with the highlighting I wanted, you can find the source code for that here: https://github.com/mdh266/AirflowDataPipeline

Gotcha! Thanks again!


Error: while searching for contributor's details by name

Page link: https://clueless.vercel.app/allcontributors

@Alkaison, go ahead. Make a try to fix it.

#621

The PR fixes the search user details issue. #621


Allow overriding delivery functions

Sometimes, it's really convenient to do some preprocessing of an email (returning an error when recipient list is empty, inlining CSS, etc) that is adapter independent.
I'm open to suggestions how to improve telemetry as only base implementation is covered by it.

Thanks for the PR!
I'm in general not in favor of unnecessary overrides and hooks. I think preprocess can be done with a wrapper function, e.g. safe_deliver(...) that wraps existing function. Inlining CSS sounds more like a rendering problem which should be solved before it is put into the email, at the template (engine) level.
I'm not strongly against making them overridable though. 🤔

Actually yeah I don't want to make them overridable. This would cause more magic and make things confusing and hard to search for. I think I much prefer keeping it as is and have users write wrapper functions - so that later on when they have doubts about what their custom deliver_* or *_deliver does, they get the correct search result.
💜 for the PR though!

I think it might be better if instead of injecting the deliver functions from use Swoosh.Mailer, they were actually defined on the Swoosh.Mailer module (or a behaviour) that library users could choose the call as they like. For example, in the current version, the telemetry logic is only applied by default when using the injected functions.

The major reason for code injection is to read the specific configuration for the mailer, through the module name.
However I agree that the injected code can be further reduced, as noted in https://github.com/swoosh/swoosh/issues/556
Maybe when we get to a point where the injected code is reduced to the bare minimum, and use Swoosh.Mailer becomes a pure convenience like use GenServer, i.e. contains no code with logic, we can make the deliver functions overridable.


Align EDS flows

EDS Flows (FORBRUG + PRODUKTION) needs to be aligned, or merged into a single more generic flow.
Both flows needs testing to ensure stable functionality.

Merged


Word2Vec - potential issues

Parent for all potential issues with the Word2Vec library

https://github.com/chipolatas/NeuralNetwork/blob/03affd72bef12301684ea824c9c9a139a3f6bb0a/AI/NLP/Word2Vec/Word2Vec.cs#L172
Shouldn't the logic here be instead:
(_fileHandler.FileSize * id) / _numberOfThreads

The last line is never read, as it has finished reading the file when the last line is read (ie - reader.EndOfStream = true) which is consumes in the following logic.
Can be fixed by having a new line at EOF

Issues fixed in https://github.com/benchiverton/GingerbreadAI/pull/44


chore(main): release 1.6.0

:robot: I have created a release beep boop
1.6.0 (2023-03-28)
Features

Implement JS CryptoKey Interface (adb31f7)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/fastly/js-compute-runtime/releases/tag/v1.6.0 :sunflower:


Publish .trx Test Results Doesn't Contain Test Owners

VSTS task "Publishing Test Result" doesn't show test owners while the owners information exist in the published .trx file. It began in 1 or 2 hours.

Add some details recently got:
For "Publish Test Results", it seems recordings of a test's owner fade after hours. If result of the test is published again, even in another build or release, test owner in the older build can be fetched.
We've got 3 tests as example:
1.Microsoft.Ads.UcmApi.Database.FunctionalTests.UcmTicketingTests.GetFilteredTicketGrid
2.Microsoft.Ads.UcmApi.FunctionalTests.TicketingWorkspaceTests.TicketingAdminApiTests.TicketingWorkspaceTeamProductDataTable
3.Microsoft.Ads.UcmApi.FunctionalTests.TicketingWorkspaceTests.GetAndSearchTicketApiTests.TicketingWorkspaceBookOfTickets_V2
The 1st test comes from one assembly, while the 2nd and the 3rd come from the other.
We got their APIs from webpage and wrote a script to query continuously. And caught some results:

It appears to be that test owner seldom got lost. However, this is because that we have started to run these tests more frequently (due to cloudtest fixed). Last week, these tests got run and published for 3 hours only once and the tests' owner disappeared about 1 hour after result files published.

I've ran the script to detect test owner of Microsoft.Ads.UcmApi.Database.FunctionalTests.UcmTicketingTests.GetFilteredTicketGrid() for 24 hours and here's the result:

There is a cycle of about 1 hour but not precisely.
At each reappearance of test owner, I found a test result publishment record during past 1 minute in our team's records. It's not a "recovery" but a "republishment" from other builds or releases.
Hope these may help.

We will investigate this issue and get back by Monday. Thanks for details.

Owner and priority are updated based on the run and in this case, there was a different run that wasn’t publishing the owner info while publishing results from "Publish test results task". The customer has agreed to fix this from his side.


bash: npm: command not found

Ask a question
Nodejs has been installed on the server and configured in environment variables
But execution via github action always reports npm: command not found
`
- name: Deploy to Server
uses: cross-the-world/ssh-scp-ssh-pipelines@latest
with:
host: ${{ secrets.HOST }}
user: ${{secrets.USERNAME}}
port: ${{ secrets.PORT }}
key: ${{ secrets.DEPLOY_TOKEN }}
      connect_timeout:
        60s

      scp: |
        ./** => /apps/koa-koa

      last_ssh: |
        cd /apps/koa-koa
        npm install --production
        pm2 reload koatest.json

`
Why did it go wrong

do you also have command not found with the other commands ?

Ask a question
Nodejs has been installed on the server and configured in environment variables
But execution via github action always reports npm: command not found
` - name: Deploy to Server uses: cross-the-world/ssh-scp-ssh-pipelines@latest with: host: ${{ secrets.HOST }} user: ${{secrets.USERNAME}} port: ${{ secrets.PORT }} key: ${{ secrets.DEPLOY_TOKEN }}
      connect_timeout:
        60s

      scp: |
        ./** => /apps/koa-koa

      last_ssh: |
        cd /apps/koa-koa
        npm install --production
        pm2 reload koatest.json

` Why did it go wrong

me too 😢

screen -dm npm install --production
screen -dm pm2 reload koatest.json

if you used nvm for node, adding the following code might work
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
https://stackoverflow.com/questions/62863080/github-actions-err-bash-line-3-npm-command-not-found


minor s121 readme tweaks

Replaces #601

A few changes:

added the condition that the connected sets $C_\alpha$ cannot be singletons.
changed the \(...\) to $...$, because the preview feature in vscode only seems to work with dollar signs.
typo "Bertstein" --> "Bernstein"

Let me know if you are ok with that, and I'll approve.

Sounds good. Merging now since I can - I think it's fine to approve a PR with your own edits and let the OP merge if they agree.


[BUG] Resource leaks in unit tests

Describe the bug
Recently noticed this occurring sometimes at the end of unit testing.  It does not fail any tests, but it indicates something is going wrong:
Exception in thread "Thread-7" java.util.ConcurrentModificationException
	at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1239)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
	at ai.rapids.cudf.MemoryCleaner.stringJoin(MemoryCleaner.java:271)
	at ai.rapids.cudf.MemoryCleaner.access$200(MemoryCleaner.java:59)
	at ai.rapids.cudf.MemoryCleaner$Cleaner.logRefCountDebug(MemoryCleaner.java:94)
	at ai.rapids.cudf.ColumnVector$OffHeapState.cleanImpl(ColumnVector.java:3402)
	at ai.rapids.cudf.MemoryCleaner$Cleaner.clean(MemoryCleaner.java:104)
	at ai.rapids.cudf.MemoryCleaner$CleanerWeakReference.clean(MemoryCleaner.java:150)
	at ai.rapids.cudf.MemoryCleaner.lambda$static$1(MemoryCleaner.java:213)
	at java.lang.Thread.run(Thread.java:748)

That indicates the code is trying to emit a leak warning, which prompted me to check the test logs to see if we were leaking any resources.  A grep of the unit tests logs showed many resource being leaked.
Steps/Code to reproduce bug
$ mvn clean verify
$ grep LEAK tests/target/surefire-reports/*

Expected behavior
Unit tests should not leak resources

Will reprioritize once we confirm whether leaks are in tests only or in production.


Abbreviation of entity collides with id variable in query edge function

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
I have ItemDocument and Item, and the product can have many documents. So I have edge O2M (on Item). And the generator generate function QueryItem on ItemDocumentClient struct that function have a parameter id *ItemDocument and id is an abbreviation for ItemDocument but this collides with id variable in the function body. Causing rewriting of original ItemDocument (id) to database id (id.ID) which causes an error of undefined method on id.driver.Dialect().
Generated function:
// QueryProduct queries the product edge of a ItemDocument.
func (c *ItemDocumentClient) QueryItem(id *ItemDocument) *ProductQuery {
	query := &ItemQuery{config: c.config}
	query.path = func(ctx context.Context) (fromV *sql.Selector, _ error) {
		id := id.ID
		step := sqlgraph.NewStep(
			sqlgraph.From(itemdocument.Table, itemdocument.FieldID, id),
			sqlgraph.To(item.Table, item.FieldID),
			sqlgraph.Edge(sqlgraph.M2O, true, itemdocument.ItemTable, itemdocument.ItemColumn),
		)
		fromV = sqlgraph.Neighbors(id.driver.Dialect(), step)
		return fromV, nil
	}
	return query
}

error:
ent/client.go:405:32: id.driver undefined (type int has no field or method driver)

Expected Behavior 🤔
abbreviation of entity struct won't collide with the id variable in Query[Entity] function.
Steps to Reproduce 🕹
Steps:

define Item entity with an edge to entity ItemDocument

[...]

// Edges of the Item.
func (Item) Edges() []ent.Edge {
	return []ent.Edge{
		edge.To("documents", ItemDocument.Type),
	}
}

define ItemDocument entity with an edge to Item

[...]

// Edges of the ItemDocument.
func (ItemDocument) Edges() []ent.Edge {
	return []ent.Edge{
		edge.From("item", Item.Type).Ref("documents").Unique(),
	}
}

generate

Your Environment 🌎

Tech
Version

Go
1.16

Ent
0.6.0

Database
Mysql

Driver
https://github.com/go-sql-driver/mysql

Hey @SogoCZE and thanks for reporting this.
https://github.com/ent/ent/pull/1281 should solve the issue.


Avatar Tools Tab Shows Up Blank

I have imported Pumkin Tools v1.4.1 from the VCC repository with Unity 2022, and the Avatar Tools section of the asset only shows a blank window when selected.
I have done the following, in order:

Closed the window and reopened
Closed the project and reopened
Readded the asset completely
Reimported the entire project entirely
Tested on a separate project

All other sections such as the Pose Editor and Texture Packer show up and work as intended so it's importing okay. What else should I be doing?

Any errors in the console?


Instance does not wait for event loop to finish.

The jsEnvTestKit TimeoutTests test do not pass.

This is functionality the current JSEnv specification does expect from JS VMs but in general cannot be expected. In other occasions (n.b. PhantomJS) we have hacked around this by implementing some sort of "auto termination".
In practice this is fragile. So in the future JSEnv will not expect automatic termination. As a result, we can leave the browser running until closing is requested.
In the meantime we will not fix this, since it is not an issue for the main use case of the SeleniumJSEnv (running tests).


Add acknowledged checks

Before

After

Implicit in this is that we are changing what it means to be green. Rising to a challenge notwithstanding, is this generally what users (in this case, all the devs working on 2ndline) want?
Any particular reason the new colour was chosen to be what it is (I want to say greyish/bluish but 🤷♂)?

I really like the idea of displaying the number of acknowledged alerts (I don't really have any preference either way about changing the colour).
It's nice to see that there are issues that have been acked, since good practice suggests they should be reviewed regularly to ensure they should remain as such.

I like the idea of tracking acks, however I'm worried that this might make it significantly harder to get it green (which usually has a positive effect of feeling good on 2nd line).

I guess as I normally use Nagstamon and have it show all the checks, acknowledged and not, I generally have a different picture of the state of things. I'm hopeful that we can rise to the challenge.

Plus, acking an alert is usually a clear message that it's not causing any problems so, in theory, the service is "green" even if there are acked alerts (although I realise it's not always the case in reality).

If there's a failing check that doesn't relate to a problem, then I say that's a problem with the check configuration. I think acknowledging alerts is still a useful tool, and that's partially why I want more data on it in the display.

This might sound silly, but perhaps if the colour for when there are only acked alerts was more green then we could still look at a service and consider it "green" but it would also provide that useful information on the number of acked alerts.

My original idea was a "happier" blue colour, but then I make it dark enough to pass the relevant accessibility standards for having white text on top of it, and it ended up quite dark. I've now changed it to a dark green which I'm fine with (see the updated screenshot).

Implicit in this is that we are changing what it means to be green. Rising to a challenge notwithstanding, is this generally what users (in this case, all the devs working on 2ndline) want?

I haven't heard any objections. I personally hope that the colours of the boxes on the screen aren't taken as a serious indicator as to the health of the platform as a whole (as that's not how our monitoring system works...).

Any particular reason the new colour was chosen to be what it is (I want to say greyish/bluish but man_shrugging)?

It started off as a lighter blue, then got darker to contrast more with the white text. I've now changed it to a dark green (see the updated screenshots).


Two step variable definition for special chars in strings

Two step parsing of variable definitions. This is to support special characters inside a string screwing around with the regex.
Fixes #35

Very nice variation of tests! Thanks for the contribution.


GitHub stats not showing up

Fixing Statistics Issue
Greetings Matheus,
Before I start, I have to say that your GitHub profile inspired me to make my own; so thank you for that. Regarding the bug, I realized that the GitHub Stats section was facing some issues and would show this error message on both of our profiles:

A screenshot of what users see

Suggestion
I personally went about fixing mine by visiting Anurag's repo and making another "GtiHub stats card" from scratch. This is what I currently have, which updates itself regularly and shows the stats correctly:

I guess your current code is not much different, however, rewriting it might help. This is what you currently have in your README.md file:

    My GitHub stats

Conclusion
I hope this helps. Thank you once again for the inspiration. Keep up the great work!

Hi @KouroshKSH,
First, sorry for the delay in responding. 😅
I am happy to know that my profile served as an inspiration to create yours. Thanks for telling me that ❤
About the issue
Well, apparently this is an availability issue and it can probably always happen when having a large number of hits. So there's not much I can do about this specific graphs, but I found that one of the other graphs also had an issue due to this issue and fixed it in: https://github.com/matheusfelipeog/matheusfelipeog/commit/3728041d916babc8f082dc6dd1b135b086eb17d7
Thank you very much for your contribution. ;)


Feature Request: Friend Invite Link

Hello Discord Team,
I hope this message finds you well. I would like to propose a feature that I believe would enhance the user experience on Discord: the ability to create a direct invite link for adding friends.
Currently, users can only send friend requests by entering usernames and discriminators. Introducing a feature that allows users to generate a unique invite link to share with friends would simplify the process and make it more accessible, especially for those who may not know how to find someone’s username or are new to the platform.
This feature could work similarly to how server invites function, allowing users to share a link that, when clicked, would automatically send a friend request to the user associated with that link.

Greetings!  This repository is for tracking issues and features with our API getting started sample.  For general feature requests or bugs, please see https://support.discord.com/hc/en-us/articles/213490807-Where-can-I-submit-Feature-Requests-Feedback-and-Suggestions

Thanks, @JustinBeckwith


Getting Started - Can't get demo code to run

I'm really sorry to bother. I'm trying to understand React-Bootstrap-Table-2 and I am having a lot of trouble getting the demos to work. I was hoping you could help me solve my problem. I keep getting an error -
bundle.js:2356 Warning: Caption(...): No render method found on the returned component instance: you may have forgotten to define render, returned null/false from a stateless component, or tried to render an element whose type is a function that isn't a React component.
My application consists of one component and your demo code (see below).
import React, {Component} from 'react';
import BootstrapTable from 'react-bootstrap-table-next';
class RenderTable extends Component {
render (){
    const products = [{id:"1", name:"Doe", price:"46"}];
    const columns = [{
        dataField: 'id',
        text: 'Product ID'
    }, {
        dataField: 'name',
        text: 'Product Name'
    }, {
        dataField: 'price',
        text: 'Product Price'
    }];

    return (
        <div>
            <BootstrapTable keyField='id' data={ products } columns={ columns } />
        </div>

    );

}

}
export default RenderTable;

@ashwaths0793 sorry for lately reply, I cant reproduce this issue, could you please give a workable example or a repo. Thanks
BTW, What react version you used?

Hi Allen,
Thank you so much for response. I uploaded my project to a git repository (https://github.com/MULeverLab/ReduxSimpleStarter-LeverUI). There are several components, but the one where I am trying to render a bootstrap table (The code that I sent earlier) is in src/components/table_bootstrap.js. The application uses react-router and I try to render this component in the path localhost:8080/table (which is declared in the file src/index.js).
I think the problem might be how I import the react-bootstrap-table2 styles. I was unsure where to put this line (import 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';) that you had specified on your documentation. I am new to react and any help is great. Thank you in advance for everything.
Thanks,
Ash

@ashwaths0793 upgrade the react to newest and try again.

Will do. Thank you!

Thank you Allen for all the help. I got it to work! You were right about the version of react being the problem. I was using a boiler plate starter that was recommended by a course instructor. For some reason I was unable to update/upgrade the react version (bunch of errors appeared following the directions on the React documentation). I decided to recreate the application using the starter found on the React website and your library works great. I cannot that you enough for all the help. You were a great help and your library is fantastic. Have a wonderful weekend.

@ashwaths0793 thanks :) . keep to give any feedback to us :)


Revoke SSL cert when proxy is deleted

SSL cert should be revoked using certbot revoke --cert-name <DOMAIN> when you delete proxy and cert file should be removed too.

@j122j Can you make this?
Maybe just make option delete_cert that is false by default. When you add ?delete_cert=true to the request url, use certbot revoke --cert-name domain after restarting nginx (to prevent it from crashing because cert file was not found) and then delete the file of the certificate.

In version v1.1.0, certificates are deleted by default when you delete a proxy.


Add support to CVSSv4

issue: #1473

@DennisClark @keshav-space @pombredanne @Hritik14
What vulnerability details would be most helpful for users to see within the CVSSv4 score?
https://www.first.org/cvss/calculator/4.0#CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:P/VC:L/VI:H/VA:N/SC:L/SI:L/SA:N

The values provided in the grouping "Base Metrics" make sense here; I don't think we need more than those.

we should merge this pull request first : #1502

we should merge this pull request first : #1502

Ack @ziadhany, will hold my reviews on this until #1502 is reviewed and merged.

FYI #1502 is merged now

@TG1999 Wait, I need to add the ref type and CPES references. The code also still needs to be reviewed.


Added -[IGListAdapter visibleCellsForObject:] API

Changes in this pull request

Added -[IGListAdapter visibleCellsForObject:] API

Approach

Get all visible cells
Get the section for the object
Filter cells where indexPath.section of cell is equal to the object
Return

Pull request checklist

[x] All tests pass. Demo project builds and runs.
[x] I added test(s), an experiment, or detailed why my change isn't tested.
[ ] I added an entry to the CHANGELOG.md for any breaking changes, enhancements, or bug fixes.
[x] I have reviewed the contributing guide

Purely additive, can go in 2.2.0 release? Hold off on changelog until agreed.
Wanting to learn some more ObjC so gave this a shot, would appreciate some nit picking/feedback
Closes #437

Turns out there's already a method for -[IGListCollectionContext visibleCellsForSectionController:]
https://instagram.github.io/IGListKit/Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)visibleCellsForSectionController:
https://github.com/Instagram/IGListKit/blob/master/Source/IGListAdapter.m#L777-L788
Considering you can quite easily get the section controller from object using -[IGListAdapter sectionControllerForObject:] it doesn't seem too difficult to do this already?
@rnystrom Suggestions?

@Sherlouk doh. Ya, maybe we should just recommend people use that API instead...

@rnystrom Was your API request, if you think the need is no longer necessary then close this and that issue 😄

Lol I know, forgot that API existed. Might still be valuable to cut out the middle-layer steps. Could also return early if sectionController is nil.

Sorry, lost track here...
We saying in the old API to return early?
What steps do we want to take here
(Also pardon the test name 😂, only just realised I didn't change it)

The old API will end up asserting if the section controller is nil. If you used this method by first getting the object, then the SC (in ObjC) you might assert:
id controller = [self.adapter sectionControllerForObject:object]; // can be nil
NSArray *cells = [self.adapter visibleCellsForSectionController:controller]; // assert if nil

Which means all your callsites have to look like:
id controller = [self.adapter sectionControllerForObject:object]; // can be nil
if (controller != nil) {
  NSArray *cells = [self.adapter visibleCellsForSectionController:controller]; // assert if nil
}

Which is kind of gross. Swift will be just as bad. Options are:

Remove the assert
Add visibleCellsForObject: method that returns early if a section controller isn't found for the object

We should also add a unit test that sends nil to visibleCellsForSectionController: even tho the param marked nonnull, in ObJC-land that can still happen and the compiler wont help you.

@Sherlouk ok thought about it more. Let's do option 2 and move forward w/ this for 2.2 if you think that's doable 😄

Option 2 is good, want to raise a new issue to track progress on amending old functionality?
Will add another unit test as well testing if an object is not found that it returns empty

All valid comments, will work on it tonight!

@rnystrom Just updated, should address all of your points!
Not sure if this is the best code to return an empty array, but it does seem to work?
return [NSArray new];


Backchannel audio for ffmpeg sources

Hi,
is there a plan to support backchannel audio for ffmpeg sources?

What ffmpeg source can support backchannel audio?

my doorbird doorbell. It has seperate api endpoints for audio receive and transmit. both endpoints uses ulaw and 8000khz

And why ffmpeg should be involved in this?

i thaugt i can use two ffmpeg sources one for audio and one for backchannel?

Is this duplicate for your other issue? #841

yes it is ;-)

So one issue will be enough


adds DNS and websites deployment commands

Need:
Two new commands

Set en DNS entry:
examples:
npx @massalabs/sc-toolkit dns --set toto.massa
optionnal flags:
--rpc
--dnsAddress
--privateKey (?)

Deploy website:
examples:
npx @massalabs/sc-toolkit deployWebsite mywebsite.zip
optionnal flags:
--rpc
--dnsAddress
--privateKey (?)

For private key, several possibilities:

pass it as flag arg
read in .env file
read exported data from Thyra (possible? with password?)

dependencies:
All these features uses the smart contract deployer. in order to do clean stuffs we have to factorize this.
There is already a big part of the work which is already done here: https://github.com/massalabs/massa-sc-utils
We should use it, and adapt for our needs. This should also be nice to add a command line feature for these tools
(i.e npx massa-utils deploy mycontract.wasm") to be use in npm script "deploy": "massa-utils deploy"
We need to clarify the difference between deploying a SC directly and deploying a SC through a deployment contract.
It will be good to decide of an appropriate wording about this
brainstorming option names for the 'deploy through a deployer smarcontract' use case:
--generate-deployer
--deploy-function
--createSC
I propose to generalize the use of typescript. (vanilla javascript forbidden) @massalabs/massa-sc-utils is already a typescript module

@peterjah can you give me a bit more context on this one? What is the use-case for a sc-developer who uses the sc-initializer?

Its not for SC builders only, but anyone who wants to add a DNS entry or upload a website using command line instead of Thyra.


[Event Request] Codeunit 99000854 - OnBeforeAdjustReorderQty

Please add a new Publisher Call OnBeforeAdjustReorderQty in Procedure AdjustReorderQty of Codeunit 99000854 "Inventory Profile Offsetting"
Add new local Var. IsHandled in Fct. AdjustReorderQty
Add Call of Publisher in procedure AdjustReorderQty
+        OnBeforeAdjustReorderQty(OrderQty, SKU, SupplyLineNo, MinQty, DeltaQty, IsHandled);
+        if IsHandled then
+            exit(DeltaQty);
+
         // Copy of this procedure exists in COD5400- Available Management

New Publisher:
+    [IntegrationEvent(false, false)]
+    local procedure OnBeforeAdjustReorderQty(OrderQty: Decimal; var SKU: Record "Stockkeeping Unit"; SupplyLineNo: Integer; MinQty: Decimal; var DeltaQty: Decimal; var IsHandled: Boolean)
+    begin
+    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Redirect in slim3

How to redirect to different route in slim 3?

return $response->withRedirect('/foo');

Oh with return - thanks

I don't have the  'withRedirect' function:
I get the following error:
Fatal error: Call to undefined method Slim\Http\Response::wihRedirect()
What did I wrong

Typo. Wit or with

oh sorry my bad
Now it works :+1:

Hi,
//in controller return $response->withRedirect('/checkParams');
this is not working in controller.
//route $app->post(     '/checkParams',     'ValidatorController:checkParams' );
is there anything more to be done while using in controller?

A redirect is always a GET request. You have made /checkParams a POST, so it won't match.

@akrabat Wow that was lightning fast response. Thanks for super quick response. I will change my route to GET.

@akrabat
I got it working as expected when I turned POST to GET. Now what I am finding challenging is allow cross domain request. Let me explain my scenario in brief.

my web app domain say http://mywebapp.com will call my API end point at http://myapi.com/process/
the internal working of the ProcessController API will be as follows
a. process method will do some work and will redirect to other controller method ValidatorController:checkParams
b. ValidatorController:checkParams will check parameters and will redirect to another controller say ExecutorController:executeprocess.

Now if request to API call is from same origin then it works like charm. Complete redirections work as expected and I get final result.
But in case of cross domain call, My ProcessController method gets called but it halts execution where I redirected it to ValidatorController:checkParams with no error or warning.
Following changes I have made.
in index.php of API codebase
 if (isset($_SERVER['HTTP_ORIGIN'])) {     header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");     header('Access-Control-Allow-Credentials: true');     header('Access-Control-Max-Age: 86400');    // cache for 1 day }   // Access-Control headers are received during OPTIONS requests   if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {     if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) {         header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");     } if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) {         header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");     } }
my redirection code in ProcessController which should redirect to ValidatorController:checkParams
$qryParams = http_build_query(['requestlogID'=>$result]);                 $uri = $request->getUri()->withQuery($qryParams)->withPath($this->_router->pathFor('checkParams'));                 return $response->withStatus(200)                         ->withHeader("Access-Control-Allow-Origin", $_SERVER['HTTP_ORIGIN'])                         ->withHeader("Access-Control-Allow-Credentials", true)                         ->withHeader("Access-Control-Max-Age", 86400)                         ->withHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS")                         ->withHeader("Location", $uri);
can you please guide what am I doing wrong?
Thanks

@niranjanwnmt
Read this: Setting up CORS


We should allow starting local kernels in virtual workspaces

Execution isn't possible, so running cells or using the interactive window should be restricted.

Questions/Suggestion:

Should we allow users to run code against local Kernels?

I think yes, I.e. allow users to open a github repo and run against your local kernels.
I believe thats the benefit of virtual workspace, not having to clone everything locally to try something out.

Similarly, we should allow users to run such notebooks against a local kernel.

The Python extension is deactivated in the remote repository setting because of the lack of Pylance support (as of now) and because the extension depends on tools (linters, formatters) that make use of the filesystem.
One thing to think about here is whether we should be consistent with the Python extension in terms of its support -- deactivated Python == no interpreter to run which, if we choose consistency, will mean that we do what this issue originally was proposing: restricting cell run and interactive window.


[INIT-2770] Simulcast in the SDK

This PR will use the new experimental Simulcast API in both self and presentation streams. It includes as well a new component that calculates the bitrate of the subscribed video stream, on the bottom right side of the feed.

Bitrate (in kbps)

Thanks for getting this PoC ready! I think we have enough information to design and implement the first iteration of simulcast in the SDK. Here's what I think the API could be. Let me know what you think.
Simulcast API
const room = await initialize({
  roomId,
  clientToken,
  context: JSON.stringify(context),
  logLevel: "DEBUG",
  enableMessages: true,
});

// Once enabled the SDK will send up to 3 streams depending on the capture quality of the video track
room.addStream(
  "self",
  { audio: audioTrack, video: videoTrack },
  { enableSimulcast: true }
);

// You can't disable simulcast once it's enabled. You must remove the stream and add it again without simulcast if you wish to disable it.

room.addSubscription(participantId, "self", {
  audio: true,
  video: true, // nothing to configure here, if the stream has simulcast enabled it will receive the best available quality based on the network conditions
});

Once we have this working we can introduce more configurations at a later point if necessary. I think the design above has the least amount of breaking changes to the existing API.

@arghav, I did a small refactor you might wanna take a look at d2e7559.
This will shows 0 kbps anytime the video is disabled.


Support better interop with rpm-ostree

Currently, bootc cannot be used on systems managed by rpm-ostree as soon as any rpm-ostree client-side features are enabled (e.g. package layering or initramfs regeneration). This makes it harder to migrate systems from one to the other. The replacement for package layering is building container images, but that requires changing workflows and assuming new responsibilities. Also, initramfs regeneration and kernel argument manipulations still require rpm-ostree today.
But also for OS maintainers of rpm-ostree-based variants, trying to migrate users from one to the other would be much less dramatic if there were a window of time when both were supported. It would allow moving to bootc for updates, without breaking users currently using layering. Notably in upstream communities like FCOS, Silverblue, and IoT where rpm-ostree is today very popular. To a lesser degree in downstream systems like OCP, where we have more control on the implementation details and are already working on a container-native replacement to some of the features backed by rpm-ostree for now but we definitely have instances of people doing rpm-ostree-specific things behind the MCO's back today.
Implementation-wise, I think we could have a bit like
[bootc]
deployer=rpm-ostree deploy
deployer-status=rpm-ostree status --booted --json

in the origin, which would tell bootc switch/bootc upgrade to run the command in the deployer key instead of ostree_sysroot_stage_tree(), passing the container ref as an argument (or the OSTree commit so that bootc is still in charge of the downloading and importing? basically force rpm-ostree to operate in offline mode). And bootc status would add under the BootEntry object a new key like deployer containing the deployer command, and deployerStatus containing the output of the command which is expected to return JSON (but obviously displayed as YAML by bootc). The idea being that bootc status still captures the rpm-ostree-specific state here.
rpm-ostree could also learn to look for the bootc group in the origin and rpm-ostree upgrade/rpm-ostree deploy could tell the user to use bootc instead.
(Obviously this is structured in a way that doesn't actually require bootc to know anything about rpm-ostree and which could in theory be reused for other things that could be driving ostree today.)

I definitely want to improve the experience here.  I would say though what I think would be even more valuable though is being able to tell the story where e.g. dnf can take over some of the role of things around stuff like package layering.
Anyways though I think the challenge is that in practice anything doing stuff like package layering is going to need to in practice operate with rpm-ostree (or in general whatever higher level build tool is driving bootc) to inspect state.  Shoveling the rpm-ostree status --json into bootc status just feels weird.  (But still, not opposed)
I can certainly imagine hooking things such that bootc upgrade turns around and invokes some other command...but how valuable in practice is that?  I'm a bit uncertain.  There is on one hand a lot of value in doing something useful with "finger compatibility" I guess.

I definitely want to improve the experience here. I would say though what I think would be even more valuable though is being able to tell the story where e.g. dnf can take over some of the role of things around stuff like package layering.

:+1: Indeed, I think that's where we want to go eventually.

Anyways though I think the challenge is that in practice anything doing stuff like package layering is going to need to in practice operate with rpm-ostree (or in general whatever higher level build tool is driving bootc) to inspect state. Shoveling the rpm-ostree status --json into bootc status just feels weird. (But still, not opposed)

Yeah, unsure about the JSON bit myself too. It's definitely not meant to be as user-facing as the rest of the bootc status output. But it's nice too to have it be right there. Not sure. My original idea was to just have a field like deployerStatusCommand: rpm-ostree status or something that directs people to the underlying command to use. None of this is great, it's just a temporary thing to try to make migration smoother.

I can certainly imagine hooking things such that bootc upgrade turns around and invokes some other command...but how valuable in practice is that? I'm a bit uncertain.

Today, not much. But the idea in theory is that we'd be able to enjoy the feature sets of both tools (e.g. https://github.com/containers/bootc/pull/100).

FWIW, I think it could be useful to maintain a Containerfile like so in some directory locally and just use plain old dnf:
FROM fedora-bootc:40
RUN dnf install -y list_of_packages

we can take advantage of layering when you add a new package, just add a dnf install as a separate RUN command and we can just re-use the cached layers. People can do ":latest" if they are the type that like to upgrade as soon as possible, etc.
In general dnf is a more complete rpm package managing tool.
People like the Containerfile format, the recent surge in popularity of Ollama is just one example of this:
https://trends.google.com/trends/explore?date=today 5-y&q=Gpt4all,ollama,llamma.cpp&hl=en-GB

A "best-effort" generator could be useful to run on an rpm-ostree system to turn it into an approximate Containerfile or documentation on how to do it manually...

Closing in favour of https://github.com/coreos/rpm-ostree/issues/4994 which proposes the solution opposite to the one proposed here, which is to have rpm-ostree call bootc.

I got a notification on this since it was closed. On an rpm-ostree based Fedora Kinoite 40 machine, I recently upgraded via bootc using:
sudo bootc switch quay.io/fedora/fedora-kinoite:41
sudo reboot
# I temporarily lost some layered packages which I re-installed via:
sudo rpm-ostree install alacritty bootc clang cmake distrobox dnf gcc hip-devel hipblas-devel hyperfine keepassxc make nvtop qemu-kvm rocblas-devel rocm-clinfo rocm-hip rocm-hip-devel rocm-opencl rocm-smi rocminfo the_silver_searcher vim

This worked pretty flawlessly!


Tests

My goal is all the test that need ibmq should be in a folder ibmq. The ones that need aer are in the aer folder and the basicaer has a set of integration test that any 3rd party provider should pass.
There are sill some exceptions. Tools/monitor and tools/compiler still have some dependencies on the qe and cpp.
The tools/compiler will be fixed when the python simulator bug is fixed.
The tools/monitor I am not sure what we should do there.

@diego-plan9 the ones in basicaer we should discuss how we can make them used by 3rd party providers and the ones in ibmq we need to also make sure they go to the ibmqprovider repo when we split.


How can I implement an analog of the next fragment button function in the navigation drawer?

How can I implement an analog of the next fragment button function in the navigation drawer?

@nazirjon-1997
Sorry, can you detail your doubt. I didnt understand your query.


Put cursor before the extension while renaming files

Is your feature request related to a problem? Please describe
When you rename for instance foo.rs, inside the hover box, the cursor ends up at the end of the filename which is fine when your rename a folder, but less so if you rename a file
Will you be willing to contribute this feature?

[x] Yes, I will try to implement it

Describe the solution you'd like
When renaming a file with an extension, the hover box should put the cursor right before the extension rather than at the end of the filename.
Describe alternatives you've considered
No response
Additional context
lf does this by default, as do a lot of graphical file managers

Additional notes:

I'm willing to write a patch if you can tell me where to look :)
The fact you manage to write a file manager this fast with so many features is awesome - keep up the good work :)

Thanks for offering to implement this :D It looks to me like you could manually set the cursor position in the code below based on where the last . is in the file name. However, I'm not sure how you would distinguish between files and directories, since afaik directories may include .'s.
https://github.com/sxyazi/yazi/blob/1bbb3235098da200e8d0d814fee554044ffaf5df/yazi-core/src/input/snap.rs#L19-L30


Websocket PyMongo support

The purpose of this PR is to allow users of the WebsocketClient streaming API to dump the contents to a Mongodb collection. With the inclusion of a new parameter should_print, which defaults to True, existing functionality should be unchanged. In the case of data collection, a user can pass a Mongo collection object to the WebsocketClient at instantiation and stream the results to the database in realtime.

This is great, thanks for the support. Please add documentation to the README and I will merge.

thanks!
i added some instructions in the README. let me know if you don't think the added documentation is sufficient.


refactor: overhaul and cleanup rule exclusions for settings

Over the past year the Nextcloud plugin has grown dramatically in size with improved coverage and support for various features within Nextcloud, this has come at the expense of code readability and maintainability. Rule IDs have grown from 53 to 185 and the lines of code from 780 to 2756.
This PR is focused on overhauling personal/administration settings and has:

Reduced the number of rules down to 181 (from 185)
Rule exclusions have been reorganized to make it easier to find/modify/add rule exclusions relating to settings
Comment clarity has been improved
6 Additional tests have been added

The Nextcloud plugin will likely remain large since Nextcloud incredibly feature rich, but it's a start.

@theseion I didn't really touch any of the functionality of the rules. they largely work the same. It's just a reorganization/cleanup and simplifying


How can isolate Control Plane and Router Mesh

I like only scale the Data Plane how can isolate the Control Plane and Router Mesh, i dont like the idea of repeat data on every single host of cluster
http://docs.deis.io/en/latest/understanding_deis/architecture/
In the last paragraph you mention about topologies but its not clear and/or missing documentation.

Currently you can do this manually by copying the default unit files from deisctl/units and then adding metadata restrictions under [X-Fleet] (e.g. MachineMetadata=plane=control). You can point the Deis installer to the new unit files by setting the DEISCTL_UNITS environment variable. Of course, you also need to add the appropriate metadata for the CoreOS hosts in your cloud-config (e.g. coreos/fleet/metadata: plane=control). Finally, you need to tell your applications you want to run them on the Data Plane. For this, you need to use deis tags:set (e.g. deis tags:set plane=data).
Please correct me if there is already an easier way.

nope, that sounds pretty accurate to me

Related to this topic, have you ever considered making it possible to define default tags for new applications (with something like deisctl config controller set defaultApplicationTags=plane=data)?
What currently happens - when the planes are isolated - is that fleet sometimes schedules new applications to the routing (or control) plane which is undesirable for several reasons. It would be great if the application's initial unit file could already have the X-Fleet -section up, so that applications are always deployed only to the data plane. While you can avoid this by adding conflicts for the routing/control plane unit files (e.g. .web.) , the default tags could also be useful for other default metadata restrictions (e.g. region, cabinet, disk type, environment).

have you ever considered making it possible to define default tags for new applications (with something like deisctl config controller set defaultApplicationTags=plane=data)?

We haven't, although off the top of my head, that implementation would make sense. You'd really only need to change https://github.com/deis/deis/blob/0dc6819f544c24ccca4e834f993504cc498991a1/controller/scheduler/fleet.py#L322-L331 and maybe the run template too. The DEFAULT_APPLICATION_TAGS could be a setting in https://github.com/deis/deis/blob/0dc6819f544c24ccca4e834f993504cc498991a1/controller/templates/confd_settings.py which is written to by that etcd key. Does that make sense? That's only my view, though - the other maintainers have a different approach.

The cluster-wide config discussion is at https://github.com/deis/deis/issues/1804 :)

Thank you for the responses. The cluster-wide config would surely be an useful and interesting feature! If cluster-wide tag-managament became possible through it, the first thing that comes to mind is that it should probably support at least 3 different propagation strategies, mainly regarding existing applications. 1) Update all applications 2) Update applications matching the previous value 3) Do not update existing applications.

Okay so it sounds like the call-to-action here is to clarify more on control plane/data plane isolation. @sforsman let's keep the discussion rolling in #1804 so we don't derail this thread, but your input is greatly appreciated :)

Okay so it sounds like the call-to-action here is to clarify more on control plane/data plane isolation.

Yep! I assigned this to me so I can whip up some documentation around this, because @nekrox is right - we briefly mention this in the documentation but don't have much information.
The code solution is in #1804.

Sorry, my bad :) @carmstrong if you'd like I'm more than happy to contribute to the documentation on the isolation of the planes - it is pretty fresh in my memory and I actually have saved notes on it. I could also provide a CloudFormation template for fast deployment.

if you'd like I'm more than happy to contribute to the documentation on the isolation of the planes

Absolutely! I'm thinking the Architecture section you already linked to could link to new page in Managing Deis where we could instruct operators on how to actually achieve separation.

I could also provide a CloudFormation template for fast deployment.

We could perhaps include the changes/additions as a code snippet in the docs? I hesitate to include a completely separate CloudFormation template, as it'd have to receive updates whenever we update the one in contrib/ec2, and we really try to avoid updating code in multiple places.

Absolutely!

Excellent, I'll get on it.

I hesitate to include a completely separate CloudFormation template, as it'd have to receive updates whenever we update the one in contrib/ec2, and we really try to avoid updating code in multiple places.

That of course makes sense. However duplication is not really needed since you can launch and configure stacks from within stacks and make resources conditional. Either way, I will just include the changes and additions as a code snippet, as you suggested :)

@sforsman Did you get a chance to PR this yet? Even if you could PR what snippets or docs you have in your head, I can clean it up and PR it. I'd like to get this in for our v1.4 release.

I'd like to get this in for our v1.4 release
With this in mind, when would you prefer to have the PR?

With this in mind, when would you prefer to have the PR?

The code freeze for v1.4 is this Thursday, but since it's a documentation change it can pretty much go in whenever.

@carmstrong I have the actual documentation pretty far - it basically just needs reviewing. However I would also like to include modifications for the contrib scripts of at least one cloud provider, so that it would be easier for the community to get an isolated cluster up and running.
If you prefer, I can also submit PRs and/or snippets for the contrib scripts later and just finish the documentation tonight :)

If you prefer, I can also submit PRs and/or snippets for the contrib scripts later and just finish the documentation tonight :)

Let's submit it all as one - we'll need to discuss how to wrap all of the contrib changes to make them optional.

I think this work may be closely related to @krancour's work in #3635...

#3718 is a great example of how separating the control and data planes can be done in Deis now with some minor changes.

I think #3718 actually should have closed this.  Closing.


Sunflower

So there was a discussion on how to implement new APIs with Glowstone. I suggested having Glowstone being able to load multiple APIs and translate these methods to an internal API, but the collaborators of Glowstone decided that they were going to only use Bukkit until Glowstone was stable, so I decided to work on a new implementation which I never got around to.
Sunflower.
Sunflower was planned to create a universal wrapper for a server using mappings that would translate methods to that server's internal API. In this case, Bukkit.
Unfortunately, I am extremely busy and couldn't work on anything besides some pseudo code and planning.
So, I was wondering if GlowstonePlusPlus could be the Sunflower server, Helios. Just like Craftbukkit++ transformed into Spigot, Glowstone++ can transform into Helios. Of course, I'm completely fine if @deathcap is not ok with it, and I guess I'll delete Sunflower because I won't have a chance to work on it, and I will work on Glowstone++ instead.

I will make GlowBridge instead.

Saw your announcement on Reddit https://www.reddit.com/r/admincraft/comments/2zx2z0/i_just_started_planning_sunflower_an_api_to/
Looks like an interesting concept but how are you planning on doing the bridging exactly?

Well I don't really have exact thoughts on methods in the code but it would just return the respective mapped method for either bukkit or sponge or whatever.

@mastercoms if you can develop a prototype, would be something to consider. There is some method mapping in Glowstone, Spigot, and Sponge for what it's worth, they use it to overload return values for legacy Bukkit API:

https://github.com/GlowstoneMC/GlowRemapper - Gradle plugin, used in Glowstone
https://github.com/LapisBlue/Remapper - LapisBlue's (developers of Pore, a Sponge plugin implementing Bukkit) fork of GlowRemapper
https://github.com/agaricusb/SpecialSourceMP - Maven plugin, used in Spigot and Glowstone++

but I am not sure if this technique could feasibly be used to map between Sponge and Bukkit APIs, because it is not a straightforward matter of symbol naming differences, but the classes implement different interfaces.
Playing around with another approach, a Bukkit plugin implementing SpongeAPI: https://github.com/deathcap/Bukkit2Sponge

There are two things to consider, plugins and Glowstone itself. Glowstone will be quite easy to implement other APIs, as we have control over what we import and the names of everything. So we can change imports to org.sunflower.* and then in Sunflower code the toggles for different APIs.
However, for plugins, we can't control their code. The simplest way to solve this problem is to put Sunflower in every place a plugin would import, such as in org.bukkit and org.spongepowered, although that is pretty horrible.

OK I think I have an idea of how the plugin-API/server-implementation could be separated, along the lines of what you might had envisioned for Sunflower.
Not sure if this is feasible, but let me know what you think: first isolate the Glowstone++ server so it can load and run without any plugin APIs, then add plugin API implementations (Bukkit, Sponge, Canary, Forge, Nova) on top, possibly in a separate subproject. Each of the plugin APIs could be added or removed independently and new plugin API implementations could be developed on equal standing. They would essentially be "plugin-API plugins" for the Glowstone++ server itself.
The main challenge of course with this design is interfacing the plugin APIs with the server. Some kind of interface is needed, though it doesn't have to be stable or comprehensive, only enough to allow the plugin API addons to be written. Another challenge is removing the remnants of the Bukkit API dependency in the server implementation. Started this on https://github.com/GlowstonePlusPlus/GlowstonePlusPlus/tree/nobukkit but easier said than done. Some data types from the Bukkit API are used in the server directly with no implementation-specific derivative (such as the GameType enum, granted easily replaced, moved into the server), and also some implementation code from the Bukkit "API" such as SimpleCommandMap. A Bukkit-free Glowstone++ could be an interesting step towards this kind of architecture, but its no small feat.
Another option, since an API would be needed to support plugin-API addons anyways, why not just use the Bukkit API for this purpose? That is, other plugin APIs could be written on top of the "Bukkit" API, like Bukkit2Sponge. Since Glowstone++ has its own fork of Glowkit/Bukkit, the API can be enhanced as needed to support new functionality required by the other plugin APIs (titles, action messages, etc). This would also help the Bukkit API grow and develop and get more testing, stabilizing to better support Bukkit plugins. The downside though is if the Bukkit API is inefficient or poorly designed in some areas, inhibiting development of better plugin APIs through a suboptimal bridging layer. Thoughts?

My goal with Sunflower was to make a API agnostic server, with the possibility of being version agnostic, too. It would be a wrapper for other servers, including the vanilla one, and would work by starting it like this:
java -jar Sunflower.jar minecraft_server.jar

It would then create a folder called mappings, and a file called sunflower.yml. In sunflower.yml, there would be these config lines
api: [bukkit, sponge]
server: vanilla

Then in mappings, there would be vanilla.json, bukkit.json, and sponge.json.
It would look something like this: https://github.com/GranitePowered/GraniteMappings/blob/master/1.8.json
It would basically normalize all the differences in APIs/servers to a common interface name, which Sunflower would use to inject the API into the server.
Then in a folder called api, there would be actually api files.
Perhaps it could look something like this, but instead of a wrapper, we do it in the fashion you suggested, with plugins instead of the plugin manager being integrated into the actual server, as there might be some quirks with an API that will have to be solved specifically and programmatically for that API using a plugin, and each plugin would include its own mappings thing and obviously the api files.

Sunflower is no longer related to this discussion about APIs, I am making an API issue now.


Fix wrong manifest file path

Issue: I've encountered an issue with the manifest.webmanifest file that is added to pre-cache even in injectManifest mode. I'm using a Laravel setup, so the webmanifest is built to /build/. If I change manifestFilename to /build/manifest.webmanifest, it will output the file into /build/build/manifest.webmanifest.
Looking at the source code here it is impossible to disable this behavior - I would appreciate the option to simply disable the automatic inclusion of wrong files into pre-cache. (Also, it seems quite excessive to re-generate the whole manifest file just to create the hash, but that's just a performance issue) https://github.com/vite-pwa/vite-plugin-pwa/blob/31ccaa89bb18b7d39f8d150435b26d33dfee04dd/src/assets.ts#L115-L129
Therefore, I added buildBase to the manifest file that always gets added to additionalManifestEntries, now it generates the correct path and pre-cache doesn't fail anymore.
To be frank: I haven't tested this with any other setup, but from looking at the code I'm rather confident this is a bug in the plugin and not in the setup. If the issue is resolved in another way I wouldn't bother. I've simply spent too much time trying to figure out why manifest.webmanifest is added to pre-cache when this plugin outputs the manifest to build/manifest.webmanifest.

@devdot thx but no, you must deal with the vite plugin laravel, check this comment https://github.com/vite-pwa/vite-plugin-pwa/issues/467#issuecomment-1427998051
You can achieve the same result using the buildDir entry: you should also add the service-worker header to all your html entry points.

Alright, good to know it's best to look for other plugins. This is still an obvious bug, since this plugin force-adds \manifest.webmanifest to pre-cache, regardless of it's actual build location. That should not happen, or it should be configurable.
Not sure what you're referring to with buildDir, it's not in the docs and looking at the code, it won't work.

@devdot you can exclude the webmanifest or any another resources using globIgnores


Running bigquery requests with an API client

I'm not sure if this is the best place to ask this but it's basically the only place :)
I'm using the node.js client for the google APIs. I can access various metadata about the githubarchive data but it won't let me run any queries. Simple queries that I can run fine in the https://bigquery.cloud.google.com web interface return permission errors like this one when using the client:
Access Denied: Job githubarchive:job_GF9pOXgdaXWXcxYHNN6z97fTdZ4: The user<EMAIL_ADDRESS>does not have permission to run a query in project githubarchive

Any idea what I need to do in order to be able to run some queries?

/cc @fhoffa
My understanding is: you need to create own project, with BigQuery ACL's, and configure your client to use that. With that in place, you can query the public dataset.

I did all that, I needed to do that just in order to get the metadata on the public dataset, but I'm still getting that permission error when attempting a query :(

Also, the timeline dataset seems to not be up to date. Any reason why?

It appears that the timeline data stops at some time in January of 2015.
SELECT type
FROM [githubarchive:github.timeline]
WHERE (REGEXP_MATCH(created_at,'^2015-02'))
LIMIT 5

Returns no results.

We switched to "day" dataset in Jan 1, 2015: https://www.githubarchive.org/#bigquery

ya, there's just a lot less info in this schema, a lot of the repo info (like language) is now gone.

Also been looking for language information post 2014. Seems to discontinued at the same time as the switch to JSON format for payload?

@LaplaceG @mikeal correct, the new GH API does not report language -- not sure why. To my knowledge, that's the only major missing piece.

@mikeal did you get this working? Can we close this?

Closing, feel free to reopen if needed.

I did all that, I needed to do that just in order to get the metadata on the public dataset, but I'm still getting that permission error when attempting a query :(

Same problem, 4 years later, and the thread seems to have abandoned the issue shortly after opening it. Was this ever resolved?


[Usage]: the docker image v0.4.3 cannot work

Your current environment
vllm-openai_1  | (RayWorkerWrapper pid=3487) ERROR 06-05 16:30:08 worker_base.py:148] RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW
How would you like to use vllm
everything is good in docker v0.3.3, what should I do to use v0.4.3?

@BUJIDAOVS can you please share the commands and hardware used to trigger this error?

@mgoin
Good morning I can also confirm that image V0.4.3 is not working. When using V0.4.2 it works as expected.
nvidia-smi
Thu Jun  6 08:59:09 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.171.04             Driver Version: 535.171.04   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 4090        On  | 00000000:41:00.0 Off |                  Off |
|  0%   33C    P8              30W / 480W |    191MiB / 24564MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce RTX 4090        On  | 00000000:61:00.0 Off |                  Off |
|  0%   32C    P8              34W / 480W |     11MiB / 24564MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      1764      G   /usr/lib/xorg/Xorg                          167MiB |
|    0   N/A  N/A      1842      G   /usr/bin/gnome-shell                         14MiB |
|    1   N/A  N/A      1764      G   /usr/lib/xorg/Xorg                            4MiB |
+---------------------------------------------------------------------------------------+

docker run --gpus all \
    -v ./data:/Data \
    -p 8000:8000 \
    --ipc=host \
    --env "HUGGING_FACE_HUB_TOKEN=hf_token" \
   vllm/vllm-openai:v0.4.3
    --model /Data/Meta-Llama-3-8B-Instruct-32k-instruct-quantized-4bit-128qg-AWQ \
    --max-model-len 32000 \
    --tensor-parallel-size 2 \
    --gpu-memory-utilization .9 \
    --api-key sk-1234567890abcdef \
    --served-model-name model_name \
    --quantization awq \
    --dtype half
    ```

Same. Tried ~7 working configurations from 0.4.2 on 0.4.3, all failed with same error
...
File "/usr/local/lib/python3.10/dist-packages/torch/cuda/__init__.py", line 293, in _lazy_init
torch._C._cuda_init()
RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW

I was given a fix for this issue. Can find it in this issue. https://github.com/vllm-project/vllm/issues/5510

Hi team, same error here.
docker run -it --gpus all --ipc=host --entrypoint /bin/bash  vllm/vllm-openai:v0.4.3

I enter the docker container and execute python3:
import torch
torch.cuda.is_available()

it returns False.
I tried v0.4.3 and v0.5.0 and latest, all failed.
v0.4.2 returns True correctly.
Information about my domain machine:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Wed_Apr_17_19:19:55_PDT_2024
Cuda compilation tools, release 12.5, V12.5.40
Build cuda_12.5.r12.5/compiler.34177558_0

Upgrading host's Nvidia drivers solves this.
550 version works. Not sure what would be a minimal one.

Upgrading host's Nvidia drivers solves this. 550 version works. Not sure what would be a minimal one.

Thanks, it works. Previously, my nvidia driver version was 535 on my domain machine.


opencypher.gremlin could not be found

Description
I'm trying to use cypher-for-gremlin but not able to use the plugin.
I followed the steps mentioned here: https://github.com/opencypher/cypher-for-gremlin/tree/master/tinkerpop/cypher-gremlin-console-plugin
After running gremlin> :install org.opencypher.gremlin cypher-gremlin-console-plugin 1.0.0
It prompts me, ==>Loaded: [org.opencypher.gremlin, cypher-gremlin-console-plugin, 1.0.0] - but never asks to restart the console to use [opencypher.gremlin]
I checked the /ext folder where a folder named cypher-gremlin-console-plugin is formed with all the required jars inside it (inside lib and plugin folder)
plugin-info.txt file contains this: org.opencypher.gremlin:cypher-gremlin-console-plugin:1.0.0
Also, at /root/.groovy/grapes/ I can see a folder org.opencypher.gremlin been created.
After quitting and starting gremlin server, I am still not able to see opencypher.gremlin in the :plugin list and when I try to use it throws below attached error.

Would like to add to this issue
When I try to install the plugin again, it prompts that the plugin has already been installed
==>a module with the name cypher-gremlin-console-plugin is already installed

Hello @SarthakGhosh16,

Which version of Gremlin Console are you using?
Can you try :install org.opencypher.gremlin cypher-gremlin-console-plugin 0.9.13 (which should work with Gremlin Console<3.4.0)
Does Gremlin Console bundled with Cypher for Gremlin works for you?

Hi @dwitry
Thanks for replying
I'm using gremlin console which comes with janusgraph v0.2.0
https://github.com/JanusGraph/janusgraph/releases/tag/v0.2.0
bin/gremlin.sh > Gremlin.version() ==>3.2.6
I tried :install org.opencypher.gremlin cypher-gremlin-console-plugin 0.9.13 but again the console never prompts me to restart it.

The folder named cypher-gremlin-console-plugin is present in the /ext folder but :plugin use opencypher.gremlin still doesn't work for me.
The :uninstall cypher-gremlin-console-plugin command worked which means it is able to pick the location of the plugin.

Ok, so JanusGraph v0.2.0 uses TinkerPop 3.2.6 which has plugin API different than TinkerPop 3.3.x. That's why plugin is not recognized in your case. This means Cypher for Gremlin will work only with JanusGraph v0.3.0+.
You can either upgrade JanusGraph, or use newer Console version with translation in Console. Can't guarantee that all functionality will work, because Cypher for Gremlin  was never tested with TinkerPop<3.3.1.

Ok. I'll upgrade JanusGraph to v0.3.1
https://github.com/JanusGraph/janusgraph/releases/tag/v0.3.1
which uses Apache TinkerPop 3.3.3.
I'll install it and check the Gremlin version which comes along with it and then try to install cypher-gremlin-console-plugin
If it works, I'll close the issue.
Thank you so much @dwitry for your help. You saved my day.

Ok. So I downloaded JanusGraph v0.3.1 which comes with Gremlin Version 3.3.3 and TinkerPop 3.3.3
At the first go itself the :install and :plugin use worked.
Thanks again @dwitry . Closing this issue.


Add docs on parse-pkgs.sh

Also fix bad ending brace.

cc @rvs

LGTM. Merged.

@deitch notes on parse-pkg look really great. Can you please also add a note to CLEANUP.md that we really need to get rid of zedctr ASAP? This will help with parse-pkg complexity quite a bit.
We then will only have two questions to answer:

what to do with dependencies like qrexec-dom0, qrexec-lib on xen-tools ?
what to do with image.ymls

Frankly, for both of these using a floating tag (like snapshot or latest) will be fine, but I don't remember linuxkit and Docker caching policies for these. Do you?

Can you please also add a note to CLEANUP.md that we really need to get rid of zedctr ASAP?

Done, see #86

what to do with dependencies like qrexec-dom0, qrexec-lib on xen-tools ?

Can you be more specific?

I see pkg/qrexec-dom0, but it does not appear to be consumed elsewhere
I see pkg/qrexec-lib, which is consumed only in ... qrexec-dom0 via QREXECLIB_TAG

what to do with image.ymls

That is a question. I will open an issue where we can discuss it, rather than extending the closed PR beyond its useful life (and so it is easier to find).

Hey @deitch -- here's what I meant by this: while you're correct in that qrexec packages are NOT currently being used, they DO represent a legitimate usecase where there's a need for the same TAG dependency between two of the packages (not just an image yml file depending on a package).
I'd like to add this to the set of usecases we're considering to solve for. Unless (and that's a genuine question for you) you have a better idea.

I'd like to add this to the set of usecases we're considering to solve for. Unless (and that's a genuine question for you) you have a better idea.

Definitely. Go ahead. Let's capture it all, and then try to simplify it, so we don't miss anything.


WIn10 Prof .267 version kills sessions unexpectedly

We have a strange issue with 2 windows10 prof machines, both were updated with the nov2019 feature update. After this, RDP works, but users are quite frequently disconnected and their sessions completely lost. That is, all applications are killed without saving data etc.
We are running the latest INI file, with support for the .267 version of termsvr. Any help greatly appreciated!

I've been having the same problem. Any ideas appreciated. Windows 10 Pro, .267

oh, also I started to get a screen flicker after fixing RDP after the latest update that corresponded with this problem of disconnects started at the same time. basically before the update, no problems, and after it is both flickering occasionally, I sit at the computer, and disconnects the other remote users sporadically.

exact same problem. Using Windows 10 Education 1909 (18363.476). Any suggestions?

Same here for vesion .437

fix https://github.com/stascorp/rdpwrap/issues/858#issuecomment-523192537

Duplicate of https://github.com/stascorp/rdpwrap/issues/871


getOutput: while flushing some images might not be available

some images will not be available when flushing before
shutdown and that should not be asserted.
Signed-off-by: Daniel Charles<EMAIL_ADDRESS>

+1


Change Request to move "Panes" submenu to a main top-level menu (perhaps "Panes" or "Windows")

I VERY frequently use the Panes menu to hide or show various tools within the Spyer IDE.
If I work on high-resolution screens it can be challenging to select the various components.
An alternative to this menu restructuring would be a toolbar dedicated to this.  I am just learning the keyboard shortcuts, but there are many to remember, so a toolbar would help.
At a minimum having an Alt-View-Panes keyboard command option is a quick fix.  Right now the View..."Pane" submenu does not have an Alt key selector in Windows 10.

Hey @richdevboston, thanks for reporting. I'm going to move this issue to the repository where we have user interface discussions. We'll see what we can do about it.


Add --prune-tags option to "Get sources" task

Agent Version and Platform
2.175.2
Windows
Azure DevOps Type and Version
on-premises Azure DevOps Server 2019: Version Dev17.M153.5
What's not working?
when an agent is running "Get sources" task from git repo it is executing next command:
git -c http.extraheader="AUTHORIZATION: bearer ***" fetch --force --tags --prune --progress --no-recurse-submodules origin
please add also --prune-tags option so this tasks also clean up old unused git tags.

We are currently experiencing an issue that a build server has a tag that no longer exists on the repo.
Having to manually remote into the server to prune the tags is a not-optimal workaround.


Show enabled and disabled extensions in the workspace or globally

In the sidebar - extensions provides separate views of extensions enabled and disabled in the workspace. This should also separate the view of extensions that are globally enabled or disabled.
This gives a clearer view of which extensions are being used in this workspace.

In the sidebar - extensions provides separate views of extensions enabled and disabled in the workspace

Can you please show the screenshot of which views you are talking about?

In the sidebar - extensions provides separate views of extensions enabled and disabled in the workspace

Can you please show the screenshot of which views you are talking about?

I would like to be able to split the view about global enable/disable and workspace enable/disable extensions from the current mixed global and workspace enable/disable view.

Got it, you would like to filter global and workspace enabled/disabled extensions


CodeLens issue

Sometimes the CodeLens for a preprocessed difference results in an error when clicking on it.
To Reproduce
It usually happens after a preprocessed window have been opened, then closed and another CodeLens is being clicked on.
Expected behavior
The preprocessed document should appear and focus on the part that was clicked on
Desktop
linux/max/windows

Fixed in 0.0.6


Set up ZFS

ext4 is pretty fast, but it would be great to gain some experience with more advanced file systems. Supposedly ZFS has excellent NixOS support; figure out how to get it working!
Vultr is running with btrfs already, but oracle isn't very nice.

Snippet for ZFS backups:
 znapzend = {
      enable = true;
      autoCreation = true;
      pure = true;
      zetup = let
        localOnlyNotRecursive = {
          enable = true;
          plan = "1hour=>15min,1day=>1hour,4day=>1day,1month=>1week";
          timestampFormat = "%Y-%m-%d--%H%M%SZ";
        };
      in
        {
          "tank/user/home" = {
            enable = true;
            plan = "15min=>5min,4hour=>15min,2day=>1hour,4day=>1day,3week=>1week";
            recursive = true;
            timestampFormat = "%Y-%m-%d--%H%M%SZ";
            destinations.kif = {
              plan = "1hour=>5min,4day=>1hour,1week=>1day,1year=>1week,10year=>1month";
              host = "kif";
              dataset = "rpool/backups/gsc.io/Petunia/home";
            };
          };

          # less robust snapshot techniques
          "tank/system/persist" = localOnlyNotRecursive;
        };
    };

from https://github.com/grahamc/nixos-config/blob/master/devices/petunia/configuration.nix.
Could be helpful for system backups.

Snippet for ZFS backups:
 znapzend = {
      enable = true;
      autoCreation = true;
      pure = true;
      zetup = let
        localOnlyNotRecursive = {
          enable = true;
          plan = "1hour=>15min,1day=>1hour,4day=>1day,1month=>1week";
          timestampFormat = "%Y-%m-%d--%H%M%SZ";
        };
      in
        {
          "tank/user/home" = {
            enable = true;
            plan = "15min=>5min,4hour=>15min,2day=>1hour,4day=>1day,3week=>1week";
            recursive = true;
            timestampFormat = "%Y-%m-%d--%H%M%SZ";
            destinations.kif = {
              plan = "1hour=>5min,4day=>1hour,1week=>1day,1year=>1week,10year=>1month";
              host = "kif";
              dataset = "rpool/backups/gsc.io/Petunia/home";
            };
          };

          # less robust snapshot techniques
          "tank/system/persist" = localOnlyNotRecursive;
        };
    };

from https://github.com/grahamc/nixos-config/blob/master/devices/petunia/configuration.nix.
Could be helpful for system backups.

https://www.znapzend.org/

https://www.znapzend.org/

Make sure to create a separate file system partition for Nix packages, /nix.

Make sure to create a separate file system partition for Nix packages, /nix.

Use this system to investigate backups, too!

Use this system to investigate backups, too!

https://mt-caret.github.io/blog/posts/2020-06-29-optin-state.html#fnref1
https://grahamc.com/blog/erase-your-darlings
set this up! this will ensure that my configuration is precisely reproducible. i have to set up a backup solution for secret keys, photos and videos though...

https://mt-caret.github.io/blog/posts/2020-06-29-optin-state.html#fnref1
https://grahamc.com/blog/erase-your-darlings
set this up! this will ensure that my configuration is precisely reproducible. i have to set up a backup solution for secret keys, photos and videos though...


How to use replay_buffer.as_dataset() for minibatches

I tried to use the replay_buffer.as_dataset() the same way as the TD3 example:
https://github.com/seungjaeryanlee/agents/blob/c0ee15815d4e43596513b8038ff095bda522bcd5/tf_agents/agents/td3/examples/v2/train_eval.py#L227
https://github.com/seungjaeryanlee/agents/blob/c0ee15815d4e43596513b8038ff095bda522bcd5/tf_agents/agents/ppo/examples/v2/train_eval_gym.py#L249
dataset = replay_buffer.as_dataset(
             sample_batch_size=30,
             num_steps=64+1,
             num_parallel_calls=1
).prefetch(3)
iterator = iter(dataset)

def train_step():
  experience, _ = next(iterator)
  loss_info = tf_agent.train(experience)
  # TODO(seungjaeryanlee): Can't use for loop
  # AttributeError: Tensor.op is meaningless when eager execution is enabled.
  # for experience, _ in dataset:
  #   loss_info = tf_agent.train(experience)
  return loss_info

For LunarLander-v2, I thought that it would work if sample_batch_size = 30 and num_steps = 128+1, but it gives the following error:
python tf_agents/agents/ppo/examples/v2/train_eval_gym.py   --root_dir=$HOME/tmp/rndppo/gym/LunarLander-v2/   --logtostderr --use_rnd
/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])
2019-07-30 00:54:19.740202: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2019-07-30 00:54:19.740708: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5637b089c420 executing computations on platform Host. Devices:
2019-07-30 00:54:19.740771: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): <undefined>, <undefined>
I0730 00:54:19.771466<PHONE_NUMBER>58912 parallel_py_environment.py:81] Spawning all processes.
I0730 00:54:20.329198<PHONE_NUMBER>58912 parallel_py_environment.py:88] All processes started.
W0730 00:54:20.984402<PHONE_NUMBER>58912 module_wrapper.py:136] From /home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorflow_core/python/util/module_wrapper.py:163: The name tf.estimator.inputs is deprecated. Please use tf.compat.v1.estimator.inputs instead.

W0730 00:54:22.374413<PHONE_NUMBER>58912 deprecation.py:323] From /home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorflow_core/python/autograph/impl/api.py:317: where (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.where in 2.0, which has the same broadcast rule as np.where
W0730 00:54:31.984498<PHONE_NUMBER>58912 deprecation.py:323] From /home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorflow_core/python/training/optimizer.py:172: BaseResourceVariable.constraint (from tensorflow.python.ops.resource_variable_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Apply a constraint manually following the optimizer update step.
2019-07-30 00:55:14.501165: W tensorflow/core/common_runtime/base_collective_executor.cc:216] BaseCollectiveExecutor::StartAbort Invalid argument: {{function_node __inference_Dataset_map_get_next_347}} assertion failed: [TFUniformReplayBuffer is empty. Make sure to add items before sampling the buffer.] [Condition x > y did not hold element-wise:x (TFUniformReplayBuffer/get_next/Select_1:0) = ] [0] [y (TFUniformReplayBuffer/get_next/Select:0) = ] [0]
         [[{{node TFUniformReplayBuffer/get_next/assert_greater/Assert/AssertGuard/else/_1/Assert}}]]
         [[IteratorGetNext]]
Traceback (most recent call last):
  File "tf_agents/agents/ppo/examples/v2/train_eval_gym.py", line 346, in <module>
    app.run(main)
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "tf_agents/agents/ppo/examples/v2/train_eval_gym.py", line 341, in main
    num_eval_episodes=FLAGS.num_eval_episodes)
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/gin/config.py", line 1032, in wrapper
    utils.augment_exception_message_and_reraise(e, err_str)
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/gin/utils.py", line 49, in augment_exception_message_and_reraise
    six.raise_from(proxy.with_traceback(exception.__traceback__), None)
  File "<string>", line 3, in raise_from
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/gin/config.py", line 1009, in wrapper
    return fn(*new_args, **new_kwargs)
  File "tf_agents/agents/ppo/examples/v2/train_eval_gym.py", line 292, in train_eval
    total_loss, _ = train_step()
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py", line 451, in __call__
    return self._concrete_stateful_fn._filtered_call(canon_args, canon_kwds)  # pylint: disable=protected-access
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 665, in _filtered_call
    self.captured_inputs)
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 778, in _call_flat
    ctx, args, cancellation_manager=cancellation_manager)
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py", line 471, in call
    ctx=ctx)
  File "/home/rlee/anaconda3/envs/gsoc/lib/python3.7/site-packages/tensorflow_core/python/eager/execute.py", line 67, in quick_execute
    six.raise_from(core._status_to_exception(e.code, message), None)
  File "<string>", line 3, in raise_from
tensorflow.python.framework.errors_impl.InvalidArgumentError:   assertion failed: [TFUniformReplayBuffer is empty. Make sure to add items before sampling the buffer.] [Condition x > y did not hold element-wise:x (TFUniformReplayBuffer/get_next/Select_1:0) = ] [0] [y (TFUniformReplayBuffer/get_next/Select:0) = ] [0]
         [[{{node TFUniformReplayBuffer/get_next/assert_greater/Assert/AssertGuard/else/_1/Assert}}]]
         [[IteratorGetNext]] [Op:__inference_train_step_69111]

Function call stack:
train_step -> train_step

  In call to configurable 'train_eval' (<function train_eval at 0x7fa63fdd11e0>)

The error does not seem to appear when num_steps=64+1 or smaller.
On a similar note, in the TD3 example, am I understanding it correctly in that it only calls next(iterator) once, so it is only using one minibatch?
Thank you!

For now, I'm copying the code here and reverting to original code to try in smaller environments.
    ## AFTER
    # Dataset generates trajectories with shape [Bx2x...]
    # dataset = replay_buffer.as_dataset(
    #     num_parallel_calls=3,
    #     sample_batch_size=batch_size,
    #     num_steps=2).prefetch(3)
    # tf.print(dataset)
    dataset = replay_buffer.as_dataset(
                 sample_batch_size=30,
                 num_steps=64+1,
                 num_parallel_calls=1
    ).prefetch(3)
    iterator = iter(dataset)

    def train_step():
      experience, _ = next(iterator)
      loss_info = tf_agent.train(experience)
      # TODO(seungjaeryanlee): Can't use for loop?
      # AttributeError: Tensor.op is meaningless when eager execution is enabled.
      # for experience, _ in dataset:
      #   loss_info = tf_agent.train(experience)
      return loss_info

    ## BEFORE
    # def train_step():
    #   experience = replay_buffer.gather_all()
    #   loss_info = tf_agent.train(experience)
    #   # TODO(seungjaeryanlee): Can't use for loop?
    #   # AttributeError: Tensor.op is meaningless when eager execution is enabled.
    #   # for experience, _ in dataset:
    #   #   loss_info = tf_agent.train(experience)
    #   return loss_info


Want to implement this in Android, but the repo seems to be specific to iOS.

Title.
Any assistance or pointers on how to implement the same in Android and through Unity specifically will be helpful.
Looking forward to hear soon.

ARKit is a specific framework in iOS, this library also being built for iOS, I suggest you try looking somewhere else.

Check this out https://github.com/appoly/ARCore-Location