"svelte-persistent-store/dist/local" not found

I'm getting this error using snowpack
Dependency Install Error: Package "svelte-persistent-store/dist/local" not found. Have you installed it?
Package was installed correctly with npm.
Any ideas?

I'm having this same issue, just using Rollup. However, I did try to convert to Snowpack last week but reverted. Also, for some reason Rollup is trying to find this module via a double/nested /dist directory (~/<project>/node_modules/svelte-persistent-store/dist/dist/local).

I'm having this same issue, just using Rollup. However, I did try to convert to Snowpack last week but reverted. Also, for some reason Rollup is trying to find this module via a double/nested /dist directory (~/<project>/node_modules/svelte-persistent-store/dist/dist/local).

Yes, I also noticed the double dist path with snowpack.  Couldn't reproduce consistently though.

Yes, I also noticed the double dist path with snowpack.  Couldn't reproduce consistently though.

I added all the non-test root files in /src into my project and a few @ts-ignores later I was able to continue development as usual.

I added all the non-test root files in /src into my project and a few @ts-ignores later I was able to continue development as usual.

I'm having the same issue: svelte-persistent-store/dist/dist/local with the double dist path.
I'm using Rollup and this happened after updating rollup-plugin-svelte to 7.1.0

I'm having the same issue: svelte-persistent-store/dist/dist/local with the double dist path.
I'm using Rollup and this happened after updating rollup-plugin-svelte to 7.1.0

I had the same issue with rollup and resolve this with
import { writable } from "svelte-persistent-store/local.js";

I'm having the same issue: svelte-persistent-store/dist/dist/local with the double dist path.
I'm using Rollup and this happened after updating rollup-plugin-svelte to 7.1.0

this is due to the path mapping given by the exports field of the package.json.
  "exports": {
    ".": "./dist/index.js",
    "./": "./dist/"
  },

any import with "svelte-persistent-store/[something]" is rewritten to "./node-modules/svelte-persistent-store/dist/[something]".
the documentation is not up to date.
this exports is necessary ? so I will propose to update the documentation and to rewrite it like this :
  "exports": {
    ".": "./dist/index.js",
    "./*": "./dist/*"
  },

subpath folder mappings is deprecated
so you can import your file with
import { writable } from "svelte-persistent-store/local.mjs";

or exports field is it necessary?
if we remove we can import file respecting the file path (which is more intuitive):
import { writable } from "svelte-persistent-store/dist/local.mjs";

I'm trying to run this with SvelteKit and run into the same issue.
import { writable, readable, derived } from 'svelte-persistent-store/dist/local';

 [vite] Internal server error: Failed to resolve import "svelte-persistent-store/dist/local" from "src/lib/authstore.ts". Does the file exist?
  Plugin: vite:import-analysis
  File: /home/spen/svelte-app-mui/src/lib/authstore.ts
  1  |  import { writable } from "svelte-persistent-store/dist/local";
     |                            ^
  2  |  export const jwt = writable("jwt", "");
  3  |
      at formatError (/home/spen/svelte-app-mui/node_modules/vite/dist/node/chunks/dep-c1a9de64.js:50738:46)
      at TransformContext.error (/home/spen/svelte-app-mui/node_modules/vite/dist/node/chunks/dep-c1a9de64.js:50734:19)
      at normalizeUrl (/home/spen/svelte-app-mui/node_modules/vite/dist/node/chunks/dep-c1a9de64.js:74223:26)
      at processTicksAndRejections (internal/process/task_queues.js:95:5)
      at async TransformContext.transform (/home/spen/svelte-app-mui/node_modules/vite/dist/node/chunks/dep-c1a9de64.js:74356:57)
      at async Object.transform (/home/spen/svelte-app-mui/node_modules/vite/dist/node/chunks/dep-c1a9de64.js:50939:30)
      at async transformRequest (/home/spen/svelte-app-mui/node_modules/vite/dist/node/chunks/dep-c1a9de64.js:66763:29)
      at async viteTransformMiddleware (/home/spen/svelte-app-mui/node_modules/vite/dist/node/chunks/dep-c1a9de64.js:66904:32)

import { local } from 'svelte-persistent-store';
const { writable, readable, derived } = local;

[vite] Error when evaluating SSR module /src/lib/authstore.ts:
TypeError: Cannot destructure property 'writable' of '__vite_ssr_import_0__.local' as it is undefined.
    at /home/spen/svelte-app-mui/src/lib/authstore.ts:19:18
    at instantiateModule (/home/spen/svelte-app-mui/node_modules/vite/dist/node/chunks/dep-c1a9de64.js:73464:166)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
Cannot destructure property 'writable' of '__vite_ssr_import_0__.local' as it is undefined.
TypeError: Cannot destructure property 'writable' of '__vite_ssr_import_0__.local' as it is undefined.
    at /home/spen/svelte-app-mui/src/lib/authstore.ts:19:18
    at instantiateModule (/home/spen/svelte-app-mui/node_modules/vite/dist/node/chunks/dep-c1a9de64.js:73464:166)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

I'm new to Svelte and have no clue how to solve this. The workaround proposed by @lhapaipai does not work for me (nothing of what he wrote).

Okay, so the issue for me seems to be the SSR of SvelteKit.
See the section How do I use a client-side only library that depends on document or window? in https://kit.svelte.dev/faq.
With the standard writeable something like this works for me:
import { browser } from '$app/env';
import { writable } from 'svelte/store'
export const jwt = writable()

function syncWithLocalStorage(w, key: string) {
    w.set(localStorage.getItem(key))
    w.subscribe(val => [null, undefined].includes(val) ? localStorage.removeItem(key) : localStorage.setItem(key, val));
}

if (browser) {
    syncWithLocalStorage(jwt, 'jwt')
}

Maybe this package could be updated to also work around the SSR.
This feels delayed and also it is not reactive for changes in the local storage (local storage changes are not reflected in the UI until a refresh).


Call find with an array of ids.

@jcoyne The CC merge commit caused a conflict with this branch. Pls resolve the conflict/rebase.


Implement GET /symbology/parse-mana

Closes #27.

Codecov Report

Merging #77 (8dca8cb) into main (cee527b) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #77   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           44        46    +2
  Lines          846       869   +23
=========================================
+ Hits           846       869   +23

Impacted Files
Coverage Δ

lib/src/models/mana_cost.dart
100.00% <100.00%> (ø)

lib/src/models/mana_cost.g.dart
100.00% <100.00%> (ø)

lib/src/scryfall_api_client.dart
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 cee527b...8dca8cb. Read the comment docs.


Enable the use of multiple database Sessions per request

Bulk operations could be done more easily and without building up large, long-running transactions if one could use two Sessions.  This patch refactors dspace-api to enable that.
References

Addresses #8731

Description
DAOs are refactored to take Session rather than Context.
Instructions for Reviewers
List of changes in this PR:

DAOs refactored as above.  This entails corresponding changes to dependent Services.
There is a sample of using this new capability in ca68d666b9b421503cab7419d503e5ed9ea40650.

Include guidance for how to test or review your PR. This may include: steps to reproduce a bug, screenshots or description of a new feature, or reasons behind specific changes.
Checklist

[ ] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
[x] My PR passes Checkstyle validation based on the Code Style Guide.
[x] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[ ] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[x] If my PR includes new libraries/dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[x] If my PR modifies REST API endpoints, I've opened a separate REST Contract PR related to this change.
[x] If my PR includes new configurations, I've provided basic technical documentation in the PR itself.
[ ] If my PR fixes an issue ticket, I've linked them together.

Thanks @mwoodiupui, this is exciting. I've tested item submission
P.S. you might want to add a sentence about the benefits of this approach to the PR. If I understand correctly, using sessions instead of contexts should reduce the amount of locks we need to hold for long-running operations, which should reduce lock contention?

Thoughts:
I have mistakenly referred to "JPA Session".  Session is a Hibernate object corresponding to JPA's EntityManager (which it extends).
Of note in the sample code:

Having fetched an Item from the readonly session, I immediately fetch it again from the read-write session.  This should be cheap, because the entity should still be in the second-level cache, avoiding a trip to the DBMS.
The try-with-resources pattern is a good one to use with "secondary" Sessions because the current design does not clean them up when a Context is closed.

hi @mwoodiupui  thanks for your detailed analysis of the issue that I found very complete and useful.
I worried about the attempt to use two database connections to deal with a single "bulk" operation, I haven't seen other project doing the same and it looks like an hack that we could eventually introduce due to our custom way to manage the transaction instead rely on spring for that or to proper deal with a transaction manager.
In https://github.com/DSpace/DSpace/pull/9273 I'm proposing a lighter approach that could be a first step in solving this issue. It is still a sort of hack but it is less invasive in terms of changes and don't require to use two database connection / hibernate session. This is also in my opinion easier to deal with for developers that don't risk to mix objects between the two sessions.
I would appreciate your feedback on my PR

@abollini Would you please point me to something I can read, to find out why this approach is a "hack" rather than "the way independent bulk operations are done."

Per a very brief discussion in today's DevMtg, @abollini noted that the approach taken in this PR might conflict with the approach taken in #9273, and that he has a preference for the simple approach in #9273 as it minimizes memory usage by using lists of UUIDs instead of entire objects (thus solving #8731 in a different manner, with less code refactoring).
We mentioned today that it'd be best to bring this back to a future DevMtg to finalize a decision as to whether the approach in #9273 should be generally adopted for all bulk tasks, or if we feel this PR's "multiple-session" approach is a better route.

Summarizing the discussion in today's Dev Mtg (at least what I heard/understood):

@abollini noted that he's not sure we should be making this significant of a refactor to support multiple sessions at once:

This PR's approach seems like a possible anti-pattern, as it's not something you can find training materials available for in Spring docs or Hibernate docs.
This PR's approach would require careful coding (possible training) by developers on when to use the additional Context.getReadOnlySesssion().  The main challenge is that objects may be in one session or another, which requires reloading them into the other session at times.   So, even in the example implementation in ca68d666b9b421503cab7419d503e5ed9ea40650 you'll see that with bulk operations, all Items are looped through in a Read-Only Session.  But, when you want to make changes to the Item, you have to call itemService.find() to load the Item into the Read-Write Session in order to make changes.  This requires developers to carefully manage two copies of the Item.
@abollini took a different approach to solve the same problem in #9273.  Instead of the Read-Only Session being used to load objects into a List, the approach in #9273 is to only load UUIDs into a List.  Then, a UUIDIterator is used to load the object into Session when you wish to edit it.

I had noted that I feel @abollini 's approach is the way we should have been doing bulk operations all along.  We should not be managing large Lists of objects in memory.  Lists of UUIDs are much smaller.
That said, it is always possible that the two approaches might be combined in the future.  Since we already have the UUIDIterator in our codebase, it makes sense to try to use it more frequently in other bulk operations.  This might lessen the need to manage multiple Sessions at once.  But, we may need to do some further analysis to see if the UUIDIterator approach is sufficient to solve performance issues.

I'd welcome others to correct these notes or enhance them.  These are just based on what I heard / understood, and I may have missed or misstated something.

Before to start let me clarify that the phrase "It is still a sort of hack" was referred to my media filer PR https://github.com/DSpace/DSpace/pull/9273. More specifically I don't find ideal that a bulk process must be responsible on their own to commit after a predefined number of processed item, see
https://github.com/DSpace/DSpace/pull/9273/files#diff-3dfeebac956eb6f9488c58459e84ab5fc65cb2408335a6a644c5b84480453e47R184
nor to reload Object such as the Collection that become invalid
https://github.com/DSpace/DSpace/pull/9273/files#diff-3dfeebac956eb6f9488c58459e84ab5fc65cb2408335a6a644c5b84480453e47R159
due to the commit in the middle of the iteration.
I would love a solution where using some annotation we will get this progressive commit behavior automatic.
I will try to summarize the reasons why I recommend to take full benefit of the UUIDIterator introduced in the already mentioned merged PR before to move on with the idea of dealing with two sessions.
The amount of changes required to use the UUIDIterator are very limited (see example above) and would be required in any case also with the usage of two sessions (see https://github.com/DSpace/DSpace/pull/8932/files#diff-3dfeebac956eb6f9488c58459e84ab5fc65cb2408335a6a644c5b84480453e47R129-R133 ) as we need to commit soon avoiding to commit after a large amount of change.
Using two sessions have some risks:

the RW session must be used to manage a limited amount of object, the object received from the RO session must be reloaded in the RW session and we must be sure to clean the RW session and release the underground db resources when the job is done and these responsibilities will be put on the side of each individual method / feature that perform large changes
I haven't found many discussion or example of usage of a such approach, this make me worry about introducing another solution unique of DSpace that would surprise new developers that start to work on the project delaying onboarding / making hard to contribute. The only discussion that I was able to found proposing something similar is this one https://www.baeldung.com/spring-transactions-read-only where the author says

Now, if transactions have more queries, we should use an explicit read-only transaction. Creating a read-only data source can also help save round trips by avoiding the switch between write and read-only transactions. But, if we have mixed workloads, the complexity of managing a new data source may not justify itself.

I'm worried about the memory usage, how large will become our object graph if we need to read all in the read-only session?


test_ernie_token_cls gives UnboundLocalError: local variable 'eop_idx' referenced before assignment

Running https://github.com/NormXU/ERNIE-Layout-Pytorch/blob/main/examples/test_ernie_token_cls.py
gives the traceback attached (using pretrain_torch_model_or_path = 'Norm/ERNIE-Layout-Pytorch')
I had to run pip install sentencepiece as it was missing in requirements.txt.
I looks as if the sentencepiece tokenization may be broken, it returns an empty list for me.
sentencepiece_processor.cc(922) LOG(ERROR) src/sentencepiece_processor.cc(289) [model_] Model is not initialized.
Returns default value 0
Traceback (most recent call last):
  File "/media/max/3tb drive/PycharmProjects/ERNIE-Layout-Pytorch/examples/test_ernie_token_cls.py", line 48, in <module>
    main()
  File "/media/max/3tb drive/PycharmProjects/ERNIE-Layout-Pytorch/examples/test_ernie_token_cls.py", line 25, in main
    tokenized_res = ernie_tokenize_layout(tokenizer, context, layout, labels)
  File "/media/max/3tb drive/PycharmProjects/ERNIE-Layout-Pytorch/networks/model_util.py", line 127, in ernie_tokenize_layout
    context_encodings = prepare_context_info(tokenizer, context, layout)
  File "/media/max/3tb drive/PycharmProjects/ERNIE-Layout-Pytorch/networks/model_util.py", line 81, in prepare_context_info
    missing_tail_blank = len(ctx) - eop_idx
UnboundLocalError: local variable 'eop_idx' referenced before assignment

Process finished with exit code 1

Could you share your context list used in ernie_tokenize_layout(tokenizer, context, layout, labels) ?

context is the same as in the example, i.e. context = ['This is an example document', 'All ocr boxes are inserted into this list'].
I think the issue is that tokenizer.encode(text, add_special_tokens=False) and tokenizer.tokenize(text) always returns an empty list [] together with the following warning:
sentencepiece_processor.cc(922) LOG(ERROR) src/sentencepiece_processor.cc(289) [model_] Model is not initialized.
Returns default value 0

I'm able to reproduce this issue both on an Ubuntu and Mac setup.
Maybe some issue w.r.t. Norm/ERNIE-Layout-Pytorch files?

That's weird, I failed to reproduce this bug in my environment. It should not be the issue w.r.t. Norm/ERNIE-Layout-Pytorch files. I have distributed these files to several developers and they didn't report any problems to me.
In my environment, sentencepiece== 0.1.97; Probably the version mismatch leads to the warning?
Or could you do me a favor to set a debug point at this line ?
This is used to load the sentencepiece file. Check if this file can be loaded as expected
It looks like you are using the tokenizer with a broken sentencepiece vocab. Let't re-download the sentencepiece file and see what is going on.

Debugging yields:
name_or_path=Norm/ERNIE-Layout-Pytorch
sentencepiece_model_file=sentencepiece.bpe.model
>>> os.path.isfile(self.sentencepiece_model_file)
False

I was able to run the example code (tokenization) when manually downloading sentencepiece.bpe.model and changing name_or_path to the folder containing the corresponding files. It seems that ErnieLayoutTokenizer.from_pretrained(Norm/ERNIE-Layout-Pytorch) will not download the sentencepiece model, but only config.json and tokenizer_config.json

That is good to know. I will try to figure out why the downloading script misses the sentencepiece.bpe.model. Thank you for your feedback


PR check fails when spec contains newer fields like %bcond due using Ubuntu runner with older version of rpm

Describe the bug
A clear and concise description of what the bug is.
Any PR that updates a spec file to use newer rpm fields, such as %bcond, will fail the PR check because the check runner uses Ubuntu 22.04 which has an older version of rpm that doesn't understand new rpm fields.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

update any spec file to add a %bcond and open a PR

the pr check was fixed with the above pr


Handle empty yaml files

Already handled correctly for json files
Issue https://github.com/awslabs/cfn-python-lint/issues/104
yaml loader loads empty string as None, convert these to an empty dict so it's handled correctly.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

seems like an easy fix this way and a good safe guard for empty files.


python312Packages.llama-index-readers-s3: 0.1.5 -> 0.1.7

Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

4 packages built:

python311Packages.llama-index-readers-s3
python311Packages.llama-index-readers-s3.dist
python312Packages.llama-index-readers-s3
python312Packages.llama-index-readers-s3.dist


Update mockito-core to 3.11.0

Updates org.mockito:mockito-core from 3.8.0 to 3.11.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.mockito", artifactId = "mockito-core" } ]

labels: library-update, semver-minor

Superseded by #272.


colors

Hi,
Awesome graphs.. but for further configuration like changing colors, how would you do that?

@coderjonny, how did you end up changing the colors for your graph?  I'm trying to figure that out and haven't seen any documentation on how to do it yet.  The fill attribute doesn't seem to have any effect.

color is done via passing in colorAccessor props
https://github.com/esbullington/react-d3/wiki/CartesianChartPropsMixin
anyway if you are using react-d3 with new project please have a look at https://github.com/yang-wei/rd3

Thanks for your reply!  I actually moved away from react-d3 for the reason
of colors and to get a fixed y-scale (I was using the bar chart) because I
need to compare several sets of data and the relative size difference is an
important part of the visualization.  Is there a provision in react-d3 for
a fixed y-axis scale for bar charts?
On Wed, Dec 7, 2016 at 6:11 PM, Lim Yang Wei<EMAIL_ADDRESS>wrote:

color is done via passing in colorAccessor props
https://github.com/esbullington/react-d3/wiki/CartesianChartPropsMixin
anyway if you are using react-d3 with new project please have a look at
https://github.com/yang-wei/rd3
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/esbullington/react-d3/issues/331#issuecomment-265624046,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATUAN6bG4Up1u_ecpPtz_6iw77j9AYwQks5rF1lJgaJpZM4I2quA
.

what do you mean by a fixed y-scale ?
In https://github.com/yang-wei/rd3 you get to customize your own y-axis including the scale. Can this help ? https://yang-wei.github.io/rd3/docs/new/axis.html

The y scale changes with the max y value of the data I put in so that the
highest bar is always the rendered the same height, even though they are
different values.  I need them to render to heights proportional to their
values.  Does that make sense?
On Sun, Dec 11, 2016 at 6:08 PM, Lim Yang Wei<EMAIL_ADDRESS>wrote:

what do you mean by a fixed y-scale ?
In https://github.com/yang-wei/rd3 you get to customize your own y-axis
including the scale. Can this help ? https://yang-wei.github.io/
rd3/docs/new/axis.html
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/esbullington/react-d3/issues/331#issuecomment-266322869,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATUAN8YAEOlWSfrDke7zc_4ynkr3DPDhks5rHJ6DgaJpZM4I2quA
.


Interpolate newly generated upsampled images

Hi :)
Sorry to open another issue, but after I have 4x upsampled all folders with pictures, how do I interpolate them?
Originally I had 6 folders of roughly 50 images (acquired from running "Making Videos"), which together formed a final mp4 file. But now I have upsampled each of those folders and would like to interpolate between all those pictures (6x50=300) to get the final mp4 file, just like original.
Or just interpolate between all new upsampled images in a single folder.

can you describe the directory structure? should be able to use stable_diffusion_videos.make_video_pyav to do this in one line of code.

\stable-diffusion\output_dir\test --> is the main folder with many smaller folders:

\stable-diffusion\output_dir\test \part1
\stable-diffusion\output_dir\test \part2
\stable-diffusion\output_dir\test \part3
\stable-diffusion\output_dir\test \part4
\stable-diffusion\output_dir\test \part5

Sorry for late reply...commenting in case you/others having issue still with this...
I don't think you're interpolating here, eh? Since you already generated the interpolated images. If you want to put together all the clips, you can use that function I mentioned above.
from stable_diffusion_videos import make_video_pyav

make_video_pyav(
    frames_or_frame_dir='./stable-diffusion/output_dir/test',
    fps=30,  # Or any fps you'd like
    output_filepath="output.mp4", # name it whatever you want
)

The folder names/filenames within of pictures should be named such that when you glob and sort them, they are in the order you want the video to be in. Since you have parts here numbered, I'm assuming the above code would work for ya


Remove all sorts of nonsense from segment constructors

we have way too many fields in the segment constructor. wtf

done in #180


Remove useless ':' in 'Host:'

The ':' is useless and inconsistent with the format of other selection boxes.

Thanks for the typo detail.


Error building IOS

I get this error when building using Ionic package:
=== BUILD TARGET WinnerZ OF PROJECT WinnerZ WITH CONFIGURATION Debug ===
Check dependencies
Code Sign error: No matching provisioning profiles found: None of the valid provisioning profiles allowed the specified entitlements: com.apple.developer.associated-domains.
ated-domains.
** BUILD FAILED **
The only place I could find the string: "com.apple.developer.associated-domains." it's in file:
projectEntitlements.js where I have this line:
ASSOCIATED_DOMAINS = 'com.apple.developer.associated-domains',
Should that value be there? is that ok?
Please advise

certificate was not valid due to missing intermediate and root CAs.
Now it's working :)


prologue slice check

Before submitting

[x] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[x] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure to update the docs?
[x] Did you write any new necessary tests?

What does this PR do?
Fixes #532.
This PR fixes the error from the above issue.
import torch
import thunder
import operator

def foo(t, ab):
    return operator.getitem(t, ab)
jfoo = thunder.jit(foo)

dtype = torch.float32
t = torch.randn(5, 3, device="cpu").to(dtype=dtype)

ab = (slice(3, 4), slice(0, 1))

out = jfoo(t, ab)
out_ref = foo(t, ab)
print("\t===== prologue trace =====\n", jfoo._lc_cs.last_prologue_traces[-1])
print("\t===== compute trace =====\n", jfoo._lc_cs.last_traces[-1])
assert(out.equal(out_ref))

ab = (slice(2, 3), slice(1, 2))
out = jfoo(t, ab)
out_ref = foo(t, ab)
print("\t===== prologue trace =====\n", jfoo._lc_cs.last_prologue_traces[-1])
print("\t===== compute trace =====\n", jfoo._lc_cs.last_traces[-1])
assert(out.equal(out_ref))  # this does not fail!

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

@t-vi Hi Tom! Thanks for the detailed comments, I have updated the code as per your suggestion! However, I am not quite sure about the type annotation in _check_object_equals_impl in pythonex.py. Would appreciate if you can suggest me a better way to go about this.

Hi @t-vi! Just updated everything as discussed above. Please let me know if I should add anything to this!


[bug]: Cannot interact with Sonner toasts opened from Dialogs (or other modal elements)

Describe the bug
If you create a sonner from within any modalic element (dialog, context menu, dropdown, popover), any interaction with the resulting sonner toast will result in the modal element closing as well.
This issue was previously described in https://github.com/shadcn-ui/ui/issues/2401. However, increasing the z-index of the sonner group does not resolve the issue, and registering custom onInteractOutside handlers for every modalic component is an unwieldy option. Ideally, one should be able to interact with the sonners while a dialog is open without closing the dialog.
Affected component/components
Sonner
How to reproduce

Create a dialog
Use a button in the dialog to create a sonner toast. Alternatively, enable the close button for the toast.
Attempt to highlight text in the toast, or click the close button. The dialog will also close.

Codesandbox/StackBlitz link
https://codesandbox.io/p/devbox/shadcn-playground-forked-kxc7l8?file=/src/App.js:34,45&workspaceId=b7d16bab-058a-4b6f-b4f8-cb3182273009
Logs
No response
System Info
MacOS 14.4.1 (23E224), Arc Version 1.37.0

Before submitting

[X] I've made research efforts and searched the documentation
[X] I've searched for existing issues

I want to work on this

when a dialog opens
pointer-events: none; is added to body and pointer-events: auto; is added to dialog
As a workaround I added pointer-events: auto; to the toaster

@giveerr  I was trying to figure out how does the state management occurs under the hood. How did u figure it out. Plz share.

when a dialog opens
pointer-events: none; is added to body and pointer-events: auto; is added to dialog
As a workaround I added pointer-events: auto; to the toaster

This still doesn't prevent the dialog from closing when the toast is interacted with, right?

when a dialog opens
pointer-events: none; is added to body and pointer-events: auto; is added to dialog
As a workaround I added pointer-events: auto; to the toaster

This still doesn't prevent the dialog from closing when the toast is interacted with, right?

NOTE THAT THIS IS A WORKAROUND I AM CURRENTLY USING
The solution I found is this, there is already a discussion here about this
const handleClickOutside = useCallback((e: CustomEvent<{originalEvent: PointerEvent | FocusEvent }>) => {
      const targetNode = document.querySelector('.toaster')

      if (e.target && targetNode && targetNode?.contains(e.target as HTMLElement)) {
        e.preventDefault()
      }
}, [])

and add this to DialogContent
        onPointerDownOutside={handleClickOutside}
        onInteractOutside={handleClickOutside}

@giveerr the code u have given links to pertain to radix-ui source code. How do I incorporate it in shadCn.

I'm also having trouble to interact with Dropdown Menu button after open a Sonner Toast. It's like the button changes the clickable space after Sonner Toast appeared in top right position. I can click and close the toast without close the dialog, but my Dialog Trigger after this has much less space to click, like, i can only click if in the top right corner of the button used as Trigger.

Any updates on this bug fix?

pointer-events: auto;

Add pointer-events: auto solve the problem
import { Toaster } from "@/components/ui/sonner"

 <Toaster position="top-right" richColors className="pointer-events-auto" />

Anyone still facing this issue of interacting with Sonner toast with shadcn/radix Dialog at this point? I've been trying the solutions from this thread and the other issue #2401, and still whatever I do, interacting with the toast still closes the dialog.


[YUNIKORN-2037] Testing the throughput of Yunikorn

What is this PR for?
implement two script for testing.
kwok-setup.sh: Initiates a Kwok instance within a cluster and generates required nodes based on user specifications.
deploy-tool.sh: Creates or deletes a specified number of applications, along with the desired number of replicas for each application.
Todos

[x] - Task

What is the Jira issue?
https://issues.apache.org/jira/browse/YUNIKORN-2037/
How should this be tested?
Screenshots (if appropriate)
Questions:

[ ] - The licenses files need update.
[ ] - There is breaking changes for older versions.
[ ] - It needs documentation.

Thank you @wilfred-s for your comment! I've updated to a new commit based on your suggestion.


prefixIcon and suffixIcon are missing in SearchInputDecoration in the release of 1.1.0

Describe the bug
prefixIcon and suffixIcon are missing in SearchInputDecoration in the release of 1.1.0
To Reproduce
Update from 1.0.9 to 1.1.0

Hi @twfungi Thanks for filing the issue, These properties were added https://github.com/maheshj01/searchfield/commit/dc5877c01809bb99c6c46691f9e31a0a9d0f1361 and should be available in next release.

please add also "suffix", not only "suffixIcon". thx in advance

released in v1.1.1


CRA v2

I've upgraded CRA from v1 to v2 and I can run my app, but when I'm using react-app-rewired, I've got this error: Cannot read property 'tap' of undefined

@Ayc0 Did you find a solution? :)


manage rule

rule_update Rule_ID(1) type:(UDP/TCP/ICMP/ALL/OTHER) Port(80;443;21:22) Description (TEST)
return (True?False)
rule_create type:(UDP/TCP/ICMP/ALL/OTHER) Port(80;443;21:22) Description (TEST)
return (Rule_ID?-1)
rule_delect  Rule_ID(1)
return (True?False)
rule_search source(192.168.1) ||  destination(192.1681.2)
return Serialization(List)

Thanks for the brief suggestion here
Could you provide a little more detail how you actually see these working?
N

It would be nice to be able to run easyrule (rule command line management) with the API.
From a security perspective it would be interesting, you could send from a SIEM calls to block malware connections in firewall.

You may want to review the approach discussed here
https://github.com/ndejong/pfsense_fauxapi/issues/56#issuecomment-569243747


onGenerateRoute requesting 2 routes at initial startup

Steps to Reproduce
When using onGenerateRoute with initialRoute that is not '/', it will request both '/' and initialRoute at startup if the onGenerateInitialRoutes not provided.

Run code below
See debug console output and result on app
Uncomment onGenerateInitialRoutes to see the difference

Expected results: onGenerateRoute only request route for initialRoute
Actual results: onGenerateRoute request both '/' and initialRoute, and ends up with 2 page on startup, Home and Login

Code sample
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  runApp(
    const App(
      needLogin: true,
    ),
  );
}

class App extends StatelessWidget {
  const App({
    Key? key,
    required this.needLogin,
  }) : super(key: key);

  final bool needLogin;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.light(),
      darkTheme: ThemeData.dark(),
      themeMode: ThemeMode.system,
      initialRoute: needLogin ? '/login' : '/',
      // onGenerateInitialRoutes: (initialRoute) {
      //   if (kDebugMode) print('onGenerateInitialRoutes: $initialRoute');

      //   List<Route<dynamic>> routes = [];

      //   if (initialRoute == '/') {
      //     routes.add(
      //       MaterialPageRoute(
      //         builder: (context) => const HomePage(),
      //         settings: RouteSettings(name: initialRoute),
      //       ),
      //     );
      //   } else if (initialRoute == '/login') {
      //     routes.add(
      //       MaterialPageRoute(
      //         builder: (context) => const LoginPage(),
      //         settings: RouteSettings(name: initialRoute),
      //       ),
      //     );
      //   }

      //   return routes;
      // },
      onGenerateRoute: (settings) {
        if (kDebugMode) print('onGenerateRoute: $settings');

        if (settings.name == '/') {
          return MaterialPageRoute(
            builder: (context) => const HomePage(),
            settings: settings,
          );
        }

        if (settings.name == '/login') {
          return MaterialPageRoute(
            builder: (context) => const LoginPage(),
            settings: settings,
          );
        }
      },
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Home'),
      ),
    );
  }
}

class LoginPage extends StatelessWidget {
  const LoginPage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Login'),
      ),
    );
  }
}

Logs
[√] Flutter (Channel unknown, 2.8.1, on Microsoft Windows [Version 10.0.22000.376], locale en-001)
    • Flutter version 2.8.1 at C:\flutter
    • Upstream repository unknown
    • Framework revision 77d935af4d (3 weeks ago), 2021-12-16 08:37:33 -0800
    • Engine revision 890a5fca2e
    • Dart version 2.15.1

[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at C:\Users\andre\AppData\Local\Android\sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.8)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.11.32002.261
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2020.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[√] VS Code (version 1.63.2)
    • VS Code at C:\Users\andre\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.32.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22000.376]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 96.0.4664.110
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 96.0.1054.62

• No issues found!

Hi @SuperPenguin, it looks like this is the expected behavior.  See below from the initialRoute documentation
/// {@template flutter.widgets.widgetsApp.initialRoute}
  /// The name of the first route to show, if a [Navigator] is built.
  ///
  /// Defaults to [dart:ui.PlatformDispatcher.defaultRouteName], which may be
  /// overridden by the code that launched the application.
  ///
  /// If the route name starts with a slash, then it is treated as a "deep link",
  /// and before this route is pushed, the routes leading to this one are pushed
  /// also. For example, if the route was `/a/b/c`, then the app would start
  /// with the four routes `/`, `/a`, `/a/b`, and `/a/b/c` loaded, in that order.
  /// Even if the route was just `/a`, the app would start with `/` and `/a`
  /// loaded. You can use the [onGenerateInitialRoutes] property to override
  /// this behavior.
  ///
  /// Intermediate routes aren't required to exist. In the example above, `/a`
  /// and `/a/b` could be skipped if they have no matching route. But `/a/b/c` is
  /// required to have a route, else [initialRoute] is ignored and
  /// [Navigator.defaultRouteName] is used instead (`/`). This can happen if the
  /// app is started with an intent that specifies a non-existent route.
  ///
  /// The [Navigator] is only built if routes are provided (either via [home],
  /// [routes], [onGenerateRoute], or [onUnknownRoute]); if they are not,
  /// [initialRoute] must be null and [builder] must not be null.
  ///
  /// See also:
  ///
  ///  * [Navigator.initialRoute], which is used to implement this property.
  ///  * [Navigator.push], for pushing additional routes.
  ///  * [Navigator.pop], for removing a route from the stack.
  ///
  /// {@endtemplate}
  final String? initialRoute;

Hi @SuperPenguin, it looks like this is the expected behavior. See below from the initialRoute documentation
/// {@template flutter.widgets.widgetsApp.initialRoute}
  /// The name of the first route to show, if a [Navigator] is built.
  ///
  /// Defaults to [dart:ui.PlatformDispatcher.defaultRouteName], which may be
  /// overridden by the code that launched the application.
  ///
  /// If the route name starts with a slash, then it is treated as a "deep link",
  /// and before this route is pushed, the routes leading to this one are pushed
  /// also. For example, if the route was `/a/b/c`, then the app would start
  /// with the four routes `/`, `/a`, `/a/b`, and `/a/b/c` loaded, in that order.
  /// Even if the route was just `/a`, the app would start with `/` and `/a`
  /// loaded. You can use the [onGenerateInitialRoutes] property to override
  /// this behavior.
  ///
  /// Intermediate routes aren't required to exist. In the example above, `/a`
  /// and `/a/b` could be skipped if they have no matching route. But `/a/b/c` is
  /// required to have a route, else [initialRoute] is ignored and
  /// [Navigator.defaultRouteName] is used instead (`/`). This can happen if the
  /// app is started with an intent that specifies a non-existent route.
  ///
  /// The [Navigator] is only built if routes are provided (either via [home],
  /// [routes], [onGenerateRoute], or [onUnknownRoute]); if they are not,
  /// [initialRoute] must be null and [builder] must not be null.
  ///
  /// See also:
  ///
  ///  * [Navigator.initialRoute], which is used to implement this property.
  ///  * [Navigator.push], for pushing additional routes.
  ///  * [Navigator.pop], for removing a route from the stack.
  ///
  /// {@endtemplate}
  final String? initialRoute;

I see so it is intended behaviour, now it make sense. Thank you very much.


Add HAR Entry time data

It's possible to add time data to HAR Entry?
Something like that should do the work
entry.startedDateTime = state.instant.atZone(clock.getZone());
entry.time = Duration.between(state.instant, clock.instant()).toMillis();

+1, can need a toggle in the listener to disable it if undesired but sounds a very good addition


Add some bindings for apropos and info-mode

Just a couple of useful bindings which were missing.

Thanks again for your help!


.download() : compare local and remote files by timestamps before downloading

[SPLIT PREVIOUS ISSUES]
Timestamp
Timestamp property could be used to compare with existing local file's timestamp.
If API timestamp property is smaller (older) than local file timestamp, then skip download.
The imageinfo's "timestamp": "2021-04-25T15:49:00Z" indeed matches file description page indicating :

Date/Time
Thumbnail
Dimensions
User
Comment

current
15:49, 25 April 2021

1.1 s (99 KB)
Kitel WP (talk | contribs)

After verification, files with several uploads provide by default the timestamp of the last upload (default : 1 revision, the latest).
Q4-related (✅ #52)
When a file already exists locally, it could be skipped faster.
Given a the time per download, x the number of files to download, b the initial categorymember query time with estimated b=60sec. We could get the second attempt (update) duration to be such as 2.7*14+60 = 97.8secs instead of 540 sec.
Q5-related (✅ #52)
@Poslovitch pointed out that filenames are not enough, some versioning check may be ongoing so recently updated files on commons are indeed re-downloaded. (Discord server invitation)
Ciencia-Al-Poder pointed out "First of all, you should avoid redownload files that you downloaded on a previous run. The api will return you the file modification/creation time. Use it to check if the file has been updated." (Discord link)

@kanasimi posted:

Hi. Maybe you will be interesting in const file_data_list = await wiki.download('Category:name', { directory: './' });
The conceptions are implemented now, I am using generator now. The codes will do as less calls as possible. You may try it yourself.
You may try it yourself and find the codes at https://github.com/kanasimi/CeJS/blob/master/application/net/wiki/page.js#L3893

Mini benchmark

Initial download:

760s/829 ⬇ = 0.9s/ ⬇

Update downloads:

~20s/829 🔉 / 20 ⬇ = ~0.02s/file comparison and ~1s/⬇

UPDATE IS DAMN FASTER INDEED !!! 🎆

Well, I think this issue is solved.

200 times faster 😻🙉🤤


Plans on Updating your privacy policy?

A lot of this seems dated and I have concerns about the data collected section now that this is open source. It's misformated on the website, but you guys can check it out below. It talks about "not comparing stored voice recordings?" How would Xenko even know if there were voice recordings or do you guys record our voices? I'm not entirely sure or if there was a translation issue.

Xenko Privacy Policy Xenko (“We” or “Us”) has created this privacy policy (“Privacy Policy”) to explain and summarize how we collect, retain, use and protect Your personally identifiable information (“User Information”) when You use Xenko’s software (the “Software”) and any associated services (the “Services”). By using the Software or the Services, you agree to this Privacy Policy. IF YOU DO NOT AGREE TO THIS PRIVACY POLICY, PLEASE DO NOT DOWNLOAD THE SOFTWARE, AND DO NOT USE THE SOFTWARE OR THE SERVICES.
Information Collected and How it is Used Xenko collects and uses information for the Software and the Services as follows.

Information that is collected

Xenko collects and uses information you provide to us or that we learn from your use of the Software or the Services as described in this Privacy Policy.

E-mail addresses are collected to identify the user and prevent the unauthorized use.

Service use information

Cookies Cookies are used to provide better services through understanding the number of visits and the form of use of the Software and the Services to improve the Software and the Services, and for the convenience of the users, including to provide content storage and for the security including the maintenance and protection of the sessions. Users may opt out of allowing cookies. If cookies are rejected, part of the Services, including the services that require login, cannot be used.

Log Xenko may observe your activities, preferences, and transactional data (such as your IP address, location information, device) relating to your use of the Services. While we may collect or log this information, we generally do not identify you or match this information with your other personal information or stored voice recordings or text data. We may use this collected or logged information on an aggregated basis to diagnose technical problems, to analyze the user environment, to improve the Services, or to prevent illicit acts that impede normal service. Xenko, or its authorized service providers may use “cookies” and other technologies to analyze usage conditions and improve services, and may also collect and use technical data and information about your device and the system and application software incorporated on the device.

Device information Information about the device used may be obtained (OS, individual identification information of the device, computer name, etc.). This information may be used to provide better services and prevent illicit acts that impede the customer identification and normal operation of the Software or the Services.

Purpose for Use of User’s Information Xenko shall use the User Information for the following purposes.

Enhance use of the Software and the Services by the users

Address customer support issues

Respond to customer inquiries

Announce information about the Services, or providing advertising or marketing information of third parties

Identify users when they make inquiries

Bill processing related to use of paid Services

Prevent unauthorized use

Inform You of important notices in relation to the Software or the Services as required, in Xenko’s sole discretion

Evaluate the effectiveness of the Software or the Services

Measure and analyze the conditions under which you use the Software and the Services

Investigate and respond to malfunctions or other problems concerning the Software and the Services

To improve the Software and the Services

To tabulate and analyze statistics for the purposes of developing new software and services and marketing activities. ## Provision of information to third parties Xenko shall not provide User Information to third parties, except as follows:

As expressly stated in this Privacy Policy * The User provides consent or, in the case of a minor, the minor’s parent or guardian provides consent.

As required by law or court order

If the User has violated the Terms of Use and if User Information needs to be disclosed to protect the rights, assets and services of Xenko or third parties

To protect the life, physical safety or assets of a person

To improve the public health or sound development of children

As required by governmental agencies, local governments or those entrusted by the said agencies or governments to enforce laws and regulations. Xenko may be required to disclose User Information if it: (a) believes it is reasonably necessary to comply with legal process (such as a court order, subpoena, search warrant, etc.) or other legal requirements of any governmental authority; (b) would potentially mitigate our liability in an actual or potential lawsuit; (c) is otherwise necessary to protect our rights or property; or (d) is necessary protect the interest of other users of the Software or the Services.

In the event of a merger, company split, transfer of businesses, of if Xenko should ever file for bankruptcy, or if Xenko decides to buy, sell or reorganize some part or all of its business, and Xenko is required to disclose User Information to prospective or actual purchasers, or to receive information from sellers. It is Xenko’s practice to seek appropriate protection for information disclosed or received in these types of transactions.

Joint use of information Xenko may work with some authorized service providers to provide certain services, such as technical and customer support. Where practical, Xenko will require these service providers to safeguard User Information. To the extent it is necessary for these service providers to complete their contractual obligations to Xenko, these third parties may have access to or process User Information. Xenko generally limits service providers’ use of User Information to the purpose for which it was shared. Xenko may sometimes permit our authorized service providers to have access to aggregate statistics about our customers, sales, traffic patterns, usage and related information.

Collection of User Information from Minor and other Children Under Age 13 The Software or the Service is not intended for nor directed to children under the age of 13, and children under the age of 13 are prohibited from downloading, accessing or using the Software and the Service. We do not knowingly collect, use or retain personal information from children under the age of 13. If we discover that we have inadvertently collected personal information from children under the age of 13, we will take all reasonable measures to delete any records of such personal information that comes to our attention.

Disclosure, correction or deletion of information Users may request the purpose of use, disclosure, correction, addition, deletion, suspension of use, elimination or suspension of provision to a third party in relation to the User Information, if required by law. In the event You make such a request, Xenko may need to terminate Your user of the Software and the Service. Please send Your request by mail to the following address in writing enclosed with the document certifying the identification of the user (a copy of a driver’s license, passport, etc.). The request shall be handled as required by applicable laws and regulations after the details of the request are confirmed. Please understand that Xenko may retain Your information in our files, however, to resolve disputes, enforce the Terms of Use, and due to technical and legal requirements and constraints related to the security, integrity and operation of the Software and the Services.

Details of the request (confirmation, correction, deletion, etc. Please specify the details of correction in case of correction). (Contact address) User Information Management Office Silicon Studio Corporation NR Building, 1-21-3 Ebisu, Shibuya-ku, Tokyo 150-0013 (Fee) 800 yen per application Please enclose a postage stamp for 800 yen.

Change of Privacy Policy You understand that Xenko may update this Privacy Policy from time to time. We reserve the right to make changes at any time. If we make material changes to this Privacy Policy, we will notify you through the Software or the web page that provided the Software to You(the “Site”) along with information on accessing the updated Privacy Policy. If such a change takes place, the revised Privacy Policy will be published at the Software or the Site. Your continued use of the Software and the Services will signify your acceptance of the changes of our Privacy Policy.
Security Although Xenko uses reasonable measures to protect User Information, there is no guarantee that such information may not be accessed, disclosed, altered or destroyed by breach of our firewalls and secure server software. If Xenko learns of a security systems breach we may attempt to notify You electronically so that You can take appropriate protective steps. By using the Software or the Services, or providing personal information to us, You agree that we can communicate with You electronically regarding security, privacy and administrative issues relating to your use of the Software and the Services. Depending on where You live, You may have a legal right to receive notice of a security breach in writing. To receive free written notice of a security breach (or to withdraw Your consent from receiving electronic notice) You should notify us at the email address specified in the Help section of the Software.
Disputes Any disputes arising out of our related to this Privacy Policy shall be handled pursuant to the Xenko License Agreement.
Do Not Track Signals and Third Party Networks The Software is downloaded and provision of the Software and the Services are not impacted by browser settings, and therefore cannot respond to or recognize “do not track” settings on browsers. Third party ad networks do not gather information from the Software or the Services.
Inquiries for User Information Please contact the following for inquiries in relation to the User Information:

legal (at) xenko.com Effective date: June 17, 2018

It was hastily converted from previous version.
There is definitely need for a full rewrite, but since I am no lawyer, it might take little bit of time...
FYI, in practice, the only thing we currently collect is some anonymous metrics (how many time run per months, what platforms are being targeted, etc...) and crash report (if user press the Send button).

@xen2 Thanks for the response :)


DEV delete old *.c and *.so files with rebuild-cython.sh for Darwin/OSX

OSX's find supports a different syntax for -regex. As a result the original regex doesn't match any files and successfully does nothing.
I've confirmed that this change works with and without brew install findutils --with-default-names

lgtm, merging on pass

Coverage decreased (-0.04%) to 86.935% when pulling 810ee7f2af2ef01720bfef0fbafc80e85985d301 on rebuild_cython_osx into df2a09193702adf28e45fc128aded158c6956245 on master.