[consensus][reconfig] extend reconfiguration test for a few epochs

Motivation
We're able to test reconfiguration flow in unit test stacked with the recovery flow changes.
Have you read the Contributing Guidelines on pull requests?
Y
Test Plan
Added test.
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/libra/website, and link to your PR here.)

:umbrella: The latest upstream changes (presumably 9d510ae3717935dbd3f89cf6f880a7dca9ca80c4) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r=dmitri-perelman

:pushpin: Commit b923e8a has been approved by dmitri-perelman

:hourglass: Testing commit b923e8aebe4e8269d4512679288ec2364a1d8b2f with merge 8c80641f68de6729f5521fe5a0fd38f7f82d3023...

:broken_heart: Test failed - checks-circle_commit_workflow

@bors-libra r=dmitri-perelman

:pushpin: Commit 11eb51c has been approved by dmitri-perelman

:hourglass: Testing commit 11eb51cab2eb71e5f1070aa4152add117d9c563b with merge 02596878adbd61f4d221a0e1c9bc48f9669c69b2...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: dmitri-perelman
Pushing 02596878adbd61f4d221a0e1c9bc48f9669c69b2 to master...

Curious how this could work considering that SafetyRules would be confused by the resetting of the the round to 0 after an epoch change :O

Alright, I made safety rules play nice with epoch changes as well as that the epochs really begin at 1. This caused a few other tests to require tweaks.
See: https://github.com/libra/libra/pull/1615


-bash: rpi-backlight: command not found

When typing this:
pi@DALI:~ $ rpi-backlight --get-power
I get this error:
-bash: rpi-backlight: command not found
How can I run this from any directory ?

Add the install directory, presumably ~/.local/bin, to the shell's $PATH.

Your short answers leave me completely confused !!!
I followed your instruction manuals, but have no idea where these errors are coming from.  I wish you would do a better set of instructions, as I cannot figure out anything you are saying now.


go node: unite compute, merge, and transaction scheduler roles

We're removing the separation among registering nodes for the compute, merge, and transaction scheduler roles. You now have to register for and enable all or none of these roles, under a new, broadened, and confusing--you're welcome--term "compute."
non-changelog data:

the .enabled flag is moved to its own package, computeenable. this is because there are dependencies leading toward the merge worker package, but that would be a weird place to put the compute enable flag.
a backwards incompatible change is made to the on-chain representation of registered nodes, and no migration is provided. you're welcome.

closes #2107

aw this is going to break the byzantine tests isn't it

remaining weirdness:

registry node runtimes are shared across multiple roles
some tests might not be up to date on per-runtime merge and storage change

alright, I'd better take inventory of what went down in coverage

StateProcessingBatch.cancel
Namespace.UnmarshalBinary ErrMalformedNamespace
Namespace.UnmarshalText error from base64 DecodeString
Namespace.UnmarshalHex error from hex.DecodeString
Namespace.Equal cmp == nil
cmd debug storage check-roots Args error from nrFn
ibid, error from ValidateRuntimeIDStr
cmd debug storage force-finalize Args
cmd debug storage ValidateRuntimeIDStr error from hex.DecodeString
cmd debug storage checkDiff error from storageClient.GetDiff
ibid, error from write log iterator Next
ibid, error from write log iterator Value
cmd debug storage doCheckRoots error from storageClient.New
ibid, error from client.GetBlock
ibid, error from storageWorkerClient.GetLastSyncedRound
ibid, retry when storage worker is not synced
ibid, error from client.GetBlock
cmd debug storage doForceFinalize failed branch

I'm stopping here. Observations:

covered -> not covered transitions are almost all error handling branches, which I suspect are ones that we don't explicitly exercise in tests
item 18 https://codecov.io/gh/oasislabs/oasis-core/pull/2514/changes#L282 ought to be impossible, because you would have to go through line 247 (never covered) before you could get to line 282 (previously covered, now not covered)
what is force-finalize? do we exercise it?


Parent Node Calculation

If the parent of the node to be replicated starts with the name of the node to be replicated, the - operator would yield incorrect results.  Example:
def jobPath = "/content/dam/folder123/fo";
jobPath = jobPath.replaceFirst(//$/, '')
final parts = jobPath.split('/')
final parentPath = jobPath - "/${parts[-1]}"

Thank you @jshelley-xx !!


autoplay (in 4.0.0-canary.13) is FAR more processor-intensive; it should not use requestAnimationFrame on every call

Describe the bug

when autoplay is enabled, rather than using timers, the code in play() runs as quickly as it can on every animation frame. This uses a LOT of processor (see video screengrab below) and ultimately battery life
autoplay now has different timings: subsequent scrolls do not wait for the scrollAnimationDuration time

How to fix
I recommend reverting:

#536

Unfortunately, this PR seems to have a few issues:

primarily, running this check code in requestAnimationFrame() over and over again is really awful for processor usage / performance / battery usage. Using setTimeout (or perhaps some other method for a timer?) would be better
since lastTimestampRef.current = currentTimestamp is called immediately in play() after when calling next() and prev(), it restarts the countdown too soon (rather than waiting for the scroll to complete)

I'm not fully sure what #536 is intended to fix, but unfortunately it seems to add a few issues. ☹
To Reproduce
<Carousel
  autoPlay={true}
  autoPlayInterval={1000}
  scrollAnimationDuration={1000}

Screengrab videos
4.0.0-alpha.12 (old code, better performance)
Notice that the CPU time stays low. It increases a little bit during scroll, but otherwise it stays low.
Also, see that it's almost exactly 2 seconds between transitions (1 second for the scrollAnimationDuration plus 1 second for autoPlayInterval)
https://github.com/user-attachments/assets/d1a3fe53-9d65-4c06-870e-f946634848c8
4.0.0-canary.13 (includes #536, worse performance)
Notice that the CPU time stays high. 😮
Also, notice that the time between transitions is not the same as in previous versions.
https://github.com/user-attachments/assets/2043ba01-ff6d-4881-b7b7-7a2c22f6b78b
Versions:

expo: v50.0.20
react: v18.2.0
react-native: v0.73.6
react-native-reanimated: v3.6.2
react-native-reanimated-carousel: v4.0.0-canary.13
react-native-gesture-handler: v2.14.1

Smartphone:

Device: iPhone 15 Pro Simulator
OS: 17.5

hi @dosu. Interesting. A few notes for you:

you mentioned a similar closed issue (and the PR that resolved it). Apart from having mentioned "performance", this other issue does not appear to be related at all.
when suggesting code, can you please suggest TypeScript for consistency with the code in this repository?
overall, I think your suggested code is quite tight, and I like that. However, I have a few questions:
a. what is the purpose of the requestAnimationFrame in the play() function?
b. could startAutoPlay depend on carouselController.prev and carouselController.next instead of carouselController ?
c. shouldn't the re-start after prev() and next() be in their onFinished callback arguments - like it was before #536 ?

@nmassey Hey, thanks for your detailed investigation. I thought about the same issues and also had another question. The requesAnimationFrame may have different performances on different devices. It's my carelessness merging this PR. Let's revert to this one. Thank you.
By the way, I'll investigate this later for the issue of autoPlay causing the animation delay on Android devices.

looks like the following fixes this! Woohoo!!

#672


Fix/artifact page load

WIP
Fix #260
To do for #260:

[ ] Implement logic in the feature sets page
[ ] Implement logic in the models page
[ ] Implement logic in the endpoints page

I implemented a solution for the Data Source page. It's working, but I don't think it's the best solution.
Here are some key points to consider:

Hyperlink names: I had to change the hyperlink names to create query parameter to each row. I couldn't determine if this could cause any errors in other aspects of the app.
Sleep statement usage: I had to include a sleep statement to prevent the selected row from being replaced by row 0 during the callback that verifies the actual selected row.

Please feel free to add any additional insights or suggestions to further enhance the solution.

@giupb this look okay...I tried it out and seems to work good. @luiztauffer made a good observation about how UI's grow in complexity, so as a team we should keep that in mind as we go forward.
Also, when you click back to the main page.. there's kinda a weird red box... I think maybe I'd prefer to have NO selection box on the main page as it doesn't really make sense for the main page:

@giupb @luiztauffer Hey, so as part of this ticket can we have the web_components/table.py take an option for cell selectable and then for the main/top page maybe turn it off ?  The main page looks a bit odd after clicking on a data source :)

@brifordwylie
I fixed the color issue in the data source page too.
Give a try and let me know what you think.

So, the UI looks good... I am a bit concerned about hard coding colors... we have an upcoming ticket on switching themes... but anyway, looks good for now, I would go ahead and merge this.
@giupb can you make a ticket related to the themes where colors are 'looked' up based on the current theme?

I've saved this PR in a local repo for save keeping if we need it. Closing this as it's in conflict with current main.


The list of expected errors is not configurable

The autobuilder check can ignore errors messages based on a list of regular expressions. Currently the list is hardcoded in index.ts and includes errors specific to the MongoDB Realm docs.
We should update this action to accept expectedErrors as a configuration parameter instead of hardcoding so that other projects can define their own errors.

https://github.com/cbush/snooty-autobuilder-check/pull/4


Python 3 pledge

Wanted to bring omnia's attention to the following "pledge"
http://python3statement.github.io/
I think it was brought forward by the IPython people. Specifically, they want scientific python packages to pledge to stop supporting python 2 (for free) after 2020 (python 2.7's eol)

I think this is a reasonable timeframe, and we might want to consider adding omnia to the list of pledged organizations. It would provide nice exposure
I've started discussions for msmbuilder and mdtraj to sign the pledge. I know several packages depend on mdtraj, so this isn't a decision to be made lightly. Please join the discussion there if you have opinions
I don't think anything in omnia depends on msmbuilder. I'll likely try to convince people to drop support before 2020 for msmbuilder. Please join the discussion there if you have opinions

I'm actually +1 on the visibility bump from joining this.
Following the Python guidelines and terminating py2 support by 2020 sounds like a no-brainer.  Before that---are there critical tools that are stopping support early that would make it difficult to go all the way to 2020?

Before that---are there critical tools that are stopping support early that would make it difficult to go all the way to 2020?

IPython / jupyter is dropping support for python 2 soonish. I don't know how that effects us. Other than that, we could probably handle this on a package-by-package basis

IPython / jupyter is dropping support for python 2 soonish.

Soon-ish looks like "mid-2019"---6 months early---according to the diagram.

Other than that, we could probably handle this on a package-by-package basis

Could we just pick a target date omnia-wide and see if we can stick to it? Since there are interdependencies among packages, it might cause a lot more trouble to handle this on a package-by-package basis.

IPython / jupyter is dropping support for python 2 soonish.

Soon-ish looks like "mid-2019"---6 months early---according to the diagram.

This is the last release that supports python 2. In < 6 months, the current version of ipython won't support python 3. So yes, they will continue to support an old version basically until 2020. At the same time, they're being pretty aggressive with their timeline for new releases

In < 6 months, the current version of ipython won't support python 3.

Won't support python 3?

Ah, I see:

How about this plan:

Make sure we are py3-compatible by 2017.
Drop py2 support in mid-2019 when IPython 5.x LTS py2 support ends.

That sounds good to me. Curious to hear what the rest of omnia thinks

Make sure we are py3-compatible by 2017

Do we have an idea of how close to this we are? I've been operating under the sense that nearly everything is compatible with py3. We should gently prod omnia package maintainers to make this a priority.

We should gently prod omnia package maintainers to make this a priority.

I think we need to start this process ASAP. Is there a way we can have our build framework complain when packages don't provide py3 versions, or somehow check this automatically and send out reminders periodically?

Based on using github search for "skip" and examining the skip entries, these packages currently don't get built for py3

assaytools
schema
subprocess32 (this is a backport for py2, so it doesn't count)
pymol
deepchem
graphviz
lomap
ensembler
pytram
yank

Is there a way we can have our build framework complain when packages don't provide py3 versions

We could open a PR that tries to build the omnia metapackage for python 3. Any dependencies it can't resolve will show up

This issue is relevant https://github.com/omnia-md/conda-recipes/issues/103

Based on using github search for "skip" and examining the skip entries, these packages currently don't get built for py3

Thanks for this list! I think the end of 2016 is a realistic goal for most of this list. (No idea about pymol; ensembler might be EOLd and replaced with a new codebase for ensembler2.)
I think we want to both push for adding extra data to each recipe about package maintainers and then find some way to bug them periodically about the impending py3 support deadline (31 Dec 2016).

We could open a PR that tries to build the omnia metapackage for python 3. Any dependencies it can't resolve will show up

Great idea!

As a reminder to all Omnia developers: The Dec 31, 2016 deadline for supporting Python 3 is approaching. How do we want to handle packages which are not up to python 3 compatibility yet? Near as I can tell there has not been any warning/info provided to developers about this since the middle of the year, and pushing for them to have py3 compatibility by year's end may not be reasonable at this point.

Which projects still don't support Python 3?
I went through the ones Matt listed earlier.  Of those, schema, pymol, and yank no longer list [py3k] in their skip sections.  Deepchem still lists it, but that can be removed since it now supports Python 3.  That leaves assaytools, graphviz, lomap, ensembler, and pytram.  What's the status of Python 3 support for those?

pytram is superceded by pyemma and its recipe can be removed in principle.

I'd leave the repo, but we don't need it on omnia.
Am 06/12/16 um 20:13 schrieb Martin K. Scherer:

pytram is superceded by pyemma and its recipe can be removed in principle.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/omnia-md/conda-recipes/issues/551#issuecomment-265243354,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGMeQnE7JEbE38YRwTY70FQaLqsZdct7ks5rFbPFgaJpZM4JIb38.

--

Prof. Dr. Frank Noe
Head of Computational Molecular Biology group
Freie Universitaet Berlin
Phone: (+49) (0)30 838 75354
Web:   research.franknoe.de
Mail:  Arnimallee 6, 14195 Berlin, Germany

From our end:

we never got the pymol recipe fully working, so we can deprecate this recipe, especially since another one is available for osx and linux
schema belongs to @Lnaden and @andrrizzi
I'm supposed to clean up ensembler over the holidays. It's a mess right now.
assaytools is already Python 3 compliant, so we just need to remove that skip section from the recipe. @sonyahanson: Can you do that? We should probably also cut an updated release of assaytools while we're at it.

Schema has been on Python 3 for a while now since we updated to 0.6.2.


change youtube/index.mjs to not confuse chatgpt or run out of tokens

This PR fixes formatting for subtitles to not confuse chatgpt, and slightly improves the prompt. This should make the result better. I've tested the added lines in console, but I haven't fully tested the extension like this yet as I don't have a good build environment for extensions yet. It should work fine.
Not related, but I've made a prototype for adding Replit support to this extension and it should be finished soon.

I understand now, thank you for explaining and for all the contributions you have made to all users

I made some slight adjustments https://github.com/josStorer/chatGPTBox/commit/34cad262a3eac5fc4a936107494f2918ed0c31b1

replacing replace with replaceAll

restoring the comma as the end symbol when concatenating subtitleContent, so that the cropText function can correctly control the number of tokens according to a certain ratio to avoid exceeding the limit

The following is a comparison of the final text content before and after the PR (including modifications I made on your basis). I think this result should meet our expectations

Thanks for catching replace instead of replaceAll. I'm not quite sure how I missed that. I'm not sure why the commas are necessary, but it's fine.

Adding commas is because YouTube's captions don't necessarily include commas. For some particularly long videos, if all the captions are concatenated without any separation, it will not be conducive to cutting to control the token length. Therefore, I proactively added commas for each segment and then cut them based on the segments to ensure that each remaining segment is a complete sentence, which can achieve a better summarizing effect.


Arrow function as type: Using void as return value the compiler does not complain about return value if  on is used.

🔎 Search Terms
arrow function void return value compiler
🕗 Version & Regression Information
Discovered in Version 4.0.2
⏯ Playground Link
Here is a small example which represents the issue
Playground link
💻 Code
let testFunc: (model: string) => void = (model:string) => {
    return model;
};
console.log(testFunc("hello"))

🙁 Actual behavior
The function testFunc returns a value and the compiler does not complain about it even though the declared return type is void
🙂 Expected behavior
The compiler should complain about the return value

Why are functions returning non-void assignable to function returning void?
Your arrow function is not having a void return type. You did not specify a return type, so the compiler is inferring it based on your implementation (which returns model). Then the compiler checks whether the type of your arrow function can be assigned to the type of your variable, which is allowed (as per the FAQ).
You can fix this by providing a return type annotation:
//                                                    vvvvvv
let testFunc: (model: string) => void = (model:string): void => {
    return model;
};

Please note -- the template asks you to check the FAQ for things that are not regressions, and the FAQ explains 'void'. Thanks!


Universal cables do not output over IC2 EU power

Hi Aidan,
I'm using IC2 build 807 and am still unable to get IC2 to output over the universal cables, effectively leaving them as RF cables ;)
Is there any chance this has been missed in v9 - or I am using too old a build of IC2 - I read through the issue history and saw it was resolved.
Using Mek v<IP_ADDRESS>4
Regards,
DraksterAU

Update: Tried b822 of IC2. No change.

I believe youll need to implement the IEnergySink interface for this to work correctly.
I'll do a pull request when it is not 1AM if you dont beat me to it :P
http://ic2api.player.to/ic2api/html/interfaceic2_1_1api_1_1energy_1_1tile_1_1_i_energy_sink.html

Already reported. Fixed IC2 support will come when I have some time :)


Statistics: Estimate how common key rotation within the same selector is

Using a large set of emails, for each domain-selector-pair in the set, try to dkim verify each email back in time (against current DNS record) and see if there is a pattern that older emails before some date cannot be verified, while newer emails can. This would indicate that the dkim key has been rotated for that selector.
In each specific case, there may of course be other reasons, so there is a lot of noise in the data, but for a large enough set of email, it should be possible to obtain some useful statistics.
Implementation idea:
Loop though mbox file(s) and try verify each email with https://pypi.org/project/dkimpy/

We can also backdate dkim keys in our database to the earliest email that verifies with that key and domain and selector!

We can also backdate dkim keys in our database to the earliest email that verifies with that key and domain and selector! Right now we just add the current date right

It's a good idea! Should be quick to implement but I created an issue for it anyhow https://github.com/zkemail/archive.prove.email/issues/101

I have collected some stats but it's not entirely obvious how to interpret it.
I have handcrafted a measure on how likely it is that a certain DSP has been rotated, based on the verification status of different dates.
The crazy image below shows the DSPs sorted by this measure.
For example, the 1st line shows a DSP which started failing in 2022.
I am thankful for any additional ideas, or questions for clarification.

@Divide-By-0 This is for combined_emails.mbox :


Limit number of aerender to be processed

Hello!
I'm not very good in managing and limiting the number of aerender.exe allowed to be operated. I faced an issue as below:

WARNING:After Effects warning: logged one error  error: Rendering error while writing to file ...\result.mov. An output module failed. The file may be damaged or corrupted.

When I search through the web, it says most probably because that I'm using QuickTime for H.264 codec with a large number of threads. Here's the URL: https://forums.adobe.com/thread/1252092
However, I don't know how to limit the amount of thread for aerender.exe . I tried 12 threads on aerender.exe and all crash at the same time. Have anyone experienced on this issue too?

are all of the threads writing into the same file ?

that is unusual than. And i dont have an idea how i can help you :(


added new page: Data science

preview https://deploy-preview-1038--zealous-morse-14392b.netlify.app/docs/3.9/data-science.html


Change the default image registry for the Middleware images

Changed:

Name of the environment variable that stores the image registry address
Default value of the image registry now is ghcr.io/5g-era
Installation instructions on how to deploy the 5G-ERA Middleware

bartos didnt understood ??

From: Bartosz Bratuś @.>
Sent: Thursday, April 13, 2023 3:47 PM
To: 5G-ERA/middleware @.>
Cc: Diwali Diwali @.>; Review requested @.>
Subject: [5G-ERA/middleware] Change the default image registry for the Middleware images (PR #137)
CAUTION: This email originated from outside of the University of Bedfordshire. Do not click links or open attachments unless you recognise the sender and know the content is safe.
Changed:

Name of the environment variable that stores the image registry address
Default value of the image registry now is ghcr.io/5g-era
Installation instructions on how to deploy the 5G-ERA Middleware

You can view, comment on, or merge this pull request online at:
https://github.com/5G-ERA/middleware/pull/137
Commit Summary

51a34eahttps://github.com/5G-ERA/middleware/pull/137/commits/51a34ea27bd329b953b9a8ae8581c1b84e05a269 Change the default image registry for the Middleware images
bf4129ehttps://github.com/5G-ERA/middleware/pull/137/commits/bf4129e301bea2e6bac390f39c79a4fdb21b8860 Deployment instructions correction after making 5G-ERA images public
a7351f4https://github.com/5G-ERA/middleware/pull/137/commits/a7351f4cbd0d32870b57c1290c4fa1c476a7f83a ActionServer readme corrections

File Changes
(11 fileshttps://github.com/5G-ERA/middleware/pull/137/files)

M docs/Administrator/Actionserver.mdhttps://github.com/5G-ERA/middleware/pull/137/files#diff-80eea5086188555f697706d992a3157345b1fac76322742f24035df07776b5be (33)
M docs/Administrator/Middleware_Installation.mdhttps://github.com/5G-ERA/middleware/pull/137/files#diff-e0f051c5a8a822dc55dba33c7232187bbf42bb4061bd6ebcd56b52133f9b4ca8 (156)
M docs/Administrator/readme.mdhttps://github.com/5G-ERA/middleware/pull/137/files#diff-2410180024813b2737091aecda748f23f111c679c6aeccf4ae4722999c64a11e (1)
M docs/Where_to_start/roadmap.mdhttps://github.com/5G-ERA/middleware/pull/137/files#diff-ed9b9908e8e3a00a2343836c9e8bfdd47cbc9088c01ed8ad7cb58211fe6b3377 (8)
M k8s/central-api/central-api.yamlhttps://github.com/5G-ERA/middleware/pull/137/files#diff-ab3910bf924a05a67b1a1621724c09a2cf20a2ec343fa6daa1c556a9475f6da6 (2)
M k8s/gateway/gateway_deployment.yamlhttps://github.com/5G-ERA/middleware/pull/137/files#diff-6ca4566b56070f664f6de7ea587d88a78774424d955236f91d20f2a0affdd6c2 (10)
M k8s/orchestrator/orchestrator.yamlhttps://github.com/5G-ERA/middleware/pull/137/files#diff-9fef80664c9dab6a3adef91cbd60761ba5d9880dcd098eddca3f03fc18762ea4 (42)
M k8s/redis-interface/redis_interface_deployment.yamlhttps://github.com/5G-ERA/middleware/pull/137/files#diff-85bb3072f21f74c83fc846154502be982c75e828916fe2a67522f2755713bb05 (20)
M k8s/task-planner/task_planner_deployment.yamlhttps://github.com/5G-ERA/middleware/pull/137/files#diff-2f0a0b634f2eb8e0f86b7073de42348fed22239f4790e7134a104cc0692ad1c9 (10)
M src/Orchestrator/Deployment/DeploymentService.cshttps://github.com/5G-ERA/middleware/pull/137/files#diff-bd4554b0164363b65b46b5a4eff88ce29994ec07e7013432e95e1dc4c645bf4b (74)
M src/RedisInterface.Sdk/IRedisInterfaceClient.cshttps://github.com/5G-ERA/middleware/pull/137/files#diff-40d01cbbf0d62a6ca68e8ce9687fa0b6e9620c5383a1095774453ba27574277a (8)

Patch Links:

https://github.com/5G-ERA/middleware/pull/137.patch
https://github.com/5G-ERA/middleware/pull/137.diff

—
Reply to this email directly, view it on GitHubhttps://github.com/5G-ERA/middleware/pull/137, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AWIELFKVCRFROQWSTQ5Z3CDXBAGY7ANCNFSM6AAAAAAW5GGM7Y.
You are receiving this because your review was requested.Message ID: @.***>

ROS action goal is a specific protocol, the term protocol I am not sure is it accurate here, if it is then should we define what is ROS action goal protocol is.
@diwalipathak Protocol as a way of exchanging data within ActionClient/Server is a standard defined by the ROS community, I don't think it needs an additional explanation on what it is. But I am not a ROS pro :) @adrianLIrobotics what do you think, shall we add this definition?

the last line [...]
Corrected


Switch to a Python/YAML based build system for wheels

Many things accomplished in this PR:

I switched to using "official" Docker Hub images wherever possible, so that we don't have to maintain them (plus they're smaller, not sure what the magic is because generating that initial OS tarball is a dark art). Previously I was thinking it'd be better to have all the base images built in exactly the same way (and building a few base images is necessary for 32-bit support) but I don't think that's so important.
Debian 8+ and Ubuntu 14.04+ use the native multiarch support to avoid having to create base 32-bit images for these.
Added openSUSE 13, Fedora 21, and 22.
There are now two classes of images on which to build. The first is generic (default) which will build on Debian 6 (squeeze). The idea is that these wheels should be compatible with any other reasonable platform (sorry RHEL/CentOS 5). The second class is full, which will build on every reasonable platform I could get a docker image for. This is currently used by psycopg2 and may be used for a few others where linking to the system versions of libraries (e.g. libpq.so) would be preferred over a potentially outdated/buggy/insecure version statically linked into the wheel. As of now I am not planning to provide a "generic" version of psycopg2
Whatever images are tagged as natefoo/base-wheel and natefoo/base32-wheel will be used to build generic images.

CentOS 7 does not have a 32-bit image because it is not present in RHEL/CentOS 7. I kept 32-bit support for current versions of Debian and Ubuntu just because I figure them (or derivatives) the most likely for being installed on laptops, which is probably the only likely case where you'll find 32-bit Linux anymore. Nothing else has 32-bit support other than the generic wheels.

The discussion on Distutils-SIG continues so this may need to change later, but this should hopefully be enough to get us out the door for now. I'd like to add openSUSE images (which I assume would build wheels compatible with SLES) since SLES is a moderately popular distro in Europe.
I'll try to get the images uploaded to docker hub at some point, but I want to take a moment to figure out why the wheel images seem to be so big (natefoo/centos-7 is only 650 MB whereas natefoo/centos7-wheel is 1.6GB).

Now with 100% less WIP tag!

LGTM/+1, but untested

@erasche The images are currently uploading to Docker Hub in case you actually wanted to test the wheel building. If you wanted to test the image building, glwt. If you didn't want to test anything I'll just click the 'ole merge button there after I've done a few more wheel builds of my own.

@natefoo go for it

Awesome! Great work @natefoo and @erasche!


No support for JVM properties and environment variables

Hi.
I couldn't find any documentation reference for including JVM properties and good old environment variables as configuration source. Due to the popularization of Docker philosophy and 12-factor application concept it would be quite nice to provide library users with simple way to use both sources in their apps. I've already found a workaround with InMemoryConfigurationSource (and i know that documentation will become confusing the very moment it will specify word 'environment' in two meanings), however, i feel that is necessary to update library in that way (or at least mention InMemoryConfigurationSource workaround in documentation).

That's a good catch. JVM and environment properties are not supported as of now. I'll try to add it soon.

This would be super helpful to have, since it would allow for easy integration with 12 Factor Application Configuration conventions. For the EnvironmentVariableSource it would make sense for the Environment to define the prefixed namespace for the Environment Variables that you are interested in.
For example if you had and application name foo, with configurable properties bar and baz, you would format your environment in the following manner:
FOO_BAR="value"
FOO_BAZ="value"
Thus if you have the Environment context set to FOO then I would expect the EnvironmentVariableSource would only return: BAR and BAZ along with their corresponding value.
Let me know what you think. I wouldn't mind working on implementing this feature since, selfishly, this would be very useful for what I need to do. I am looking into using envconsul to insert the config from Consul and Environment variables, instead of using the ConsulConfigurationSource. I figured this will be much more flexible since we have applications not running on a JVM (like nodeJS) and this would provide a more consistent way to configure applications from Consul.

I like this approach a lot. Thanks for working on it.

@etki this is now supported by cfg4j version 4.3.0 :)

@norbertpotocki  YARRR


Return IP address to add it to security group

Is there a way to get the IP address of the EC2 instance? I want to add it to the security group so that the database can only communicate with that instance.

Hi, sorry for the late response. That would probably be the private ip address you need, right?

@snowiow yeah, the private IP.

@snowiow Nice, danke schön!


"restarting" Unirest after shutdown()

Unirest is a singleton, and once you call shutdown() you can't use it anymore, due to it shutting down its connection pool (and I suppose other stuff too).
Unless you call Options.refresh().  That restarts everything just fine.
But its somewhat obscure, also undocumented, that that works.
My suggestion:  Provide a static method on class Unirest that is the official correct way to restart it after shutdown().  Because there are valid use cases where you'd like to stop Unirest then restart it sometime later.
(Plus see #112 which should be fixed for this to work right.)

Hello, this should be resolved or addressed in Unirest 2. Please see the upgrade guide for important changes.

Hi Team,
Kong unirest , post method I am calling every request Unirest.reset(). connectionTimeout(600000). enableCookieManagement(false):
Unirest.post("http://<IP_ADDRESS>").asJson();.
After continues different api call I'm getting socket exception : socket closed and some time I got illicalstateexception connection pool shutdown
Kindly correct me. If I am doing wrong configuration

You shouldn't be resetting the connection over and over again, the configuration on an instance should be fairly static. Any time you call reset() you are going to end up closing the existing pool


[WIP] Extend arrow_fragment API to support report method of GraphScope

What do these changes do?

Related issue number

related issue: https://github.com/alibaba/GraphScope/pull/866

Hi @acezen Can I get this one merged now? I suggest you sign-off your commit to match the requirements of DCO.


Add support for configuring the scanning options

use_coded_phy
use_1mbit_phy
use_extended_payload
use_channel_37
use_channel_38
use_channel_39

As a quick note, default could be
use_coded_phy = 0,
use_1mbit_phy = 1,
use_extended_payload  = 1,
use_channel_37  = 1,
use_channel_38 = 1,
use_channel_39 = 1

Another note, currently ESP32 sends "0" on all fields to nRF52 which should mean that nRF52 doesn't scan anything at all but due to a bug in nRF52 0.5.1 FW nRF52 ends up scanning on Coded PHY only, which looks like not scanning at all unless some devices nearby happen to be using Coded PHY.

@ojousima please check my initial implementation of the scanning options:

All these settings should be displayed only when filtering is disabled, right?
And could you translate these phrases into Finnish?

Let's add a choice for "Include experimental BLE 5.0 long range sensors" for Coded PHY under "Ruuvi Sensors only".
"Which devices to scan" -> "Valitse skannattavat laitteet"
"Ruuvi sensors only" -> "Vain Ruuvin anturit"
"All nearby Bluetooth beacons (for advanced users)" -> "Kaikki lähistön Bluetooth-majakat (edistyneille käyttäjille)"
"Use Coded PHY" -> "Skannaa virheenkorjattuja lähetyksiä"
"Use 1 MBit PHY" -> "Skannaa 1 MBit lähetyksiä"
"Use extended payload" -> "Skannaa pidennettyjä lähetyksiä"
"Use channel XX" -> "Skannaa kanavaa XX"

@ojousima what is the Finnish translation of the phrase "Include experimental BLE 5.0 long range sensors" for Coded PHY under "Ruuvi Sensors only"?

"Include experimental BLE 5.0 long range sensors" -> "Skannaa myös kokeellisia BLE 5.0 pitkän kantomatkan antureita"

Looks good to me


Revisit SQL Connector BBEs

Description:
This task is to revisit SQL connector BBEs and try to break them down into multiple examples. Let's focus only on one scenario in one BBEs and make it very simple to read and understand.

Please refer #2890


Use vsc tab background for tab border

As VSC does not have this divider between file tabs and the editor area, use the tab.inactivebackground for this line to minimize the distraction.
After:

Does the Tabs coloring feature still work after this change?


Headshot Volume

is it really working ? i turn off all local , enemies and allies but the headshot sound still there

I tried it and it works

+1 ^^


Scala Common Enrich: change enrichment configuration to use SchemaCriterion rather than SchemaKey

So that if, for example, somebody upgrades to the next version but doesn't edit their campaign_attribution configuration JSON to 1-0-1 instead of 1-0-0, no exception will be thrown.

Great thinking!

This is done


show_graphic to display

I think that show_graphic is quite long and I already made a lot of errors trying to type that and I think that display is quite easier to understand and remeber

Hi @overplex-eth, thanks for the idea and the PR!
PyTamaro's function names have been the subject of extensive debate in the past, and we're still open to reconsidering our choices to improve naming.
There are a couple of points that need to be kept in mind, however:

PyTamaro's API is localized in four languages (and therefore each change should be consistently made across all languages).
The library is already in use at several places (mostly, schools around Switzerland) and on the PyTamaro web platform; breaking-changes should therefore be considered carefully.
We have two actions (saving and showing) and two types (graphics and animations): the current naming scheme allows us to consistently use the {action}_{type}  pattern.

Having said that, it is admittedly painful to type the rather long name show_graphic for the single most common operation in the library. Most of the pain can be alleviated using an IDE that autocompletes the names while typing.
We might consider a shorter name (e.g., just show) in the future. For the time being, remember that you can always import a name from a module and choose the name you prefer using the "import-as" syntax:
from pytamaro import show_graphic as display

# Have fun with `display`:
display(...)


Facing issue while data is long in QR code .

bluetooth.isConnected;
  // Convert the QR code Uint8List to a base64-encoded bitmap
  await bluetooth.printCustom("Diesel QR Code", 50, 50);
  await bluetooth.printCustom("------------------------", 50, 50);
  await bluetooth.printNewLine();
  await bluetooth.printCustom("Date : $date", 50, 50);
  await bluetooth.printNewLine();
  await bluetooth.printCustom("Trip No. : $tripNo", 50, 50);
  await bluetooth.printNewLine();
  await bluetooth.printCustom("------------------------", 50, 50);
  await bluetooth.printNewLine();
  await bluetooth.printQRcode(jsonEncode(qrDataString), 250, 250, 1);
  await bluetooth.printNewLine();
  await bluetooth.printCustom("------------------------", 50, 50);
  await bluetooth.printCustom("Powered by AeonX Digital", 50, 50);

  // code for print a data to printer

  await bluetooth.printNewLine();
  await bluetooth.printNewLine();
  await bluetooth.printNewLine();

  // Print another blank line (space)
  await bluetooth.printNewLine();

  await bluetooth.paperCut();

  this is my code

await bluetooth.printQRcode(jsonEncode(qrDataString), 250, 250, 1);
i have added side of 250 * 250
but when string to large then it's print small QR as i share in photo .

please provide me solution for this .

when data is large it's print small QR and QR is not scannable .🥲

Hello team!
please provide help on issue,
@juliocbcotta , @maurovanetti , @mvanvu , @ricardochen , @kakzaki , @ziakhan110  @ziakhan110 @flutter-painter @hmtuan196  @wmattei @tauqeerkhattak @knight-dev
need your help !
Thank You in advance 🙂!

Please provide this data example so it can be reproduced.
What does the json look like if you put it in a dedicated object ?
final jsonEncoded = jsonEncode(qrDataString);
How do you build this QR ?

this is my
String qrDataString = "{"T_no":"1699245740","T_date":"06/11/2023","supervisor":"Super Admin","sending_p":"21","sending_p_D":"[GB01] - BOFFA - MINING (GB01)","receving_p":"25","receving_p_D":"[GB05] - KOKAYA - PORT (GB05)","material":"14","material_D":"[11006091] - RB LUMPS 90-120 MM","remarks":"okay","vehical_N":"5","vehical_D":"GJ01BV3021","mining_C_ID":"30","mining_C_D":"TREMPE TRANSPORT","vehical_TW":"null","vehical_C":"100"}"
if similaly i am passing large data in this map variable ,
like this ,
{"T_no":"1699246062","T_date":"06/11/2023","supervisor":"Super Admin","sending_p":"22","sending_p_D":"[GB03] - BOFFA - MINING (GB03)","receving_p":"23","receving_p_D":"[GB02] - KOKAYA - PORT (GB02)","material":"14","material_D":"[11006091] - RB LUMPS 90-120 MM","remarks":"dikfifififidjs5djdtfofhzysigkx  namaste  namaste  ndifjdidudixyfozyfuaogydpdyfodoamaste   ","vehical_N":"5","vehical_D":"GJ01BV3021","mining_C_ID":"30","mining_C_D":"TREMPE TRANSPORT","vehical_TW":"null","vehical_C":"100"}
the getting small QR

there is to much size difference in both QR .
@flutter-painter
simplay if data is large means string length is large then small QR code , if string length is small QR code size is large .

therefore small QR is difficult to scan .please help me

@flutter-painter

Hi Vijay,
Thank you for providing more context. Since this seems an urgent issue could you consider the two following workarounds ?
Setting a maximum length to your text fields son that qr code stays below the ceiling.
Making a 2nd qr code if the first one will not be able to contain all info.
This is only to buy you time to dig deeper in the qr making process. Anyhow you will need a string max length since qr can only contain à certain amount of info and the wider they are the harder it is to scan.

Thank you for instance reply ,
when i am trying increase this width and height value to more than 250 it's not print anything ,
await bluetooth.printQRcode(jsonEncode(qrDataString), 250, 250, 1);
2 different QR not possible in my case i have to maintain every thing in one single QR but main issue is when data increase then QR size is decrease. if in slip there is enough size to expand but it's not working getting small QR code .
how can i increase size of QR . is it possible ?

Everything is possible as long as you put in the efforts.
The Java bit that handles qr creation is in
android/src/main/java/id/kakzaki/blue_thermal_printer/BlueThermalPrinterPlugin.java
It seems to be
BitMatrix bitMatrix = multiFormatWriter.encode(textToQR, BarcodeFormat.QR_CODE, width, height);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bmp = barcodeEncoder.createBitmap(bitMatrix);
Which gives no clue about qr code Size. Note the height and width settings are just wrappers added by hmtuan196. I dont think they will help you.
Though you will need to setup a max length for your strings, I understand that the experienced threshold is not acceptable for you.
Here are two options I See :

Rework this Java code to control qr code generation / rendering
Make the qr code out of this lib using another package, save this qr locally as a png, add the png to your printing process.  See https://github.com/kakzaki/blue_thermal_printer/blob/master/example/lib/testprint.dart

You may want to delete qr code after printing
You might be able to print images from memory instead of handling needed persistence.


Download a flare or logs when the Agent failed to start

What does this PR do?

Download a flare or logs when the Agent failed to start
Motivation

When the Agent fails to start, we do not know exactly why and people need to run it in the DEV_MODE locally to get the logs. Here, in that case, we will:

Generate a flare
Download the flare
Download the logs directly if there was an error while generating the flare (because the Agent is completely broken for instance)
Save the files in the E2E_OUTPUT_DIR, which will be uploaded as artefacts and attached to the job if we are in the CI

Hopefully this will save us some time debugging issues
Additional Notes

Job examples where I forced the upload of the flares AND logs:

https://gitlab.ddbuild.io/DataDog/datadog-agent/-/jobs/544761484 with https://gitlab.ddbuild.io/DataDog/datadog-agent/-/jobs/544761484/artifacts/browse/e2e-output/2024-06-17_08-11-33_215534705/

For now it's only on VMs, not for Docker hosts.
https://datadoghq.atlassian.net/browse/ADXT-336
Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


Is it possible to share the F1 score or accuracy of pre-training the models in their control setting in the image sentence alignment objective?

Hi, thanks to the great repository! Is it possible to post the F1 score or accuracy of pre-training the models in their control setting in the image sentence alignment objective? I don't see these information in the VOLTA paper.

Hi,
Can you clarify what is your goal?
Also, you can run any analysis on all the models pretrained in the control setup (cf. here)


Add Spanish translation

Had some time to spare, and wanted to contribute.
I also modified module.json, I don't know if that's expected but 🤷
Great module! 👍

Big thanks for your contribution! I'll get this released soon!


⚠ Jenkins Plugins Artifactory has degraded performance

In fb94cec, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1205 ms

Resolved: Jenkins Plugins Artifactory performance has improved in cc1c4e4 after 15 minutes.


Support for BigInt

Is your feature request related to a problem? Please describe.
There is no support for BigInt.
Describe the solution you'd like
Add support for BigInt.
Describe alternatives you've considered
None.
Additional context
None.

Closing for now as the usecases are not very common.


[PDI-20189]-Step (or Job) names are unchanged to Japanese character in PDI.

PDI-20189-Step (or Job) names are unchanged to Japanese character in PDI.

:white_check_mark: Build finished in 24m 58s
Build command:
mvn clean verify -B -e -Daudit -Djs.no.sandbox -pl \
engine,plugins/excel/core,plugins/rest/core

:ok_hand: All tests passed!
Tests run: 2474, Failures: 0, Skipped: 13    Test Results

:information_source:  This is an automatic message


steady memory grouth while working on web pages

I'm trying to use Resiliparse to handle CC, but I find that single-process memory usage grows slowly, and web pages get slower, and I can't find the source of the problem with the memory analysis tool, it feels like some sort of memory leak.
from fastwarc.warc import ArchiveIterator as FastWarcArchiveIterator
from fastwarc.warc import WarcRecordType, WarcRecord
from fastwarc.stream_io import FastWARCError
from fastwarc.warc import is_http

from resiliparse.parse.html import HTMLTree

import os
import psutil
import time

file = open("../CC-MAIN-20231129041834-20231129071834-00864.warc.gz", "rb")

archive_iterator = FastWarcArchiveIterator(
    file,
    record_types=WarcRecordType.response,
    parse_http=True,
    func_filter=is_http,
)
idx = 0
s = time.time()
process = psutil.Process(os.getpid())
for record in archive_iterator:
    raw = record.reader.read()
    try:
        str(HTMLTree.parse(raw.decode("utf-8")))
    except:
        pass

    idx += 1
    if idx % 1000 == 0:
        print(process.memory_info().rss / 1024**2, time.time() - s)
        s = time.time()

And here is the output:
91.0625 0.5237786769866943
108.921875 0.5350120067596436
132.015625 0.6991021633148193
132.828125 0.6604471206665039
144.25 0.6309971809387207
149.703125 0.9664597511291504
163.6875 1.0105879306793213
168.65625 0.9966611862182617
175.578125 1.1011531352996826
219.890625 0.9911088943481445
233.671875 1.1710970401763916
238.421875 1.0304219722747803
238.453125 0.9967031478881836
242.5625 1.016160011291504
246.40625 1.0688650608062744
246.40625 1.0952439308166504
246.40625 1.100167989730835
248.84375 1.077517032623291
248.84375 1.0870559215545654
248.84375 1.0127251148223877
248.84375 1.1437797546386719
253.125 1.0540661811828613
255.75 1.1424810886383057
255.75 1.0953960418701172
261.203125 1.1094980239868164
262.96875 1.293619155883789
265.6875 1.2223970890045166
265.6875 1.2639102935791016
265.6875 1.2537767887115479
265.6875 1.1750257015228271
266.203125 1.2749638557434082
266.203125 1.2159233093261719
272.484375 1.2846689224243164
275.515625 1.2536969184875488
275.515625 1.1752068996429443
275.515625 1.156343936920166
275.515625 1.249042272567749
276.765625 1.1668882369995117

Is it the WARC reader or the HTML parser?

It's caused by the HTML parser.

FYI Haven't forgotten you, but I will probably not have time for this before next week.

I'm trying to get to the bottom of this and I can reproduce the behaviour, but I'm suspecting this is not in Resiliparse, at least not in the HTML parser.
Memory usage does grow and the loop times go up as well, but not in a strictly monotonic fashion and it does go back to normal after the loop. You can see this with a modified version of your test code:
import os
import psutil
import time

from fastwarc.warc import ArchiveIterator as FastWarcArchiveIterator
from fastwarc.warc import WarcRecordType
from fastwarc.warc import is_http
from resiliparse.parse.html import HTMLTree

for r in range(3):
    print(f'-------\nRound {r + 1}\n-------')
    file = open('CC-MAIN-20231005012006-20231005042006-00899.warc.gz', 'rb')

    archive_iterator = FastWarcArchiveIterator(
        file,
        record_types=WarcRecordType.response,
        parse_http=True,
        func_filter=is_http,
    )
    s = time.monotonic()
    process = psutil.Process(os.getpid())
    for idx, record in enumerate(archive_iterator):
        raw = record.reader.read()
        try:
            str(HTMLTree.parse(raw.decode('utf-8')))
        except:
            pass

        if (idx + 1) % 5000 == 0:
            print(f'In loop {round(process.memory_info().rss / (1024 ** 2), 3)}MB, {round(time.monotonic() - s, 3)}s')
            s = time.monotonic()

    print(f'After loop {round(process.memory_info().rss / (1024 ** 2), 3)}MB')

This prints stats only ever 5k iterations and after the loop. The whole thing is run three times. These are the results:
-------
Round 1
-------
In loop 38.895MB, 3.704s
In loop 51.941MB, 6.022s
In loop 48.191MB, 5.294s
In loop 51.715MB, 5.336s
In loop 51.039MB, 5.36s
In loop 52.727MB, 6.726s
In loop 59.426MB, 6.596s
After loop 59.426MB
-------
Round 2
-------
In loop 59.426MB, 3.462s
In loop 56.117MB, 6.315s
In loop 56.305MB, 5.681s
In loop 55.559MB, 5.651s
In loop 59.508MB, 5.465s
In loop 57.93MB, 6.182s
In loop 66.922MB, 6.151s
After loop 66.922MB
-------
Round 3
-------
In loop 66.922MB, 3.314s
In loop 66.922MB, 5.8s
In loop 57.469MB, 5.459s
In loop 57.453MB, 5.344s
In loop 61.523MB, 5.485s
In loop 58.355MB, 6.403s
In loop 65.293MB, 6.268s
After loop 65.293MB

When I comment out the HTML parsing part, I get similar results, just with smaller numbers:
-------
Round 1
-------
In loop 29.07MB, 1.395s
In loop 28.703MB, 2.032s
In loop 28.996MB, 2.069s
In loop 26.387MB, 2.067s
In loop 28.926MB, 2.194s
In loop 28.824MB, 2.687s
In loop 28.512MB, 2.722s
After loop 28.215MB
-------
Round 2
-------
In loop 27.094MB, 1.339s
In loop 27.316MB, 2.067s
In loop 28.434MB, 2.096s
In loop 26.07MB, 2.1s
In loop 28.52MB, 2.174s
In loop 28.613MB, 2.717s
In loop 28.441MB, 2.727s
After loop 28.734MB
-------
Round 3
-------
In loop 26.672MB, 1.383s
In loop 28.172MB, 2.092s
In loop 28.465MB, 2.11s
In loop 26.027MB, 2.087s
In loop 28.547MB, 2.259s
In loop 28.727MB, 2.786s
In loop 28.379MB, 2.74s
After loop 28.105MB

The problem could still be in the WARC iterator, but it doesn't matter whether do record.reader.read() or not.

I believe this comes down to two things:

Slight inefficiencies in the buffer (re-)allocation in BufferedReader.read() for larger documents
Measurement biases due to unequal document sizes

I've pushed some changes to address the first issue (see https://github.com/chatnoir-eu/chatnoir-resiliparse/commit/070c5bea7409348f3f74120031f6eb1b183bf6f6, should be up as version 0.14.7 soon).
The second issue seems to stem from the peculiarity that later documents in the CC WARC seem to be larger for some reason. Here's the updated test case:
import os
import psutil
import time

from fastwarc.warc import ArchiveIterator as FastWarcArchiveIterator
from fastwarc.warc import WarcRecordType
from fastwarc.warc import is_http
from resiliparse.parse.html import HTMLTree

file = open('CC-MAIN-20231005012006-20231005042006-00899.warc.gz', 'rb')

archive_iterator = FastWarcArchiveIterator(
    file,
    record_types=WarcRecordType.response,
    parse_http=True,
    func_filter=is_http,
)
s = time.monotonic()
doc_size = 0
process = psutil.Process(os.getpid())
for idx, record in enumerate(archive_iterator):
    raw = record.reader.read()
    try:
        doc_size += len(raw)
        str(HTMLTree.parse(raw.decode('utf-8')))
    except:
        pass

    if (idx + 1) % 1000 == 0:
        t = time.monotonic() - s
        print(f'- Mem: {process.memory_info().rss / (1024 ** 2):.3f}MB, Time: {t:.3f}s')
        print(f'  Avg doc size: {doc_size / 1000:,.0f} bytes ({doc_size / t:,.0f} bytes/s)')
        doc_size = 0
        s = time.monotonic()

and this is the output I get:
- Mem: 38.113MB, Time: 1.311s
  Avg doc size: 66,946 bytes (51,072,165 bytes/s)
- Mem: 43.328MB, Time: 1.212s
  Avg doc size: 68,311 bytes (56,368,554 bytes/s)
- Mem: 44.391MB, Time: 1.331s
  Avg doc size: 77,684 bytes (58,359,236 bytes/s)
- Mem: 39.598MB, Time: 1.350s
  Avg doc size: 71,205 bytes (52,726,787 bytes/s)
- Mem: 47.047MB, Time: 1.794s
  Avg doc size: 100,137 bytes (55,821,540 bytes/s)
- Mem: 47.609MB, Time: 2.320s
  Avg doc size: 126,178 bytes (54,389,112 bytes/s)
- Mem: 50.184MB, Time: 2.570s
  Avg doc size: 136,297 bytes (53,033,381 bytes/s)
- Mem: 50.184MB, Time: 2.474s
  Avg doc size: 137,217 bytes (55,460,560 bytes/s)
- Mem: 43.621MB, Time: 2.410s
  Avg doc size: 134,108 bytes (55,657,294 bytes/s)
- Mem: 54.855MB, Time: 3.065s
  Avg doc size: 130,348 bytes (42,523,542 bytes/s)
- Mem: 56.168MB, Time: 2.511s
  Avg doc size: 140,982 bytes (56,153,766 bytes/s)
- Mem: 48.914MB, Time: 2.557s
  Avg doc size: 136,190 bytes (53,266,714 bytes/s)
- Mem: 56.039MB, Time: 2.415s
  Avg doc size: 130,880 bytes (54,190,620 bytes/s)
- Mem: 56.039MB, Time: 2.559s
  Avg doc size: 144,021 bytes (56,271,220 bytes/s)
- Mem: 56.133MB, Time: 2.609s
  Avg doc size: 136,760 bytes (52,408,612 bytes/s)
- Mem: 56.133MB, Time: 2.486s
  Avg doc size: 134,311 bytes (54,026,425 bytes/s)
- Mem: 56.133MB, Time: 2.665s
  Avg doc size: 148,493 bytes (55,711,127 bytes/s)
- Mem: 57.902MB, Time: 2.554s
  Avg doc size: 138,909 bytes (54,388,351 bytes/s)
- Mem: 58.090MB, Time: 2.384s
  Avg doc size: 132,986 bytes (55,771,938 bytes/s)
- Mem: 58.090MB, Time: 2.340s
  Avg doc size: 127,264 bytes (54,389,318 bytes/s)
- Mem: 59.344MB, Time: 2.597s
  Avg doc size: 145,655 bytes (56,080,040 bytes/s)
- Mem: 58.281MB, Time: 2.292s
  Avg doc size: 130,459 bytes (56,926,567 bytes/s)
- Mem: 56.270MB, Time: 2.587s
  Avg doc size: 138,613 bytes (53,573,365 bytes/s)
- Mem: 63.770MB, Time: 2.553s
  Avg doc size: 143,156 bytes (56,064,818 bytes/s)
- Mem: 63.770MB, Time: 2.924s
  Avg doc size: 167,258 bytes (57,200,267 bytes/s)
- Mem: 63.770MB, Time: 3.018s
  Avg doc size: 179,303 bytes (59,418,696 bytes/s)
- Mem: 67.520MB, Time: 2.960s
  Avg doc size: 180,838 bytes (61,097,126 bytes/s)
- Mem: 67.520MB, Time: 3.100s
  Avg doc size: 181,582 bytes (58,578,426 bytes/s)
- Mem: 67.520MB, Time: 3.106s
  Avg doc size: 175,674 bytes (56,555,773 bytes/s)
- Mem: 60.102MB, Time: 3.052s
  Avg doc size: 181,901 bytes (59,607,821 bytes/s)
- Mem: 60.289MB, Time: 3.233s
  Avg doc size: 189,478 bytes (58,612,400 bytes/s)
- Mem: 65.914MB, Time: 3.519s
  Avg doc size: 197,080 bytes (56,002,349 bytes/s)
- Mem: 65.914MB, Time: 3.073s
  Avg doc size: 171,001 bytes (55,650,275 bytes/s)
- Mem: 65.914MB, Time: 3.141s
  Avg doc size: 168,455 bytes (53,626,643 bytes/s)
- Mem: 57.906MB, Time: 3.054s
  Avg doc size: 169,124 bytes (55,378,074 bytes/s)
- Mem: 64.844MB, Time: 3.234s
  Avg doc size: 187,422 bytes (57,949,408 bytes/s)
- Mem: 65.969MB, Time: 3.586s
  Avg doc size: 192,435 bytes (53,664,155 bytes/s)
- Mem: 65.969MB, Time: 3.015s
  Avg doc size: 168,865 bytes (56,000,414 bytes/s)

The rate per actual processed byte seems quite constant to me.


Attempt microarch build

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

It seems I was mistaken about the ability to cross-compile, at least with this mechanism.  We may need to ask for help or clarification.

If each builder would cross-compile to all microarchs this would certainly blow the 6h time limit... So, the only viable alternative would be to have one builder per microarch, but that would mean more than a hundred builders. So, I'm not sure this will work.

Yeah, the docs do say:

Adding microarchitecture variants can result in too many entries in the build matrix. Do not overuse it.

One compromise could be to enable the multi-arch build for only recent versions of Python.

It seems to be going forward.
But there are some issues still:

For aarch64 we get:

Error: unrecognized option -march=x86-64-v4
cc1plus: error: unknown value 'x86-64-v4' for '-march'
cc1plus: note: valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a armv8.6-a armv8.7-a armv8.8-a armv8-r armv9-a

so, we need to disable the microarchs for that arch, since it doesn't make sense. How do we do that? (Or maybe we don't need to; see below).

I'm seeing things like -march=core2 -mtune=haswell -mssse3 being added to CXXFLAGS, so maybe we do not need to add -march=x86-64-vX by hand at all?

Clang on MacOS is not cooperating. During the configure checks we get:

/configure: line 2052: 12563 Illegal instruction: 4  ./conftest$ac_exeext

So, the CGAL check is failing since the binary cannot be run.  :-( Can we enforce GCC in this case? Although, the proper solution in this case is to change the test so that only successful compilation is needed, not execution.

It seems like -O2 is being appended to CXXFLAGS along the way, but we should have -O3, otherwise the whole thing is moot. Do you know where this override is coming from?

I'm seeing things like -march=core2 -mtune=haswell -mssse3 being added to CXXFLAGS, so maybe we do not need to add -march=x86-64-vX by hand at all?

Right, the x86_64-microarch-level package introduces that flag (by placing a script into the build environment's etc/conda/activate.d/).  The only time we need to add it by hand is when we declined to install that package in the build environment, i.e. for level 4.

So, the CGAL check is failing since the binary cannot be run. :-( Can we enforce GCC in this case? Although, the proper solution in this case is to change the test so that only successful compilation is needed, not execution.

I think we need to stick with the conda-provided compiler on osx, which means sticking with clang.  I think the "proper" solution is the best option, even if we need to implement it with a patch.  In fact, we already have a patch for this.  See meta.yaml:
source:
  patches:
    # When cross-compiling, don't let configure run a CGAL test program.
    # Just trust the location we pass via --with-cgal
    - patches/skip-cgal-check.patch  # [build_platform != target_platform]

... so we just need to expand that condition in the "selector":
    - patches/skip-cgal-check.patch  # [build_platform != target_platform or microarch_level == 4]

(or we could just remove the selector entirely, in which case the patch is always active and the cgal check would never be executed.

It seems like -O2 is being appended to CXXFLAGS along the way, but we should have -O3, otherwise the whole thing is moot. Do you know where this override is coming from?

I'm not 100% certain about this, but I think it's coming from the following places on linux and mac, respectively:

https://github.com/conda-forge/ctng-compiler-activation-feedstock/blob/a9b4929bf211696131aabefe02a34f3b75f6ee11/recipe/conda_build_config.yaml#L48-L93
https://github.com/conda-forge/clang-compiler-activation-feedstock/blob/main/recipe/build.sh#L7

This might sound hacky, but I suppose we could just strip out O2 and replace it with O3 in our own build.  Apparently even the Python feedstock does this under certain configurations.

BTW, is it even necessary to strip out the -O2? From what I've read, one can simply append -O3 in which case gcc (and presumably clang, too) will just ignore the earlier -O2 flag.

This is true, but I wasn't sure where exactly -O2 was being appended... It seemed to be happening at the very end.

Apparently I misremembered how that CGAL patch works.  Upon reading the actual patch file, I see that we need something different.  That patch relies on autoconf's ability to detect cross-compilation.

OK, good catch. Let's try now.

It seems the test
if [[ "${microarch_level}" == "4" ]]; then
    CXXFLAGS="${CXXFLAGS} -march=x86-64-v4"
fi

is being triggerd by the build:
osx osx_arm64_numpy1.22python3.8.____cpython

But I don't get it...

But I don't get it...

I agree.   I can't figure out why microarch_level is defined at all in those build variants, since the selectors in conda_build_config.yaml should be eliminating it entirely.  It must be a bug in conda-build.  Maybe one workaround might be the following?
microarch_level:
  - 1
  - 3  # [unix and x86_64]
  - 4  # [unix and x86_64]

Meanwhile, the other builds got far enough along that the test step ran, and failed.  We should disable testing entirely for level 4.

We need to disable level-4 testing in both graph-tool-base and graph-tool.
https://github.com/conda-forge/graph-tool-feedstock/pull/140/commits/7285f9e5fe88a402d90cd1bfaf30a9c6ee8ac72e#diff-f3725a55bf339595bf865fec73bda8ac99f283b0810c205442021f29c06eea9aL124-L128

Will do, but the flag -march=x86-64-v4 is still seeping in for osx osx_arm64_numpy1.22python3.8.____cpython somehow...

Oh we probably have to rerender after making that change to conda_build_config.yaml.
@conda-forge-admin please rerender

I'm not sure what was taking the bot so long, so I ran the re-render myself.

I downloaded some of the built artifacts from this PR, and tried installing them on my own machine (by following these instructions).  They seem to work as expected!

For the record, here's what I did:
You can see which architecture your machine has via:
conda info | grep archspec

And you can figure out which level that corresponds to using the following table, which I generated from this file.

Click here for table of microarch names and levels
   microarchitecture  level   family
0             x86_64      1   x86_64
1             nocona      1   x86_64
2              core2      1   x86_64
3                k10      1   x86_64
4          x86_64_v2      2   x86_64
5            nehalem      2   x86_64
6           westmere      2   x86_64
7        sandybridge      2   x86_64
8          ivybridge      2   x86_64
9          bulldozer      2   x86_64
10        piledriver      2   x86_64
11       steamroller      2   x86_64
12         x86_64_v3      3   x86_64
13           haswell      3   x86_64
14         broadwell      3   x86_64
15           skylake      3   x86_64
16           mic_knl      3   x86_64
17        cannonlake      3   x86_64
18         excavator      3   x86_64
19               zen      3   x86_64
20              zen2      3   x86_64
21              zen3      3   x86_64
22         x86_64_v4      4   x86_64
23    skylake_avx512      4   x86_64
24       cascadelake      4   x86_64
25           icelake      4   x86_64
26    sapphirerapids      4   x86_64
27              zen4      4   x86_64
28           ppc64le      8  ppc64le
29          power8le      8  ppc64le
30          power9le      9  ppc64le
31         power10le     10  ppc64le

I have access to a Mac with a skylake CPU (level 3) and a Linux machine with sapphirerapids CPU.
On the Mac, I downloaded both a level3 and level4 package and tried them both.  As expected, level4 could NOT be installed on my machine:
cd conda_artifacts_20240528.12.1_osx_64_microarch_level4numpy1.26python3.12.____cpython
conda create -n test-gt -c file://$(pwd) 'graph-tool-base=2.68=*402'

...

Could not solve for environment specs
The following package could not be installed
└─ graph-tool-base ==2.68 py312hef4c000_402 is not installable because it requires
   └─ _x86_64-microarch-level 4.*  but there are no viable options

But level3 CAN be installed, and seems to function normally.
On my linux machine, I tried a level4 package, and it worked.  Just to be sure it actually uses AVX-512, I ran objdump -d on libgraph_tool_inference.so, and inspected the output as described here. Indeed, it seems to contain plenty of AVX-512 instructions.

PS -- Here's a useful article (assuming it's correct) detailing which consumer CPUs (including Macs) support AVX-512 and thus could theoretically benefit from a level-4 build.  It's not all that many models.

This is outstanding!
I think we benefit from level 3 substantially, even if level 4 is not widely available.
So, can we merge this?

So, can we merge this?

Sounds good to me…

Adding such builds unconditionally induces unnecessary strain on the infrastructure.
Could you please heed https://conda-forge.org/docs/maintainer/knowledge_base/#microarch

Before learning how to use it, please read these considerations:

Adding microarchitecture variants can result in too many entries in the build matrix. Do not overuse it.
These optimized builds should only be used when the performance improvements are significant.
Preferrably, the project should rely on runtime dispatch for arch-specific optimizations.
If the package is already too large, consider using smaller outputs for the arch-optimized variants.

and reconsider the extend of your approach?
To put things into perspective:
The single run https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=945053&view=results
produced 2GB of package files and occupied about 74h of overall CI time (assuming I summed everything up correctly).

@mbargull Happy to reconsider.  I had also been wondering if this would be too much.
Before this PR, this feedstock ordinarily built 20 variants, resulting in ~1GB of storage.  After this PR, that doubled to 40 variants and ~2GB storage.
One option we were considering is to restrict the platforms that get microarch-specific builds:

osx_64 should probably only support level 3.  IIUC, I doubt many level-2 Macs are still in use, and very few level-4 MacBooks were ever made.  Eliminates 10 variants.
Python 3.8 (and perhaps Python 3.9) is old, so maybe we shouldn't bother with extra optimization.  Eliminates 2 (or 4 variants).

That would bring us down to 26 variants in total (~1.3 GB storage).

osx_64 should probably only support level 3. IIUC, I doubt many level-2 Macs are still in use, and very few level-4 MacBooks were ever made. Eliminates 10 variants. [Edit: See this wonderful wikipedia page for details.]

@stuarteberg, beware that Rosetta2 doesn't support AVX (at least until macOS 15=Sequoia, still in beta), so if you build just a v3 for osx-64, there will be issues for those who use an osx-64 environment with Rosetta2.
Only recently, bioconda started adding osx-arm64 builds, so almost all environments that required at least one bioconda package had to use Rosetta2 with osx-64 environments.


Add support for posting to Tumblr

Note - I've never done any Coffeescript before. I manually edited the javascript I had in node_modules via my NPM install and then back-ported to coffeescript.

Okay, I guess this isn't happening. Closing this because it's been forever.


Modified commit description to display question tags & difficulty level

Changed function parseStats to return commit message from TIme and Space information to question tags and difficult level of question.

Commit message will change form
Time: 1724 ms (5.13%), Space: 37.8 MB (98.68%) - LeetHub
TO
[ Backtracking, Tree, Depth-First Search, Binary Tree ] Medium

It makes more sense to have a table of difficulty and other problem stats. LeetHub's time and space complexity make more sense the way it is. As mentioned previously #114, having a table would be more intuitive.
Please open a new PR if you're working in that direction.

Has the functionality been integrated @pkdhirasaria @QasimWani

Has the functionality been integrated @pkdhirasaria @QasimWani

It was decided that this is a user-specific request and more generally will be to have time and space complexity as a commit message, if you want to have this feature then you can pull my changes and use a modified version

Has the functionality been integrated @pkdhirasaria @QasimWani

It was decided that this is a user-specific request and more generally will be to have time and space complexity as a commit message, if you want to have this feature then you can pull my changes and use a modified version

Yes I noticed that in your repo @pkdhirasaria
I find it a much better alternative, would be great can you help me with it.. how to set it up since it's a chrome extension.
Also I think if it can be added as an option in the extension itself in future that'd be a nice addition!


POST return ID of newly created record?

Currently a successful POST is returning: {success: {code: 201, status: "Created"}}
Is it possible for the ID to be returned also, so I can use it right away?
I did this: https://github.com/captainclam/ArrestDB/commit/58ee661173804ceff57bfa2b13c56995a6e48a62
But not sure if it's a good idea, so have not submitted as a pull request. (disclaimer: totally untested on tables that do not have an id column or auto-increment id)

It would be better to keep the 201Response body empty, and add a Location header with the url of the newly created resource. (As described for example in http://williamdurand.fr/2012/08/02/rest-apis-with-symfony2-the-right-way/)

Anything back would be better than nothing at all. Even if the @ogizanagi seems more elegant.
Now, we're in full black when inserting. The fastest option(that I see) is to make a GET after, providing a discriminant value (playing with a timestamp).


Override default values for user settings by administrator

There has been many complaints about instance ticker flooding the feeds
This is a feature request so setting can be changed by admin
Right now you have to modify the code
Not sure why https://github.com/syuilo/misskey/issues/6983 was closed

各種設定値のインスタンスデフォルト値定義機能は計画してるけど実装はまだ先になりそう
https://github.com/syuilo/misskey/issues/6983#issuecomment-757096105

各種設定値のインスタンスデフォルト値定義機能は計画してるけど実装はまだ先になりそう
https://github.com/syuilo/misskey/issues/6983#issuecomment-757096105

Yes if it is planned then issue should remain open. It's ok that's why this issue was created. Thank you @rinsuki

Yes if it is planned then issue should remain open. It's ok that's why this issue was created. Thank you @rinsuki


Where to take pbounds from in order to perform optimization?

Hello, my question is how to discover the pbounds values in order to perform optimization?
On the example code:
# Bounded region of parameter space
pbounds = {'x': (2, 4), 'y': (-3, 3)}

I'm new to his method, so sorry if the question is way too obvious for some.
As far as I can understand,
Lets say that I have a dataset with a target variable, say, "sales" that I want to predict with linear regression with sklearn.
Would it be the right choice to take sales max and min value to use it as pbounds?
Or pbounds refer to some of the error metrics usually found in models like MSE, RMSE and etc that we take after the first training?
As far as I can understand, my code would look like this after importing, but I lack the instruction on how to get pbounds from
from sklearn.linear_model  import LinearRegression
from bayes_opt import BayesianOptimization

# model
lr_model = LinearRegression().fit(x_train, y_train)
# x_train and y_train already exists from previous lines...

# prediction
# yhat_lr = lr_model.predict(x_test)

# Bounded region of parameter space
pbounds = {'x': (2, 4), 'y': (-3, 3)}  # take pbounds from some variable(?????)

optimizer = BayesianOptimization(f=lr_model, pbounds=pbounds, random_state=1)

optimizer.maximize(init_points=2, n_iter=3)

print(optimizer.max)
#etc...

Hope I made my question clear! It's my first time testing this library and I really don't know where to find a variable to take the pbounds from. Really thanks!

Hey @AndrewLaganaro. If I understand you correctly, fundamentally your goal here is to predict some metric (sales).
This repository is not primarily concerned with regression (prediction), although it makes use of regression to perform optimisation. Instead you could take a look through sklearn. I've linked you to gaussian process regression because that is what we use in this repo, but there are about a million and one ways to perform regression - in any case sklean is a good place to start.


TypeScript: Pluck has a type safety detonator in it

Bug Report
Current Behavior with reproduction example
The pluck operator is working poorly with some cases in terms of type safety.
We use a rig to generate props for React components from Rx Observables. The function uses Partial of the Component Props type and expect this type to be returned. In general we have something like this:
interface MyPropType = {
    id: number;
}
interface ComponentProps = {
    myProp: MyPropType;
}

const Component: React.FC<ComponentProps> = ({ myProp }) => (
    <div>{myProp.id}</div>
);

// It's the general idea, not the actual implementation
const Container = withRx(Component)(({ myStream$ }) => ({
    myProp: myStream$.pipe(pluck('someField')),
}));

So, it's pretty fine with that in terms of type safety. Let's assume we have the following in myStream$:
interface MyData = {
    anyField: { id: number };
}

const myStream$: Observable<MyData> = /* ... */

Type inference for pluck will work in an unexpected way. If you look carefully, you'll see that if someField is absent from the expected object type than keyof can't be inferred and we have a general overload that gets some R from what it is expected to be:
// pluck.d.ts
/* ... */
export declare function pluck<T, R>(...properties: string[]): OperatorFunction<T, R>;

The problem in this case is that we have a type for myProp field and the R is inferred from it. So, we have a false expectation that there should be MyPropType returned from pluck. But suddenly, there is an undefined there, in runtime.
Expected behavior
It's expected to have any kind of type check error if we pass a key that's absent in the object type we have in the pluck input regardless of the expectations.
Environment

TypeScript version: 3.5.2
RxJS version: 6.5.2

Yeah, this could be better. It's inferred as unknown:
const source = of({ foo: "bar" });
const plucked = source.pipe(pluck("goo")); // Observable<unknown>

Because, as you've pointed out, it matches the catch-all, rest parameter signature - but it should effect a compile-time error. The catch-all should include a rest parameter after the other parameters - as in this pipe signature.

And if you are more specific, it has specific type, not the unknown.
interface A {
    foo: string;
}

const source: Observable<A> = of({ foo: 'bar' });
const plucked: Observable<A['foo']> = source.pipe(pluck('goo')); // Observable<string>

And we can't be less specific in interfaces as we can with const/let.

Looks like this signature works for the catch-all and it definitely returns unknown that you should process manually:
export declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5]>(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6, ...properties: string[]): OperatorFunction<T, unknown>;


Fixed a bug that may cause TypeError.

Once the data is already numpy.ndarray, it will return NoneType valua which overwrite the rawdata in the other functions.

fixed a bug that may cause TypeError. to Fixed a bug that may cause TypeError

@Gabrielvon
Sorry for my late reply.  And, thank you for a wonderful update !!
I fully agree with your change.
So, as soon as CI passes through it, it will be imported into master.
Thank you.

@tsurubee no probs. I wonder if it goes through? What does All checks have failed means? It is my first time to pull and request to merge so sorry thatI don't what is the right way to do it.

@Gabrielvon
Sorry for my late reply.   All checks have failed means that not all of the CI tests go through (see Details of Travis CI result)
And,  the parts that are in error are as follows
Traceback (most recent call last):
  File "/home/travis/build/tsurubee/banpei/tests/test_hotelling.py", line 16, in test_hotelling
    self.assertEqual(expected, len(results))
AssertionError: 2 != 200

What I want to tell you is that the scope of PR is not appropriate.
Although you mentioned only TypeError in the above comment, various codes such as speeding up Hotelling theory and multidimensional extension of SST etc. are committed without explanation to actual PR contents.
In such a case, thinking about the side of the reviewer, I think that it is better to separate the PR appropriately.
In conclusion what you want to do to merge this PR;
First, changing your code to go through the CI test.
Second, delete the commit that exceeds the scope of the PR title or clip it to another PR.
If what you want to use is different from what I'm thinking, you can fork it and change it as you like, or you can copy it and make it in another form.
Thank you.

I see. I am thinking keep all changes on my forked version since that is more suitable for me. For now, shall we discard this request? I may pull requests step by step based on the scope of changes in the near future.

Thank you for understanding.
Many of your changes were great, but you packed too much with PR, I can not merge for master.
Thank you so much for your PR!

Totally understood. I am pretty new to git so that lots of rule that I am not familiar with. Thanks for guiding me on this operations.


Python - service.accounts().reports() - v2.0 - Pulling CSV

Hi Google team,
Is it possible that there is a problem with the export of CSV file via the API?
I tried to add alt='csv' in my request but that does not change anything to my output.
So:
result = service.accounts().reports().generate(
    id, query, sort,
    alt='csv').execute()

returns the same json-like object as
result = service.accounts().reports().generate(
    id, query, sort,
    alt='json').execute()

Any other paramater in alt throw back an expected:
Parameter "alt" value "csv2" is not an allowed value in "[u'csv', u'json']"

Thanks a lot
Xavier

Hi @lukiesd I would have thought this is an open issue still, as the library throws an exception if alt is neither 'csv' nor 'json', but only ever returns json. If "json-centric", then the 'csv' option should be removed, no?


Priority of modulo operator vs. equality operator is wrong

my_var % 10 == 0 seems to be parsed as my_var % (10 == 0) instead of (my_var % 10) == 0
the workaround is to always use the parenthesis but we should probably fix this at some point. I do not know how many other operators are affected. We should have some tests for this.

Duplicate of #178 :-)


Add a screenshot to the README

How about you make the screenshot, add a link to it in README.md, and make a pull request for it?  I'm not really sure what it should include, but I have an idea that will have to wait for me to add some more features.

Maybe once the documentation is up to snuff

lol documentation

:^)

When/if I start working on this again (I started adding tons of features and it became a mess and then I stopped working on it, but I'll need it eventually), and when it gets to the point that it's worthy of a screenshot (such as when it comes with built-in curses and OpenGL (GLFW) interfaces), I'll add a screenshot.  In the mean time, I'm going to reopen this, since it there should be a screenshot.


How to enable Screen Sharing for Jitsi Meet embedded videoconference?

I can use the mic and even select video sources or share a YouTube video while connected with other users
BUT clicking on Screen Share does not show any prompts to allow it
I even went into my MacOS Big Sur (latest version) privacy settings and allowed screen recording manually, but even after rebooting my Mac nothing happens when clicking on the Screen Share icon within Jitsi Meet embedded js window
Any pointers on how to solve/fix this issue?
Big Time CONGRATULATIONS to all the Nativefier Team and Collaborators
NOTE: I tried the same by creating a test app with Google Meet and there is no way to share screen even if I enable permissions inside the same privacy panel for screen recording :(   I think this is a highly requested feature these days.

Duplicate of #927?

Duplicate of #927?

Yup, thanks Matt. Closing; @inglesuniversal pls look at / follow #927


[WIP] Deny OOM, embrace try_reserve

With Rust 1.57, several try_reserve methods have been stabilized. This PR makes bincode take advantage of this.
A nightly flag can be set to disable all fallible allocations. This is currently blocked on the following features:

[ ] allocator_api tracking issue

[ ] Arc::try_new
[ ] Rc::try_new
[ ] [Box::try_new_uninit_slice](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.try_new_uninit_slice
[ ] AllocError

[ ] new_uninit tracking issue
[x] try_reserve on more collections: tracking issue

And uses the following features, although this could be implemented manually:

[ ] maybe_uninit_slice tracking issue
[x] vec_spare_capacity tracking issue (stabilized on jan 18, 2022)

Other useful issues:

[ ] Vec::push_within_capacity to reduce the amount of unsafe code to replace Vec::push tracking issue

Codecov Report

Merging #448 (5d4fae1) into trunk (882e227) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##            trunk     #448   +/-   ##
=======================================
  Coverage   62.19%   62.19%
=======================================
  Files          46       46
  Lines        3383     3383
=======================================
  Hits         2104     2104
  Misses       1279     1279

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 882e227...5d4fae1. Read the comment docs.

Relevant issues:

RFC for fallible allocation (all of them): https://github.com/rust-lang/rfcs/pull/3140
Tracking issue for more_fallible_allocation_methods : https://github.com/rust-lang/rust/issues/86942

Forgot a closing paren there in the PR description?


Prerequisites section is duplicated

Same "Prerequisites" section appears twice.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 82d92157-ab0e-b538-c284-32c70da8e2dd
Version Independent ID: 86d6c2eb-5931-27ee-3df9-a1d0889d510a
Content: Group/organize backlog items - define features and epics - Azure Boards
Content Source: docs/boards/backlogs/define-features-epics.md
Product: devops
Technology: devops-agile
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

@KitPatterson - Thank you for the correction. I'll update the topic later today.


Fix issues with frame tracks when loading a capture

When loading a capture, Orbit can be in a state where hooking a function
that has hits in the "Live" tab must not be allowed, either because
Orbit is not in a connected state (no process selected) or because the
module to which the function belongs is not loaded. In both these cases,
the "Hook" option is disabled in the "Live" context menu, however it was
incorrectly possible to hook a function by enabling a frame track. In
the connected state, this leads to a crash when taking a capture with
the incorrectly hooked function.
We now apply the same check that is used for enabling the "Hook" context
menu entry when enabling the frame track for a function to make sure
it's only hooked when possible.
Bug: http://b/174296341
Tested: Manual tests for the cases described on the bug.

Minor comments, looks good. I trust your testing on whether this really covers all cases now. Thanks!

Hmm, I don't know if I trust myself, but I've gone through the cases you mentioned on the bug.

Thanks for fixing this, but it feels a bit hacked and more complicated then it should be. Maybe we can rework once more on the design of frame tracks (who stores what), to make this all clearer.
I think this change is fine for the release (as it absolutely fixes the issue described), but for master we should try to make it cleaner.
WDYT?

Thanks for fixing this, but it feels a bit hacked and more complicated then it should be. Maybe we can rework once more on the design of frame tracks (who stores what), to make this all clearer.
I think this change is fine for the release (as it absolutely fixes the issue described), but for master we should try to make it cleaner.
WDYT?

Apart from encapsulating the logic a bit more, I don't see right now how to really make this a lot simpler. The state is unfortunately complex with Orbit being in connected state vs. disconnected state, hooking of functions has to be correct with respect to frame tracks, frame tracks settings has to be reflected in DataManager and CaptureData, etc.
One option that radically simplifies this would be to disallow enabling frame tracks after capture. That is, you have to enable it in the "Functions" tab. That pretty much removes all weird states, as one has to be connected and has to have loaded the module.
Maybe that's ok from a user's perspective?

I think this change is fine for the release (as it absolutely fixes the issue described), but for master we should try to make it cleaner.
WDYT?

Maybe there's room for improvement (although Orbit can be in many states and this is a reflection of that), but in my opinion the fixes on master and on the release should initially be as similar as possible.

One option that radically simplifies this would be to disallow enabling frame tracks after capture. That is, you have to enable it in the "Functions" tab. That pretty much removes all weird states, as one has to be connected and has to have loaded the module.
Maybe that's ok from a user's perspective?

Hmm, I pretty much like the possibility to actually add frame tracks after capturing, but that might be actually no real-user perspective. There is probably not much of a difference for a user before a capture to hook a function vs. to enable a frametrack. And in the most cases it will be the same function anyways. So maybe thats the way to go.

Maybe there's room for improvement (although Orbit can be in many states and this is a reflection of that), but in my opinion the fixes on master and on the release should initially be as similar as possible.

Would be also fine to me, if we start working on "a proper" fix (if that even exists, maybe I am also just wrong here).

I'll merge this for now, but definitely want to discuss this more, @florian-kuebler and @dpallotti, to see if we can come up with an overall cleaner solution.


Network optimization

Hello @StarpTech, well done, this is one of the best projects for k3s terraform for Hetzner I've come across.
About the network config, it is actually not taking full advantage of the capability of the Hetzner private network. So what is happening now I figure is that your current config uses the default flannel network overlay that ships with k3s, on top of the Hetzner private network.
But it turns out that the network overlay is not needed, and as the Hetzner team recommends in the CCM docs, it is best to use the private network itself as native routing for Kube, without network overlay. And this is exactly what they do in their E2E tests for the CCM, and they disable with the --no-flannel argument for k3s, and deploy cilium instead, which has support for native routing.
All the manifests and templates used in their tests can be found here https://github.com/hetznercloud/hcloud-cloud-controller-manager/tree/master/e2etests/templates
Let me know what you think! 🙏

Hi @mysticaltech thanks for opening an issue. This sounds interesting.
Those two statements are also great https://github.com/hetznercloud/hcloud-cloud-controller-manager/blob/a0e90cae61a27892eaeb59359e1121f766b80334/e2etests/setup.go#L286-L305
If it works as before with a better CNI configuration, I'd be happy to accept a PR.

Perfect @StarpTech, will submit a PR as soon as I have something.

Friendly ping. Are you still interested?

@StarpTech I ended up doing a similar project with cilium. K-Andy did inspire me a lot. I will share the code as soon as I push it online so you can take whatever you want from it.

@StarpTech Here's the repo, just pushed it https://github.com/mysticaltech/kube-hetzner, thanks for everything, and keep up the good work! 🙏

Cool, thanks for sharing! I did a lot of changes to k-andy the last days which might be useful for you too.
Some things which come to my mind:

agents get constant names, if you once have to recreate a server and it will get the same name, it cannot join (I solved it by adding random_pet behind it
https://github.com/mysticaltech/kube-hetzner/blob/master/variables.tf#L10-L13 can be calculated by TF: https://github.com/StarpTech/k-andy/blob/main/ssh.tf#L12-L15
I replaced https://github.com/mysticaltech/kube-hetzner/blob/master/master.tf#L51-L57 by https://github.com/StarpTech/k-andy/blob/main/kubeconfig.tf
Do CCM pods run on your control-plane? https://github.com/mysticaltech/kube-hetzner/blob/master/manifests/hcloud-ccm-net.yaml#L49-L50 — They didn't for me: https://github.com/hetznercloud/hcloud-cloud-controller-manager/issues/226 — and when it was not running constantly e.g. when replacing all agent nodes at once it brought the cluster into a weird state.

Interesting, to thanks for that, will look into each point and let you know. Really appreciate this info 🙏


Small pico unicorn cleanups

Just some minor namespace pollution and float stuff. This saved me ~1k on my already tiny binary that I didn't need to optimise.
Looks like similar gamma stuff is also used in other places, trying to avoid changing a bunch of other stuff though. (The "c++ way" of fixing this would be #include <cmath> and std::pow, but went with the smaller change).
Also slightly annoying is the three identical gamma LUTs wasting 1k of RAM... but I don't need that either so :shrug:

1k you say? That's good news for our MicroPython build if it has the same effect. I'll need to test this!
Thank you

Looks like it saves ~1544 bytes on the MicroPython build.
Before:
Memory region         Used Size  Region Size  %age Used
           FLASH:      590900 B       640 KB     90.16%
             RAM:      238780 B       256 KB     91.09%
       SCRATCH_X:          0 GB         4 KB      0.00%
       SCRATCH_Y:          0 GB         4 KB      0.00%
   text	   data	    bss	    dec	    hex	filename
 590796	    104	 205292	 796192	  c2620	/home/phil/Development/pico/micropython-v1.18/ports/rp2/build-PICO/firmware.elf

After:
Memory region         Used Size  Region Size  %age Used
           FLASH:      589356 B       640 KB     89.93%
             RAM:      238748 B       256 KB     91.08%
       SCRATCH_X:          0 GB         4 KB      0.00%
       SCRATCH_Y:          0 GB         4 KB      0.00%
   text	   data	    bss	    dec	    hex	filename
 589252	    104	 205292	 794648	  c2018	/home/phil/Development/pico/micropython-v1.18/ports/rp2/build-PICO/firmware.elf

I need to somehow get this magic into GitHub Actions so it can notify build size changes.

Works fine in MicroPython, plus the flash saving. Much appreciated! Thank you.
As for the three LUTs and the sometimes-there's-a-gamma-table-include mess... uhmm. Yeah.

Well, that was a nice bonus. (Not sure where it came from, would've thought there were still other uses of pow... but okay)


Fix potential_service_ports uninitialized variable error

When args.use_existing_gcp_resources is true(some of our testing environments set this), potential_service_ports is never set, which breaks some tests like test_api_listener

oh thanks for the fix! looks test_forwarding_rule_default_port is also using this.


chore(Algebra/Group/Aut): Do not import MonoidWithZero

Move what needs it to a new file Algebra.GroupWithZero.Action.Basic which will eventually contain more content coming from Algebra.SMulWithZero.

Regarding the import changes to GroupTheory.GroupAction.Group: This file will soon stop existing, so don't worry too much

bors d+

bors merge

bors merge


Improve comment stripping errors

Before, these looked like:
compiling main pipelines: compiling Pipeline[0]: stripping runs comments: 14:13: not a valid test operator: -m

Now, these look like:
compiling "hwloc" test pipelines: compiling Pipeline[0]: stripping runs comments: 14:13: not a valid test operator: -m:
> if [[ uname -m == 'x86_64']]; then
              ^

First big change is that we include the package name in the error. Without this, it was really challenging to find which package actually had a syntax error.
Second big change is that we use the nice structured error we get back from the shell parsing library to include the line that failed with a cursor pointing at the column that failed.

best. change. ever.
2024/12/13 08:58:23 INFO evaluating pipelines for package requirements
2024/12/13 08:58:23 INFO ERROR: failed to test package. the test environment has been preserved:
2024/12/13 08:58:23 INFO   workspace dir: /home/user/tmp/melange-workspace-2064787666
2024/12/13 08:58:23 ERRO failed to test package: compiling python-as-wrapper.yaml tests: compiling subpackage "python-as-env" tests: compiling Pipeline[0]: stripping runs comments: 17:1: "for foo [in words]" must be followed by "do":
> for val in bogus-prog-name PYTHON_AS;
  ^


[OSS-ONLY] Update BABEL_4_4_STABLE default branch and upgrade-test-configuration.yml

Description
clone_engine_repo.conf: update BABEL_4_4_STABLE__PG_16_5 to BABEL_4_4_STABLE__PG_16_6
upgrade-test-configuration.yml: update Vole version due to 14.14 and 15.9 are skipped
Check List

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 74.151%

Totals

Change from base Build<PHONE_NUMBER>9:
0.0%

Covered Lines:
44982

Relevant Lines:
60663

💛  - Coveralls


Is it possible to use a static library?

Is your feature request related to a problem? Please describe.
I want to ship a Godot Engine monolithic build with a single executable.
Describe the solution you'd like
Embed velopack as a static library inside of the Godot Engine executable
Describe alternatives you've considered
Use https://github.com/folbricht/desync and hack an upgrade system out of it.
Additional context
Add any other context or screenshots about the feature request here.

If you are compiling yourself like you mentioned in #300 (probably with MSVC) then you can change the crate output type from dylib to staticlib and achieve this.
Are you requesting that Velopack ships pre-compiled static libs?

requesting that Velopack ships pre-compiled static libs

For the sake of separating the different issues. Let's say yes to shipping pre-compiled static libs.

Fixed in https://github.com/velopack/velopack/releases/tag/0.0.942


OVN adoption procedure

Also several tiny fixes in other places of the documentation included.

I resolved the indentation conflict (maybe i shouldn't have merged the indentation PR first ;) ). Merging, thanks!


TODO: Update JSON code to ArduinoJSON 6.xx

For some reason, Arduino IDE is updating ArduinoJSON to 6.xx version. This means McLighting won't be compatible, manually downgrade to ArduinoJSON 5.13.2 until we fix the code.

Hi @debsahu,
thank you for investigating. I have no McLIghting installation available this week to try out but I will think I may find time next week.
Best reagrds
Tobias

This push should address this issue. Needs testing before merging with master.

Hi @debsahu,
thank you for fixing this. More changes than I expected.
I've put this version on my testing setup. It seems to work flawlessly. The only thing I've noticed was a restart/hangup after some hours, but I had this with the experimental branch too, so it seems not to be related with these changes, I guess. I didn't experience these restarts before with this setup (Core 2.4.1, NodeMCU board, 24 pixel ring, no caps, resistors). Message in the console was:
" ets Jan  8 2013,rst cause:4, boot mode:(1,7)
wdt reset"
When you also think that this is not related, we could merge the push.
Best regards
Tobias

ArduinoJSON changes are extensive and it's a good thing as the library is extremely light, written in same template manner as NeoPixelBus.
Regarding resets: I'm thinking ws2812fx seems to be the issue, can't pin point exactly. Someone on gitter of also experiencing the resets as well, by just running rainbow mode for 6 hrs or so. My test rig is stuck in another project for a while now and the other one is using NeoAnimationFX and not showing any issues.

Hi @debsahu,
I merged your changes in dev branch, along with some minor changes from me, to the master. I hope everything is fine.
I couldn't reproduce the restarts today, I will have a look at it.
Regards
Tobias


Fix tests

Added target to support macOS and iOS testing.
Test now embed frameworks and run correctly.

LGTM


Website: :bug: code example chip to same on first page

Description
The bug with the code examples still happens, but only on the first page load, when there is no fragment selected (and the current path doesn't match any of the chip paths)
Re-using the existing conditional check for selected seems to fix it for the first page as well.

forgot to apply the const dissolving before I hit the merge button 🙈 (I think it's fine though)


Could Not Sync Tables

I am getting this error when I run pg2ch command.
The script started working fine, the synchronization started, and then I got this error:
could not start: could not sync tables: could not sync $TABLE_NAME: could not commit transaction: driver: bad connection

The issue was in the size of memory. The size has been fixed by increasing it.


Check Team Project 2 Submission

Please check our HW 2 submission

Thanks, Alon :)

Excellent work! 💯