[Project] Support enhanced location for Collectives

Related issues

[x] https://github.com/opencollective/opencollective/issues/6281

Current Scope

Add location to Collectives

Add location to Collective creation (using the same as Events today)

(make sure Location is supported by GraphQL v2 on Collective creation)

Add location to Collective edition (type=Collective, not Organization or Individuals)

(make sure location is computed if only address is passed to the component)

Organization or Individuals will continue with the old address field for now.

Store city and state

We move forward with the new model

We introduce the new table. Old columns + [city, state, postal code]. Full migration (Collectives and Events as "display", Organizations and Individuals as "legal") and deletion of old columns in one go.
Make sure to have a type, default to "display". "legal" as second option (enum)
We have to keep a raw address field (multi-lines text)
We populate the city, state, postal code fields if we have them available on edit

Expose city, state and postal code in GraphQL location as additional properties.

We keep data.address where it, not migrating it, and continue to expose as location.structured, even if it's not great. We'll document a follow up issue.

Out of Scope

Organization and Individuals
Legal Address

Follow up

Expose location on the Collective page.
Implement Legal address. Refactor collective.data.address / location.structured.
Migrate to OSM?
Smart migration to compute various data from raw address?

Concerns

For Open Collective Europe, display location is de facto the legal address. Make sure to still support it in Invoices
Once we have Legal Address available and before exposing location to the Collective page, we should maybe send an email to selected collective admins to review their address

Week 2:

Wrap up final fixes on PRs before review

Locations table migration
Using event location picker in frontend for Collectives

should we also need to create a separate issue: "Add location when creating a fiscal host"  (does this already exist?)
which would be 2-part

Add their host location
Add "what locations can you host Collectives?"

(Also perhaps, "what is your legal status?", would be relevant to surface)

Week 3:

[ ] Fix failing e2e tests on

[ ] https://github.com/opencollective/opencollective-api/pull/8626
[ ] https://github.com/opencollective/opencollective-frontend/pull/8719

should we also need to create a separate issue: "Add location when creating a fiscal host" (does this already exist?)
which would be 2-part

Add their host location
Add "what locations can you host Collectives?"

(Also perhaps, "what is your legal status?", would be relevant to surface)

What we've decided to tackle in this current cycle is the migration to a separate table for Locations, meaning that in the future we can add multiple locations per Collective/Host/Org. So for this iteration, we can either use the structured address field input for Fiscal hosts, or the autocomplete input that allows some more freedom.
Currently all types except USER's have the autocomplete input in this open PR. But, seeing as fiscal host addresses are more likely to be an actual legal address, maybe we should use the structured address form for fiscal hosts? Until we can support multiple types of locations as you suggest.

should we also need to create a separate issue: "Add location when creating a fiscal host" (does this already exist?)
which would be 2-part

Add their host location
Add "what locations can you host Collectives?"

(Also perhaps, "what is your legal status?", would be relevant to surface)

What we've decided to tackle in this current cycle is the migration to a separate table for Locations, meaning that in the future we can add multiple locations per Collective/Host/Org. So for this iteration, we can either use the structured address field input for Fiscal hosts, or the autocomplete input that allows some more freedom.
Currently all types except USER's have the autocomplete input in this open PR. But, seeing as fiscal host addresses are more likely to be an actual legal address, maybe we should use the structured address form for fiscal hosts? Until we can support multiple types of locations as you suggest.

If I understand you correctly, then yes, I think its fine to wait till later to input actual legal addresses.

For this week:

[ ] @Betree to test & give a final review for https://github.com/opencollective/opencollective-api/pull/8626

Two more PRs for review:

taxes: https://github.com/opencollective/opencollective-taxes/pull/313
frontend: https://github.com/opencollective/opencollective-frontend/pull/8719

[ ] @benjam and John will need to check docs and release

We probably overlooked metabase reports when studying this project. We'll need to look for impacted queries when we release the refactor and make sure we update them to the new system.

note that discover already uses location! https://discover.opencollective.com/?location=Europe&locationType=region

given that location is now the primary way to describe where your Collective is based I think we should update:

global search
find fiscal host

these two areas to reflect the move to 'location' over country. perhaps one for @gustavlrsn ?

@BenJam If we would like a similar experience as Discover, with a nested location filter capability as below, one way to achieve that could be the following steps

[ ] Add a locationStats materialized view and GraphQL query

This would serve a similar purpose as tagStats, and provide the available options to filter on, and their nesting.
Use country to determine region.
Could have a similar structure as in discover to support nesting
might want to group the numbers based on if it's for the global search or "find fiscal host"

[ ] Add ability to filter on any location parameter (+ region) in the API
[ ] Update frontend to have the same location filter component as Discover

Thanks. If that's going to be the case I don't think, relative to other things in the cycle, we should dedicate that amount of time to this right now.


DO NOT MERGE Towards 0.6.14.

Review by @gzm0 for fast-forward on master.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/3454/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/4530/
Test PASSed.


Iot progress indicator

Closes #1116 #1074
Summary

The new design of the progress indicator based on @lukefirth design from here

Vertical view & RTL

Horizontal view & RTL

Completed steps with checkmarks

Integrated into PageWizard

Change List (commits, features, bugs, etc)

Created a new ProgressIndicator component using functional rather than class component with backwards compatability
Created a new ProgressStep component that supports the new styles & svgs
Supports a new data structure for list items that can incorporate child elements acting as sub elements
Main steps now show numbers in the icons
Disabled steps can not be accessed and will be skipped
Error/Warning steps can be accessed
Added new prop clickable that removes clicking property from the steps (disabling them) - by default to false
Removed Styled functions completely
Added, Removed, Changed various test cases around the new progress indicator to adhere to new functionality
Added new prop in PageWizardStep: subStep to declare sub steps

Improvement suggestions

I was not able to implement the truncate/ellipsis and tooltip successfully because of width issues in vertical/horizontal view of the labels - it would be great if someone could look into that
The icons we use in carbon add an invisible border I could not remove. Ideally we dont want this border so that the line sticks directly to the icon
Currently it does not support passing down of ProgressStep components as children. You would need the items array.
Needs a new Skeleton that matches the new design

Acceptance Test (how to verify the PR)

Go to Storybook and click on ProgressIndicator
Go through the various stories and check that everything works
Additionally, test the props such as clickable, showlabels, stepWidth and RTL
Do the same in PageWizard
Additionally, check that in PageWizard with validation you cannot move to the next step in the progress indicator unless form condition is satisfied.
Do the same in TableDetailWizard

@lukefirth @dianatran18 this looks visually correct to me, but would you mind doing a quick review to ensure we look good here?
Interactive stories for review can be found here

Should the focus and active states for adjoining steps be influencing one another? When I have an item selected and then hover over the next/previous, it increases the line below the initial item

@lukefirth @dianatran18 what's the desired focus/active states here with this interaction?

I have changed the focus to this:

Should the focus and active states for adjoining steps be influencing one another? When I have an item selected and then hover over the next/previous, it increases the line below the initial item

@lukefirth @dianatran18 what's the desired focus/active states here with this interaction?

I have changed the focus to this:

I double checked to see what the Carbon team was doing for their progress indicator. On hover, the text should turn the link (blue) color, and there should be a 1px underline. The focus state should be the same, but with a 3px underline.
The code here is correct: https://react.carbondesignsystem.com/?path=/story/progressindicator--default

Should the focus and active states for adjoining steps be influencing one another? When I have an item selected and then hover over the next/previous, it increases the line below the initial item

@lukefirth @dianatran18 what's the desired focus/active states here with this interaction?

I have changed the focus to this:

I double checked to see what the Carbon team was doing for their progress indicator. On hover, the text should turn the link (blue) color, and there should be a 1px underline. The focus state should be the same, but with a 3px underline.
The focus and active states shouldn't be influencing each other either.
The code here is correct: https://react.carbondesignsystem.com/?path=/story/progressindicator--default

I refactored the css again and followed the original css file from carbon here

:tada: This PR is included in version 2.104.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


nullif operating on ArrayRef

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
The nullif kernel currently only applies to PrimitiveArray<T>. This makes it impossible to use with non-primitive types, which often arise when working with structured / nested data. Additionally, it seems like the nullif kernel should have a similar signature to filter -- where filter selects only the non-true rows,  nullif nulls out the true rows.
Describe the solution you'd like
The signature of nullif changed to nullif(values: ArrayRef, condition: BooleanArray) -> Result<ArrayRef>.
Possibly the addition of the complement null_unless.
I have a draft that I think would work (can open a PR), but wanted to make sure that such a kernel is desirable, and understand whether it should use a different name to avoid API breakages (generic_nullif or something like that).

Yep, that aligns well with the other kernels, and it is in general preferable as it avoids others having to do the same.
I would use &dyn Array instead of ArrayRef as its argument, since there is no need to require Arcing an array for using the kernel. With this signature, we can write
let array: PrimtiveArray<i32> = ...;
let array = nullif(&array)?;

instead of
let array: PrimtiveArray<i32> = ...;
let array = nullif(&Arc::new(array))?;

I can do that. Although there are cases where nullif could return a
reference. For instance if the boolean column is all false and non-null. I
guess maybe the Arc doesn't provide large wins of the underlying data is
Arc'ed.
I ran into a problem with equality of sliced struct arrays. I'll post a
draft PR and maybe file another issue.
On Tue, Jun 29, 2021, 11:38 PM Jorge Leitao @.***>
wrote:

Yep, that aligns well with the other kernels, and it is in general
preferable as it avoids others having to do the same.
I would use &dyn Array instead of ArrayRef as its argument, since there
is no need to require Arcing an array for using the kernel. With this
signature, we can write
let array: PrimtiveArray = ...;let array = nullif(&array)?;
instead of
let array: PrimtiveArray = ...;let array = nullif(&Arc::new(array))?;
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/arrow-rs/issues/510#issuecomment-871136975,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAIY6ECTXUDNHCOYERT5NTTVK3VDANCNFSM47RGUOQQ
.

Draft of the updated kernel is up. It still uses ArrayRef because there are a few cases where the reference to the input array is cloned and I'm not sure there is a good way to handle that taking &dyn Array (eg., wouldn't it have to clone the &dyn Arary to produce a new Array)?
Note that one of the added tests is failing for what I believe is a bug in struct equality (#514).


Full Quality Video Recording

Hello,
I am interested in the opportunity to record each individual stream at its true bitrate and resolution. Is this a realistic possibility?

Yes,  that is possible. @jonathanhinterberger

Hi @jonathanhinterberger  , here is a more complete answer.  Yes, if you noticed there is a "recordbutton" for each participant, this recording is done  for each individual stream . It will use the current resolution and bitrate, based on IO and the current users settings.  if user uses 720p it will record in that resolution.   While the "room-recording" , the button in the lower toolbar,  uses a Canvas element, and draws each strem with a 360p resolution if i do remember correct, as well as the recording also runs in 30fps.    It can be set up another way, but thats our current settigns for the mediaBlender
So, if you have another usecase for recording, please share it.

Thanks for following up, Magnus.
My aim is to optimize the recorded video for editing live performances. So for this, my ideal output is separate video files for each participant at actual quality. I can then edit together the video clips as I wish with no degradation.

@jonathanhinterberger sorry for a late answer,    yes.  Implemnting that is an easy thing,  maybe just have a keyboard shortcut that  start/stops the recording of 1-n peers,, getting individual .webm's ?

@MagnusThor Given that this is likely a less common use-case, it may make sense to put this as an option in settings so that people who don't want it don't accidentally enable it. Ie, a check box titles "enable archival mode (record every stream to individual files)" with a warning "this can take up significant disk space! do you want this?"

Hi @jonathanhinterberger thaks for the explanation and ideas.  yes, it's a good idea to put it into such options in the settings dialog.   What i have done now in dev  (canary ) is the following,  you can toggle ( start / stop ) recording of the each participants MediaStream ( just like you do by clicking the recordbutton that shows for each participant ) , you can do this withn ctrl+b .
i will push it to our dev (vanary release ) on https://dev-wss.kollokvium.net/ so you can have a look.    I'm also into refiing the way dealing with MediaStream's in general , a bit messy in the current impementation.  i'm on to that right now, and plan to have it ready in a few days, but for now i guess you can have a look at the canary .   Next step is to ad the options as you suggested, but due to other things with higher priority i will need to postpone that.    Kollokvium i just my hobby..
Let me / us know the resuts of the early implementation,
Regards Magnus

@jonathanhinterberger i must also mention that the canary ( dev site ) also may contain other bugs causes by the fact that is i canary.  So if you aim to test, let us please know if there is other issues showing.

Regarding codec, I would be fine with whatever codec takes the least processing, thus providing the best experience across all devices, even older laptops, for example.
I am going to take a look at current bug reports and possibly open an issue, I am having difficulty connecting my devices that are in the same Kolokvium rooms. This is for both the dev branch and current kollokvium.io
Thank you for what you're doing here Magnus. I wish I had the skill set to be more helpful with this. Alas, I'm an amateur coder and my main work is film. Let me know if you ever want a video edited.


Exit code 127 on startup after upgrading to v0.0.21

We use winsafe in uv, and saw a regression when upgrading from v0.0.19 to v0.0.21 whereby our executable is erroring immediately on startup, but only on the i686 build.
Here's the successful v0.0.19 build: https://github.com/astral-sh/uv/actions/runs/10014237587/job/27683558577.
And the failing v0.0.21 build: https://github.com/astral-sh/uv/actions/runs/10015576654/job/27687218123.
Unfortunately, the only output there is: Error: Process completed with exit code 127. I don't know much more right now and haven't compiled an MRE but thought I would share what I have in case it rings any bells.
Thanks for your work!

Does it work with v0.0.20?

Just tried it, works with v0.0.20 but not v0.0.21

Thank you so much @samypr100.

@samypr100 not related to https://github.com/microsoft/windows-rs/issues/1294, it seems to be related to raw-dylib linking, which I enabled by default.
Despite raw-dylib being stabilized, I'm still find some hiccups here and there... so I just pushed a commit to make raw-dylib opt-in through a Cargo feature. So, in order to enable it, now you need to be explicit:
[dependencies]
winsafe = { version = "0.0.21", features = ["raw-dylib"] }

In your case, just don't use raw-dylib. Does it work now?

Thanks, just tried winsafe = { git = "https://github.com/rodrigocfd/winsafe", rev = "37b04725d8c68eec735ca6ab44a4eb6ebfb75368", features = ["kernel"] } and it worked.
To verify, once I enabled "raw-dylib" via features = ["kernel", "raw-dylib"] it fails.

Thanks for the feedback.
Version 0.0.22 is likely to be out in August 1st.

🙏 Thank you both!


Writing unopinionated tests cases

Something I have begun to do in my own projects is writing test without any testing framework like mock, tape, ava, airtap, etc
Why?

I think they are simply too bloated, have many dependencies and takes a long time to install and be executed on CI.

Every dependency is a potential security vulnerability.

The tests are hard to execute on any environment. <script>, <script type="module">, NodeJS, Deno, Web Worker, Service Worker, etc
The test cases are not so easily shareable with other libraries that builds forks that wish to run the same test cases. i see now that NodeJS wishes to use our test cases in the core. Other libraries like undici-fetch also want's to use our test

So how simple are my test cases?
as simple as importing a list of [{ desc, fn }] where fn either returns a boolean and hooking them into console.assert or require('assert')
...They could also return undefined or throw. I'm still experimenting with writing own tests from scratch
import tests, { override } from './test-cases.js'
import fetch from 'node-fetch'

override('fetch', fetch)

for (const { desc, fn } of tests) {
  console.assert(await fn(), desc)
}

Cons:
Sure my test cases dose not have fancy tools like t.throws(fn, expected, msg) or t.arrayEqual or any like that
it only boils down to a booleans if it was ok or not. to compare a simple array of strings you can just sort them and call toString() and check if a === b or do arr1+"" === arr2+"" if it don't need to be sorted and isn't complex objects
it also don't include any progress or output to terminal, console or the html view. This would be the job of hooking all the test cases into the test runner itself for (let test of cases) t.ok(t.desc, t.fn)
And you would have to be a little bit more explicit when you write the tests, like you would actually have to do the "expect to throw" logic yourself if you need anything like that
pros

Lightning fast
Unopinionated
Can use any test framework you want and hook up all the unopinionated tests with a simple loop to eg tape
Can re-run / re-use the test cases multiple times whenever you want.
Don't require 1000 of sub dependencies

Whenever i write code for anything then i have a onion architecture mindset when writing my code.
This would mean:

write test as they would not have any dependency on any core node modules or npm packages
the implementation (aka fetch, header, response, etc) should be replaceable
the test cases should easily be hooked into any test framework you want

This is how i wished WPT would work...
Want a taste of how i wrote test for my latest project that runs in Deno, NodeJS and browser? ...have a look at this:
https://github.com/jimmywarting/native-file-system-adapter/tree/master/test

This had a big influens on me:
https://webreflection.medium.com/vanilla-js-testing-part-ii-63b9d736121

I can help out with migrating test cases to use a more flexible system. I can make a PR for this but have a few questions first:

For storing the test cases in an array, should the array be directly instantiated with all the test functions inside the array, or should the array initially be empty with the functions individually pushed?
Should test cases be completely without any testing framework? I can make some simple functions to display the progress of the tests in the console. Of course, we can integrate an existing testing framework as well, so should I put this framework integration into the PR?
Test cases seem to be built with certain functions that differ between environments (for example, crypto.randomBytes), so I assume the PR should also handle these issues?
It seems like 3 test cases are failing (1) should not timeout on cloning response without consuming one of the streams when the second packet size is less than default highWaterMark  2) should not timeout on cloning response without consuming one of the streams when the second packet size is less than custom highWaterMark  3) should not timeout on cloning response without consuming one of the streams when the response size is double the custom large highWaterMark - 1), is this a known issue?

Thanks in advance for your clarification!

For storing the test cases in an array

it dose not matter so much, there is no standard format. the important part is that the test-case array is consistent so if the array dose not fit your need then you can map() it
A common team seem to push all test to a array as a object, it's common for test framework to write skips & only
so something like [ { name: string, ignore: boolean, only: boolean, fn: function } ]?
the array can be empty from start and pushed in individually maybe.

Should test cases be completely without any testing framework?

Yea, the idea is to have 0 dependencies (if possible) and not use any existing testing framework at all.
Think of it like this:

The test-cases should be independent of any test framework, it should be able to import/run all test cases within NodeJS, Deno, WPT, any browsers or Worker thread. So it can't depend on any npm package.
2nd, it should be able to override (or select) FormData, Blob, AbortSignal, fetch, request, response & header somehow (i don't know how) so others can run the same test cases on their own fetch implementation.

I can make some simple functions to display the progress of the tests in the console.

No. it's not the job of each test case to display progress (or the time it takes to execute one). That is the job of the test framework that we use. I'm thinking we can still use mocha but we feed mocha with all the test from the imported test-cases instead.
Later i was thinking whether or not it's still worth to keep mocha around and if not then we can remove it. (in step 2) But at least it would be easy to switch test framework if we want something smaller. or do it completely ourself.

crypto.randomBytes

Like i mention earlier. The idea is to have this test exportable with nearly 0 dependencies. So if we can remove randomBytes or replace it with something as simple as Math.random() then that would be good

is this a known issue

Yea, i have known about it for some time, started to happen in node v16+

When i got into more Deno stuff then i read this: https://deno.land/manual/testing
It was a blast and a inspiration for me of how to write test cases that could be fed into Deno.test()
this is what i build afterwards: https://github.com/jimmywarting/wt-common/blob/master/common.test.js
Still two things i would like to change about it... 1) use ESM 2) don't import node or browser.js

And if we would look at it from an other perspective i think it would be better if we could run the WPT tests somehow, so we can aim for Spec compliant and run the same test as browsers use

Ok, what I will do is first port over the existing tests and feed them into mocha (but tests will be stored in the array format as you mentioned with the override capability). Then, I can start porting over the WPT tests into another test file or set of test files. I can keep the files separated as they are currently, with each testing file pointing to the corresponding array in a data file (imported into the testing file to actually apply the test cases), that way the data file can stay intact whenever we want to quickly swap out testing frameworks or use our own.

sounds good, make a tiny PoC first with eg 3 test or something and maybe make a draft PR (or ping me with your branch) so i can take a look at it and give early feedback

Will do!

it will be quite much rewrite...
taking a existing test like this one:
	it('should accept custom host header', () => {
		const url = `${base}inspect`;
		const options = {
			headers: {
				host: 'example.com'
			}
		};
		return fetch(url, options).then(res => {
			return res.json();
		}).then(res => {
			expect(res.headers.host).to.equal('example.com');
		});
	});

would look something like:
	it('should accept custom host header', async () => {
		const url = `${base}inspect`;
		const options = {
			headers: {
				host: 'example.com'
			}
		};
		const res = await fetch(url, options)
		const json = await res.json();

		// can drastically be improved upon by having this line as a assert util fn
		if (res.headers.host !== 'example.com') throw new Error('something')
	});

when i said that it would be good if we could run WPT test, then i meant importing them (like Submodules) and executing them... not refactor them.

Few days ago I managed to run Deno.test on Node.js:
https://github.com/fromdeno/deno.ns/blob/master/src/deno/stable/functions/test.ts
https://github.com/fromdeno/cache/blob/main/node/dtest.mjs

I like Deno a lot. But I think it could be useful to have Deno.test as a seperate package so you can test your cross compatible code on both environment. (without importing the hole deno.ns)
I wrote lots of code in cross compatible way so i don't use much of node's or deno's builtin stuff unless i really need to.
So i don't necessary need the hole Deno namespace

I'll happily turn it into a separate package (and make it a peerDependency of deno.ns), as long as someone volunteers to co-maintain it. I can't add features to the test runner without ruining its simplicity and maintainability.

@wojpawlik
I could help to maintain it (or be responsible for it) if i can use pure javascript (ESM only) instead of typescript, ofc i would use jsdoc + d.ts to support typing as well.
Reason is cuz I want to be able to simply just import it within browser and also NodeJS new (experimental) http loader without having to compile stuff.

ESM only

Would be neat. But then CJS deno.ns can't register tests. So I won't work on this.
Still, as long as this test "framework" exposes an array of Deno.TestDefinitions, I'll switch deno.ns to it when switching to ESM.

Would also be cool to bring in test coverage like Deno dose it also
instead of using some code cover library that wraps the hole code in other syntax it would be best to use one of the native code coverage

I stumbled upon https://github.com/lukeed/uvu

I wrote my own test runner and compared it to every other runner I could find. I consider Mocha bloated, but I'm not convinced it makes it difficult for undici to re-use the tests.
For most of its tests, undici uses tap, which can emulate Mocha: http://www.node-tap.org/mochalike/
They also use Jest for 2 test files for some reason:

If you are using [...] Mocha, Jest should be mostly compatible
https://jestjs.io/docs/migration-guide


Bincode 2-alpha.0 checklist

[x] Make bincode able to run without dependencies (#409)
[ ] Implement Encodeable/Decodeable on the following types:

[x] Basic types: bool, char
[x] Compound types: tuples (up to 8 for now)
[x] Common core types: Option<T>, Result<V, E>, Cell<T>, RefCell<T>
[x] Wrapper types: Box<T>, Box<[T]>, Box<str>, Cow<'a, T>, Rc<T>, Arc<T>
[x] Collections: BTreeMap<K, V>, BTreeSet<T>, BinaryHeap<T>, HashMap<K, V>, HashSet<T>, VecDeque<T>, Vec<T>
[x] FFI types: CString, Box<CStr>,  &CStr
[ ] Misc std types: Mutex, RwLock, Duration, SystemTime, Path, PathBuf, Range<T>, RangeInclusive<T>, Bound<T>, NonZero*
[ ] Net types: IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6
[ ] More?

[ ] Implement encode/decode functions for the following types:

[x] &mut [u8] / &[u8]
[x] Vec<u8> / -
[x] std::io::Write / std::io::Read
[ ] serde::ser::Serialize / serde::de::Deserialize
[ ] More?

[ ] Settle on names for the bincode 1 config and bincode 2 config
[ ] Review trait names

(Work is being done in the feature/deserde branch)

Not going to support OsStr and OsString for now, serde does some dirty internal hacks and I'm not sure how many people use it
https://github.com/serde-rs/serde/blob/72060b779a6411800f0e7052898133539b6b4713/serde/src/de/impls.rs#L1610-L1677


Vitis AI Quantizer for custom Caffe model error

Hi everyone,
I'm a master graduating student at Scuola Superiore Sant'Anna in Pisa.
For my thesis, I'm trying to accelerate a custom network model on a ZCU102 ultrascale+ using the latest version of Vitis-AI tools v1.3.1.
I installed the Vitis AI docker for the GPU and when I launch the following command:
vai_q_caffe quantize -model model_name.prototxt -weights model_name.caffemodel,
the quantizer arises the error, shown in the following screenshot:

I'm using Ubuntu 20.04, with:
NVIDIA-SMI 460.39       Driver Version: 460.39       CUDA Version: 11.2
The same network model has been successfully quantized and compiled on the GPU docker version for the Vitis AI v1.2.1.
What is happening now? Is there anyone that can help me?
Thanks in advance.

Hi Jerry,
Could you try these 2 steps:

Run nvidia-smi and make sure GPU is detected from within the Vitis AI Docker container
Temporarily downgrade NVIDIA driver to 411.x

Hi @JerrySciangula
Since we haven't received your reply for a long time, we assume you have solved this issue and I'm going to close it. If you still have any questions, please feel free to reopen it. Thank you very much.


Install calibre v2.34.0 error

$ brew cask install calibre --force --verbose
==> Downloading https://github.com/kovidgoyal/calibre/releases/download/v2.34.0/calibre-2.34.0.dmg
Already downloaded: /Library/Caches/Homebrew/calibre-2.34.0.dmg
==> Symlinking App 'calibre.app' to '/Users/chenjack/Applications/calibre.app'
==> Symlinking Binary 'calibre' to '/usr/local/bin/calibre'
==> Symlinking Binary 'calibre-complete' to '/usr/local/bin/calibre-complete'
==> Symlinking Binary 'calibre-customize' to '/usr/local/bin/calibre-customize'
==> Symlinking Binary 'calibre-debug' to '/usr/local/bin/calibre-debug'
==> Symlinking Binary 'calibre-parallel' to '/usr/local/bin/calibre-parallel'
==> Symlinking Binary 'calibre-server' to '/usr/local/bin/calibre-server'
==> Symlinking Binary 'calibre-smtp' to '/usr/local/bin/calibre-smtp'
==> Symlinking Binary 'calibredb' to '/usr/local/bin/calibredb'
==> Symlinking Binary 'ebook-convert' to '/usr/local/bin/ebook-convert'
==> Symlinking Binary 'ebook-device' to '/usr/local/bin/ebook-device'
==> Symlinking Binary 'ebook-edit' to '/usr/local/bin/ebook-edit'
==> Symlinking Binary 'ebook-meta' to '/usr/local/bin/ebook-meta'
==> Symlinking Binary 'ebook-polish' to '/usr/local/bin/ebook-polish'
==> Symlinking Binary 'ebook-viewer' to '/usr/local/bin/ebook-viewer'
==> Symlinking Binary 'fetch-ebook-metadata' to '/usr/local/bin/fetch-ebook-metadata'
==> Symlinking Binary 'lrf2lrs' to '/usr/local/bin/lrf2lrs'
==> Symlinking Binary 'lrfviewer' to '/usr/local/bin/lrfviewer'
==> Symlinking Binary 'lrs2lrf' to '/usr/local/bin/lrs2lrf'
==> Symlinking Binary 'markdown-calibre' to '/usr/local/bin/markdown-calibre'
==> Symlinking Binary 'web2disk' to '/usr/local/bin/web2disk'
Error: Command failed to execute!

==> Failed command:
["/usr/bin/find", "#<Pathname:/opt/homebrew-cask/Caskroom/calibre/2.34.0>", "-type", "f", "-not", "-name", ".DS_Store", "-print0"]

==> Output of failed command:

==> Exit status of failed command:
#<Process::Status: pid 52138 exit 1>

$ brew cask doctor
==> OS X Release:
10.10
==> OS X Release with Patchlevel:
10.10.4
==> Hardware Architecture:
intel-64
==> Ruby Version:
2.0.0-p481
==> Ruby Path:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
==> Homebrew Version:
0.9.5
==> Homebrew Executable Path:
/usr/local/bin/brew
==> Homebrew Cellar Path:
/usr/local/Cellar
==> Homebrew Repository Path:
/usr/local
==> Homebrew Origin:
https://github.com/Homebrew/homebrew
==> Homebrew-cask Version:
0.56.0
==> Homebrew-cask Install Location:
/usr/local/Cellar/brew-cask/0.56.0
==> Homebrew-cask Staging Location:
/opt/homebrew-cask/Caskroom
==> Homebrew-cask Cached Downloads:
/Library/Caches/Homebrew
/Library/Caches/Homebrew/Casks
2 files (warning: run "brew cask cleanup")
155.39 megs (warning: run "brew cask cleanup")
==> Homebrew-cask Default Tap Path:
/usr/local/Library/Taps/caskroom/homebrew-cask
==> Homebrew-cask Alternate Cask Taps:
/usr/local/Library/Taps/caskroom/homebrew-fonts
/usr/local/Library/Taps/caskroom/homebrew-unofficial
/usr/local/Library/Taps/caskroom/homebrew-versions
==> Homebrew-cask Default Tap Cask Count:
2672
==> Contents of $LOAD_PATH:
/usr/local/Cellar/brew-cask/0.56.0/rubylib
/Library/Ruby/Site/2.0.0
/Library/Ruby/Site/2.0.0/x86_64-darwin14
/Library/Ruby/Site/2.0.0/universal-darwin14
/Library/Ruby/Site
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/x86_64-darwin14
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby/2.0.0/universal-darwin14
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/x86_64-darwin14
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin14
==> Contents of $RUBYLIB Environment Variable:
<NONE>
==> Contents of $RUBYOPT Environment Variable:
<NONE>
==> Contents of $RUBYPATH Environment Variable:
<NONE>
==> Contents of $RBENV_VERSION Environment Variable:
<NONE>
==> Contents of $CHRUBY_VERSION Environment Variable:
<NONE>
==> Contents of $GEM_HOME Environment Variable:
<NONE>
==> Contents of $GEM_PATH Environment Variable:
<NONE>
==> Contents of $BUNDLE_PATH Environment Variable:
<NONE>
==> Contents of $PATH Environment Variable:
PATH="/Users/chenjack/.rvm/gems/ruby-2.2.1/bin:/Users/chenjack/.rvm/gems/ruby-2.2.1@global/bin:/Users/chenjack/.rvm/rubies/ruby-2.2.1/bin:/Users/chenjack/.gvm/vertx/current/bin:/Users/chenjack/.gvm/springboot/current/bin:/Users/chenjack/.gvm/lazybones/current/bin:/Users/chenjack/.gvm/jbake/current/bin:/Users/chenjack/.gvm/groovyserv/current/bin:/Users/chenjack/.gvm/groovy/current/bin:/Users/chenjack/.gvm/griffon/current/bin:/Users/chenjack/.gvm/grails/current/bin:/Users/chenjack/.gvm/gradle/current/bin:/Users/chenjack/.gvm/glide/current/bin:/Users/chenjack/.gvm/gaiden/current/bin:/Users/chenjack/.gvm/crash/current/bin:/usr/local/Cellar/ant/1.9.4/libexec/bin:/Volumes/Data/cocos2d-x/templates:/Volumes/Data/cocos2d-x:/Volumes/Data/cocos2d-x/tools/cocos2d-console/bin:/Volumes/esp-open-sdk/esp-open-sdk/xtensa-lx106-elf/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin:/usr/local/opt/go/libexec/bin:/Users/chenjack/.cabal/bin:/Volumes/Data/android-sdk/tools:/Volumes/Data/android-sdk/platform-tools:/Users/chenjack/.rvm/bin:/Users/chenjack/.rvm/bin:/usr/local/Library/Taps/homebrew/homebrew-boneyard/cmd:/usr/local/Library/ENV/scm"
==> Contents of $SHELL Environment Variable:
SHELL="/bin/zsh"
==> Contents of Locale Environment Variables:
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LC_CTYPE="UTF-8"
==> Running As Privileged User:
No

Can't reproduce. Everything is ok with the cask at this point.

Well, don't know why retry after 7 hours, it is ok now..


Precision of ShapeCast3D decreases as distance to target increases

Godot version
v4.1.1.stable.official [bd6af8e0e]
System information
Godot v4.1.1.stable - Windows 10.0.22621 - Vulkan (Forward+) - dedicated AMD Radeon RX 5700 (Advanced Micro Devices, Inc.; 31.0.22011.4008) - AMD Ryzen 7 3700X 8-Core Processor (16 Threads)
Issue description
It seems that increasing the distance to the target for the ShapeCast3D node decreases the precision of the collision check.
I've configured a scene with a simple animation moving a prism around. Placing the target at around 3 meters shows this result:
https://github.com/godotengine/godot/assets/9631648/96c01f70-47fc-4185-a324-7e6a4eea6787
Switching to 10m (which is where I've first noticed this issue):
https://github.com/godotengine/godot/assets/9631648/15305abc-d502-4d89-8db9-2832ccb6e83a
100 meters:
https://github.com/godotengine/godot/assets/9631648/c716bda5-bdc4-48dd-90a4-051931c54dd0
And 1000 meters:
https://github.com/godotengine/godot/assets/9631648/b900f4f7-ee46-49e9-9dbb-e3a2eba88a6e
As you can see, even cases which I would expect to work (10 meters) don't work smoothly. At above 100 meters things break down completely.
For comparison, here's jolt at 10 meters (and works the same even at 1000 meters):
https://github.com/godotengine/godot/assets/9631648/262b404b-c5a2-41bc-86df-706b193a5c2a
Steps to reproduce

Create a new project
Enable the Visible Collision Shapes option under Debug
Set up a scene with ShapeCast3D node and some physics bodies
Run the scene with different Target Position settings

Minimal reproduction project
I didn't add any visible shape to the ShapeCast. Please enable the Visible Collision Shapes under Debug.
shapecastrepro.zip

in function bool GodotPhysicsDirectSpaceState3D::cast_motion(const ShapeParameters &p_parameters, real_t &p_closest_safe, real_t &p_closest_unsafe, ShapeRestInfo *r_info) there is a binary search to find the best point of collision and the step is set to only 8, which can be insufficient when the target position is too far away. Basically, when the target position is long, the step should also increase to make sure the binary search has enough "tries" to approach the best time of the collision. Although it will have more cost (obviously). I changed 8 to 16 and it has a very smooth animation when it is 100m.
I wonder how Jolt does it. I will see if I can find out

Yes. I actually had a look at this myself.
Since the needed steps correlate with distance it seems that adding extra steps dynamically would work quite well. I've tried extracting it from the distance with frexp which should work nicely with the binary search. If my understanding is correct, using the exponent should add an extra iteration every time the distance doubles.
With this change, it behaves correctly up to about 4km. Here's an example of the target set to 1km:
https://github.com/godotengine/godot/assets/9631648/f629cac9-0e02-4a6a-82b5-18f948e4eebe
But then starts breaking down quite rapidly (starts being visible at about 5km):
https://github.com/godotengine/godot/assets/9631648/8a2ef420-ce76-4766-89f4-76311769b79e

I tried to use frexp as well. 5k might be too much for the binary search to find the point of collision even with more substeps. The moving triangle's height might be too small compared to 5km (I tried to enlarge the height of the triangle to 5m and it works nicely) and to make it work smoothly in this situation it might take a lot of work to reconstruct this part of the code I think.

I found a better way to do this. If the target position is too long, we can split it into different fractions to handle the collision. Since we only need the closest collision point, it can be quite fast, and no matter how long the target position is, there will be no glitch since every fraction we handle is in the same length.

The way to compile with REAL_T_IS_DOUBLE is here: [https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_with_dotnet.html#double-precision-support-real-t-is-double]
So I guess only the sub-step problem should be fixed


Issues/1733 reset entity view id holder on success and failure

Fixes #1733

Ahh, seems I didn't see you are using the builder in DocumentControllerTest. In that case, it might be better to simply make sure the hibernate-apt profile still works properly even if you declare the bsc-plugin in the main build section.


SAKIII-4275 use validation plugin on login form

https://jira.sakaiproject.org/browse/SAKIII-4275

Comments on JIRA.

Verified and merged.


added precision="low" to dates rounded to full or partial centuries

Can't help feeling this is a bit self-evident (and at the same time, I'm not sure that dating something to as little as 50 years in antiquity is particularly low precision), but I can't argue with it, and I'm sure it's good practice ;-) Ta!


SB-787: When undeleting from Maven repositories, make sure the artifacts are re-added to the Maven Indexer

Thanks for your help, guys! :)


Failure with jade file

//- @jadedoc
  name: foo
  description: foo
  arguments:
    one: foo
    two: faa

mixin foo(one, two)
  p= one
  p= two

//- @jadedoc
  name: faa

div.faa

//- @jadedoc
  name: baz

div.baz

Error:
Generating Jade-doc

* foo -
foo

faa

undefined:1
"test.jade","source":"div.faa","output":"

"}{"meta":{"
                                                                    ^
SyntaxError: Unexpected token {
    at Object.parse (native)
    at DestroyableTransform._transform (/Users/bastard/Desktop/jade-doc-test/node_modules/jade-doc-html/index.js:137:38)
    at DestroyableTransform.Transform._read (/Users/bastard/Desktop/jade-doc-test/node_modules/jade-doc-html/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:172:10)
    at DestroyableTransform.Transform._write (/Users/bastard/Desktop/jade-doc-test/node_modules/jade-doc-html/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:160:12)
    at doWrite (/Users/bastard/Desktop/jade-doc-test/node_modules/jade-doc-html/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:326:12)
    at writeOrBuffer (/Users/bastard/Desktop/jade-doc-test/node_modules/jade-doc-html/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:312:5)
    at DestroyableTransform.Writable.write (/Users/bastard/Desktop/jade-doc-test/node_modules/jade-doc-html/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:239:11)
    at Socket.ondata (_stream_readable.js:540:20)
    at Socket.emit (events.js:107:17)
    at readableAddChunk (_stream_readable.js:163:16)

confirmed for node 4.1 and 0.12

same problem occurs in jade-doc-markdown

simplified case:
Save above jade script to issue6.jade.
jade-doc issue6.jade | node stream.js

// stream.js
var pretty = require('pretty');
process.stdin.on('data', function(data){
  process.stdout.write(pretty(JSON.parse(data).output) +'\n');
});

without pretty() all works as expected.

can't seem to find the bug here. It is fixed when I add pretty() to the initial jade-doc stream instead of down the stream though. Maybe something to do with back pressure?


viewBox not rendered by default into SVG past v3.0.0

Hi,
Not sure if this is an issue with this package, but recently upgraded from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>and noticed that one of our SVGs now doesn't get rendered properly in the page.
SVG:
<svg xmlns="http://www.w3.org/2000/svg" width="31" height="56" viewBox="0 0 31 56">
    <path fill="#000" fill-rule="nonzero" d="M1.08 54.937a1.918 1.918 0 0 1 0-2.748l24.686-24.162L1.08 3.817a1.918 1.918 0 0 1 0-2.748 2.01 2.01 0 0 1 2.802 0L29.92 26.605c.3<IP_ADDRESS>3.58 1.374 0 .474-.193.995-.58 1.374L3.882 54.89a1.968 1.968 0 0 1-2.802.047z"/>
</svg>

Webpack config:
{
  test: /\.svg$/,
  use: [
    "babel-loader",
    {
      loader: "react-svg-loader",
      options: {
        jsx: true
      }
    }
  ]
}

Usage:
import Chevron from "./images/chevron-right.svg";

...

<Chevron
  ...
  className={"sort-container__option__chevron-right"}
/>

CSS:
.sort-container__option__chevron-right {
  stroke: grey;
  height: 20px;
  width: 20px;
}

Expected output (@3.0.0)
<svg xmlns="http://www.w3.org/2000/svg" width="31" height="56" viewBox="0 0 31 56" class="sort-container__option__chevron-right"><path d="M1.08 54.937a1.918 1.918 0 0 1 0-2.748l24.686-24.162L1.08 3.817a1.918 1.918 0 0 1 0-2.748 2.01 2.01 0 0 1 2.802 0L29.92 26.605c.3<IP_ADDRESS>3.58 1.374 0 .474-.193.995-.58 1.374L3.882 54.89a1.968 1.968 0 0 1-2.802.047z"></path></svg>

Actual output (@3.0.3)
<svg xmlns="http://www.w3.org/2000/svg" width="31" height="56" class="sort-container__option__chevron-right"><path d="M1.08 54.937a1.918 1.918 0 0 1 0-2.748l24.686-24.162L1.08 3.817a1.918 1.918 0 0 1 0-2.748 2.01 2.01 0 0 1 2.802 0L29.92 26.605c.3<IP_ADDRESS>3.58 1.374 0 .474-.193.995-.58 1.374L3.882 54.89a1.968 1.968 0 0 1-2.802.047z"></path></svg>

Notice viewBox="0 0 31 56" is missing from the output after 3.0.0
Visual differences (Top is with viewBox bottom is without):

@freshollie Seems to be a change in default options for SVGO, not a bug. Try this webpack configuration:
{
        test: /\.svg$/,
        use: [
          { loader: 'babel-loader' },
          {
            loader: 'react-svg-loader',
            options: {
              jsx: true,
              svgo: {
                plugins: [
                  {
                    removeViewBox: false
                  }
                ],
                floatPrecision: 3
              }
            },
          },
        ],
      },

Cool, not a bug, but not documented in change logs. I wouldn't expect a patch release to require a config change.

This bit me too, a changelog update would have been helpful.

+1 this is not in the readme. I would not assume I need svgo-specific knowledge to use the loader.

Without the viewBox attribute you literally can't change the size of your icons (as documented in the readme) via width/height attributes.

Created a PR https://github.com/boopathi/react-svg-loader/compare/master...ashconnell:patch-1


Travis checks should include recent Jenkins failures

There have been a couple cases recently where the Jenkins jobs have failed, but it would be easier if the checks were done at the time of a pull requset.

Equivalent class check.
Cycle check.
Synonym check for merged terms.

@dougli1sqrd Is this something you can do ?

Yeah, we can put more of these as part of the travis checks. This should be balanced with time to execute the check though.

This done already. By default robot complains if new inferred equivalencies are found
subclass cycle checks are actually a special case of the above (recall if A<=B and B<=A then A=B)
Not sure what test you mean, but the new robot report will have extensive synonym checks. Currently we have a check to see if any exact matches a label.

I think this can be closed?


Compose box does not update placeholder when changing recipients

@zulipbot claim

Pushed #15937 for this. Thanks for reporting this, @Gittenburg.


Optionally pass jwt into getSession()

Feature request
Is your feature request related to a problem? Please describe.
There's currently no way to get session info from getSession(), on the server-side of an app. Or at least not that I know of. This is because the method relies on the client-side localStorage (persistSession), or the Supabase client's inMemorySession - which likely wouldn't exist on a server-side Supabase client.
Describe the solution you'd like
Allow a jwt access token to be passed into getSession(), just like getUser() allows, in order to return session info. I'm willing to work on a PR if this is a feature the team would consider.

hey @j4w8n, have you tried using setSession to pass the JWT to a server-side Supabase client?

See https://github.com/supabase/gotrue-js/issues/496#issuecomment-1283887335 for why this doable, but not convenient.

After thinking about this more, allowing a jwt to be passed to getSession() isn't going to help much. See https://github.com/supabase/gotrue-js/issues/496#issuecomment-1283946941
Would be nice if we could set the session in a central server-side place, then allow the client to still have access to that session in other places on the server-side. My testing, so far, has not allowed this.


z/OS support: build, package and test fixes

Please squash!

Codecov Report

Merging #480 into master will increase coverage by 0.06%.
The diff coverage is 80%.

@@            Coverage Diff             @@
##           master     #480      +/-   ##
==========================================
+ Coverage    60.7%   60.77%   +0.06%
==========================================
  Files          49       49
  Lines        3199     3207       +8
==========================================
+ Hits         1942     1949       +7
- Misses       1257     1258       +1

Impacted Files
Coverage Δ

src/plugins/node/env/nodeenvplugin.cpp
87.05% <100%> (ø)
:arrow_up:

tests/headless_test.js
76.31% <68.42%> (-1.47%)
:arrow_down:

tests/api_tests.js
81.43% <92.85%> (+0.69%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 321722a...81495c4. Read the comment docs.


Error: unexpected argument debug

Hello, I'm trying your very promising node and I've got the following error:
~/svn/web_stuff_ws$ rosrun freeboard_ros freeboard_ros.py _host:=<IP_ADDRESS> _port:=3274
Bottle server starting up (using WSGIRefServer(debug=True))...
Listening on http://<IP_ADDRESS>:3274/
Hit Ctrl-C to quit.

Shutdown...
Traceback (most recent call last):
  File "/home/sampfeiffer/svn/web_stuff_ws/src/freeboard_ros/scripts/freeboard_ros.py", line 30, in <module>
    main()
  File "/home/sampfeiffer/svn/web_stuff_ws/src/freeboard_ros/scripts/freeboard_ros.py", line 27, in main
    run(host=host, port=port, debug=debug)
  File "/usr/lib/python2.7/dist-packages/bottle.py", line 2389, in run
    server.run(app)
  File "/usr/lib/python2.7/dist-packages/bottle.py", line 2086, in run
    srv = make_server(self.host, self.port, handler, **self.options)
TypeError: make_server() got an unexpected keyword argument 'debug'

Using ubuntu 12.04 I installed bottle doing apt-get install python-bottle and got the version:
In [1]: import bottle

In [2]: bottle.__version__
Out[2]: '0.10.6'

Maybe that has something to do. I'll keep trying.

@awesomebytes Apparently debug was not an option for bottle.run() in version 0.10. The fix is either to check the version prior to calling run or catch the exception and have a fallback mode with minimum number of params passed to run. I will implement latter pretty soon.


AutoClose behavior may infinite loop

Motivation:
If AutoClose is false and there is a IoException then AbstractChannel will not close the channel but instead just fail flushed element in the ChannelOutboundBuffer. AbstractChannel also notifies of writability changes, which may lead to an infinite loop if the peer has closed its read side of the socket because we will keep accepting more data but continuously fail because the peer isn't accepting writes.
Modifications:

If the transport throws on a write we should acknowledge that the output side of the channel has been shutdown and cleanup. If the channel can't accept more data because it is full, and still healthy it is not expected to throw. However if the channel is not healthy it will throw and is not expected to accept any more writes. In this case we should shutdown the output for Channels that support this feature and otherwise just close.
Connection-less protocols like UDP can remain the same because the channel may disconnected temporarily.
Make sure AbstractUnsafe#shutdownOutput is called because the shutdown on the socket may throw an exception.

Result:
More correct handling of write failure when AutoClose is false.

I opened another PR for the back port to 4.0 just to make sure I didn't mess anything up

4.0 (932c58721c)


Add negative tags

This PR adds support for 'negative' tags when choosing which whole notes should be reviewed.
This was added because it is sometimes useful to exclude notes with a specific tag from review.
For example, I use spaced repetition to review notes associated with academic papers, tagged with #paper. However, I sometimes create these notes before reading the paper so that I can link them to other notes; in these cases they are tagged #unread and I do not want them to show up for review, but I also want them to keep the paper tag.

Now you can ignore a subset of notes by adding a 'negative' tag to the settings, formatted like -#unread (shown above). This gives users more options if they want to review notes using an existing tag system, instead of having to manually cultivate a tag just for reviewed notes.
[[Edit: I rewrote this to better document the changes and explain why they're useful]]

Hi @ronzulu, thanks for this! It seems like you've done loads of impressive work on the repo:)
Just to be clear because I'm quite new to contributing, are the changes to the code base that you mentioned reflected in the newest pushes to the master branch? I.e., can I just fork the repo and reintegrate my changes into the new structure. Or do I need to access the source code for the beta release directly?

Hi @bitesizing , thanks for the feedback :-)
This is new territory for me as well actually. The changes to the code base haven't been integrated into the master repository https://github.com/st3v3nmw/obsidian-spaced-repetition. Unfortunately the project owner @st3v3nmw has been out of contact, so we don't know when this would happen.
I've merged in a few different outstanding PRs into the "beta code" on my repository. I was able to do that without involving the PR contributor as those changes affected different parts of the code.
So this is the first time your question has come up. I guess there are 2 options:

Wait and see when Stephen is back on board and has integrated other PRs including #878 into st3v3nmw/obsidian-spaced-repetition. and then git update your branch from it.
Fork from my repository, and make the necessary changes to incorporate your work. I would then merge your changes into my "beta branch".

If you choose 2, let me know if you have trouble as no one has needed to do this before.
Cheers
Ronny


Add PR template

I would like to add a pull request template for this repository. Please assign me this issue under GSSOC'24.

@Niketkumardheeryan i want to contribute to this issue. Can You assign me the issue as there is no PR template.

@Niketkumardheeryan i want to contribute to this issue
can you label it gssoc


Add jsnext:main support

See https://github.com/jsforum/jsforum/issues/5

Codecov Report

Merging #24 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #24   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines           1      1
  Branches        1      1
=====================================
  Hits            1      1

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 370276e...50b2390. Read the comment docs.

Thank you, @dandv. I'll take a time to read that issue.
But looking at it, shouldn't we add src to files then? Otherwise src will not be published to npm.

@diegohaz: I've just updated the OP - pkg.module has superseded jsnext:main

I've just updated the OP - pkg.module has superseded jsnext:main
Indeed, src should be added to files. I'll let you have a look.


Lingui error and deprecated modules

antd admin seems to be deprecated, i tried a lot of changes in the modules but appears the same error with json of languages... this appears a few days.
It happens when i try to clone the repository, that gives error because babel-plugin-import is not installed but the last week all the modules seem to work correctly, when i install that plugin appears this warning and lingui doesnt work more...

babel-plugin-import mis and lingui error is caused by dep upgrade

antd admin seems to be deprecated

hah, seems. Talk a lot with author recently, hooks or vite, just too subjectively to upgrade.

haha, okay so there is any solution for the warning or i must update some of the modules too?

@mukitafans done #d92f121


Problem with the snapshot Lamdba : Wrong IP

Currently, there is a problem with the snapshot process in the Lambda.
The code cannot access to the machine (wrong IP).

Currently, the fix is ready for a review :
https://github.com/octo-technology/tezos-link/pull/33
https://github.com/octo-technology/tezos-link/pull/44

Issue resolved.


#6: main.cpp, documentation refining and code refactoring

PR raised to resolve issue: #6 .

Nice work, @rahul-kumi


LAN access for Live Preview !

I use brackets on mac encoding, when i open the live preview, it only be viewed in the local browser, On other PC on the LAN, I access mac ip address : port number, it does not work

I would be very interested in the "send to phone" functionality! :)

any update about this?

@hibiyasleep @jasonflaherty @krevativ @ciberado @hyingreborn With our CC 2015 release, we have introduced a new cloud based service that allows precise preview of webpages on different mobile devices. This currently can be used from within Dreamweaver and Photoshop CC 2015. Please check out this video.
Does it make sense to have this service inside Brackets? By the way I have created a trello card to have this service integrated with Brackets.
Please upvote this trello card which will help us in prioritization. Thanks!

If you have ssh available you can just forward the ports to which Brackets outputs the live preview.

Run live preview in your localhost once, notice the port number <IP_ADDRESS>:port_num/index.html
Run ssh -N -L port_num:localhost:port_num (you can choose the second port, read man ssh)
Enter your ssh password and voila. You can access <IP_ADDRESS>:port_num/index.html in the remote computer.

The issue is that the page won't reload automatically as the local live preview.
Hope that helps!

Nice trick!
El jue., 26 may. 2016 a las 17:33, tonygon<EMAIL_ADDRESS>escribió:

If you have ssh available you can just forward the ports to which Brackets
outputs the live preview.

Run live preview in your localhost once, notice the port number
<IP_ADDRESS>:port_num/index.html
Run ssh -N -L port_num:localhost:port_num (you can choose the second
port, read man ssh)
Enter your ssh password and voila. You can access <IP_ADDRESS>:port_num/index.html
in the remote computer.

The issue is that the page won't reload automatically as the local live
preview.
Hope that helps!
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/adobe/brackets/issues/6424#issuecomment-221906767

Hi!
I've found an easy way to accomplish this functionality. I did it with sublime text because it's faster:
1 - search and replace <IP_ADDRESS> and localhost with your local ip.
2- Add "livedev.multibrowser": true to preferences file.
2 - Enjoy!
After that you can connect without problems. As far as i've tested it didn't show any console errors.
Tested on: Windows 10 x64.

@NicoGrapsas open the whole /opt/brackets folder in Sublime? How? There are a lot of binaries in there, no point in searching through those.


fix(commonmark-editor) ensure newline after html_block

Addresses part of 152.
Describe your changes
This simply ensures two newlines happen at the end of html_block nodes. Having other Markdown code on the line immediately after an html_block can cause rendering issues when round-tripping between MD and RT editors.
PR Checklist

[X] All new/changed functionality includes unit and (optionally) e2e tests as appropriate
[ ] All new/changed functions have /** ... */ docs
[X] I've added the bug/enhancement and other labels as appropriate

Environment(s) tested

Device: Desktop
OS: Windows 10
Browser: Chrome
Version: 103

adding https://meta.stackexchange.com/a/380413/51 as a reference here. I am assuming that this is the same issue.

adding https://meta.stackexchange.com/a/380413/51 as a reference here. I am assuming that this is the same issue.

That behavior is fixed with these changes.

Added a more complete fix + tests in 664e034dc39a3ec40fb95e31ba07c925ecbce9cf


Dispose the existed render view when participantView render new video stream

Purpose
I think we need to dispose the existed render view when there is a new render view input. Found this potential issue when debugging on @jimchou-dev's screen sharing feature which is not working when switching back to user's camera from sharing.
Please correct me if I miss something.
Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type
What kind of change does this Pull Request introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Test more than 6 users with camera off and on. See if the camera video streams are correct displayed on the app
Or manual change remoteParticipantsDisplayed to 1, and have more than 3 user with camera off and on, and switch user on screen by speaking on different user. See if there is any user's stream video stream missing

Tested, the behaviour of sometimes seeing a still image after ending camera/video stream previously is fixed


Update community files (#3001)

Signed-off-by: Knative Automation<EMAIL_ADDRESS>

/retest

OCF Webhook is merging this PR


builders for coredns and tcprouter

please add documentation on how to use the builders

Builders
Builder methods

build:

downloads & dependancies required for build
builds from source code
files should be in self.DIR_BUILD
example for coredns: j.builders.network.coredns.build()
parameters:

reset=True > resets the build operation -calls reset method-

install:

calls build at first
copies binaries & libs & any other related files to its correct location
makes configurations if required
example for coredns: j.builders.network.coredns.install()
parameters:

reset=True > resets the build & install operation -calls reset method-

start:

uses startupcmd(s) to start the server(s) or daemon(s)
example usage: j.builders.network.coredns.start()

stop:

uses startupcmd(s) to stop the server(s) or daemon(s)
example usage: j.builders.network.coredns.stop()

reset:

deletes all files in build directory and sandbox directory
example usage: j.builders.network.coredns.reset()

test:

Basic tests for the builder to make sure it's correctly working; aka: start server if available; do some operations on it; stops it.
example usage: j.builders.network.coredns.test()

sandbox:

calls build & install at first

copies required files (binaries, libraries and includes ...) and configurations to self.SANDBOX_DIR in correct locations

then these files used to make a .tar file which is uploaded to the hub to make an flist.

if server needs to be autostart or needs configurations on init in the container it's done in a startup.toml and localized at the root of the flist

Main Parameters:

zhub_client > authenticated zhub object uploads files to https://hub.grid.tf.

how to get one:zhub = j.clients.zhub.myclient
zhub.token_ = j.clients.itsyouonline.myclient.jwt_get().jwt
and enter your itsyouonline id and secret
zhub.authenticate()

P.S: needs zeroos python package to be installed from:
pip3 install -e 'git+https://github.com/threefoldtech/0-hub#egg=zerohub&subdirectory=client'

flist_create > BOOL: create flist and upload it to the hub
param create_flist > BOOL: create flist after copying files
merge_base_flist > STR: if you want to merge your flist with another one, usually we use "tf-autobuilder/threefoldtech-jumpscaleX-development.flist"

Example of usage:

j.builders.network.coredns.sandbox(
    zhub_client=zhub,
    flist_create=True,
    merge_base_flist="tf-autobuilder/threefoldtech-jumpscaleX-development.flist",
):

Also in here: https://github.com/threefoldtech/jumpscaleX/blob/development_builder/Jumpscale/builder/README.md


Add typescript typings to DefinitelyTyped/DefinitelyTyped

Hi,
would be great if one could add typings for this lib to https://github.com/DefinitelyTyped/DefinitelyTyped in order to be able to use in TypeScript. 🚀
Thx for building this lib!

Hey @dleitee , what's the state here? Was not able to find them in DefinitelyTyped repo? 😟

Hey @apinnecke, this issue isn't in the plans for this project. The idea is just to create a string handler with vanilla javascript.
Thanks

For future people who end up at this issue–you can define your own manual typings if needed. I don't have the time to do this for the whole project, but I have a vendor types file with this included... extrapolating it to other methods should be pretty straightforward.
declare module 'strman' {
  const slugify: (str: string) => string;
  export { slugify };
}


Do go build or go test with Goland 2024.3 on Mac M1 normally.
What did you see happen?
panic: unexpected 32-bit segment
goroutine 1 [running]:
cmd/link/internal/ld.machoCombineDwarf(0x1400015c200, 0x14000a6c0b8, 0x140013af000, {0x14009754140?, 0x16f7e70ac?}, {0x14009efe120, 0x59})
cmd/link/internal/ld/macho_combine_dwarf.go:224 +0x109c
cmd/link/internal/ld.(*Link).hostlink.func7(0x10095d5c8?, 0x14000a6c0b8?, 0x0?, {0x14009efe120?, 0x140097542d0?})
cmd/link/internal/ld/lib.go:2056 +0x38
cmd/link/internal/ld.(*Link).hostlink.func6({0x1008720dd, 0xf}, 0x1400c36d340)
cmd/link/internal/ld/lib.go:1993 +0x21c
cmd/link/internal/ld.(*Link).hostlink(0x1400015c200)
cmd/link/internal/ld/lib.go:2054 +0x4940
cmd/link/internal/ld.Main(_, {0x10, 0x20, 0x1, 0x1f, 0x1e, 0x7c00000, {0x0, 0x0, 0x0}, ...})
cmd/link/internal/ld/main.go:473 +0x17e8
main.main()
cmd/link/main.go:72 +0xbb4
What did you expect to see?
I just want to share the solution for people searching
command execute:
go env -w CGO_ENABLED='0'

and set cgo support disable in Goland Setting

Related Issues

cmd/cgo: cgo build fails with panic building trivial code on M1 Mac (darwin/arm64) #53193 (closed)
cmd/link: failed to debug while succeeding to compile and start server #58330 (closed)
go build #52634 (closed)
run #70024 (closed)
affected/package: cgo #63206 (closed)
runtime: GODEBUG=efence=1 causes panic during build on M1 #44993
cmd/cgo: compilation failure on Apple silicon when GOHOSTARCH=arm64 and GOARCH=amd64 #43476 (closed)
sb #53220 (closed)
cmd/go/internal/list: segmentation fault on darwin #67113 (closed)
Update #70550 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

CC @golang/compiler


Foldable comments

Thanks for the quick creation of this extension ;) Will give it a try in the next few days.
In the video How I animate 3Blue1Brown, you see at 5:29 how comments are foldable in Sublime due to these lines of code. It'd be awesome to have something similar for VSCode. Additionally, I'd even prefer a special comment syntax, such that not every comment is foldable, e.g. only comments that start with a customizable string, for exampel #! or # == or whatever. This could maybe be a user-adjustable parameter for the extension with a sensible default value.

for info: currently, this can be done in VSCode in python like this:
https://stackoverflow.com/a/60442670
#region <REGION NAME>

# any code goes here, including multiple comment lines

#endregion

for info: currently, here is what's possible in VSCode in python:
https://stackoverflow.com/a/60442670

Thanks for pointing that out. I hope there's another option as I'd hate to have to include an ending comment like #endregion. A starting comment should be enough in my opinion. Hopefully, this is somehow feasible within the VSCode extension framework.

This is a really neat feature. I actually think his workflow could be improved by taking advantage of the "pypercent" format, i.e, using special code cells in python
#%% CODE CELL

#some code...

#%%NEXT CODE CELL

Folding these regions is also supported through the Jupyter extension, I believe. And we wouldn't need to highlight the code every time, we could just run that cell

Oh yeah true, there exists these Jupyter cells in normal python files as well, that's cool. I wouldn't like to work in a separate jupyter notebook (.ipynb) for this, but this just feels like the right mix: have my plain-old Python file and then sprinkle in some comments to get executable cells. And this would even be more comfortable with in-line code-lense to execute a cell.
This execution of the cell would however be different from the Jupyter extension. I mean, the Jupyter extension would just take the code in the cell and execute it in a Python REPL. But what we want is different behavior (copy to clipboard, paste clipboard_paste() into terminal etc.).
However: if the Jupyter extension is able to define such foldable cold regions based on custom comments, than in principle every extension can, even this one 👍 (Of course how much effort that is going to be is another question).

I propose:

vscode.CheckpointPasteCell command that:

uses regex to extract the text between the preceding cell delimiter #%% and the next (or EOF if no subsequent #%% is found)
If there is no title for the cell e.g., #%% SECTION TITLE, look in the following line for a normal comment and use this as a section title. If no section title or comment is present, run checkpoint_paste without the scene checkpointing functionality, raising a warning appropriately

no-op if no #%% cell delimiter precedes the current cursor

I would hope to keep this functionality decoupled from the jupyter behavior, but I see how the presence of "run cell | run below | debug cell" can be confusing since it will not run in manim but instead use a different ipython kernel.
How could we make this more usable? I see several options, none perfect:

(idk how to but) Hide these buttons presented by the jupyter extension if the file contains the text from manimlib import *
(idk how to but) If file contains text from manimlib import *, hijack the run cell button to send to the manimgl interactive ipython. We probably want to hide the debug cell and run below appropriately

The fastest solution I see to make it "more usable" is: use #% instead of #%%`

Also about the logic of this command:

If user's selection spans multiple cells - execute each cell (from start till end of each section)
(note that vscode supports non-continuous selection)

Preserve the old vscode.CheckpointPasteCell, make this a separate (new) command, for the users who'd prefer the old mechanism

Then I see no problems with it!

Where do I find out about vscode.CheckpointPasteCell in the VSCode Extension API?
I don't think we have to reinvent the wheel for this. I browsed a bit in the public code of the vscode-jupyter extension, here are some first findings

An issue called Make cells (# %%) collapsible python files
A constant export const DefaultCodeCellMarker = '# %%'; here
A method provideFoldingRanges() that makes use of VSCode's FoldingRangeProvider

I think he meant this under vscode.CheckpointPasteCell

If there is no title for the cell e.g., #%% SECTION TITLE, look in the following line for a normal comment and use this as a section title.

I like the idea of also taking a look in the following line for a normal comment that could provide the title for the cell as well. When the cell is collapsed (folded), we could also use such a comment (if found) and show it in the line that is folded.

If no section title or comment is present, run checkpoint_paste without the scene checkpointing functionality, raising a warning appropriately

How would a user benefit from just having the checkpoint_paste() run  in the terminal and at the same time having a warning issued? Does checkpoint_paste() even work without any comments? Maybe just show a warning and do nothing else in this case?

The fastest solution I see to make it "more usable" is to: use #% instead of #%%
(because #% doesn't trigger the jupyter buttons)

But #% also doesn't trigger folding regions through the jupyter extension so we would have to define our own custom folding. Indeed, it may be nice to do this to remove dependence on the jupyter extension. I do not think it will be too difficult to do this (i think @Splines figured it was possible in this comment, but I haven't had time to look in detail either)

I'm happy to contribute the basic cell mechanism by means of #7. This is in construction.


Update attachment listings

What does this PR do and why?
In this PR, metadata fields belonging to attachments are added the sample attachments table to show the additional data (format and type) to users..
Screenshots or screen recordings

How to set up and validate locally

Create a project and associated sample.
Upload attachments with a variety of formats. Namely a non-fasta/fastq file, a fasta file, and fastq files that are both paired end and non-paired end

PR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

[x] I have evaluated the PR acceptance checklist for this PR.

NOTE: paired-end samples only contain a single DELETE button. Therefore, delete functionality is not handled correctly currently. After discussion with @ericenns, deleting of paired end samples will be changed so that the delete function deletes both the paired end attachments. This feature has not been completed.

There are, of course, numerous ways to in handling the paired end samples within the table. After a few variations, I settled on the following logic:

During attachments for loop when populating the table, if the attachment is non-paried end, the row populates as normal. If the attachment has an associated file (Ie: paired end attachments), if the current file is in the forward direction, populate the row with this forward attachments data, and grab the associated reverse attachment data using the forward direction attachment's associated file ID and populate a second row with the reverse data. Otherwise, if the attachment is paired end but in the reverse direction, skip (because the forward paired sample will grab this data).

I decided on this as it keeps the code cleaner than a ton of if else statements throughout _attachment.html.erb, as well as I had a bug where attachments did not keep their order by ID, and therefore paired end samples would get split. This iteration of my PR avoids both these issues.
However, a drawback is if somehow the user deletes one of the two paired end samples, if there's belief this can become an issue, I can look into adding more conditionals to prevent possible errors.

I was playing with your branch this morning.  When I upload a pair of files it is displayed twice

I was playing with your branch this morning. When I upload a pair of files it is displayed twice

Yes, I missed a conditional on the create turbo frame. It should be fixed now in b265302acf47f8d228735e52ddb83bb1b54bfded

Left some small changes I would like to see.  Also noticed an issue when deleting a pair of files, one is not deleted and displayed as a single file.  Then if you try to upload a pair again, it fails with a checksum error, which makes sense since one of the files still exists.  Is this in the scope of the PR @ericenns ?

Yes I spoke to Eric about this and it was outside the scope of this PR. It is noted above in a comment after my initial PR post.


If no one depends on operation, it should return false.

I tired to construct a test case, but failed for few hours...

Could you use a more descriptive commit description?


Server error replaces file contents with XML error response

I tried running the utility but it appears that when the server returns an error, XML is dropped into the geojson file:
<?xml version="1.0" encoding="UTF-8"?>
<Error>InternalError<Message>We encountered an internal error. Please try again.</Message><RequestId>869BD31C5B34FB96</RequestId><HostId>a4U+mbECCoUshCCDsl94BQXPsQfR6N/rW0PtscnjerPU3nGzsv4nNPCFwEtkydy+fNPghHOxvKE=</HostId></Error>%

Beauty...
On Mon, Nov 9, 2015 at 12:01 PM, Stephen K Hess<EMAIL_ADDRESS>wrote:

I tried running the utility but it appears that when the server returns an
error, XML is dropped into the geojson file:

InternalErrorWe encountered an internal error. Please try again.869BD31C5B34FB96a4U+mbECCoUshCCDsl94BQXPsQfR6N/rW0PtscnjerPU3nGzsv4nNPCFwEtkydy+fNPghHOxvKE=%
—
Reply to this email directly or view it on GitHub
https://github.com/whosonfirst/go-whosonfirst-clone/issues/6.

Oh there's the problem:
https://github.com/whosonfirst/go-whosonfirst-clone/blob/master/clone.go#L271-L279
I guess I just got used to Python freaking out and blowing its brains out when it encounters a not-200 status code. I will update accordingly...


Fix progress for Plex media_players

Description:
Adds media_position and media_position_updated_at properties which are necessary for UI media players to properly display progress.
Example entry for configuration.yaml (if applicable):
media_player:
    - platform: plex

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

This seems to work well in my testing with ~5 different device/client types. As the component has a history of exposing edge cases, any additional help testing would be lovely.
Current limitations in this implementation:

Progress is always slightly behind real-time, as a result of the Plex API reporting a slightly delayed timestamp and the use of a polling update method.
The current position reported by the Plex API can be a little "jumpy" depending on the client type, leading to drifts away from the expected progress position. This can update the position attributes more often than absolutely required. This seems to affect web-based clients (and Plex Media Player) the most.

Sorry all, not sure what happened. Confirmed the end result is identical to how it was before the failed rebase.


Two Claim Management UIs are displayed

Notice subject on a IS 5.8.1-m5-snapshot pack after the new config model changes are merged.

In previous versions, we had the below configs to hide the old claim management UI component
<HideMenuItemIds>
<HideMenuItemId>claim_mgt_menu</HideMenuItemId>
<HideMenuItemId>identity_mgt_emailtemplate_menu</HideMenuItemId>
<HideMenuItemId>identity_security_questions_menu</HideMenuItemId>
</HideMenuItemIds>

We should see similar issue with other UI components expected to be hidden with the above config.

Fixed with:https://github.com/wso2/product-is/pull/5865

With the new configuration model, can we switch which claim UI need to be visible?

We can hide the old claim UI.


Support Models to Better Interface with Krita Plugin

krita-ai-diffusion plugin is quite a popular plugin among digital artists that integrate ai to their workflow. it would be greatly appreciated if you could provide support for the required models for this plugin to work with replicate's api.
the plugin relies on a ComfyUI backend, that we can provide locally or through the cloud.

All the custom nodes on https://github.com/Acly/krita-ai-diffusion/wiki/ComfyUI-Setup are currently supported

I've added all the necessary models in https://github.com/fofr/cog-comfyui/commit/a9b5f343cf7fa156bf72ed3b0b361dd646089ceb
I think this should be enough, but if you have problems feel free to re-open this issue.


make docs in docs/ requires docker login or missing base image

Dockerfle base image is docs/base:oss which either doesn't exist or requires docker login. Suspect Dockerfile is out of date, of docs base image depends on private hub repo.

Yes the docs build is very out of dat, back from when this was a Docker project. We should rework the docs standalone and publish them on a Notary page.


Variadic token type

I am trying to implement a trait using a struct field like so:
struct MyStruct {
   foo: SpecialType,
   ...
}

// generated derive:
impl SpecialTrait for MyStruct {
   fn x(&self) {
        self.foo.x()
    }
}

To do this, I wrote a function like:
fn find_special_field(data: &Data) -> ??? {
    let ty = ...;
    match data {
        Data::Struct(data) => {
            match data.fields {
                Fields::Named(fields) => {
                    for field in fields.named.iter() {
                        if field.ty == ty {
                            return field.ident.clone();
                        }
                    }
                }
                Fields::Unnamed(fields) => {
                    for (i, field) in fields.unnamed.iter().enumerated() {
                        if field.ty == ty {
                            return Lit::Int(LitInt::new(i, IntSuffix::None, Span::call_site()));
                        }
                    }
                }
            }
        }
       // error handling ...

The problem is that in the first case, I want to return an Ident, and in the second case a Lit (or possibly something else). There is no variadic type (that I can find) which encapsulates this — an enum would make sense. Also, since Token is a sealed trait, I cannot write such an implementation myself. I also cannot return Box<Token> since the trait is not object-safe.
(BTW, why do I feel like everything I want to do with this lib is 10 times harder than it should be? The documentation could be better...)

I think you are looking for syn::Member. For example this is what is used within Expr::Field to represent expressions like obj.k or obj.0.
It doesn't sound like you necessarily need a type that implements the Token trait.

Yes, that sounds like what I was looking for; thanks. I had assumed the Token trait was required and checked the implementations — hence didn't see this.
I guess I should have looked at the quote documentation which does explain the required ToTokens bound.
Is there a shortcut to obtain an Expr::Field from a Field, or when iterating over a Fields?


Roll Flutter Engine from 2df3b9c4b2a4 to 2aac795457f0 (1 revision)

https://github.com/flutter/engine/compare/2df3b9c4b2a4...2aac795457f0
2023-07-20<EMAIL_ADDRESS>Roll Skia from 65a83c4de7f2 to 401c85ab1e21 (1 revision) (flutter/engine#43848)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC bdero@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Adds pre/post boot and node roles

Issues addressed:

#2301
#2372

Description of changes:
As per https://github.com/kubernetes-sigs/image-builder/issues/894 issue upstream project opened to use custom Ansible roles pre/post boot of the node and also pre/post node provisioning.
This opens doors to customize image built for custom requirements, for example if deployment needs to happen in offline environment that has no access to the internet and would require to update system with required changes to look for packages on internal proxies instead.
Also allows to provide extra updates to the system before Kubernetes is installed along with extra tweaks after.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

PR verified:
image-builder@eksa_test:~$ cat /home/image-builder/packer_vars.json
{
        "disable_public_repos": "true",
        "node_custom_roles_pre": "wd.eksa.pre_node"
}
image-builder@eksa_test:~$ cat ~/.ansible/roles/wd.eksa.pre_node/tasks/main.yml
- name: Do custom stuff
  apt:
    name:
      - jq
      - ansible
      - make
    update_cache: yes
    state: latest
image-builder@eksa_test:~$ export EKSA_USE_DEV_RELEASE=true
image-builder@eksa_test:~$ image-builder-pr build --os ubuntu --os-version 22.04 --hypervisor baremetal --release-channel 1-27 -v 3 --force --baremetal-config /home/image-builder/packer_vars.json
...

and while it's running we can see that overrides are passed over to packer:
$ cat /home/image-builder/eks-anywhere-build-tooling/projects/kubernetes-sigs/image-builder/packer/config/baremetal.json
{"files":null,"rhel_username":"","rhel_password":"","node_custom_roles_pre":"wd.eksa.pre_node","disable_public_repos":"true"}

Note: this example is not complete since when we disable public repos we need to supply private repos as well and for ansible roles I'm using only one role while value can be space separated multiple roles

/ok-to-test

Thanks for this!
One question I had was, can the pre/post role take in a full path for the ansible role, and if user doesn't provide the full path, does it expect the role to be present in a certain relative path?
Also could you add this overrides to cloudstack, vsphere, nutanix and ami builder types?

details on what these overrides can take are very well described here: https://image-builder.sigs.k8s.io/capi/capi.html#customization
if ansible is not configured to look in specific location it can't take full path to it, but if you put roles into ansible configured location then it can use those
in my case I've used ~/.ansible/ where I believe ansible-galaxy would install collections and they were found out.
as for adding those to other hypervisors can do for sure but won't be able to verify if it works in any way as I don't have those configured

@vignesh-goutham , I've updated PR with requested addition to other hypervisor types along with rebasing the change on top of latest main branch.

/lgtm
/approve

/cherrypick release-0.17


Fix "unused manifest key: dependencies.rustc-serialize.rustc_serialize" warning

When compiling, I get the following warning from cargo:
$ cargo test
unused manifest key: dependencies.rustc-serialize.rustc_serialize

Ok, well this was fun. When running cargo publish v0.8.0 after merging #316, I got the error:
api errors: wildcard (`*`) dependency constraints are not allowed on crates.io. See http://doc.crates.io/faq.html#can-libraries-use--as-a-version-for-their-dependencies for more information

Seems like in our Cargo.toml we weren't actually setting the version:
[dependencies.rustc-serialize]
rustc_serialize = "0.3"

I've now changed it to:
[dependencies]
...
rustc-serialize = "0.3"


Mock ControlValueAccessor via injected NgControl

Hey there ! Hope you are fine.
I'm trying to mock a ControlValueAccessor component that setup itself using injected NgControl, not using provide: NG_VALUE_ACCESSOR. My component looks like this:

@Component( {
	templateUrl: './test.component.html',
	changeDetection: ChangeDetectionStrategy.OnPush,
} )
export class TestComponent implements ControlValueAccessor {
	public get control(): FormControl {
		return this._ngControl?.control as any;
	}

	public constructor( @Self() @Inject( NgControl ) private readonly _ngControl: NgControl | null ){
		if( _ngControl ){
			_ngControl.valueAccessor = this;
		}
	}

	// #region ControlValueAccessor
	public readonly writeValue = noop;
	public readonly registerOnChange = noop
	public readonly registerOnTouched = noop
	// #endregion
}

Unfortunatelly, while all works fine at runtime, tests yell at me No value accessor for form control with name: 'xxx'
I don't know what I can do to force ng-mocks to mock my component as a CVA.

Hi @GerkinDev,
it looks like mat style. NgControl is provided via a different directive which is real CVA, to make it working, you need to find this directive and to keep it along with this component.
For example, to keep DefaultValueAccessor or the whole forms module and to mark your component with its selector:
<test ngDefaultControl></test>

There is an example with matInput: https://github.com/ike18t/ng-mocks/blob/master/tests-angular/e2e/src/mat-input/test.spec.ts
Not exactly what you do, but might bring some light.

I'm not sure I get it.
In my case, my component is used like this:
<form [formGroup]="form" (ngSubmit)="register()">
	<app-test-control formControlName="testControl"></app-test-control>
</form>

I am using Angular Material. Yet, I'm not sure this pattern is specific to Material.

In your case formControlName provides real CVA which is injected into TestComponent later on.
I would bet that ReactiveFormsModule has been mocked here. it means that formControlName is a string without CVA. Therefore, you get the error.
There are 2 options:

keep ReactiveFormsModule, then formControlName will provide proper CVA.
switch to [formControl]="form.get('testControl')", then ng-mocks is able to detect CVA despite a mock of ReactiveFormsModule.

Shaking fingers :) sorry :)

Oh, something interesting happened. writeValue, registerOnChange & registerOnTouched are properties in my case, not methods, and are then not hosted on the prototype. Thus, I suspect ng-mocks to miss that this component is actually a CVA.
If I do
class TestTestComponent extends TestComponent {
	// @ts-ignore
	public writeValue(){}
	// @ts-ignore
	public registerOnChange(){}
	// @ts-ignore
	public registerOnTouched(){}
}
MockBuilder(MyComponent).mock(TestTestComponent);

Then it correctly detects it as a CVA

Ah, you are right. Yes.
with javascript, these properties are assigned in the constructor, in a mock constructor hasn't been called, therefore no properties have been assigned and ng-mocks cannot detect CVA.

OK my bad, thank you for the quick help :)

It's JS's bad :)

Let's keep the issue open, I'll update documentation about this case.

v12.5.0 has been released and contains a fix for the issue. Feel free to reopen the issue or to submit a new one if you meet any problems.


Representing a batch of multiple images

Thanks for your helpful library.
I wonder how it is possible to infer the embedding of multiple pictures at once, so as to maximally leverage model parallelism and improve inference speed. From the code, it does not seem obvious

You should call represent in a for loop.
No plan to support batches in the short term.


Fix SA1312 treating fields as variables

[x] Add regression tests for #1328
[x] Fixes #1328

:+1:


#+OPTIONS: toc:nil is ignored.

Looking at code of this library, toc in options is expected to be a number, which is the level to which table of contents should be displayed. Hoverer, a value of nil is silently ignored, even though the org-mode manual lists toc:nil as a way to suppress displaying the table of contents. This breaks many org-mode documents, as official way to disable ToCs is ignored by this library.

Hi, it is supported (only for nil) in my branch.


Found  a nasty bug w/ p2 physics

If you are using p2 physics and do:
	   sprite.body.setCircle(20, 0, 25);
	   sprite.body.fixedRotation=true;

You will not collide with left and right world bounds, but you do collide with top and bottom world bounds.
I just spent an hour or so trying to figure out why my character wasn't colliding left and right bounds but he was with top and bottom.. until I found this lol. Not sure if this is a bug or intended

The result you're seeing is because you've adjusted the Circles mass offset by quite a large value (25). The offset values are given in unit lengths, from the body center of mass, along the local x/y axis. Providing them re-calculates the bodies center of mass and bounding radius.


Rendering issue with \mathit in math role

🔍 Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

🐞 Description of the bug
When using \mathit{} in a :math: role, the content of mathit is truncated on the right.
Example:
- Example 1: :math:`\mathit{f}`.
- Example 2: :math:`\mathit{H}` test.

The same file is rendered correctly with the alabaster theme:

📝 Steps to reproduce

unzip ansys-theme-math.zip
run sphinx-build -M html . _build

💻 Which operating system are you using?
Windows
📀 Which ANSYS version are you using?
Ansys Sphinx theme 1.1.2
🐍 Which Python version are you using?
3.11
📦 Installed packages
accessible-pygments==0.0.5
alabaster==1.0.0
ansys-sphinx-theme==1.1.2
babel==2.16.0
beautifulsoup4==4.12.3
certifi==2024.8.30
charset-normalizer==3.4.0
colorama==0.4.6
docutils==0.21.2
idna==3.10
imagesize==1.4.1
importlib_metadata==8.5.0
Jinja2==3.1.4
MarkupSafe==3.0.1
packaging==24.1
pdf2image==1.17.0
pillow==10.4.0
pydata-sphinx-theme==0.15.4
Pygments==2.18.0
requests==2.32.3
snowballstemmer==2.2.0
soupsieve==2.6
Sphinx==8.1.0
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
typing_extensions==4.12.2
urllib3==2.2.3
zipp==3.20.2

Thanks for reporting this @ansbmartin.Looks like this may be caused by the font we are using in our theme.


custom-config: add delegate runtimeDidWakeup

add reload request for custom-config
add test
Change-Id: Ic8fc98d95788af7089ecdc1f06aba3753c3b2ac1

Custom config needs to be reloaded after system wakeup, so the app customConfig adds the new request reload, and the component customConfig adds the delegate runtimeDidWakeup.
Checklist

[x] npm test passes
[x] tests and/or benchmarks are included
[ ] documentation is changed or added

What's the status of this PR? @FeelyChau


Added spanish layout json for the vkeyboard

Maintainer merge checklist

[ ] Title is descriptive/clear for inclusion in release notes.
[ ] Applied a Component: xxx label.
[ ] Applied the api-deprecation or api-break label.
[ ] Applied the release-highlight label to be highlighted in release notes.
[ ] Added to the milestone version it was merged into.
[ ] Unittests are included in PR.
[ ] Properly documented, including versionadded, versionchanged as needed.

Remember to change the title and description.

@NomadDemon are you a native Spanish speaker and can confirm the keyboard layout looks correct?

The request for native Spanish speakers to review would be easier if you posted an image of the keyboard we could run past our social media friends.

Sure, here is the keyboard layout in action in some test code.
![Special.png](https://github.
01662b56-8527-4329-b5d9-4d4bb22bf573)

I think we should accept this pr as is for now. If some other Spanish layout finds an issue later on we can get the appropriate changes in at that time.
LGTM!

I did a correctness check in that this layout works for me shows up as in the images posted above in my local testing.

@schoolsplay Thanks 👍

I compared the image to other soft keyboards for Spanish, and this seems to be a rather unconventional approach.
It is missing lower case ü.
ñ is normally on the main keyboard, to the right of the l.
á, é, í``, óandú` are normally entered as two strokes the base letter followed by an accent key.

@Julian-O thanks.
Might be unconventional to us but let's wait for some Spanish layout users if they feel this is wrong/ not accurate. We can always add a variants of es_ES es1_ES... ? None of these are default so it should not be much of a issue.

@akshayaurora as a Spaniard that I am, I agree with @Julian-O. Here I give you a conventional Spanish keyboard in order to show you how it should look (not only the letters, but also the distribution of symbols). The "Ç" letter is an exclusive Catalonian/Valencian letter. It's optional, but is't preferible that it be an independent key (I'm Valencian btw)

@schoolsplay would you please address the issues mentioned above.

I will just run it by our spanish sales people but if this is a regular layout for spanish I can change it.

Created a new pull request with a updated layout created with our Spanish colleagues.
https://github.com/kivy/kivy/pull/8532#issue-2058400180


[Feature][CDC] Support Informix cdc connector source

Search before asking

[X] I had searched in the feature and found no similar feature requirement.

Description
Currently, we don't support reading Informix change data capture (CDC), does anyone want to add support for Informix?
docs
https://github.com/debezium/debezium-connector-informix
reference
https://github.com/apache/seatunnel/tree/dev/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql
https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-cdc-mysql-e2e
https://github.com/apache/seatunnel/tree/dev/docs
Usage Scenario
No response
Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

We use debezium 1.9, but informix does not support it, so close this issue