rambox: fix crash when downloading files to disk

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

I will also backport SenchaCmd because upstream is using the same version in its build.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: rambox
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: rambox
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnfree = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnfree = true; }
to ~/.config/nixpkgs/config.nix.

No attempt on x86_64-linux (full log)
The following builds were skipped because they don't evaluate on x86_64-linux: rambox
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnfree = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnfree = true; }
to ~/.config/nixpkgs/config.nix.

backport: 0cfdeb3baf4 1855a92cea4


seems to be working in development if CORS-Plugin is activated

Hi GOSolutions,
just changing the URL pointing to the example data set from your local Geoserver instance should do the job. Keep in mind that you need the CORS Plugin to make it work in development environment. You can see that when monitoring the requests using the Web developer console of your browser.
Please changed the URL depending on your installation - I configured tomcat that geoserver-2.23 is available at the given URL for that I can run several geoserver instances within one tomcat each having a slightly different URL including the version number.
The limit-parameter is optional (depending on your dataset, while the f (format) parameter is notz needed in your application - it is set by the header option in line 33.
Feel free t ask any further questions and let me know which error do occur on your side. Make sure that

the web-frontrend definitely tries to fetch data (protocoled request in browser tools)
the OGC API service returns the data at all by trying the URL that should return GeoJSON Features in a separate browser tab

Regards
Marco Lechner

not that I forget: happy Xmas!


[WIP] add sentry integration

This is blocked on https://github.com/rust-lang/docs.rs/issues/1151#issuecomment-719742434 and hearing back from mozilla legal about the privacy policy.

Closing in favor of https://github.com/rust-lang/docs.rs/pull/1486.


Developed a gem to use Fluffy with RoR

Hi, I've developed a gem to use Fluffy with Ruby on Rails asset pipeline.
Just want to notice you about it. It's disponible here : https://rubygems.org/gems/fluffyjs
or on my Github repository : https://github.com/bastienrobert/fluffyjs-gem
Have a nice day !

Hey @bastienrobert!
That is so awesome. Thanks a lot for your help and contribution! 👍


Auto scroll to language from search function.

I think a part of it has to do with using the context menu to define a selection, after which it should work fine.


[feat]Product Search Filter

This feature allow users to search for products by name, category, and price range.
Description

[X] added API endpoint(/api/v1/products/search) for searching products.
[x] Implemented search filter by name, category, minPrice or maxPrice.
[X] Handles unexpected errors and return the appropriate status code.

Related Issue (Link to Github issue)
This PR is related to the issue here

Motivation and Context
To provide users with a robust and flexible product search capability, making it easier for them to find specific products based on various criteria.

How Has This Been Tested?
Wrote Feature Test
✓ it fetches products when searched by only name
✓ it fetches products with category parameter added in query
✓ it fetches products with minPrice or maxPrice parameter added in query
✓ it returns empty for non existent products

Screenshots (if appropriate - Postman, etc):

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[X] I have read the CONTRIBUTING document.
[X] I have added tests to cover my changes.
[X] All new and existing tests passed.

The documentation for this endpoint can be found here

This PR doesn't follow the proper response. Fix the responses on your action


Update saber blocks

Make changes corresponding to https://github.com/JCSDA-internal/mpas-jedi/pull/793.  SABER blocks in yamls are reorganized.  Update to a newer build that includes the corresponding changes in SABER.
Do this after the SABER PR is merged.

Work is started in feature/refactor_saber_block.  Need to add a new build and run tests still.  Probably best to wait until after https://github.com/JCSDA-internal/oops/pull/1920 is merged before creating the new build.


Wrong selected color for branch icon

Testing #229359
There is a second branch on the same commit, and the icon is dark when selected in light+ theme

Great catch! This should look like the rest of the workbench badges:


Logging cannot be set to NOTSET similar to transformers

Describe the bug
In the transformers library you can set the verbosity level to logging.NOTSET to work around the usage of tqdm and IPywidgets, however in Datasets this is no longer possible. This is because transformers set the verbosity level of tqdm with this
disable=bool(logging.get_verbosity() == logging.NOTSET)
and datasets accomplishes this like so
not_verbose = bool(logger.getEffectiveLevel() > WARNING)
Steps to reproduce the bug
import datasets
import logging
datasets.logging.get_verbosity = lambda : logging.NOTSET
datasets.load_dataset("patrickvonplaten/librispeech_asr_dummy")

Expected results
The code should download and load the dataset as normal without displaying progress bars
Actual results
<ipython-input-4-aec65c0509c6> in <module>
----> 1 datasets.load_dataset("patrickvonplaten/librispeech_asr_dummy")

~/venv/lib/python3.7/site-packages/datasets/load.py in load_dataset(path, name, data_dir, data_files, split, cache_dir, features, download_config, download_mode, ignore_verifications, keep_in_memory, save_infos, script_version, use_auth_token, task, **config_kwargs)
    713         dataset=True,
    714         return_resolved_file_path=True,
--> 715         use_auth_token=use_auth_token,
    716     )
    717     # Set the base path for downloads as the parent of the script location

~/venv/lib/python3.7/site-packages/datasets/load.py in prepare_module(path, script_version, download_config, download_mode, dataset, force_local_path, dynamic_modules_path, return_resolved_file_path, **download_kwargs)
    350                     file_path = hf_bucket_url(path, filename=name, dataset=False)
    351                 try:
--> 352                     local_path = cached_path(file_path, download_config=download_config)
    353                 except FileNotFoundError:
    354                     raise FileNotFoundError(

~/venv/lib/python3.7/site-packages/datasets/utils/file_utils.py in cached_path(url_or_filename, download_config, **download_kwargs)
    289             use_etag=download_config.use_etag,
    290             max_retries=download_config.max_retries,
--> 291             use_auth_token=download_config.use_auth_token,
    292         )
    293     elif os.path.exists(url_or_filename):

~/venv/lib/python3.7/site-packages/datasets/utils/file_utils.py in get_from_cache(url, cache_dir, force_download, proxies, etag_timeout, resume_download, user_agent, local_files_only, use_etag, max_retries, use_auth_token)
    668                     headers=headers,
    669                     cookies=cookies,
--> 670                     max_retries=max_retries,
    671                 )
    672

~/venv/lib/python3.7/site-packages/datasets/utils/file_utils.py in http_get(url, temp_file, proxies, resume_size, headers, cookies, timeout, max_retries)
    493         initial=resume_size,
    494         desc="Downloading",
--> 495         disable=not_verbose,
    496     )
    497     for chunk in response.iter_content(chunk_size=1024):

~/venv/lib/python3.7/site-packages/tqdm/notebook.py in __init__(self, *args, **kwargs)
    217         total = self.total * unit_scale if self.total else self.total
    218         self.container = self.status_printer(
--> 219             self.fp, total, self.desc, self.ncols)
    220         self.sp = self.display
    221

~/venv/lib/python3.7/site-packages/tqdm/notebook.py in status_printer(_, total, desc, ncols)
     95         if IProgress is None:  # #187 #451 #558 #872
     96             raise ImportError(
---> 97                 "IProgress not found. Please update jupyter and ipywidgets."
     98                 " See https://ipywidgets.readthedocs.io/en/stable"
     99                 "/user_install.html")

ImportError: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html

Environment info

datasets version: 1.8.0
Platform: Linux-5.4.95-42.163.amzn2.x86_64-x86_64-with-debian-10.8
Python version: 3.7.10
PyArrow version: 3.0.0
I am running this code on Deepnote and which important to this issue does not support IPywidgets

Hi @joshzwiebel, thanks for reporting. We are going to align with transformers.


Construct LRU with new as required in modern ES

LRU is a class, so it has to be constructed with new in ES2015.

This actually won't be required until the project moves to version 5 of LRU. Closing for the time being.


Set declarative pipeline plugin to 1.2.9

Bump pipeline-model-definition from 1.0 -> 1.2.9, as well as its dependencies
Reorganize plugins.yml/ its e2e test. The former categories of "core plugins" etc is no longer relevant.
Alphabetize plugins.yml and its e2e test to make it more readable and easy to work with

@jmbowman Good point. I'll do that next time I make a change like this.


Copy As Markdown - Second Look & Notes list context menu listing [feature request]

Is there any chance of reviving this feature in the current version of the app? It certainly would be very handy to copy as markdown. as @brentsimmons points out, markdown to outline is diffucult, but I think most users would agree that is of secondary importance in this case.
Since we have export to markdown, can't we have copy to markdown?
Regards,
Pramod.
Originally posted by @pramjan90 in https://github.com/vincode-io/Zavala/issues/6#issuecomment-1192852797

Also, for the copy function, is there any chance of including the tags and reference links?
Cheers!

Duplicate of #6.
@pramjan90, the copy function works at the row level. Not the outline level. Tags and reference links are an outline property, not a row property. There wouldn't be anything to include in a copy function.
We could add tags and reference links to the Markdown export of an outline if there was a standard to do so.  Some Markdown editors and readers use YAML front matter, but there is no formal standard and it is only used in a few applications. Using YAML front matter may break Markdown editors/readers that don't recognize it. It is better to just not support it. You could write a Shortcut that does add it to an exported Markdown outline. I just can't include it in the main app.


Epub, pdf not showing documentation lxd

Details
I have tried downloading the documentation on lxd but I only has a couple of pages

Read the Docs project URL:lxd.readthedocs.io
Build URL (if applicable):
Read the Docs username (if applicable):

Expected Result
I would expect that the webpage documents be in the downloadable format.
A description of what you wanted to happen
I want to be able to download the documentation for the version of lxd I have to be able to reference it offline.  Not to have new features in the documentation that I can't use in the stable version I am using, so not to confuse why things don't work.
Actual Result
I get 2 pages and a couple of blanks pages and nothing else.
A description of what actually happened
I went to see if I could download the documentation from lxd.readthedocs.io and there is that option, however the download doesn't contain the documentation.

@sh2515 Hi! are you the owner of that project? In case you are, can you build the PDF/Epub locally using Sphinx (outside Read the Docs).
In case you aren't, you should contact the project maintainer and report the issue in their issue tracker. They may not be building the PDF (or configured it properly).


Issues instrumenting NewRelic from hook

How do you get around the requirement of having require('newrelic') as the first executed line of the application? I normally add this line to the app.js file in the project root and run my apps with node app.js. However, if it's missing from there the New Relic UI complains with:

Some modules were uninstrumented during the current time window: connect, express, mongodb. Make sure require('newrelic'); is the first line of the application's main module.

Yes, is a little problem, but this hook is for try delete the friction :-)
about this, the only problem that I see is that I want load newrelic just in production environment... any idea to resolve this?

@jasonsims check now, I added a register.js, so, in your app.js you put require('sails-hook-newrelic/register'); in the first line and the config is loaded :-)
the problem is how to avoid this under different production environment

maybe @mikermcneil can help about how to pass newrelic object from out of sails


Support @parcel/watcher

Description
Chokidar is slow and known to have issues with file descriptor limits when working with large projects. Parcel's watcher is much faster out of the box and additionally supports watchman as a backend, which improves support for Windows and minimizes overhead for projects already using watchman.
Nuxt recently added support for @parcel/watcher: https://github.com/nuxt/nuxt/pull/20179
Suggested solution
Add option to use @parcel/watcher
Alternative
No response
Additional context
Related issues:

https://github.com/vitejs/vite/issues/11468
https://github.com/vitejs/vite/issues/2547#issuecomment-801528123
https://github.com/vitejs/vite/issues/12495
https://github.com/vitejs/vite/issues/8341
https://github.com/vitejs/vite/issues/11938

Twitter discussion https://twitter.com/patak_dev/status/1649060364431028226
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

We've discussed this before (Discord thread) and are open to trying it in Vite 5. The main blocker for me is that @parcel/watcher isn't publishing precompiled binaries like lightningcss and esbuild, so it brings a larger published size by default.

We've discussed this before (Discord thread) and are open to trying it in Vite 5. The main blocker for me is that @parcel/watcher isn't publishing precompiled binaries like lightningcss and esbuild, so it brings a larger published size by default.

Vite should not depend on a C++ compiler being present as that is a major pain point for users.

How so? Vite is already using esbuild. And has ecosystem support for SWC and lightningcss.

@parcel/watcher isn't publishing precompiled binaries like lightningcss and esbuild

@silverwind I think you misunderstood this comment. I guess you understood that comment as "@parcel/watcher isn't publishing precompiled binaries" and "@parcel/watcher uses node-gyp / C++ compiler".
But I believe @bluwy meant to say "@parcel/watcher isn't publishing precompiled binaries for each OS/arch in a separate package like lightningcss and esbuild does".

Just for my curiosity, any reason for not considering Turbowatch?

Just for my curiosity, any reason for not considering Turbowatch?
Mentioned in the original thread #12495 (comment)
It uses fs.watch under the hood by default and otherwise fallsback to other mechanisms, including Watchman.

From a maintenance standpoint, a pure JS module would be much better than C++ modules, which tend to require constant maintenance to not break because of ABI changes etc. It you check the issue tracker of parcel-bundler, there are a number of open issues about non-working platforms.

That + it is very easy to add custom backends. Here is an example chokidar backend.
The default backend basically checks if fs.watch can be used, and if it can, then it uses it, or otherwise fallsback to chokidar.
The other thing worth mentioning is that Turbowatch implements file hashing on top of file change triggers provided by the backend. In practice, we've found that this dramatically reduces the number of unnecessary re-renders as compared to mtime based systems.

Releasing separate npm packages per platform has been on my list for @parcel/watcher for a while, just haven't had time yet. If someone wants to contribute that, it would be helpful, otherwise I will get to it at some point soon hopefully.

which tend to require constant maintenance to not break because of ABI changes etc

This particular change is very rare actually. Node-API is ABI stable, so should not break between versions of node. There are a few very obscure platforms that we haven't implemented backends for yet, or we need to provide pre-builds for so you don't need a compiler (once we have separate packages per platform this will be much easier), but in general it is very stable. It's exceedingly rare that an issue comes up that is caused by the watcher itself. Implementing low level stuff like this in compiled languages with deep integration into the OS provides a lot of benefits, especially in regards to performance (e.g. watching and debouncing occurs on a background thread).
@parcel/watcher is extremely widely used at this point (3M+ downloads per week on npm alone), including by VSCode, Nuxt, Nx, Parcel, etc. If there are things Vite needs in order to adopt it, I'm happy to help where I can.

Update: I've released @parcel/watcher v2.2.0 which publishes individual packages per platform/architecture, and includes prebuilt binaries for a bunch more as well. See the release notes for a full list.

I made two branches to test it out:

@parcel/watcher: https://github.com/vitejs/vite/tree/bluwy-parcel-watcher
fs.watch: https://github.com/vitejs/vite/tree/bluwy-fs-watch

Made fs.watch mainly because we need a wrapper for @parcel/watcher to work, and that wrapper can be easily applied to fs.watch too. Both branches are not optimized and failing in tests now though (pnpm test-serve).
For @parcel/watcher, I'm getting FATAL ERROR: HandleScope::HandleScope Entering the V8 API without proper locking in place. For fs.watch, the tests are hanging somewhere. Both are likely because they are creating many watcher instances to fit Vite needs, where we need an API to watch out-of-project-root paths.

The Entering the V8 API without proper locking in place error appears to be due to the tests running inside worker threads. If you set the vitest threads configuration to false it does not occur. This hasn't been something we've needed yet, but I can look into it. Sorry about that!

I did some work to support multiple threads over in https://github.com/parcel-bundler/watcher/pull/146. There is an alpha version published if you want to try it out: v2.2.1-alpha.0. I ran the vite tests from your branch with this version and it seemed to work better. The remaining failures seem related the an API change for the on method that aren't accounted for in @vitejs/plugin-vue for example (causing "eventHandler is not a function" errors later). Let me know if this works better for you. I'll be doing a bit more testing on my side as well to ensure this is stable before releasing.

Yeah it's probably not the most performant. On macOS it's probably fine, but on Linux there is a pretty low inotify watcher limit and watchers are not recursive by default so we have to traverse the directory hierarchy and watch each sub-directory manually. I noticed that you're calling subscribe on a lot of overlapping directories inside the project, rather than watching once from the root of the project. This will currently result in common directories being traversed and watched more than once.
If possible I'd recommend watching from the root of the project instead of watching each directory. You could also potentially use a similar interface to what you have but keep track of all the directories that were watched and find the minimal set of common root(s) between them to actually watch. We could potentially do something like that in @parcel/watcher itself eventually, but I might even implement that as a JS wrapper anyway - not sure if there is much benefit to doing it in C++.

It currently also adds the project root here
https://github.com/vitejs/vite/blob/f385f2025c63f8804795ee359e53e4e76fcc27d1/packages/vite/src/node/server/index.ts#L356
So the subscribe shouldn't be called too much as there's an overlap guard, unless it's out of root. In Rollup/Vite, we have a this.addWatchFile API for plugins to watch and depend on certain files, so we need a Watcher.add function to dynamically handle those. A potentially not-so performant part with this is that we can only watch directories, so addWatchFile can only watch the file's directory and indirectly watch more than it's needed.
@ArnaudBarre also had an idea that we only watch what's needed. For example, at the start we don't watch anything, but as we start to serve the app and crawl the transformed files, we add each of them to be watched. With the current Watcher class, this might not be great for perf.

Apologies for the delay! I have now released @parcel/watcher v2.3.0, which includes support for worker threads, a new kqueue backend to support freebsd, and a wasm backend to support stackblitz. https://github.com/parcel-bundler/watcher/releases/tag/v2.3.0

I've took another stab to use @parcel/watcher (https://github.com/vitejs/vite/pull/14731). We need to keep compatibility with chokidar's API for now to not break the ecosystem, which I implemented in the PR, but it's becoming a larger undertaking than expected.
The wrapper to use @parcel/watcher is fairly big that it might be worth creating a separate library too, so for now we'll be moving this out of the Vite 5 milestone. We can definitely experiment this more in future minors (e.g. optional peer deps to enable it) and then create a migration path for the ecosystem to move to this new watcher API.

@bluwy If compatibility with chokidar is desirable, what was the reason for not considering Turbowatch?
We've been using it now for ~7 months without an issue.

Personally the package size is too big (though Vite bundle dependencies and I have not measured what the size would be). But it also depends on chokidar, and in that case it would be simpler if we use chokidar directly? It looks certainly robust but we're not going to use all of its features, and we usually try to balance the cost of functionality per package size in Vite.

Interesting. Was not even aware of the package size.
If zx gets updated (or if it is made a peer dependency), the size drops to 10MB.
Removing of the other dependencies though would be challenging without compromising the developer experience.
Could maybe separate the core from the binary. Happy to explore if there is interest.

Please let me know what would help. We can probably put at least some of what you need in @parcel/watcher itself. I've already put in quite a bit of work to support Vite, so it would be awesome to see it through! 🙂

@devongovett Appreciate the work as always! I think what we need is an easy migration path to use it, since it's usually an implementation detail so we don't want it to be too breaking. A couple ideas:

Create a chokidar fork with the same API but uses @parcel/watcher.
Or create a new (and better) watcher interface, and Vite can easily create a chokidar compat layer.

The packages could be done by anyone though. We can then support as an optional peer dep and push it. However I'm a bit tied on bandwidth at the moment 😬

What would be nice in regards to @parcel/watcher is:

https://github.com/parcel-bundler/watcher/issues/92
A way to identify if create or delete is caused by a file or directory (chokidar has this, though I don't have a large usecase for it)

Additional notes:

We initially thought that @parcel/watcher was similar to chokidar, but it seems to be closer to fs.watch so it's not the anticipated amount of work we expected for the milestone. Though I tried my best attempting it.
An ideal case would be to have Rollup adopt @parcel/watcher too, and I think the requirements would be the same as us.

From what I know of Vite HMR, I don't think this 1. and 2. are needed. Plus I still think that this change would be the occasion to remove the default watch of the whole working dir that then need some edge cases. This is something that I like to work on, but didn't get to it during v5 beta

1 and 2 is needed because we expose server.watcher. I've also thought about the "watch lazily" plan but ultimately I dont think it's feasible because:

Feels like a big overhead on startup as you're watching many tiny files/directories in a burst, and need tooling to consolidate and deduplicate watchers. (This is also where a chokidar like interface makes it easier to manage)
We cannot detect added/removed tsconfig.json within the root that would've affected .ts files. (discussed with dominik about this one)

Chokidar also supports glob pattern for file watch and ignored option as well but I don't see any glob support by Parcel Watcher (at least not from the docs on the readme).
To be fair though, it seems that the Chokidar author wanted to remove globs in this open Chokidar version 4 PR but I doubt it would be merge anytime soon since the PR is 1.5 year old at this point... which reminds me globs feature was removed from rimraf not long ago but quickly added back because too many users begged for the glob support :).  So anyway, does Parcel Watcher support globs and if not then how would Vite go about it?

Yes, glob ignores are supported. They're pretty efficient too - they get compiled to a regex and matched in the C++ layer (off main thread). https://github.com/parcel-bundler/watcher#options

Yeah it's probably not the most performant. On macOS it's probably fine, but on Linux there is a pretty low inotify watcher limit and watchers are not recursive by default so we have to traverse the directory hierarchy and watch each sub-directory manually.

Node just made native recursive watching available on Linux. It was originally added in Node 20, but had some bugs, so you couldn't use it just yet. It seems to be working now as of Node 20.13/22.1+. Perhaps @parcel/watchers could adopt it now?

We have already used the same OS APIs that node is using for years. Their implementation would be subject to the same OS limits.

Ah, yeah. I guess you would need to implement fanotify to address this (https://github.com/parcel-bundler/watcher/issues/87)

We need to keep compatibility with chokidar's API for now to not break the ecosystem

This feels like probably too large of a barrier to me. Vite exposes chokidar's options, which means you would need to re-implement every single option that chokidar has. And it's also a bit constraining too - what if @parcel/watcher has an option that chokidar doesn't? Then how do users access it? If we're releasing a new major then I think we can break the API and have folks migrate. Especially since most users won't be setting the server.watch option anyway.
If we told people they needed to migrate from chokidar to @parcel/watch then there are some things that don't seem possible to migrate today, which is the larger concern to me. Probably the largest one I noticed is the followSymlinks option that chokidar has : https://github.com/search?q=followSymlinks+path%3Avite.config&type=code

What would be nice in regards to @parcel/watcher is:
Support a non-recursive mode parcel-bundler/watcher#92

Does chokidar support this? I didn't see that it did, but might have missed it

A way to identify if create or delete is caused by a file or directory (chokidar has this, though I don't have a large usecase for it)

I guess this refers to having add|addDir|unlink|unlinkDir events.
I found only one example of listening only to directory events: https://github.com/avisek/frontend-mentor-solutions/blob/8deb2852d58228a4dffe06d4653c8b8ceab904d0/vite.config.ts#L174
Listening only to file events happens more often, but I'm not sure if adding in directory events would harm anything in these use cases or not.
E.g. with vite-plugin-watch-and-run:
https://github.com/patsissons/movies.place/blob/822051126dc30e077bb381528f62c7e7fe9fe429/vite.config.ts#L26
And vite-plugin-virtual-mpa:
https://github.com/PhoenixIllusion/babylonjs-jolt-physics-plugin/blob/9e8980804bbea735cdadc141553b2eeb7f32cf6e/basic-examples/vite.config.ts#L29

Does chokidar support this? I didn't see that it did, but might have missed it

I assume you made a typo and meant @parcel/watcher instead of chokidar

No, I actually meant chokidar. Because if chokidar doesn't support it, then we're no worse off if we switch to another library that also doesn't support it

Just so it's on the record: I am very open to adding new features to @parcel/watcher to support Vite. We just need to define what those features are, and someone needs to have time to implement them.

it seems that the Chokidar author wanted to remove globs in this open https://github.com/paulmillr/chokidar/pull/1195 PR but I doubt it would be merge anytime soon since the PR is 1.5 year old at this point...

Someone else picked up that PR in https://github.com/paulmillr/chokidar/pull/1304, which is being actively worked on, so I don't think it's completely stalled out. It could still be a little while, but it does look like glob support will be removed from chokidar eventually

I wonder in which ways @parcel/watcher is better than chokidar? It sounds like it might primarily be better for Windows users:

Parcel's watcher is much faster out of the box and additionally supports watchman as a backend, which improves support for Windows and minimizes overhead for projects already using watchman.

But is it worth adding all these native dependencies for Mac and Linux users? Why not just use the Node.js APIs on those platforms instead of needing a native distributable?

same reasons you'd use chokidar: https://github.com/paulmillr/chokidar?tab=readme-ov-file#why

@benmccann
Re chokidar options, I mean it's exposed API instead, under server.watcher where plugins could call .add() to watch additional files etc. The options can be handled like how lightningcss is integrated today, so we don't have to match the options.
Re non-recursive watching, chokidar supports this when you watch a single file, and only its directory is watched. Any recursive directories within it is not watched. This is commonly used for this.addWatchFile.

Also, (personally) @parcel/watcher's scope now is more comparable to fs.watch than chokidar. We need a higher-level interface to manage watched files. (The relationship is like svelte and sveltekit)

@devongovett what I meant is why doesn't @parcel/watcher use the Node.js APIs instead of needing a native distributable? Is there some API that Node doesn't expose that @parcel/watcher requires or something like that?
I just looked through the two open issues linked to from the issue description and they don't really relate to what file watching library we use. One is about which files we should watch and the other is about the dev server hanging mostly related to circular dependencies or maybe too many open files (but not too many watched files).
I'm wondering if anyone is even having issues with chokidar now at all or what the driving motivation for a switch would be. It would be helpful if there were some very large project we could test on where you could clearly see the difference between libraries. While some other projects have chosen @parcel/watcher, they have different usage patterns and make use of different APIs and so I don't know if people are seeing the same types of issues while using Vite. I don't really see issues clearly attributable to chokidar in the issue tracker here.

And with chokidar v4 coming along (could propose changes), plus node constantly improving fs.watch, maybe it still make sense to stick with chokidar?

Is there info on this somewhere? The v4 branch on the repo is over 2 years old.

why doesn't @parcel/watcher use the Node.js APIs instead of needing a native distributable?

It uses low level C APIs provided by the OS that Node doesn't use or expose. That's why it's more efficient.

I'm wondering if anyone is even having issues with chokidar now at all or what the driving motivation for a switch would be.

There are clear issues that led to this being opened in the first place, and led others like Nuxt to switch. I don't use Vite so I'm sure others can speak to this better than me. I'm mainly here to help Vite adopt if they choose to. I have already put in a significant amount of work to help with this, including implementing several new features, as you can see in the thread. So far it has been deferred, but I remain available to help if needed.

Is there info on this somewhere? The v4 branch on the repo is over 2 years old.

There was active discussion today about releasing chokidar v4 in the next month: https://github.com/paulmillr/chokidar/pull/1304

It uses low level C APIs provided by the OS that Node doesn't use or expose. That's why it's more efficient.

Any details you can share? I'm curious which situations we'd see the performance differences

What's your motivation for commenting on this issue? Seems like you're interested in this space but if you're not having issues with chokidar then why get involved here?

I'm a maintainer and want to ensure we're doing our due diligence in choosing whether to introduce breaking changes, native dependencies, etc.

You don't like native modules? FWIW, chokidar uses a native dependency too.

I think that they can at times introduce an extra layer of complications. I know I've hit issues with sharp's on numerous occasions, but esbuild's have never caused much of an issue. I'm not really sure why they've caused me headaches in one situation and not the other, but it does seem like it would be nice to avoid if possible. We do use native dependencies already, so I'm not saying we can't use native dependencies, but I was interested to understand why they help since it seems like it's pretty much the same underlying API used (e.g. inotify) in either case

FWIW, chokidar uses a native dependency too.

I guess you're referring to fsevents? It's an optional dependency only used on MacOS and has been removed entirely in chokidar v4 now that updates in the latest versions of Node.js make it obsolete

I have already put in a significant amount of work to help with this, including implementing several new features

I definitely appreciate the willingness to help!! And to be clear I'm just one of many maintainers and not a core maintainer, so wouldn't want you implementing anything based off anything I've raised here. I think the Vite team as a whole should discuss whether we'd want to migrate and what the blockers would be so that we don't cause you any unnecessary work.

Ok, here are the main things I am aware of in regards to performance:

Recursive file watching is supported on all platforms natively. If crawling needs to be done (e.g. on Linux where inotify is not recursive at an OS level), it is done on a background thread. This used to not be supported by Node on Linux at all, but they recently added support. However, like chokidar before, it is implemented in JavaScript on the main thread, and does not support ignore paths, so it is unlikely to be much more performant than chokidar. This likely has a huge impact on startup times on these platforms.
Events are batched in a background thread and delivered to the JS thread all at once rather than per file/event. This is especially useful for large changes like switching git branches or running npm install. In these scenarios, there are often hundreds of thousands of events emitted by the operating system, some of which are irrelevant or temporary. For example, there will be a separate event for the creation of each file, then writing to it, updating the metadata (e.g. mtime, size), etc. Sometimes temporary files are created and then renamed or deleted as part of these processes. @parcel/watcher will batch all of these events together and only report the final state to the JS thread, and in addition batch together events from multiple files into one callback. This means the JS thread only needs to worry about the changes that actually matter rather than intermediary states, and doesn't get overwhelmed with unnecessary events that invalidate the build many times. fs.watch always calls the event callback immediately for each individual event of each individual file.
Ignore lists are processed in the native layer. These can be directories to ignore like .git, or globs like **/dist/**. This is especially efficient on some operating systems that provide a native way to ignore paths, in which case events for irrelevant files are never even delivered to the process. In other cases, @parcel/watcher can efficiently process the ignores in its background thread, and the JS thread doesn't need to worry about these. fs.watch doesn't have an option for ignore paths or globs at all.
On OSes where @parcel/watcher needs to crawl the file system to create watchers (e.g. Linux/BSD), it can avoid even creating watchers for ignored directories entirely. This helps with common problems like running out of file descriptors, as well as startup performance. fs.watch and anything built on it like chokidar, has no way of natively ignoring files like this. It is forced to handle all events and throw them out after, resulting in worse startup performance and file descriptor errors.
Multiple watchers for the same directory are deduplicated and only result in a single native watcher, reducing startup cost and consumed file descriptors.
Watchman is used if installed. This improves performance especially on linux because watchman runs as a daemon in the background, so it doesn't need to re-crawl the file system every time your process restarts.

In terms of reliability, @parcel/watcher fixes many of the caveats in the node docs for fs.watch, similar to chokidar. It ensures that filenames are always reported, supports recursive watchers on all platforms, attempts to determine the real type of change that occurred when files are renamed, etc.
I am aware that there have been some improvements to fs.watch lately and that's great, but it is quite a bit lower level (basically just delivers OS events directly) so a library on top of it like chokidar or a replacement like @parcel/watcher is probably still needed to get good reliability and consistency across platforms. @parcel/watcher has the additional benefit of using OS APIs directly rather than being built on top of fs.watch, so it can achieve better performance for the reasons I outlined above as well.

Thank you @devongovett!! This is really great information! (You should add it to the @parcel/watcher readme or docs as it's really great advertising :smile:)

not really
it’s that I maintain fsevents and through the years and nodejs updates some bug (incl compilation bug) somewhere will arise. so it needs to be constantly updated and supported.


Replaying hints in interactive mode while partially lax-typechecking may break hint replayability

Here’s a quirk of using hints in interactive mode that can be confusing:
Queries and hints are named after identifiers and numbered consecutively. So, for example, a val f: ... declaration followed by a let f = ... definition could result in a hint (M.f, 1) for typechecking the val and a hint (M.f, 2) for typechecking the let. When replaying hints in batch mode this is fine, but in interactive mode, lax-typechecking the val would skip a hint, so that when one typechecks the let the numbering of hints is shifted, and hints intended for some queries would be used for some others.
This is no different than what happens when one modifies code and tries to replay previously recorded hints, but it seems that in this case the annoyance could be avoided by naming the hints for a val and a let differently. Implementing this change (if at all feasible), comes with a big cost of regenerating all existing hints.
Example:
module M

assume val p: int -> Type0
assume val p_def: x:int -> Lemma (requires (0 < x)) (ensures (p x)) [ SMTPatT (p x) ]

val f: n:pos -> Lemma (1 / n >= 0)
let f _ = assert (p 1)

Record hints with $ fstar.exe --record_hints M.fst, then lax-typecheck up to val f... and typecheck the let.
transcript.txt

I tried to reproduce this, but I can't.  Here's what I did.

I saved the following test.fst:

module Test

assume val p: int -> Type0
assume val p_def: x:int -> Lemma (requires (0 < x)) (ensures (p x)) [ SMTPatT (p x) ]

#set-options "--query_stats"

val f: n:pos -> Lemma (1 / n >= 0)
let f _ = assert (p 1)

I ran rm *.hints; fstar --debug Test --record_hints test.fst

Opening file ./test.fstOpening file /build/fstar/master/ulib/FStar.Pervasives.fstOpening file /build/fstar/master/ulib/FStar.Pervasives.Native.fstOpening file /build/fstar/master/ulib/prims.fstOpening file /build/fstar/master/bin/../ulib/prims.fstChecking module: Prims
Lax-checking implementation of Prims
Auto-deps kicked in; here's some info.
Here's the list of filenames we will process: /build/fstar/master/ulib/FStar.Pervasives.Native.fst /build/fstar/master/ulib/FStar.Pervasives.fst test.fst
Here's the list of modules we will verify: test
Opening file /build/fstar/master/ulib/FStar.Pervasives.Native.fstChecking module: Native
Lax-checking implementation of FStar.Pervasives.Native
Opening file /build/fstar/master/ulib/FStar.Pervasives.fstChecking module: Pervasives
Lax-checking implementation of FStar.Pervasives
Opening file ./test.fstChecking module: Test
Verifying implementation of Test
Z3 says: unsat
(./test.fst(8,0-8,34))	Query-stats (Test.f, 1)	succeeded in 129 milliseconds with fuel 2 and ifuel 1 and rlimit 2723280 statistics={mk-bool-var=4746 assert-lower=1 del-clause=827 eq-adapter=4 assert-upper=3 num-checks=1 conflicts=3 binary-propagations=2015 propagations=2254 decisions=2 rlimit-count=219081 quant-instantiations=290 mk-clause=904 memory=11.05 max-generation=4 pivots=1 time=0.01 num-allocs=17724622 datatype-accessor-ax=3 max-memory=11.05 assert-diseq=1 added-eqs=370}
Z3 says: unsat
(./test.fst(9,0-9,22))	Query-stats (Test.f, 2)	succeeded in 23 milliseconds with fuel 2 and ifuel 1 and rlimit 2723280 statistics={mk-bool-var=7834 assert-lower=21 del-clause=4339 bound-prop=2 eq-adapter=18 assert-upper=25 num-checks=2 conflicts=10 binary-propagations=4049 propagations=5089 max-min=9 decisions=62 datatype-occurs-check=6 rlimit-count=255419 fixed-eqs=5 quant-instantiations=1415 offset-eqs=6 mk-clause=4432 minimized-lits=5 memory=12.35 max-generation=5 add-rows=24 pivots=40 arith-conflicts=2 time=0.02 num-allocs=21415350 datatype-accessor-ax=5 nonlinear-horner=1 max-memory=12.48 final-checks=2 assert-diseq=2 added-eqs=1089}
Verified module: Test (217 milliseconds)
All verification conditions discharged successfully

In Emacs, I ran (with M-:) the following: (setq fstar-subp-prover-additional-args '("--use_hints" "--query_stats"))

I processed the whole file line by line (with C-c C-RET)

F*: subprocess exited.
[F* info] (/scratch/test.fst) digest is valid; using hints.
[F* info] (<input>(8,0-8,34))	Query-stats (Test.f, 1)	succeeded (with hint) in 8 milliseconds with fuel 2 and ifuel 1 and rlimit 2723280 statistics={mk-bool-var=80 assert-lower=1 del-clause=22 eq-adapter=2 assert-upper=2 num-checks=1 conflicts=2 binary-propagations=15 propagations=40 decisions=1 rlimit-count=2927 quant-instantiations=7 mk-clause=45 memory=3.01 max-generation=2 pivots=1 time=0.00 num-allocs=184963 datatype-accessor-ax=3 max-memory=3.01 added-eqs=13}
[F* info] (<input>(9,0-9,22))	Query-stats (Test.f, 2)	succeeded (with hint) in 9 milliseconds with fuel 2 and ifuel 1 and rlimit 2723280 statistics={mk-bool-var=166 assert-lower=18 del-clause=80 bound-prop=1 eq-adapter=14 assert-upper=15 num-checks=1 conflicts=4 binary-propagations=15 propagations=75 max-min=9 decisions=10 datatype-occurs-check=6 rlimit-count=4431 fixed-eqs=4 quant-instantiations=28 offset-eqs=2 mk-clause=116 minimized-lits=2 memory=3.12 max-generation=4 add-rows=21 pivots=20 arith-conflicts=3 time=0.00 num-allocs=199776 datatype-accessor-ax=3 nonlinear-horner=1 max-memory=3.12 final-checks=2 assert-diseq=2 added-eqs=59}

Can you still reproduce the issue?

Just double-checking for misunderstandings.
When trying to reproduce the issue in interactive mode after recording hints (i.e. in step 3. above), did you type check up to the val declaration in lax-mode and only then switched to full verification? If you type check everything fully, you won't trigger the issue. You need to lax-type check the declaration to skip the first recorded hint.

Ah, indeed! Sorry for missing that part.
Confirmed. I think the fix you suggested makes plenty of sense.

Still reproducible in 982c3c06ab21de29e92f799e230c71b08d0ae481


feat consumer_queue part, done, test done, route part test done

2 commits;

feat route part, done, test done
feat consumer_queue part, done, test done

see title


Consider disallowing "Cuddling / intimate" distance when outdoors

Currently, the calculator considers cuddling to be 20x safer outdoors than indoors, but the research section notes that there's no data about this distance:

We feel good about calling [the outside risk reduction] “more than 20x” for now and waiting for more evidence, with a warning about not trusting this number if you’re very close to one another because we have no data about outdoor cuddling.

The current behavior is probably misleading. Given the absence of data, perhaps the "Cuddling / intimate" distance shouldn't be allowed when outdoors?

Makes sense to me.

I support this in principle, but I want to make sure users understand what is happening, so I think we'd want to pop up a message when you select "cuddling/intimate" that say "Due to the very close distances involved, we are not confident that being outdoors reduces the risk in a substantial way.  Thus, to be conservative, we are not providing any bonus for being outdoors when cuddling/intimate.

Ooh, maybe we need to break apart "cuddling" and "intimate"
I agree that getting your face in someone's face ("intimate") probably doesn't matter if you're inside or outside, but not sure on the "cuddling" side. If you're hugging you aren't breathing directly into each other, if your head is in someone's lap that's 3 feet.
From a harm reduction standpoint, it's probably better to encourage activities to happen outside if there's a reason to think they're safer that way.

Perhaps the cuddling/intimate terminology is too vague and there should be a selection for "fluid exchange."

I think being overt in this instance is probably warranted.
But in the meantime, calculating contact indoors vs outdoors using the factors for indoors is probably the safe choice. Otherwise I think it might be under-rating it by quite a lot. I'd hate for people to assume that as long as they're outside, kissing is a low-risk activity.

 For many (most?) people “intimate” implies
“hookup”. For it to make sense, it needs to score indoor and outdoor as
being at least approximately the same; certainly within the same order of
magnitude.
It might help to change the wording to “cuddling” but I think that’s still
pretty open to misinterpretation. This is especially true since I think the
comparative risk of a hookup is what many users are actually looking to
determine.
On Mon, Oct 5, 2020 at 20:29 Catherine Olsson<EMAIL_ADDRESS>wrote:

I don't mind removing the word "cuddling" and just saying "intimate" if
that helps cc @beshaya https://github.com/beshaya
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/microcovid/microcovid/issues/265#issuecomment-704006480,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADZ73DXWNJDCP5AI7FKDNTSJKFLBANCNFSM4RSVBNUA
.

Seeing the draft of this in #305, I'm wondering if we're actually doing a disservice by removing cuddling.
I agree cuddling is ambiguous. And in my understanding, "my face is basically right next to your face" and "we're making out" are roughly the same risk (as far as our model is concerned, anyway). Is that right?
If so, I wonder if we might call it "Intimate / kissing".
What do you think?

I like intimate/kissing better than intimate. I don't like using euphemisms in safety conversations. Intimacy may mean sexual activity to most people, but that isn't universal, and it's probably cultural.

Ooof,
How about

Closer than 1 ft - 12% per hour (backed by research), outdoors doesn't work (speculative)
Kissing - 12% per hour, outdoors doesn't work (speculative but really quite likely), 12% minimum (speculative)

Thanks for heading this up and working with a ton of people's input, @beshaya


ofJson include fix and update required addons.

Hey Christopher, I made a few small fixes to your recent commits in develop branch :)

Thanks!  Sorry I missed this.


⚠ Bofrost.be has degraded performance

In 2888674, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1340 ms

Resolved: Bofrost.be performance has improved in 0e63995.


Copying a Gurobi multidict

Description
What steps will reproduce the problem?

I just tried to copy a Gurobi multidict from the variable explorer and this just happened.
Traceback
Traceback (most recent call last):
  File "C:\anaconda3\lib\site-packages\spyder\plugins\ipythonconsole\widgets\namespacebrowser.py", line 102, in get_value
    return self.call_kernel(
  File "C:\anaconda3\lib\site-packages\spyder_kernels\comms\commbase.py", line 554, in __call__
    return self._comms_wrapper._get_call_return_value(
  File "C:\anaconda3\lib\site-packages\spyder\plugins\ipythonconsole\comms\kernelcomm.py", line 216, in _get_call_return_value
    return super(KernelComm, self)._get_call_return_value(
  File "C:\anaconda3\lib\site-packages\spyder_kernels\comms\commbase.py", line 437, in _get_call_return_value
    return self._sync_error(reply['value'])
  File "C:\anaconda3\lib\site-packages\spyder_kernels\comms\commbase.py", line 493, in _sync_error
    error_wrapper.raise_error()
  File "C:\anaconda3\lib\site-packages\spyder_kernels\comms\commbase.py", line 90, in raise_error
    raise self.etype(self)
AttributeError: 'tuplelist' object has no attribute '_tuplelist__scalar'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\anaconda3\lib\site-packages\spyder\plugins\variableexplorer\widgets\main_widget.py", line 636, in copy
    self._current_editor.copy()
  File "C:\anaconda3\lib\site-packages\spyder\widgets\collectionseditor.py", line 1096, in copy
    obj = self.delegate.get_value(idx)
  File "C:\anaconda3\lib\site-packages\spyder\widgets\collectionseditor.py", line 1437, in get_value
    return self.parent().get_value(name)
  File "C:\anaconda3\lib\site-packages\spyder\widgets\collectionseditor.py", line 1495, in get_value
    value = self.shellwidget.get_value(name)
  File "C:\anaconda3\lib\site-packages\spyder\plugins\ipythonconsole\widgets\namespacebrowser.py", line 117, in get_value
    raise ValueError(msg % reason_other)
ValueError: An error occured, see the console..

Note: Please don't report this problem on Github, there's nothing to do about it.

 Could you post here some example code to reproduce this in our side? Also, just in case, could you update spyder to our latests release and check again?
Let us know!

Hello dalthviz:
Spyder says it's up to date.
Small steps to reproduce that error are simple (also happens with Gurobi models, tupledict, tuplelist, multidict). For example:
import gurobipy as g

var = g.tupledict()
var.update({"test":1})

Gives an error when trying to copy var from the variable explorer. Won't happen if the variable is empty (we didn't add anything to the tupledict in this case)

Thanks for the new info @jaBote ! Checking again this after setting up Gurobi I was able to reproduce the issue (I got a dialog message after trying to see the variable):

My guess is that we are not properly supporting getting the value of the Gurobi variables (which is not a problem if they are empty since there is no value to get in those cases).
I think this will need to be checked over spyder-kernels . What do you think @ccordoba12 ?

It seems those objects can't be serialized, so that's why they can't copied nor browsed. So perhaps the best we can do in this case is catch the error and pass.


Variables.example.sass file issue

There occurred compile issue before change the  Variables-example. sass file.
Variables-example. sass file should be changed to variables. sass and add their variables.

It it not a issue. variables-example.sass is just a example, the person who used webiu should rename it to variables.sass and add their variables

As pointed by @ffalpha, this is not an issue! Thanks for your contribution @AshPriya :)


chore(events): move out events from package from core-spi

What this PR changes/adds
Moves out events from core-spi to

asset events -> asset-spi
policy events -> policy-spi
transfer events -> transfer-spi

Why it does that
clean up
Linked Issue(s)
Closes #2853
Checklist

[ ] added appropriate tests?
[ ] performed checkstyle check locally?
[ ] added/updated copyright headers?
[ ] documented public classes/methods?
[ ] added/updated relevant documentation?
[x] assigned appropriate label? (exclude from changelog with label no-changelog)
[x] formatted title correctly? (take a look at the CONTRIBUTING and Etiquette for pull requests for details)

Codecov Report
Patch coverage has no change and project coverage change: -0.15 :warning:

Comparison is base (c2eed99) 66.13% compared to head (ea33401) 65.99%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2859      +/-   ##
==========================================
- Coverage   66.13%   65.99%   -0.15%
==========================================
  Files        1002     1002
  Lines       20247    20247
  Branches     1182     1182
==========================================
- Hits        13390    13361      -29
- Misses       6380     6411      +31
+ Partials      477      475       -2

Impacted Files
Coverage Δ

...nnector/service/ControlPlaneServicesExtension.java
100.00% <ø> (ø)

...dc/connector/service/asset/AssetEventListener.java
80.00% <ø> (ø)

.../edc/connector/service/asset/AssetServiceImpl.java
97.56% <ø> (ø)

...olicydefinition/PolicyDefinitionEventListener.java
100.00% <ø> (ø)

...ransfer/listener/TransferProcessEventListener.java
0.00% <ø> (ø)

...se/edc/connector/asset/spi/event/AssetCreated.java
80.00% <ø> (ø)

...se/edc/connector/asset/spi/event/AssetDeleted.java
80.00% <ø> (ø)

...ipse/edc/connector/asset/spi/event/AssetEvent.java
81.81% <ø> (ø)

...se/edc/connector/asset/spi/event/AssetUpdated.java
80.00% <ø> (ø)

...edc/connector/asset/spi/observe/AssetListener.java
0.00% <ø> (ø)

... and 18 more

... and 4 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


cargo-shuttle: init at 0.16.0

https://github.com/shuttle-hq/shuttle
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

It has git dependencies, which doesn't work with cargoHash

Result of nixpkgs-review pr 232068 run on x86_64-linux 1

1 package built:

cargo-shuttle


fastlane deliver on Windows - Could not receive latest API key from App Store Connect

Question Checklist

✅ Updated fastlane to the latest version
✅ I read the Contribution Guidelines
✅ I read docs.fastlane.tools
✅ I searched for existing GitHub issues

Question Subject
Why are we seeing this error when running fastlane deliver on Windows 10.
"Could not receive latest API key from App Store Connect, this might be a server issue."
Question Description
After reading through the documentation we understand that fastlane deliver is compatible with Windows and does not require Xcode. However when using fastlane on Windows 10 we are seeing an error when trying to upload an ipa to App Store Connect

fastlane deliver --ipa "App.ipa" --force --username
[13:02:12]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
[13:02:13]: WARNING: fastlane requires your locale to be set to UTF-8. To learn more go to https://docs.fastlane.tools/getting-started/ios/setup/#set-up-environment-variables
[13:02:14]: Login to App Store Connect ()
Please provide your Apple Developer Program account credentials
You can also pass the password using the FASTLANE_PASSWORD environment variable
Password (for ): *******************
No such file or directory @ rb_sysopen - /tmp/spaceship1556816536_26084_20934880.log
Looking for related GitHub issues on fastlane/fastlane...
➡  Confusion about setting SSL Options
https://github.com/fastlane/fastlane/issues/10261 [closed] 3 💬
29 Dec 2017
➡  Unable to connect to itunes connect - Environment issue
https://github.com/fastlane/fastlane/issues/9109 [closed] 5 💬
25 Sep 2017
➡  deliver: there is no web session to update
https://github.com/fastlane/fastlane/issues/6826 [closed] 55 💬
05 Dec 2016
[!] The request could not be completed because:
Could not receive latest API key from App Store Connect, this might be a server issue.
[13:02:16]: WARNING: fastlane requires your locale to be set to UTF-8. To learn more go to https://docs.fastlane.tools/getting-started/ios/setup/#set-up-environment-variables

To try to fix this, I've tried at least the following:

Reinstalling ruby / gems
Different Windows machine
Turning off firewall
Generating and using an app-specific password from Apple ID
Installing fastlane on macOS and running same command. It works, but we need this on our Windows build machine!
Using either Command Prompt or PowerShell
Setting the locale to UTF-8. We've not gotten this to work neither on Command Prompt nor Powershell, however from what I've read this only really affects output and fastlane should be able to read input successfully anyways so this probably shouldn't affect us.
Setting environment variable to get around firewall: $env:DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS = "-t DAV"

🚫 fastlane environment 🚫
Stack

Key
Value

OS
UNKNOWN

Ruby
2.5.5

Bundler?
false

Git
git version 2.10.1.windows.1

Installation Source
C:/Ruby25-x64/bin/fastlane

Host
Unknown  ()

Ruby Lib Dir
C:/Ruby25-x64/lib

OpenSSL Version
OpenSSL 1.1.1b  26 Feb 2019

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

System Locale

Error

No Locale with UTF8 found 🚫

fastlane files:
No Fastfile found
No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.121.1
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.2.0

slack-notifier
2.3.2

atomos
0.1.3

CFPropertyList
3.0.0

claide
1.0.2

colored2
3.1.2

nanaimo
0.2.6

xcodeproj
1.8.2

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

unicode-display_width
1.5.0

terminal-table
1.8.0

plist
3.5.0

public_suffix
2.0.5

addressable
2.6.0

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.6.5

tty-cursor
0.6.1

tty-spinner
0.9.0

babosa
1.0.2

colored
1.2

highline
1.7.10

commander-fastlane
4.4.6

excon
0.64.0

faraday
0.15.4

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20180417

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
2.1.5

gh_inspector
1.1.3

json
2.1.0

mini_magick
4.5.1

multi_json
1.13.1

multi_xml
0.6.0

rubyzip
1.2.2

security
0.1.3

xcpretty-travis-formatter
1.0.0

dotenv
2.7.2

bundler
2.0.1

faraday_middleware
0.13.1

naturally
2.2.0

simctl
1.6.5

uber
0.1.0

declarative
0.0.10

declarative-option
0.1.0

representable
3.0.4

retriable
3.1.2

mime-types-data
3.2019.0331

mime-types
3.2.2

jwt
2.1.0

signet
0.11.0

memoist
0.16.0

os
1.0.1

googleauth
0.6.7

httpclient
2.8.3

google-api-client
0.23.9

google-cloud-env
1.0.5

google-cloud-core
1.3.0

digest-crc
0.4.1

google-cloud-storage
1.16.0

emoji_regex
1.0.1

stringio
0.0.1

openssl
2.1.2

strscan
1.0.0

fiddle
1.0.0

date
1.0.0

fileutils
1.0.2

etc
1.0.0

zlib
1.0.0

ipaddr
1.2.0

psych
3.0.2

generated on: 2019-05-02

Is this the complete output you are getting? Try with --verbose added at the end to see if you get more.

After reading through the documentation we understand that fastlane deliver is compatible with Windows and does not require Xcode.

Where did you read that?
We are generally working on multi platform support, but are not nearly ready - especially things like uploading to the App Store are still very fragile (or even broken).

Could not receive latest API key from App Store Connect, this might be a server issue.

Can you request https://appstoreconnect.apple.com/olympus/v1/app/config?hostname=itunesconnect.apple.com manually?
Try creating a folder tmp on the harddisk your project lives and on C: manually and see if this fixes something.

Wow, that last one did it. I manually created a 'tmp' folder on hard-disk and now I'm onto the next unrelated error. Thank you!

The reliance on tmp here is a bug, as this is present for macOS and Linux - but not Windows. This should probably be changed to user directory/.fastlane, we already use that in some places.

Does fastlane even work on Windows? Now I'm getting this error:
2019-05-03T11:56:07.0799456Z [!] Could not find transporter at usual locations. Please use environment variable FASTLANE_ITUNES_TRANSPORTER_PATH to specify your installation path.
After writing to Apple yesterday they responded, "I understand that you are inquiring about the possibility of downloading iTMS Transporter to your windows device. Upon review, I confirmed that since this is a part of Xcode, you cannot download it to your windows device as of now."

Not everything works, no.
Which is why in my previous comment I wrote this:

After reading through the documentation we understand that fastlane deliver is compatible with Windows and does not require Xcode.

Where did you read that?
We are generally working on multi platform support, but are not nearly ready - especially things like uploading to the App Store are still very fragile (or even broken).

That being said, there are versions of iTMSTransporter for Windows available: https://stackoverflow.com/a/31420580/252627 That doesn't mean they are fully supported by Apple, and it doesn't mean that Fastlane will magically work on Windows. But some functionality might with this.


Subject: Reformat README.md to fit into 79 chars long width

Please ensure that the author email address matching the ECA.

Please ensure that the author email address matching the ECA.

done


[Question❓] next release?

Thanks for this project, it's really useful.
I was wondering what the project's timelines might be for a future release? We're particularly interested in the shared matting features added in July, yet they haven't made it to PyPI yet. I was wondering whether there was any reason for that/if there's anything the community can do to help?

We are happy to know that this project is useful to you! We have just published a new release:

https://pypi.org/project/PyMatting/
https://github.com/pymatting/pymatting/releases/tag/v1.1.10

Personally, I found that shared matting was not quite perfect at all times. But I am glad to hear that you are interested in it! This makes me believe that we should gather some information about the actual use cases for PyMatting so we know what people are looking for. Would you like to tell us a bit about your use case here? :point_right:  https://github.com/pymatting/pymatting/issues/74


Modernize

Taking guidance from https://docs.python.org/3/howto/pyporting.html, look at Python 3 supporting using https://github.com/python-modernize/python-modernize.
Paves the way for Python 3 (#339). Should fix #371.

Modernize creates all sorts of hellish problems for pathlib on Python 2. Also for the perennially brittle PyInstaller.


small optimization: % poweroftwo -> & poweroftwo-1

Thanks --- that's definitely worth having. There are likely to be edge conditions regarding signed values, though. Could you make sure that there are tests for this case?

I think divrem tests already cover this:
print("four%two==zero"); if four%two==zero then yes(); else no(); end if;

Sorry, I got distracted by other things... also I didn't spot that this just concerns REMU, and not REMS.
Yes, all looks good. Merging.
Trying to do the same optimisation for signed values looks like it'll be nightmare. Getting the result sign right was bad enough just for the normal divmod calculation.


Feature/postgres

Codecov Report

Merging #5 (0a465ec) into main (9185ba5) will increase coverage by 0.40%.
The diff coverage is 80.86%.

:exclamation: Current head 0a465ec differs from pull request most recent head 353c64f. Consider uploading reports for the commit 353c64f to get more accurate results

@@            Coverage Diff             @@
##             main       #5      +/-   ##
==========================================
+ Coverage   93.42%   93.83%   +0.40%
==========================================
  Files           6       10       +4
  Lines        1035     1135     +100
==========================================
+ Hits          967     1065      +98
- Misses         68       70       +2

Impacted Files
Coverage Δ

danio/model.py
94.59% <78.94%> (+0.50%)
:arrow_up:

danio/sqlite.py
78.94% <78.94%> (ø)

danio/mysql.py
80.95% <80.95%> (ø)

danio/aiopg.py
83.33% <83.33%> (ø)

danio/asyncpg.py
83.33% <83.33%> (ø)

danio/database.py
95.00% <100.00%> (+18.21%)
:arrow_up:

danio/manage.py
100.00% <100.00%> (ø)

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 9185ba5...353c64f. Read the comment docs.


feat(test): move to vitest

replaces jest with vitest
splits eigentumZusammenfassungDone and corresponding test into new files for better mocking
fixes omitNull() test
sets up coverage without routes
new npm run test:watch command

This will enable usage of vite-env-only for server-side validations

50% improvement 🎉


Binary Classifier - Log loss function

Hi,
Fantastic Library!
I was just wondering, i am trying to use the library for a binary classifier experiment using the log loss function to train the model. This is for a university experiment around benchmarking different models. Would you have time to provide an example of how to use the library to achieve the above goal.
Also showing a visualization in how the algorithm learns and decreases the error.
Many thanks,
Best,
Andrew

Glad you like the library! I don't think making that specific example is within our purview, but good luck with your experiments.


[Bug] Normalization of model inputs causes PETS to crash on Pybullet Half Cheetah

Steps to reproduce

Run PETS algorithm from example notebook with Pybullet Halfcheetah instead of Cartpole env using the code I put at the bottom.
Alternatively, set normalize: true in the algorithm parameters for any environment with an observation which doesn't change before normalization is attempted.

Observed Results
When running the code below I get the following Traceback and error:

Traceback (most recent call last):
File "/Users/markselden/learning/mbrl-lib/tests/algorithms/test_halfcheetah_normalizer.py", line 161, in
next_obs, reward, done, _ = common_util.step_env_and_add_to_buffer(env, obs, agent, {}, replay_buffer)
File "/Users/markselden/learning/mbrl-lib/mbrl/util/common.py", line 398, in step_env_and_add_to_buffer
action = agent.act(obs, **agent_kwargs)
File "/Users/markselden/learning/mbrl-lib/mbrl/planning/trajectory_opt.py", line 340, in act
plan = self.optimizer.optimize(trajectory_eval_fn)
File "/Users/markselden/learning/mbrl-lib/mbrl/planning/trajectory_opt.py", line 224, in optimize
best_solution = self.optimizer.optimize(
File "/Users/markselden/learning/mbrl-lib/mbrl/planning/trajectory_opt.py", line 134, in optimize
values = obj_fun(population)
File "/Users/markselden/learning/mbrl-lib/mbrl/planning/trajectory_opt.py", line 337, in trajectory_eval_fn
return self.trajectory_eval_fn(obs, action_sequences)
File "/Users/markselden/learning/mbrl-lib/mbrl/planning/trajectory_opt.py", line 398, in trajectory_eval_fn
return model_env.evaluate_action_sequences(
File "/Users/markselden/learning/mbrl-lib/mbrl/models/model_env.py", line 173, in evaluate_action_sequences
_, rewards, dones, _ = self.step(action_batch, sample=True)
File "/Users/markselden/learning/mbrl-lib/mbrl/models/model_env.py", line 116, in step
next_observs, pred_rewards = self.dynamics_model.sample(
File "/Users/markselden/learning/mbrl-lib/mbrl/models/one_dim_tr_model.py", line 274, in sample
preds = self.model.sample(model_in, rng=rng, deterministic=deterministic)[0]
File "/Users/markselden/learning/mbrl-lib/mbrl/models/model.py", line 319, in sample
return (torch.normal(means, stds, generator=rng),)
RuntimeError: normal expects all elements of std >= 0.0

After debugging I have located the source of the error. In line 138 of util/math linked here. The normalize function  divides the model input tensor by the std tensor. For input features which the model has not yet seen change the std is 0. Dividing by 0 places NaNs in the normalized model input tensor. The model then cannot handle the NaNs.
Expected Results
The PETS algorithm to run smoothly.
Relevant Code
This is the code I am running which produces the error, it is mostly pulled from pets_example.ipynb
import matplotlib as mpl
import numpy as np
import torch
import omegaconf

import mbrl.env.termination_fns as termination_fns
import mbrl.models as models
import mbrl.planning as planning
import mbrl.util.common as common_util
import mbrl.util as util
import pybullet_envs
import gym
print('test')

mpl.rcParams.update({"font.size": 16})

device = 'cuda:0' if torch.cuda.is_available() else 'cpu'

seed = 16
env = gym.make('HalfCheetahBulletEnv-v0')
env.seed(seed)
rng = np.random.default_rng(seed=0)
#I believe the generator is used for random sampling
generator = torch.Generator(device=device)
generator.manual_seed(seed)
obs_shape = env.observation_space.shape
act_shape = env.action_space.shape

# This functions allows the model to evaluate the true rewards given an observation
# This function allows the model to know if an observation should make the episode end
term_fn = termination_fns.no_termination

trial_length = 200
num_trials = 10
ensemble_size = 5

# Everything with "???" indicates an option with a missing value.
# Our utility functions will fill in these details using the
# environment information
cfg_dict = {
  # dynamics model configuration
  "dynamics_model": {
      "model": {
          "_target_": "mbrl.models.GaussianMLP",
          "device": device,
          "num_layers": 3,
          "ensemble_size": ensemble_size,
          "hid_size": 200,
          "use_silu": True,
          "in_size": "???",
          "out_size": "???",
          "deterministic": False,
          "propagation_method": "fixed_model"
      }
  },
  # options for training the dynamics model
  "algorithm": {
      "learned_rewards": True,
      "target_is_delta": True,
      "normalize": True,
  },
  # these are experiment specific options
  "overrides": {
      "trial_length": trial_length,
      "num_steps": num_trials * trial_length,
      "model_batch_size": 32,
      "validation_ratio": 0.05
  }
}
cfg = omegaconf.OmegaConf.create(cfg_dict)

# Create a dynamics model for this environment
#dynamics_model = models.GaussianMLP(obs_shape + act_shape, obs_shape + 1)
dynamics_model = util.common.create_one_dim_tr_model(cfg, obs_shape, act_shape)

replay_buffer = util.common.create_replay_buffer(
  cfg, obs_shape, act_shape, rng=rng
)

util.common.rollout_agent_trajectories(
  env,
  50,
  planning.RandomAgent(env),
  {},
  replay_buffer=replay_buffer,
)

# Create a gym-like environment to encapsulate the model
model_env = models.ModelEnv(
      env, dynamics_model, term_fn, generator=generator
  )

agent_cfg = omegaconf.OmegaConf.create({
  # this class evaluates many trajectories and picks the best one
  "_target_": "mbrl.planning.TrajectoryOptimizerAgent",
  "planning_horizon": 30,
  "replan_freq": 5,
  "verbose": False,
  "action_lb": "???",
  "action_ub": "???",
  # this is the optimizer to generate and choose a trajectory
  "optimizer_cfg": {
      "_target_": "mbrl.planning.CEMOptimizer",
      "num_iterations": 5,
      "elite_ratio": 0.1,
      "population_size": 500,
      "alpha": 0.1,
      "device": device,
      "lower_bound": "???",
      "upper_bound": "???",
      "return_mean_elites": True
  }
})

agent = planning.create_trajectory_optim_agent_for_model(
  model_env,
  agent_cfg,
  num_particles=15
)
train_losses = []
val_scores = []

def train_callback(_model, _total_calls, _epoch, tr_loss, val_score, _best_val):
  train_losses.append(tr_loss)
  val_scores.append(val_score.mean().item())   # this returns val score per ensemble model

# Create a trainer for the model
model_trainer = models.ModelTrainer(dynamics_model, optim_lr=1e-3, weight_decay=5e-5)

# Main PETS loop
all_rewards = [0]
for trial in range(num_trials):
  obs = env.reset()
  agent.reset()

  done = False
  total_reward = 0.0
  steps_trial = 0
  while not done:
      # --------------- Model Training -----------------
      if steps_trial == 0:
          dynamics_model.update_normalizer(replay_buffer.get_all())  # update normalizer stats

          dataset_train, dataset_val = replay_buffer.get_iterators(
              batch_size=cfg.overrides.model_batch_size,
              val_ratio=cfg.overrides.validation_ratio,
              train_ensemble=True,
              ensemble_size=ensemble_size,
              shuffle_each_epoch=True,
              bootstrap_permutes=False,  # build bootstrap dataset using sampling with replacement
          )

          model_trainer.train(
              dataset_train, dataset_val=dataset_val, num_epochs=50, patience=50, callback=train_callback)

      # --- Doing env step using the agent and adding to model dataset ---
      next_obs, reward, done, _ = common_util.step_env_and_add_to_buffer(env, obs, agent, {}, replay_buffer)

      obs = next_obs
      total_reward += reward
      steps_trial += 1

      if steps_trial == trial_length:
          break

  all_rewards.append(total_reward)

HI @MarkSelden, thanks a lot for your interest and for reporting. I will push a fix for soon (probably in the next couple of days), as part of a change where normalization uses double precision by default, instead of floats (see #99 for some discussion). Sorry about the inconvenience, and thanks for the effort you put into this report.

@MarkSelden #111 has the fixes and changes I mentioned. I'm waiting for the results of some tests before merging, but the fix should be in the new release very soon.

Thanks for closing this out quickly! Much appreciated.


Issue running icenet_data_sic with 2020 date range

IceNet version: 0.2.6
Python version: 3.8.18
Operating System: Windows (WSL2 Ubuntu 22.04.3 LTS)

Description
Attempting to download Sea Ice Concentration dataset for southern hemisphere from OSI SAF between 2020-1-1 and 2020-1-30 causes FTP error warning, and does not download any files to data/ directory as expected.
Steps taken are based on 01.cli_demonstration notebook in icenet-notebooks.
What I Did
Commands run:
$ icenet_data_masks south
$ icenet_data_era5 south -d --vars uas,vas,tas,zg --levels ',,,500|250' 2020-1-1 2020-1-30
$ icenet_data_sic south -d 2020-1-1 2020-1-30

The last line results in the following error:
[26-10-23 22:20:44 :INFO    ] - OSASIF-SIC Data Downloading
[26-10-23 22:20:44 :INFO    ] - Downloading SIC datafiles to .temp intermediates...
[26-10-23 22:20:45 :INFO    ] - FTP opening
[26-10-23 22:20:45 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_01
[26-10-23 22:20:45 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_02
[26-10-23 22:20:45 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_03
[26-10-23 22:20:45 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_04
[26-10-23 22:20:45 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_05
[26-10-23 22:20:45 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_06
[26-10-23 22:20:45 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_07
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_08
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_09
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_10
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_11
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_12
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_13
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_14
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_15
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_16
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_17
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_18
[26-10-23 22:20:46 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_19
[26-10-23 22:20:47 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_20
[26-10-23 22:20:47 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_21
[26-10-23 22:20:47 :WARNING ] - FTP error, possibly missing month chdir for 2020_01_22

Note: Changing command's date range to 2021 year, i.e. between 2021-1-1 and 2021-1-30 downloads files as expected without warnings.

Relevant code section:
https://github.com/icenet-ai/icenet/blob/4608624b14cb5995ba66f178fb98127d8cd0ea7a/icenet/data/sic/osisaf.py#L404
Checking the chdir_path variable in above code with this date range shows it is searching for files in the following path on the OSI SAF ftp server:
ftp://osisaf.met.no/reprocessed/ice/conc-cont-reproc/v3p0/2020/01/*
But, 2020 directory does not exist in v3p0/.

Snapshot of ftp://osisaf.met.no/reprocessed/ice/conc-cont-reproc/v3p0/ path

Possible causes

OSI SAF dataset section shows OSI-450 and OSI-430-b as superseded, has path changed since archiving, or is path incorrect?

OSI SAF OSI-430-b shows data directory (for 01/01/2016 to 30/04/2023) as conc-cont-reproc/v2p0, not conc-cont-reproc/v3p0, so, it is searching under OSI-430-a instead.

Checking conc-cont-reproc/v2p0 path on remote server:

Snapshot of ftp://osisaf.met.no/reprocessed/ice/conc-cont-reproc/v2p0/ path

OSI-430-a shows start date for dataset as 01/01/2021, but start date set to 18/11/2018 here:
https://github.com/icenet-ai/icenet/blob/4608624b14cb5995ba66f178fb98127d8cd0ea7a/icenet/data/sic/osisaf.py#L325
Is this the correct start date?
This results in OSI-430-a remote directory being set instead of OSI-430-b for date range (between 2020-1-1 and 2020-1-30) specified in original post, and the data not being found:
https://github.com/icenet-ai/icenet/blob/4608624b14cb5995ba66f178fb98127d8cd0ea7a/icenet/data/sic/osisaf.py#L400-L402

Might be redundant issue, with v3.0.0 moving to a separate data downloader module (download-toolbox), and with changes in chdir_path.
Refer to #186
Downloader module (download-toolbox)


Dev branch not merge to master

Hi, I have realized your last updated on PlayStore is 2016, but you still do improvement. Maybe your pipeline or CD is breaking

There are 3 releases:

1.1.2523 (Lollipop and below) - 22 Jan 2014
2.0.2 (current) - 26 Dec 2016
2.0.3-beta2 (from dev branch) - 22 Oct 2018

I am using my own local build which includes #56 and #57.
The notification and automatic location in my build is not good enough which I decided not to release.


How to use Dart socket onError as inline function?

I have dart socket that gets very long data. Lucky the third party add '\r\n' end of the data, so I can close when I find last data has '\r\n'.
In weeks I am trying to get long data due server problem. Before I used to waiting endlessly to server closes the connection (sometime took me 10 to 12 min)
Now seems everything works but a small problem. I used to get onError and onDone using void function. But I am using aqueduct so I need to return long data after I receive from server as a response.
In my below full code its keep printing "Server_Error". If I comment below data seems everything works. But my problem is that I need to return error data as well.
onError: () {
      print("Server_Error");
      },
        onDone: () {
      _socket.destroy();
      },
        cancelOnError: true);

If I comment above part I can print the long data. My question is that, based on my scenario how to use Dart socket onError as inline function?
import 'dart:io';
import 'dart:convert';
import 'dart:typed_data';

Socket _socket;
String _reply;
String _testValue = "";

main() async {
  String _queryA = “QueryLongData”;

  await Socket.connect("<IP_ADDRESS>”, 3000).then((Socket sock) {
    _socket = sock;
    _socket.write('$_queryA\r\n');
    _socket.listen((data) {
      final List<int> byteArray = data;
      _reply = String.fromCharCodes(byteArray);

      int dataLen = _reply.length;
      int carriageReturnPosition = dataLen - 2;
      int newLinePosition = dataLen - 1;

      _testValue = _testValue + _reply;

      if (_reply.substring(carriageReturnPosition, newLinePosition) == '\r' &&
          _reply.substring(newLinePosition, dataLen) == '\n') {
        _socket.close();
        print("Data: $_testValue"); // means return data

      }
    }, onError: () {
      print("Server_Error");
      },
        onDone: () {
      _socket.destroy();
      },
        cancelOnError: true);
  }).catchError((e) {
    print("Server_Error");
  });

  if(_socket.done == true) {
    print("Exiting...");
    exit(0);
  }
}

The onError argument must be a function which accepts at least one or two arguments:
...
, onError: (error, stack) {
  print("Server_Error: $e\n$s");
}, ...

Please post your question to Stack Overflow with the dart label – it's a better spot for Q&A


Update index.html

Just for the Hacktober . sry

Your pull request seems good, but must be checked by a human maintainer for the following reason(s):

This file modifies a pre-existing file.

Please be patient until a maintainer has time to look over your contribution.
This is an automated response, beep boop.
if you think there is a mistake, contact a maintainer

8c26b4c51ec2f5be52c6b85beff1bd1bac73a1cf

Please do not modify random things and push a pr for no reason. This pull is meaningless.


Unset tracer environment variables when unneeded

Previously, the tracer environment variables were set for the
current process, and for future steps, in the init action. In
certain scenarios (such as on MacOS ARM runners with System
Integrity Protection disabled), these environment variables are
not unset by the system and therefore later interfere with later
system calls.
This change unsets the environment variables for the current
process right in init. It also unsets the variables either at the
beginning of autobuild, or analyze, if autobuild has not run.
Merge / deployment checklist

[x] Confirm this change is backwards compatible with existing workflows.
[x] Confirm the readme has been updated if necessary.
[x] Confirm the changelog has been updated if necessary.

Getting some unbound variable errors from the autobuilders. I'll test out only unsetting the variable that we need to fix this issue.

Hrm... hang on, still getting warnings related to the insertion when running on macos-latest so moving back to draft.

Closing as unsetting this variable doesn't seem to have done what we'd hoped. We will stop running the system binary instead for now: https://github.com/github/codeql-action/pull/2434


[main] Update community files

Cron -knative-prow-robot
/cc knative-sandbox/channel-wg-leads
/assign knative-sandbox/channel-wg-leads
Produced by: knative-sandbox/knobots/actions/update-community
Details:

/retest

Closing as changes were manually delivered in PR #101 to workaround inability to update github workflows on existing PR.


No documentation for disableOnResponsiveLayouts which is enabled by default

Sticky was working on some mobile devices, but not on others. By trial and error I found out this had to do with the width of the viewport. After trying a ton of different configurations (none of which helped one bit), I decided to read the source code, and that is where I found this option called disableOnResponsiveLayouts. Setting it to false when initializing did the trick. You might want to document this.

I'll document the option today, thanks for the suggestion and sorry I didn't add it sooner. :beers:

Thanks! Cheers!


Total type prettyprinting

Current Pretty (Type s) implementation contains possibly infinite path ... -> prettyQuantifiedType -> prettyFunctionType -> prettyApplicationType -> prettyPrimitiveType -> prettyQuantifiedType -> ....
While the current implementation never runs into this infinite recursion, adding new types while forgetting to update prettyQuantifiedType yields no warnings and causes run-time infinite recursion that is hard to debug.
This PR removes multiple functions with error-prone wildcard matches and adds a single function that matches on all possibilities to generate a render tree, which is then automatically reduced and prettyprinted.

Yeah, I'm aware of the potential for infinite recursion but I'm sort of partial (pun intended) to the current implementation and I explain why a bit in this post: https://www.haskellforall.com/2020/11/pretty-print-syntax-trees-with-this-one.html

Totally (pun intended) agree that the current implementations looks cleaner. But I proposed this PR due to the "ready-to-fork" nature of the language: I'm a compilation-error-driven developer, and I'm afraid that many people who are new to the codebase, just like me, will forget to add the type prettyprinting and then wiill have to start up the debugger and step through everything in order to find the infinite loop.
As an alternative, maybe I could make a PR that introduces "consumed" Bool flag to all the functions to detect the infinite loop and at least throw impure error exception? Or some other approach?


Implemented missing events

I implemented the missing events, and made some minor improvements.

FWIW, if you want to discuss this with me on matrix, feel free to PM me (I realise I may have accidentally declined an invite from you earlier)

LGTM, thank you for your contribution!


Ability to select all on hijacks page (based on filtered view)

Is your feature request related to a problem? Please describe.
Very tedious to delete or ignore, resolve etc. on the hijacks page as you have to slowly/manually click each prefix to select it.
Describe the solution you'd like
A button on the page to automatically select all of the visible prefixes on the screen. After the filter is applied.
Describe alternatives you've considered
n/a
Additional context
n/a

@pgigis could you take a look at this on the frontend side? You can add a small rectangular checkmark near the number of entries indicator to be able to select/deselect all entries. Should be relatively straightforward to implement.


Enhancement - Withdraw/Deposit log

Can we include a log for withdrawal/deposit? I think the Recent Activity section of a coin in the Dashboard view would be a practical place.

I think this should be added in a new tab in the Trades view too.

The plan is to have it in the Recent Activity section, but from what I can remember, @lukechilds said we would need our own Electrum server to be able to properly detect withdraw/deposit.

@kevva It doesn't really fit to have it in the Trades view since it's not a trade, but maybe if we renamed it to History instead.

from what I can remember, @lukechilds said we would need our own Electrum server to be able to properly detect withdraw/deposit

That's correct, this is loosely planned for the future as are a lot of other enhancements that require our own Electrum integration. But the Electrum integration will be quite a bit of work and may be totally unnecessary if mmv2 has better Electrum support so it's not something we'll be adding soon.


feat: log warning messages when pattern keys and constraints do no match.

This pr implements a mechanism to log warning messages in case configured node and relationship pattern keys don't match existing database key, uniqueness and existence constraints for sink pattern strategies.

Fails

:no_entry_sign:
PR Title 'feat: log warning messages when pattern keys and constraints do no match.': subject may not end with full stop

Pull request title should follow Conventional commits.

  Generated by :no_entry_sign: dangerJS against 0fe974126017a062bccef2f19a9cbcddb39036b6

 Import job doesn't set fetch size on reading a table.


add star rating play

This fixes issue #464

First thing, PLEASE READ THIS: ReactPlay Code Review Checklist

Description
A Star rating play shows the use of useState hook
Fixes #464
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Locally on localhost
Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Few early impression

Unwanted vertical and horizontal; scrollbar appearing
It would be great if you can associate some titles with each start. something like "Bad", "Not OK", "Good", "Very Good", "Spelbound"
it would be even better if you can give me some options to choose from. Like you have already implemented with star, probably another option would be smilies and so on

No 1 is mandatory to fix whereas No 2 and No 3, I would leave with you. Once done I can start reviewing.

Alright

Hey @frankiefab100 , let us know when its ready

Hey @frankiefab100 , let us know when its ready

Hi @koustov I have committed the necessary changes

@frankiefab100 let's close this one soon and get in.

@frankiefab100 let's close this one soon and get in.

I pushed new commits yesterday. Waiting for a review

@frankiefab100 let's close this one soon and get in.

I pushed new commits yesterday. Waiting for a review

Ok @koustov will close it then tonight.

Only comment
Fabulous job @frankiefab100

Thank you 😄


sidebar list style for catalog count ans management upload

This PR integrates 'catalog count' entry and 'Catalog upload' into the sidebar via list style.
This fixes possible overlapping with the upload button from the above entry (upload catalog).
without fix (rdmo-v1.4)

and in the case for  'catalog upload' it adds space after the button in the sidebar, which is needed for sidebars using background color other than that of the page.

Coverage remained the same at 93.366% when pulling 57e20bf6f33d490c3b665ebe8d60e272355131d9 on list-style-for-catalog-count into bbd1148b518869c21af345128c14b862c25912ef on master.

Thanks for spotting the problem. It is fixed already and will soon go to master.
https://github.com/rdmorganiser/rdmo/commit/9cf186c8d31e6b5c6ad71f39426cd3c317355853

Thanks for spotting the problem. It is fixed already and will soon go to master.
https://github.com/rdmorganiser/rdmo/commit/9cf186c8d31e6b5c6ad71f39426cd3c317355853


[Work in Progress] SqlException State 35

Description
Added retry logic on Sql connection OpenAsync method when the method throws a SqlException with State 35 to take care of the following exception:
"A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 35 - An internal exception was caught)"
Related issues
AB#96340
Semver Change
Skip

Closing as this will be taken care of by Daniel's work: https://microsofthealth.visualstudio.com/Health/_workitems/edit/96670.


Please make media center configuration available from a more obvious place

@SyncedSynapse :
After having set up Kore, I was searching and searching and searching for the media center configuration.
I just couldn't find it.
Then I noticed that you can tap on the media center's name at the top of the menu that can be swiped in from the left side of the screen and that tapping on it leads to the media center configuration.
IMHO this is too hard to find.
Could you please move the media center configuration to a more obvious place?
My suggestion would be:
Just add a "Media center configuration" section to the normal settings (where you can also configure the theme and other options and where the About section is).
Regards

I agree.  In fact, I would like to more dynamically switch between several kodi instances on my local network without having to manually change IP address.  it would make kore work more like chrome with chromecast, where one can select which instance to select when sharing a video.  At home I have several kodi instances running, one for each screen available, and I would like to be able to select which screen to control quickly both from the remote control interface and from for example the youtube 'share' option.


No pandoc was found: either install pandoc and add it

application/epub+zip
No pandoc was found: either install pandoc and add it
to your PATH or or call pypandoc.download_pandoc(...) or
install pypandoc wheels with included pandoc.

ah ok it need to install pandoc windows version from pandoc website