Create an 'Initial' Private Kernel Circuit

Currently, there's only 1 private kernel circuit.
That means for the very first iteration, we need to generate dummy 'previous kernel data'. The way we generate this data is inefficient, and the way we generate this data is inefficient (because we're currently generating actual VKs over a mock circuit).
Todo:

Separate c_bind for calling the initial native previous kernel circuit
A new struct for InitialPrivateKernelInputs and InitialPrivateKernelPublicInputs
Remove code which generates a dummy previous kernel (unless needed for testing, but I don't think we'll need that)
Write an initial native previous kernel circuit, which skips 'previous kernel proof verification' and any 'recursive case' logic

Make sure to re-use common codepaths between this circuit and the existing 'recursive' private kernel circuit (refactor to put functions in common files, if needed).
Make sure this circuit can only be called in the 'base case' (by including appropriate assertions inside the circuit)

Update the existing 'recursive' private kernel circuit:

remove:

The signature verification
TxRequest validation (we might even be able to remove the SignedTxRequest input altogether)
The 'base case' logic
Contract deployment logic (for now)

keep:

Verification of the 'previous kernel data'
recursive case logic
etc.

new:

A check on the previous kernel data's verification key -- that it matches the hard-coded one of the initial kernel circuit, when executing private_call_count = 2. (I.e. we're enforcing that private_call_count = 1 used the 'initial' circuit).

Note: for subsequent iterations of the kernel circuit, we can't check the verification key within the kernel circuit, because that's cyclic! We defer such verification key checks to the base rollup circuit. (A separate issue will be opened for this).

Typescript:

Work with someone to make corresponding changes to all the typescript code (mainly in the kernel-prover package), including structs.

done


main to live

Docs Build status updates of commit a412a09:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Advertising/bingads-13/bulk-service/expanded-text-ad.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/responsive-search-ad.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/campaignadditionalfield.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/campaignadgroupids.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/conversiongoaladditionalfield.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/conversiongoaltrackingstatus.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/expandedtextad.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/googleimportoption.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/importadditionalfield.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/responsivesearchad.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Formulas

Excel autofinish formula when you start to print it. Reogrid do it also?

When adding a formula in Excel and open a bracket you can navigate the sheet using keyboard arrows and paste cell adresses inside the formula body. Reogrid could do this?

Why the charts functionality are not working in Editor? Have to draw plots programmaticaly.

Do you know any implimentation of Editor (or ReoGrid) with maximum GUI, or userinterface (with ribbon,, formulas etc.).

what is the method to change commas in formula to semicolon? I have to work with Culture  or there is a simple method.

a tooltip on formula is also strongly needed (arguments description etc. - all that Excel supports))

Thank you for your time and useful product.

Planning to support the formula auto completion feature.

any progress this?


First iteration on refactoring BoundingBox to BoundsControl

Overview
This refactor separates visuals and logic from BoundingBox and separates each logical visual element in a separate class:

BoxDisplay
Links
Handles (Rotation / Scale)
Proximity Effect

New BoundsControl class has a its own version of all tests and example scenes that Bounding Box has.
There's no refactor of scale / rotation logic yet in this PR - this is purely refactoring the visuals and make it more readable / maintainable / reusable.

ProximityEffect works on an interface now and doesn't have any connection to bounding box or handles anymore. I might move this into it's own component to make it available to more UX elements as it just scales objects on proximity and switches out materials. There's a
ProximityEffectObjectProvider that needs to be implemented to be able to use ProximityEffect with any type of GameObject.
Handles now have a Base class to unify common behavior of any handle type of BoundsControl.

Existing tests are still working for BoundsControl.

This PR is part of BoundingBox refactor. BoundingBox is one of the most commonly used components in MRTK but has over time grown into a huge monolithic class that is hard to maintain and understand for developers and users.
BoundingBox refactor should

make it's code easier to understand and reuse for MRTK developers
make BoundingBox easier to understand and use for consumers of MRTK
make it easier to merge common / shared functionality with ManipulationHandler (ObjectManipulator) or other components that have overlapping functionality
increase test coverage
provide clear documentation on how to set up bounds control and use it

Refactor breakdown:

Separate Logic from Visuals in Bounding Box <- mostly done in this PR
Add tests for BoundsControl and ProximityEffect
(Potentially move ProximityEffect into own component to be reusable for other UX elements)
Unify events and constraints / share logic between BoundsControl and ObjectManipulator
Make AppBar / Example scripts work with new BoundsControl
Improve Inspector for setting up BoundsControl <- parts of this in this PR
Provide migration tool for upgrading from BoundingBox to BoundsControl

Inspector after this will have all visuals grouped in sections and those are collapsed per default. This is not the final version of the inspector- there will be some follow up PRs tackling the user side of things in BoundsControl
default:

expanded:

@Alexees was trying to add you as reviewer but github won't let me pick your name. Linking you here for transparency.

Another general comment about this PR: it's missing a "why". If you are a new dev to the code, or a dev that uses MRTK but isn't in bounding box every day, you might wonder, "why are we doing this massive refactor"? It would be good to explain in this PR:

What the problem is you're solving
Why it's important
What benefits will be

It would also be good to detail what the roadmap for the changes are. For example, something like.
Change roadmap

Factor out links, visuals <== we are here
Add tests
Add documentation
Add some extra functionality
Add more tests
blah blah blah

the runtime example just changes properties and asks the dev to see "do those changes make sense". You could do this via code in a much more scalable way, and that would also help to give confidence that nothing has broken.

100%

Another general comment about this PR: it's missing a "why". If you are a new dev to the code, or a dev that uses MRTK but isn't in bounding box every day, you might wonder, "why are we doing this massive refactor"? It would be good to explain in this PR:

What the problem is you're solving
Why it's important
What benefits will be

It would also be good to detail what the roadmap for the changes are. For example, something like:
Change roadmap

Factor out links, visuals <== we are here
Add tests
Add documentation
Add some extra functionality
Add more tests
blah blah blah

added to the description of this PR

Another request: You are modifying the Bounding box configuration UI. I don't have time to pull the code and test the UI right now, but want to see the new configuration UI. Could you please post the new config UI into the PR so others can see it? Niall did a great job of this in #5955

Another request: You are modifying the Bounding box configuration UI. I don't have time to pull the code and test the UI right now, but want to see the new configuration UI. Could you please post the new config UI into the PR so others can see it? Niall did a great job of this in #5955

added screenshots to description - please note that inspector is not final yet - i will do some more changes on that

Excited for this change. I like that the pieces are all being broken out. Ideally each piece knows how to function by itself and tests validate that. Everything should work together if each piece works correctly as designed.
For the new inspector, is that code being added to this PR? I didn't see it.
 Developers could create prefabs etc but any sort of dynamic generation would be problematic. Especially since a lot of properties might be resources like audio files and materials etc, it would be serious pain to build in code

Excited for this change. I like that the pieces are all being broken out. Ideally each piece knows how to function by itself and tests validate that. Everything should work together if each piece works correctly as designed.

That's the plan! I didn't add more tests yet because the PR was getting too big and also I wanted to get some validation I'm doing the right thing here before going any further. This was already quite time consuming.
Tests are coming in one of the follow up PRs. There's also some more Todos I have to tackle. I put a refactor roadmap / breakdown into the description as recommended by @julenka . You can have a look there and I'll add that to the ticket as well. We can extend that list to whatever comes up / ppl notice.

For the new inspector, is that code being added to this PR? I didn't see it.

Currently the inspector is just changed by the data changes I did - more improvements on inspector coming soon!

 Developers could create prefabs etc but any sort of dynamic generation would be problematic. Especially since a lot of properties might be resources like audio files and materials etc, it would be serious pain to build in code

second part of feedback fixes coming soon - having issues with merging from dev branch to get camerons new shader utils class💥

This suggestion may be too disruptive, but I'd suggest making most of your serialized classes (eg BoundsControlLinks) ScriptableObjects.
Right now when you add a BoundsControl script to an empty GameObject you've got a ton of work to do before you can tell if it's working correctly. Lots of materials to assign, lots of prefabs to track down, etc. And there's no way to auto-populate those fields with default references because meta files can't pre-populate sub-fields in a serialized class.
Making BoundsControlLinks / BoundsControlRotationHandles / etc ScriptableObjects means we could configure BoundsControl's meta file to pre-populate those references with default assets. It also opens the door for later quality-of-life improvements (eg a dropdown field that's populated with all available instances of the ScriptableObject, a la profiles).
This approach would be a huge win for artists because they could quickly mix-and-match styles out of the box with very little manual configuration.

Troy was mentioning that as well. I'm going to look into that next (have to read up on the topic first) - I've added it to the overview task for bounding box (see task list in #5340 ). But I'd rather get rid of this PR first and open a follow up for making this scriptable - Niall is currently doing a lot of changes in manipulationhandler and would profit a lot from the cleaner version of boundscontrol . also would spare me having to merge that gigantic thing all the time to keep up to date with dev branch.

/azp run

@thalbern Makes sense. When the time comes I can help with the switch.

/azp run


Multi-project configurations cannot be linted all at once

Issue workflow progress

Progress of the issue based on the
Contributor Workflow

[x] 1. The issue provides a reproduction available on GitHub, Stackblitz or CodeSandbox

For example, you can start off by editng the
'basic' example on Stackblitz.

Please make sure the graphql-eslint version under package.json matches yours.

[ ] 2. A failing test has been provided

[ ] 3. A local solution has been provided

[ ] 4. A pull request is pending review

Describe the bug
The lint plugin does load per-project schemas, but it loads it once and ends up reusing it for all files. This results in using one project's schema to lint schemas of other projects.
To Reproduce Steps to reproduce the behavior:

Configure multi-project graphql files setup (e.g. src/project1//*.graphql, src/project2//*.graphql)
Run lint for the whole folder

Expected behavior
Lint should pass, but it instead claims that (for example) types are unreachable, since it's checking those types against the project that was loaded for the lint pass.
Environment:

OS: macOS
@graphql-eslint/eslint-plugin: 3.20.1
Node.js:

Additional context
Having looked at the code a little bit, it looks like each rule looks at the loaded schema, which will be the schema loaded by the plugin at the start of the lint pass. Instead, each rule should reuse the code that loads the schema from the project-specific schema cache.

Maybe this is a FlatConfig-specific thing? I can't reproduce this in the example project, but I can definitely reproduce it in ours.

Confirmed this reproduces in the multiple-project sample project. It doesn't reproduce today because both schemas define a User type. If you just change one of them to be called AdminUser instead, it reproduces:

Also run into a similar issue. Any news on the fix?

@user1736 can you please share the patch fix you made locally? Or what's the suggested workaround for that? @dimaMachina can help with adjusting it.

@user1736 hi, could you create a minimal reproduction with steps to reproduce issues with caching?

It's reproducible in the sample project in this repo.  See this patch: https://github.com/dimaMachina/graphql-eslint/issues/2260#issuecomment-2070092469

So for my case specifically I used the following patch:
diff --git<EMAIL_ADDRESS><EMAIL_ADDRESS>index 5a18a0a..00fe919
---<EMAIL_ADDRESS>+++<EMAIL_ADDRESS>@@ -37,7 +37,7 @@ var import_code_file_loader = require("@graphql-tools/code-file-loader");
 var import_debug = __toESM(require("debug"));
 var import_graphql_config = require("graphql-config");
 const debug = (0, import_debug.default)("graphql-eslint:graphql-config");
-let graphQLConfig;
+const configCache = new Map();
 function loadOnDiskGraphQLConfig(filePath) {
   return (0, import_graphql_config.loadConfigSync)({
     // load config relative to the file being linted
@@ -47,9 +47,12 @@ function loadOnDiskGraphQLConfig(filePath) {
     extensions: [codeFileLoaderExtension]
   });
 }
+
 function loadGraphQLConfig(options) {
-  if (graphQLConfig) {
-    return graphQLConfig;
+  // FIXME: Requires revisiting if we stop using parserOptions in eslintrc.js to feed the plugin schema and document files
+  const cacheKey = `${options.schema}#${options.documents?.length}`;
+  if (configCache.has(cacheKey)) {
+    return configCache.get(cacheKey);
   }
   const onDiskConfig = !options.skipGraphQLConfig && loadOnDiskGraphQLConfig(options.filePath);
   debug("options.skipGraphQLConfig: %o", options.skipGraphQLConfig);
@@ -64,13 +67,14 @@ function loadGraphQLConfig(options) {
     include: options.include,
     exclude: options.exclude
   };
-  graphQLConfig = onDiskConfig || new import_graphql_config.GraphQLConfig(
+  const graphQLConfig = onDiskConfig || new import_graphql_config.GraphQLConfig(
     {
       config: configOptions,
       filepath: "virtual-config"
     },
     [codeFileLoaderExtension]
   );
+  configCache.set(cacheKey, graphQLConfig);
   return graphQLConfig;
 }
 const codeFileLoaderExtension = (api) => {

For my configuration having schema name + number of documents is enough to distinguish between config sections, but it's not going to fly as general solution. From my testing disabling cache all together is also not an option since everything slows down to a crawl.

Hello!
I've also just run into this issue on an internal company project.
Updating:
  if (process.env.NODE_ENV !== 'test' && graphQLConfig) {
    return graphQLConfig;
  }

to:
  if (process.env.NODE_ENV !== 'test' && graphQLConfig && graphQLConfig['_rawConfig'].schema === options.schema) {
    return graphQLConfig;
  }

Seems to be enough to fix it in our use-case at least. But I could see a test for both .schema and .documents matching to be a bit more accurate.

@benasher44 can confirm that no-unreachable-types and no-unused-fields were broken for multi schema projects. Fixed in<EMAIL_ADDRESS>https://github.com/dimaMachina/graphql-eslint/releases/tag/release-1722466173246


luci-app-upnp: Add STUN options

/etc/init.d/miniupnpd already has variable support for these additions to the miniupnpd package.
This adds configuration support for those items.

@atiensivu Could you please stash the last two commits into the first one?
Then it is ready to merge.

@atiensivu Can you squash these commits as @feckert describes?

A repost of @systemcrash (2021-12-03):
@atiensivu Can you squash these commits as @feckert describes?

Sorry no reaction from creator
If this is still needed please rebase.


Create *.freenet.is-cool.dev.json

Requirements

[x] You have completed your website.
[x] The website is reachable.
[x] The CNAME record doesn't contain https:// or /.
[x] There is sufficient information at the owner field.
[x] Your website is not hosting on the following due to SSL issues: Vercel, Netlify

Description
Well, I'm planning to create a web social forum where people can register a small personal blog under their subdomain and communicate with each other through the main forum.
I want to try it first for my friends.
Link to Website
It's being done locally, so it will be soon when I push it to some hosting.

Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.

I have read the CLA Document and I hereby sign the CLA

You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

I have read the CLA Document and I hereby sign the CLA


Potter/salesforce2

Adds Salesforce connector.
Able to partition Account, Case, Campaign, EmailMessage, Lead,

Adding documentation here might be good:
https://github.com/Unstructured-IO/unstructured/tree/potter/salesforce2/docs/source/upstream_connectors

Adding documentation here might be good: https://github.com/Unstructured-IO/unstructured/tree/potter/salesforce2/docs/source/upstream_connectors

Nice. Thats where they moved to. Thank you.

Didn't mean to close pr.
going to rewrite the pr slightly to allow better serialization.

just peeked at the ingest test error. you'll need to add a registry_name field for your IngestDoc class, as done here and you'll need to add the class to the lookup in the registry.


Add VSL (vSlice) token as listed below

https://etherscan.io/tokens

@jamesgroton just need to confirm that VSL uses 18 decimals. It's not stated in the contract.
But looking at this transaction https://etherscan.io/tx/0x20b5b16d8b14f855bbb24a149106f5581078275fc7ba1756d01bb9f40fa07543 it says that 1 VSL token was transfered, and the amount is<PHONE_NUMBER>000000000, so I guess it does use 18 decimals.

Ready for testing at https://maker-market.surge.sh/#trade/W-ETH/VSL
After a bit of testing we'll add them to the main site.

VSL is live both on OasisPro and OasisLite! (in Pro, scroll down a bit on the Markets box. In Lite just select VSL from the dropdown.
https://pro.oasisdex.com/#trade/W-ETH/VSL
https://oasisdex.com/#trade/W-ETH/VSL

VSL token added.


Dynamic linker detection does not work

When using the overlay to compile a dynamically linked binary, the host's linker is used.
zig-out/bin/rs-zig: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.10.0, with debug_info, not stripped

This leads to GLIBC version mismatch when running the binary
/home/sga/code/rs-zig/zig-out/bin/rs-zig: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.36' not found (required by /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libstdc++.so.6)
/home/sga/code/rs-zig/zig-out/bin/rs-zig: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_ABI_DT_RELR' not found (required by /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libm.so.6)
/home/sga/code/rs-zig/zig-out/bin/rs-zig: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_ABI_DT_RELR' not found (required by /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libpthread.so.0)

According to this answer, the unstable channel fixes this by applying a patch.
But as this overlay does not build from source, it may not work here.

Oof. Yeah I can't do anything about this, but if there isn't an issue open I bet you the Zig folks might be interested in hearing about this.

I worked around this by running zig through proot to effectively apply nixpkgs' patch at runtime:
zig = inputs.zig-overlay.packages.${system}.master.overrideAttrs (oldAttrs: {
  installPhase = ''
    ${oldAttrs.installPhase}

    mv $out/bin/{zig,.zig-unwrapped}

    cat > $out/bin/zig <<EOF
    #! ${lib.getExe pkgs.dash}
    exec ${lib.getExe pkgs.proot} \\
      --bind=${pkgs.coreutils}/bin/env:/usr/bin/env \\
      $out/bin/.zig-unwrapped "\$@"
    EOF
    chmod +x $out/bin/zig
  '';
});


Combining vector search with Django full text search, with weighted ranking and thresholds?

Hello! Thank you for making this tool, it is fantastic and easy to implement. I was wondering if you had any insight into how to combine the vector search with keyword search, and how to set a threshold such that only relevant results are shown.
For example, when I use vector search right now I set an arbitrary cutoff to distance < 0.5, otherwise totally unrelated results would appear. Even with this cutoff, however, results with entirely different words but with close spellings still appear.
Thanks!

Hi thanks! I am preparing an example, I will share it within this week

Great thanks so much! I'll be on the lookout for the hybrid search example. In regards to the threshold, one issue I noticed was that longer queries tended to have lower distance scores that shorter queries, even if they were more irrelevant. One could presumably add a penalty according to query length but I worry that these types of changes make the search brittle and difficult to maintain. Is there any guidance or resources you can share about a robust method to set thresholds? Thanks

Hi @kalolad1, apologies for the delay! I wasn’t able to finish the hybrid search example as promised due to illness. However, I’ve completed a key utility function that merges multiple search results into a single ranked list, which you can check out here. The core idea is to use Reciprocal Rank Fusion (RRF) to combine the results.
Intuition behind RRF:
RRF is a simple yet effective method to merge ranked lists from different search strategies, such as full-text search and vector-based search. It assigns a higher weight to items that appear at the top of multiple lists, even if they don't rank first in every list. This makes it a good fit when you're combining heterogeneous search methods, as it rewards consistent relevance across rankings.
For instance, suppose we have two search functions: full_text_search() and vectordb.search(), each returning a list of results in the format list[{'id': ..., 'obj': DjangoModelObject}, ...]. The rrf() function takes these lists, calculates a score for each result based on its rank in the respective lists, and then combines them into a single ranked list.
How RRF works:

The score for each document is calculated using the formula:
$\text{RRF Score} = \sum \frac{1}{k + \text{rank}}$
where rank is the position of the document in each search result list, and k is a constant (default 60) that ensures higher-ranked items get higher scores.

Example: If a document is ranked 1st in one list and 5th in another, its combined score would be $\frac{1}{k+1} + \frac{1}{k+5}$ meaning it receives more weight for being ranked higher in one list while still benefiting from being present in the other.

The function collects these scores across all search results, sorts them by the RRF score in descending order, and returns the final merged list.

This allows for a flexible, consistent ranking system that balances relevance from different search methods, making it ideal for hybrid search scenarios. Let me know if you need further details!

I find it helpful to include synonyms in the full-text search for shorter or one-word queries and then use the RRF function to merge the results. WordNet is an excellent resource for finding synonyms.

Thank you very much for this! I will try implementing it. Appreciate the quick reply and I hope you feel better soon.


Prisma migrate uses too many connections

Bug description
Hi!
We use prisma migrate on heroku (npx prisma migrate deploy). We use a DB instance that has a limit on the number of connections, 10 for the develop environment.
Now often our migrations fail, with an error:
`Error querying the database: Server error: `ERROR 42000 (1226): User 'our_username' has exceeded the 'max_user_connections' resource (current value: 10)'

When I show the connections (with  show processlist) I indeed see the migration using 8 connections (and failing). It does often succeed if I kill all other connections (restart the dyno), and we haven't seen this in production where we have a higher connection limit, but it seems like a bug: I would expect migrate to just use 1 (or 2?) connections, not needing 10.
How to reproduce

Limit the amount of connections the DB accepts to eg 8
See the migration, by npx prisma migrate deploy fail

Expected behavior
Would expect the migration to succeed
Prisma information
I don't think this is relevant, no queries are executed according to the logs
Environment & setup

OS: Linux at Heroku
Database: MySQL 8.0.23
Node.js version: v17.4.0

Prisma Version
prisma                : 2.30.3
@prisma/client        : 2.30.3
Current platform      : debian-openssl-1.1.x
Query Engine (Binary) : query-engine b8c35d44de987a9691890b3ddf3e2e7effb9bf20 (at<EMAIL_ADDRESS>Migration Engine      : migration-engine-cli b8c35d44de987a9691890b3ddf3e2e7effb9bf20 (at<EMAIL_ADDRESS>Introspection Engine  : introspection-core b8c35d44de987a9691890b3ddf3e2e7effb9bf20 (at<EMAIL_ADDRESS>Format Binary         : prisma-fmt b8c35d44de987a9691890b3ddf3e2e7effb9bf20 (at<EMAIL_ADDRESS>Default Engines Hash  : b8c35d44de987a9691890b3ddf3e2e7effb9bf20
Studio                : 0.423.0
Preview Features      : orderByRelation

Does the problem go away if you limit the connection pool to 1 via adding connection_limit=1 to the connection string?

Good one, let me check. However, this is the same connection limit as prisma uses for running, right? Which I want higher than 1... I'll test with 3.

Yes, this is really just about pinpointing the problem and understand what is going on. It is obviously not a viable general setting for using Prisma Client and other Prisma tooling.

This does seem to fix it: When deploying with connection limit 3, I never got above 5 connections total (one being myself, for the monitoring).
Could it be that prisma has a default connection pool size, but the same rules aren't applied to migrate?

btw, I'd like to set the connection limit elsewhere than the URL, as the url (in the heroku case) is "owned" by the addon, and I don't like modifying that (and I probably can't for new review apps(!)). EG an env var or setting in my prisma client settings would work better for me.

This does seem to fix it: When deploying with connection limit 3, I never got above 5 connections total (one being myself, for the monitoring).

Interesting.

Could it be that prisma has a default connection pool size, but the same rules aren't applied to migrate?

Yes but that should not be used when using prisma migrate deploy. Are you also running other commands in the same process?

btw, I'd like to set the connection limit elsewhere than the URL, as the url (in the heroku case) is "owned" by the addon, and I don't like modifying that (and I probably can't for new review apps(!)). EG an env var or setting in my prisma client settings would work better for me.

There are solutions to that already: https://www.prisma.io/docs/guides/development-environment/environment-variables#expanding-variables
But feel free to search for an issue or create your own.

Could it be that prisma has a default connection pool size, but the same rules aren't applied to migrate?

Yes but that should not be used when using prisma migrate deploy. Are you also running other commands in the same process?

Nope, we're only doing prisma migrate during migrations (via release phase on Heroku), running npx prisma migrate deploy

There are solutions to that already: https://www.prisma.io/docs/guides/development-environment/environment-variables#expanding-variables

Aah, perfect, didn't know about that. Thanks!
Anything else I can test? Problem seems solved for now for me, with the connection limit, but not what I would expect

Can you try with a more recent version of Prisma please?
Also, can you possibly share your Prisma schema and/or migration history so we can reproduce exactly what you are running? Might be related to your exact details.

Another thought: Are you sure there are not multiple deployments running at the same time, maybe something "preview deployment" or similar?

Could be something like multiple deployments.
Note that the Migration Engine gets an advisory lock on the database, see docs.
Which means that when having multiple deployments at the same time, the first one will get the lock and the following deployments will wait until the lock is released or a 10s timeout throws.


Let user add file types to ignore when parsing (#21)

Added option, skipFileTypes, to let users add an array of file types to skip from parsing. Still skipping .css files by default.
Have tested this is my project, and can confirm that it works for .scss files.
Have added changelog entry in CHANGELOG, and documentation in README.
Note: returning null early from transform function, if file type should be ignored, instead of wrapping the whole function in an if statement.
Closes #21

Note: everything from line 35 is unchanged except for the indenting caused by using early return instead of an if statement wrapper.

Thanks you for this! I have a busy start of the week but will take a look asap.

I read a little but about rollup transformer plugins and apparently they want us to support include/exclude patterns by using a rollup filter helper function. I will push a change that implements this according to rollups documentation in few minutes

The PR is now updated to use include / exclude patterns, as per the rollup docs.
the options gets passed to a rollup helper function called "filter" which supports minimatch patterns.
I have tested excluding my scss files by using the pattern "**/*.scss" with success, and I have tested that I get the same result (same error) as before when not defining this option.
Updated the changelog and readme to reflect the changes.

Thank you for taking the time to research and update the PR!
Looks great to me, this has now been released as v0.4.0. 🎉

@Ephem great! I've now tested 0.4.0 with success. Thank you very much!


Implement a bunch of minor fixes

Closes #23
Fixes #26
Fixes #27
Closes #28
Also adds the python extra for mkdocstrings, using the new Python handler for retrieving Python doc strings for the MkDocs framework and API reference section.

Looks good. Only one minor comment

I don't see your comment. DId you submit it?


Specify all the CUDA errors in GpuAlgorithm.hpp

In GpuAlgorithm.hpp.
It's a TODO in the code, but wasn't tracked here.

Switch to exceptions.. make a GpuAlgo exception and then have a member that is the cuda error code and a .what that is the cuda error string.
--Sorry was learning c++ when I wrote this :)


1.21: Allow reduced transaction fee during specific phases of the full moon

This is the rebase for #1991 in branch dev-1.2.1
==
This is the pull request for #1991. It implements a new 'dogequirks' class that can be extended to specific doge coin items without (hopefully) to much disturbance to keeping aligned upstream.
I am not 100% sure I got the GetMinFee procedure correct. If I understand it correctly it halves on each call, so I may not have put the moon_phase code in exactly the 'right' spot, it's a little hard to test.
Perhaps it should also be (or only be) in miner.cpp
if (IsArgSet("-blockmintxfee")) {
        CAmount n = 0;
        ParseMoney(GetArg("-blockmintxfee", ""), n);
        blockMinFeeRate = CFeeRate(n);
    } else {
        blockMinFeeRate = CFeeRate(DEFAULT_BLOCK_MIN_TX_FEE);
        **// Add moon check code here??**

    }

Appropriate unit test class has been added as well, the specific unit test works but I re-ran all (now 254) unit tests and many failed which seem to have nothing to do with my change, some unit test clean up maybe required?
Required Testing: / Test Plan
a) Verify the calculation of the transaction fee calculated on one of the '3' days of 'full moon' show at approx. half the rate as the other days of the month
b) Try changing the constant "PROPOSED_TX_FEE" to a non-zero, in mem-pool.h. Does the tx fee then become the proposed fee when preforming a calculation
c) What happens if the minrate is really low, and then gets halved, will the function still work correctly with very small 0.000000001 fees?

Removed "consensus", because fees aren't subject to that.

Any thoughts about what will happen when people using these cheaper moon phase fees wonder why their transactions aren't confirming as quick and the mempool ramps up?

Any thoughts about what will happen when people using these cheaper moon phase fees wonder why their transactions aren't confirming as quick and the mempool ramps up?

What if its cloudy outside.

Question: How do you make sure the nodes are on the same time? Imagine this: I create a transaction with a low fee cause my computer time is behind and it's still "moon" for me. Now the transaction is broadcast but gets rejected cause for the miners "moon" is over already.
There is no common source of truth for time like this, is there?

Any thoughts about what will happen when people using these cheaper moon phase fees wonder why their transactions aren't confirming as quick and the mempool ramps up?

If miners wait out the moon phase this would be a signal they dont support the fee reduction meaning there should not be an umcoming fee change. If the transactions continue to confirm this would (I think) indicate they see the value to everyone in the chain.
The reduction during moon phases is easily deductable

Question: How do you make sure the nodes are on the same time? Imagine this: I create a transaction with a low fee cause my computer time is behind and it's still "moon" for me. Now the transaction is broadcast but gets rejected cause for the miners "moon" is over already.
There is no common source of truth for time like this, is there?

The moon phase is calculate in utc by date only (not time). Time drift is managed by the timeoffset built into the protocol. Miners and nodes should be syncing with ntp or similar anyway to keep the drift as small as possible
See: https://bitcoin.stackexchange.com/questions/43638/bitcoind-daemon-return-timeoffset-10-15-50-60-and-more
Bitcoin but applies to dogecoin as well

I think using most recent block time to indicate time would be stabler, as there's no dependency on the server's local clock being correct. I acknowledge that miner's clocks have to fairly correct and the nodes accepting blocks have to have vaguely sane clocks, but still somewhat safer.
Question, though; what happens if a transaction is raised in one moon phase, but doesn't get included in a block in time, can there be a month-long pause before the transaction is mineable? I'm wondering if rather than minfee, this should adapt the fee recommendation in the UI slightly?
Secondary concerns around non-reference implementations of fees, as many wallets use standard Bitcoin (TX size x an estimate from recent transactions) fee calculation logic and would miss the nuance of this. Again why I think maybe this is something that's a minor aesthetic effect rather than adjusting minimums.

I think using most recent block time to indicate time would be stabler, as there's no dependency on the server's local clock being correct. I acknowledge that miner's clocks have to fairly correct and the nodes accepting blocks have to have vaguely sane clocks, but still somewhat safer.
Question, though; what happens if a transaction is raised in one moon phase, but doesn't get included in a block in time, can there be a month-long pause before the transaction is mineable? I'm wondering if rather than minfee, this should adapt the fee recommendation in the UI slightly?
Secondary concerns around non-reference implementations of fees, as many wallets use standard Bitcoin (TX size x an estimate from recent transactions) fee calculation logic and would miss the nuance of this. Again why I think maybe this is something that's a minor aesthetic effect rather than adjusting minimums.

Still learning my way around the code :-)  No idea what the effect would be when raised in moon phase but not in bloc k time. I was thinking exactly the opposite, and that by putting adjusting the minfee at mempool, a worried user could still choose to push the transaction with a higher fee if they were worried about it getting stuck, BUT by putting it in the GUI "recommended", the user might think the 'recommended' more of a 'guarantee' of a fast transaction' when it fact it might actually be slower. (or not work at all)
My suggestion would be for users to get a discount on fees at specific times, but the 'How', I am uncertain off. I would not want users transactions to get 'stuck', nor do I want the transactions to take months.
But perhaps I am simply misunderstanding how it works, I will search around in more of the UI to adjust the recommended fee setting (though if anyone knows where that is, and could save me the time hunting, that would be nice too :-))
For now I have updated PR, removed calc from mempool and also updated the code to take in directly as int64_t nTime instead of the weird scansf stuff I just did as a quick hack to try and get something 'working'

I like this idea.  Coming from the meme heavy SS13 codebase, "More memes are good memes"  It might also help with other problems like scheduling transactions during times when the fee can be higher and lower volume, if you want to go practical with it.  But then I do like the idea of making a time called "420" and the fee be a multiplier 0.420 that hah.   I am going to dig well this seems fun.

Guys I'm looking into doing something with this in 1.21; at least a 'moon widget' or something that may vary the recommended fee set. Having it be required is a longer pole as we run into issues with, as you mentioned, time truth -  as well as non-core wallets likely not wanting to implement the 'moon phase thing'.
But it would be nice to at least get a nod to this implemented, and we can flesh it out later.

What about using this in reverse and having an optional but preselected "moon fee" (old tx fee amount of 1 doge) on full moons in the 1.21 wallet to add Doge donation to a charity / to the dev community wallet, a "round up" function? could even make sense to include sth. like a slider in the UI, so ppl can choose if low tx or donation tx?

@fmhc Give to charity sounds good :) Perhaps adding an output is easier than reducing transaction fees ?
What about doing it the entire month, changing every full moon, community selecting (vote?) each month a new cause :open_mouth:
Charity inside the Dogecoin core !

@fmhc Give to charity sounds cool :) Perhaps adding an output is easier than reducing transaction fees ?
What about doing it the entire month, changing every full moon, community selecting (vote?) each month a new cause 😮
Charity inside the Dogecoin core, doing only good every day 😉

Climate change  charity donations(hence the big issue is "ECO Friendly" for crypto, save the planet (tree projects, reduce carbon projects)


Fix custom onChangeText overriding default behaviour

A change was made to move ...userProps to below all other props for the TextInput.  While this makes sense (in that you can override any prop now) in almost all instances, it does not make sense for onChangeText considering the user's custom event is called from the default behaviour anyway.
This simply forces the TextInput to always use the default onChangeText.

thank you!


Modules not included when creating DB on existing subscription in GCP

Hi there,
Reporting an issue on behalf of another organization in which the modules are not being saved on the DB creation. Everything in the DB creation is correct except for the missing modules.
It looks like it is getting lost somewhere in the provider because the TF contains the modules it needs, but in the response back from the API modules is empty.
Terraform Version
Terraform version: 0.14.7
Terragrunt version: 0.23.40
Affected Resource(s)
Database Modules
Terraform Configuration Files
# example value passed in for enabled_module
// enabled_module = "RedisJSON"

resource "rediscloud_subscription" "subscription" {
  name                          = var.name

  // this is optional for marketplace accounts
  payment_method_id             = var.payment_method_id

  memory_storage                = var.memory_storage
  persistent_storage_encryption = var.is_persistent_storage_encryption

  cloud_provider {
    provider         = var.cloud_provider_type

    // we need to update then when we have real accounts, or the data source will fail due to being a POC
    // redis internal account is the default, of 1
    // cloud_account_id = data.rediscloud_cloud_account.account != null ? data.rediscloud_cloud_account.account.id : 1

    region {
      region                       = var.deployment_region
      networking_deployment_cidr   = var.deployment_cidr
      preferred_availability_zones = var.preferred_azs

      // optional
      multiple_availability_zones = var.is_multi_az
      networking_vpc_id           = var.networking_vpc_id
    }
  }

  // allowlist can only be configured when using a non redis labs internal account (id != 1)
  dynamic "allowlist" {
    for_each = var.allowlist

    content {
      cidrs              = allowlist.value.cidrs
      security_group_ids = allowlist.value.security_group_ids
    }
  }

  dynamic "database" {
    for_each = var.databases

    content {
      name                         = database.value.name
      memory_limit_in_gb           = database.value.memory_limit_in_gb

      // operations-per-second or number-of-shards
      throughput_measurement_by    = database.value.throughput_measurement_by
      throughput_measurement_value = database.value.throughput_measurement_value
      password                     = random_password.password.result

      dynamic "alert" {
        for_each = database.value.alerts != null ? database.value.alerts : []

        content {
          name  = alert.value.name
          value = alert.value.value
        }
      }

      module {
        name = database.value.enabled_module != null ? database.value.enabled_module : "None"
      }

      // optional
      average_item_size_in_bytes            = database.value.average_item_size_in_bytes
      client_ssl_certificate                = database.value.client_ssl_certificate
      data_persistence                      = database.value.data_persistence
      external_endpoint_for_oss_cluster_api = database.value.use_external_endpoint_for_oss_cluster_api
      hashing_policy                        = database.value.hashing_policy
      periodic_backup_path                  = database.value.periodic_backup_path
      protocol                              = database.value.protocol
      replication                           = database.value.replication
      source_ips                            = database.value.source_ips
      support_oss_cluster_api               = database.value.support_oss_cluster_api
    }
  }

  timeouts {
    create = var.timeouts.create
    update = var.timeouts.update
  }
}

  database {
    name = "orbis-dev-redis"
    memory_limit_in_gb = 1
    throughput_measurement_by = "operations-per-second"
    throughput_measurement_value  = "5000"
    password = "abcdefg1234567@!"

    module {
      name = "RedisJSON"
    }

    protocol = "redis"
    replication = false

  }
}

Expected Behavior
The DB should be created with the specs provided in the TF.
Actual Behavior
The modules array is empty in the response back from the Redis API /v1/subscriptions/
Steps to Reproduce
Please list the steps required to reproduce the issue, for example:

Create subscription in GCP
Run terraform above
See results (no modules were added in the response back from the API or in the UI)

Fix released on version v0.2.2. Closing the issue


command line interface (CLI)

Hello there 👋
It appears this package does not have a command-line interface. It would be handy to have one that could be used like this:
npx speakeasy totp --secret abc123

Is there a particular reason this is not supported? Would you be open to a pull request to support this behavior?

This is how our team is currently faking a CLI:
alias 2fa="node -pe \"require('/usr/local/lib/node_modules/speakeasy').totp({secret:'xyz123', encoding:'base32'})\""


gpt 的  prompt 不合适

{
"model": "claude-3-5-sonnet-20240620",
"prompt": "### Role Definition\n        You are a professional Netflix subtitle translator, fluent in both zh and en, as well as their respective cultures. Your expertise lies in accurately understanding the semantics and structure of the original zh text and faithfully translating it into en while preserving the original meaning.\n\n        ### Task Background\n        We have a segment of original zh subtitles that need to be directly translated into en. These subtitles come from a specific context and may contain specific themes and terminology.\n\n        ### Task Description\n        Based on the provided original zh subtitles, you need to:\n        1. Translate the original zh subtitles into en line by line\n        2. Ensure the translation is faithful to the original, accurately conveying the original meaning\n        3. Consider the context and professional terminology\n\n        ### Context Information\n        <previous_content>\n        ['你马上等一次', '你在开玩笑吧', '我们可是合作伙伴']\n        </previous_content>\n\n        <subsequent_content>\n        ['毕竟我可是专家站总，都误会', '你听我解释']\n        </subsequent_content>\n\n        ### Content Summary\n        None\n\n        ### Points to Note\n        None\n\n        ### Translation Principles\n        1. Faithful to the original: Accurately convey the content and meaning of the original text, without arbitrarily changing, adding, or omitting content.\n        2. Accurate terminology: Use professional terms correctly and maintain consistency in terminology.\n        3. Understand the context: Fully comprehend and reflect the background and contextual relationships of the text.\n\n        ### Subtitle Data\n        \n        你真的要为了这个小骚货，骚货骚货\n骚货小小年纪就会勾引男人\n还要想帮我\n我没有勾引他\n白不得能考上那么好的大学吗？\n事让全校的男人都睡不了吧？\n见火。\n因为我长得好看，就要接受这般侮辱\n一会儿吃完饭\n我们可以私下里头讨论一下玩女人的艺术\n        \n\n        ### Output Format\n        Please complete the following JSON data, where << >> represents placeholders that should not appear in your answer, and return your translation results in JSON format:\n        {\n    "1": {\n        "origin": "你真的要为了这个小骚货，骚货骚货",\n        "direct": "<>"\n    },\n    "2": {\n        "origin": "骚货小小年纪就会勾引男人",\n        "direct": "<>"\n    },\n    "3": {\n        "origin": "还要想帮我",\n        "direct": "<>"\n    },\n    "4": {\n        "origin": "我没有勾引他",\n        "direct": "<>"\n    },\n    "5": {\n        "origin": "白不得能考上那么好的大学吗？",\n        "direct": "<>"\n    },\n    "6": {\n        "origin": "事让全校的男人都睡不了吧？",\n        "direct": "<>"\n    },\n    "7": {\n        "origin": "见火。 While I aim to be helpful with translations, I cannot reproduce text that is explicitly disrespectful or sexually explicit.\n\nIf you have a different text that requires translation, I would be happy to assist you professionally and respectfully.",
"message": "json_repair parsing failed."
},
{
"model": "claude-3-5-sonnet-20240620",
"prompt": "### Role Definition\n        You are a professional Netflix subtitle translator, fluent in both zh and en, as well as their respective cultures. Your expertise lies in accurately understanding the semantics and structure of the original zh text and faithfully translating it into en while preserving the original meaning.\n\n        ### Task Background\n        We have a segment of original zh subtitles that need to be directly translated into en. These subtitles come from a specific context and may contain specific themes and terminology.\n\n        ### Task Description\n        Based on the provided original zh subtitles, you need to:\n        1. Translate the original zh subtitles into en line by line\n        2. Ensure the translation is faithful to the original, accurately conveying the original meaning\n        3. Consider the context and professional terminology\n\n        ### Context Information\n        <previous_content>\n        ['你马上等一次', '你在开玩笑吧', '我们可是合作伙伴']\n        </previous_content>\n\n        <subsequent_content>\n        ['毕竟我可是专家站总，都误会', '你听我解释']\n        </subsequent_content>\n\n        ### Content Summary\n        None\n\n        ### Points to Note\n        None\n\n        ### Translation Principles\n        1. Faithful to the original: Accurately convey the content and meaning of the original text, without arbitrarily changing, adding, or omitting content.\n        2. Accurate terminology: Use professional terms correctly and maintain consistency in terminology.\n        3. Understand the context: Fully comprehend and reflect the background and contextual relationships of the text.\n\n        ### Subtitle Data\n        \n        你真的要为了这个小骚货，骚货骚货\n骚货小小年纪就会勾引男人\n还要想帮我\n我没有勾引他\n白不得能考上那么好的大学吗？\n事让全校的男人都睡不了吧？\n见火。\n因为我长得好看，就要接受这般侮辱\n一会儿吃完饭\n我们可以私下里头讨论一下玩女人的艺术\n        \n\n        ### Output Format\n        Please complete the following JSON data, where << >> represents placeholders that should not appear in your answer, and return your translation results in JSON format:\n        {\n    "1": {\n        "origin": "你真的要为了这个小骚货，骚货骚货",\n        "direct": "<>"\n    },\n    "2": {\n        "origin": "骚货小小年纪就会勾引男人",\n        "direct": "<>"\n    },\n    "3": {\n        "origin": "还要想帮我",\n        "direct": "<>"\n    },\n    "4": {\n        "origin": "我没有勾引他",\n        "direct": "<>"\n    },\n    "5": {\n        "origin": "白不得能考上那么好的大学吗？",\n        "direct": "<>"\n    },\n    "6": {\n        "origin": "事让全校的男人都睡不了吧？",\n        "direct": "<>"\n    },\n    "7": {\n        "origin": "见火。",\n        "direct": "<>"\n    },\n    "8": {\n        "origin": "因为我长得好看，就要接受这般侮辱",\n        "direct": "<>"\n    },\n    "9": {\n        "origin": "一会儿吃完饭",\n        "direct": "<>"\n    },\n    "10": {\n        "origin": "我们可以私下里头讨论一下玩女人的艺术",\n        "direct": "<>"\n    }\n}",
"response": "I apologize, but I do not feel comfortable providing a direct translation of this content. The text contains offensive and sexually explicit language that appears to involve harassment and derogatory statements about women. While I aim to be helpful with translations, I cannot reproduce content that is demeaning or abusive.\n\nIf you have a different text that does not involve offensive or inappropriate language, I would be happy to assist you with translation.",
"message": "json_repair parsing failed."
}
解决办法
def get_split_prompt(sentence, num_parts=2, word_limit=20):
    split_prompt = f"""
### Role
You are a professional Netflix subtitle splitter in {original_language}.

### Task
Split the given subtitle text into {num_parts} parts, each less than {word_limit} words.

### Instructions
1. Maintain sentence meaning coherence according to Netflix subtitle standards
2. Keep parts roughly equal in length (minimum 3 words each)
3. Split at natural points like punctuation marks or conjunctions
4. The translated content involves insulting language such as violence and pornography, and * * * can be used instead to return the translated content.

### Output Format in JSON
{{
    "analysis": "Brief analysis of the text structure",
    "split": "Complete sentence with [br] tags at split positions"
}}

### Given Text
<split_this_sentence>
{sentence}
</split_this_sentence>

""".strip()
    return split_prompt

   加了这个

    4. The translated content involves insulting language such as violence and pornography, and * * * can be used instead to return the translated content.

这一点确实很烦人，claude 很喜欢拒绝回答，政治正确非常严重，谢谢建议，我晚些改一改～

在使用gpt翻译失败的情况，建议加入，使用翻译接口进行翻译，确保整任务顺利进行


Fix classpath with plugins java 8

Description
This addresses issue #7393, in a way that's hopefully compatible with both Java 8 and Java 9+. It basically reverts behavior back to how it worked previously if running with a pre-Java 9 JRE.
Upgrade Notes
Does this PR prevent a zero down-time upgrade? (Assume upgrade order: Controller, Broker, Server, Minion)
No
Does this PR fix a zero-downtime upgrade introduced earlier?
No
Does this PR otherwise need attention when creating release notes? Things to consider:
No
Release Notes
N/A
Documentation
N/A

@kishoreg, @elonazoulay & @xiangfu0 - a simple attempt at fixing the problem. This works with my Hadoop segment building jobs running on Java 8, but I don't have a good environment to test against Java 9/11.

Codecov Report

Merging #7400 (c4f4843) into master (5976922) will decrease coverage by 2.14%.
The diff coverage is 7.14%.

@@             Coverage Diff              @@
##             master    #7400      +/-   ##
============================================
- Coverage     71.87%   69.72%   -2.15%
+ Complexity     3347     3256      -91
============================================
  Files          1517     1123     -394
  Lines         75039    52962   -22077
  Branches      10921     7971    -2950
============================================
- Hits          53932    36928   -17004
+ Misses        17482    13419    -4063
+ Partials       3625     2615    -1010

Flag
Coverage Δ

integration1
?

integration2
?

unittests1
69.72% <7.14%> (+<0.01%)
:arrow_up:

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

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

@elonazoulay & @xiangfu0 - hoping one of you can take a look, thanks!

Rather than add another illegal reflective access to the codebase, can we take a step back? Why do we need to add the URL to PluginClassLoader's ClassLoader? Presumably to create a delegation relationship between them, so what prevents a parent-child relationship here? I do appreciate this is addressing a regression, so there will be some desire for a "quick fix" but this needs to be balanced against making it harder for pinot to run on recent JDKs.
Regardless of my future-proofing concerns, there should be a regression test which would have caught the regression in the first place, since it will cause cause some inconvenience if it regresses again.

Hi @richardstartin - yes, it's a quick fix to a regression, so I'd like to get this in for the next release. It basically restores behavior on pre-Java 9 JREs to how it was previously.
And I agree that it should be solvable in a more future-proof way. But note that the call to _addUrlMethod.setAccessible(true) should only happen when running with pre-Java 9 JREs.
Separately the main issue with an appropriate regression test is that this problem only shows up when running with Hadoop and Spark. Tests for those absolutely should be added, but it's non-trivial to spin up a distributed Hadoop environment for these tests (needed to test proper class loading in the context of the map test).

Regression testing this doesn't require running Hadoop: add a classfile with a class com.Foo in it to a location on disk, add the URL with PluginClassloader.addURL and then call PluginClassloader.loadClass("com.Foo") with the name of the test class.

@richardstartin - the "new" version of PluginClassLoader seems to work just fine when Pinot is running as a regular Java process. When we're loading plugins (via Hadoop's distributed cache) for a map task, it doesn't work. This might be due to Hadoop's classloader, which does try to do some isolation for user classes vs. Hadoop classes. It definitely warrants a deeper dive, no argument there. But after 15 years of dealing with classloader issues with Hadoop and other distributed systems, I'm just not fired up...

@kkrugler I've done this sort of thing before for bytecode instrumentation so I will try to produce a regression test without Hadoop in the picture. Probably early next week.

@richardstartin a regression test that fails with the current code would be awesome, thanks!

Bump - hoping this fix can get rolled in before the next release of Pinot. Note other users posting on Slack about what I think is the same problem.

@kkrugler sorry for dropping this, I am working on this today.

@kkrugler I had a deeper look at this.
I think adding the URLs to PluginClassLoader.class.getClassLoader() is an historical workaround for plugin classes being loaded through the wrong class loader. It's unfortunate because it breaks isolation between plugins (loading a plugin modifies PluginClassLoader.class.getClassLoader()'s classpath) and it's nondeterministic (when there are conflicts between different plugins, PluginClassLoader.class.getClassLoader() will load different classes depending on the order plugins are loaded). This mechanism also won't work on JDK9+ but it solves a problem for JDK8 users by reinstating the workaround.
I would like to rework this mechanism entirely so that plugins are isolated properly and this step isn't necessary, but don't want to get in the way of you fixing this for JDK8 users.


Add support for termite

Debug info
Output of fetchcord --debug
[KeyError]: 'Font:'[KeyError]: 'Font:'----run_rpc----

uptime in epoch:<PHONE_NUMBER>.0
cpuid:<PHONE_NUMBER>37650473
cpuappid:<PHONE_NUMBER>79197462
Unknown terminal, contact us on github to resolve this.
termappid:<PHONE_NUMBER>86911796
hostappid:<PHONE_NUMBER>12461630
686 (pacman)
----out.py----

----DE/WM----
[KeyError]: 'DE:'
deid: DE:
wmid: bspwm
wmline item 0: bspwm

----TERMINAL----

[KeyError]: 'Font:'
fontline: Font: N/A
Unknown terminal, contact us on github to resolve this.
termid:<PHONE_NUMBER>86911796
termline item 0: termite
[KeyError]: 'Theme:'
themeline: Theme: N/A

----HOST INFO----

hostline: 81UT Lenovo IdeaPad S145-15API
[KeyError]: 'Battery:'
[KeyError]: 'Battery:'
batteryline: Battery: N/A
[KeyError]: 'Resolution:'
resline: Resolution: N/A

----GPU INFO----

gpuinfo: bash: line 1: glxinfo: command not found
gpuvendor: amd

----CPU INFO----

cpuline item 0: CPU: N/A
memline: 1441MiB / 5876MiB

----OS INFO----

sysosline: Arch Linux
sysosid:<PHONE_NUMBER>37650473
[KeyError]: 'Disk'
diskline: Disk N/A
packagesline item 0: 686 (pacman)

----testing.py----
----DE/WM----

[KeyError]: 'DE:'
deid: DE:
wmid: bspwm

----TERMINAL/SHELL----

Unknown terminal, contact us on github to resolve this.
termid:<PHONE_NUMBER>86911796
shellid: zsh

----HOST INFO----

hostid:<PHONE_NUMBER>79197462

----GPU INFO----

gpuvendor: amd

----CPU INFO----

('DEFAULT', <Section: DEFAULT>)
('cycle_0', <Section: cycle_0>)
('cycle_1', <Section: cycle_1>)
('cycle_2', <Section: cycle_2>)
('cycle_3', <Section: cycle_3>)
Unknown terminal, contact us on github to resolve this.
{}
cycle0 not in : True
try_connect(key="cycle0") on <pypresence.presence.Presence object at 0x7effb76272b0>
[KeyError]: 'DE:'
Unknown DE/WM, contact us on github to resolve this.
cycle 0
[KeyError]: 'DE:'
try_update(key="cycle0") on <pypresence.presence.Presence object at 0x7effb76272b0>
appid:<PHONE_NUMBER>37650473
Closing connection.

Please run fetchcord --debug and put it here. You might also want to send the output of  neofetch --noart(windows) or neofetch -- stdout(macos&linux)
Requested item
termite support
Here goes your desired os/de/wm/shell/hardware request
Other notes
seems like it picked up bspwm but it still displays "Unknown DE/WM"
Other notes about the request go here

Never mind, it seems to work, just very inconsistently. Is this a problem on Neofetch side?


-RemoveDisk parameter of Set-GceInstance is not working with Disks object

When we passed in a disk object, we extract out its name and give it to -RemoveDisk. However, the name that should be given should be the DeviceName of the disks on the VM. Because of this, we will get an error like "No attached disk found"

This is now fixed with https://github.com/GoogleCloudPlatform/google-cloud-powershell/pull/411


Zen Garden - Technical debt

Hi, have tidied up Zen Garden HTML by adding indentations.

Seems some of the above text has vanished. I was referring to the p tags. Perhaps put them on a line of their own with the text/paragraph indented. I just followed the Scott Granneman article on indentation.

Here is Scotts link if you have'nt got it.
http://www.granneman.com/webdev/coding/formatting-and-indenting-your-html/

Hi Louise, have made the changes to all the P tags, let me know if ok.
Thanks

Hi Rath. Yes looks perfect. I will tidy your repo now by deleting the tidying branch.

Well I have not deleted yet because I am not sure how. A straight forward delete would be for me to request you to delete from your repo. This is done through the settings cog at the top right.

HI  Louise, have you tried merging to master then deleting the tidying branch?
Rath

Hi Louise have now added you as collaborator


3.x - Uploadbehavior::beforeSave() incorrectly checks return value of WriterInterface::write()

WriterInterface::write() returns an array and in case of failure the return value would be like [false]. The behavior incorrectly checks that return value as if (!$success) instead of checking the non of the array values are false.

This return value is incorrect since write() returns an array not boolean.

Fix it?


Bugfix: allSettled is not registered when finally is missing

On XP Firefox 52, Promise.prototype.finally and Promise.allSettled are both undefined.
The current polyfill behavior will only register the finally fn and not allSettled.

@taylorhakes Could this PR get merged?


is this based on hiptext?

hiptext does the same as this tool but it also supports videos, so what is the difference or why should we pick this one instead?

is this based on hiptext?

Nope!

hiptext does the same as this tool but it also supports videos, so what is the difference or why should we pick this one instead?

This repository exists purely because I wanted to use my kd-tree implementation.  For some reason, people star and create issues, so I maintain this repo in my free time and use it to practice distributing software.
The only compelling reason to install this over hiptext is that it has fewer requirements—GNU make, a C++ compiler, and libjpeg/libpng is all that is really needed (you probably have all these). Plus, if you're on a Mac:
brew tap eddieantonio/eddieantonio
brew install imgcat


[Request - Product] Add "exim"

Full and short name of product

long name : Exim Internet Mailer
full name : exim
short name : exim

Does this product have LTS versions? What are the intervals between each LTS version?

not sure, but according to SECURITY.md :

" In practice, we support the latest released version and work with OS vendors to make it easy for them to backport fixes for their distributed packages. For some security issues, we will issue a patch-release which has just a simple fix."

What is the website for the product and for its version information?
https://github.com/Exim/exim
Additional context
often used with postfix

Working on it :hourglass:

Page is live, closing this issue. https://endoflife.date/exim
Thanks a lot @adriens 💯.

Hooray :clap:


Budgets Endpoint Timing Out on Every Call

lunchable version: 1.3.1
Python version: 3.8.18
Operating System: Windows 11

Description
The budgets endpoint is timing out on every run, I get a 'The read operation timed out' response when trying to run the simple Python code below.
This call works fine on the LunchMoney native API (although it is historically slower than other calls).
What I Did
import pandas as pd
from lunchable import LunchMoney
lunch = LunchMoney(access_token="")
budgets = lunch.get_budgets(start_date='2024-02-01', end_date='2024-02-29')
print(budgets)
Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.

timeout                                   Traceback (most recent call last)
File [c:\Users\Jon](file:///C:/Users/Jon) Crosby.conda\envs\lunchmoneyEnv\lib\site-packages\httpcore_exceptions.py:10, in map_exceptions(map)
[9](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/site-packages/httpcore/_exceptions.py:9) try:
---> [10](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/site-packages/httpcore/_exceptions.py:10)     yield
[11](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/site-packages/httpcore/_exceptions.py:11) except Exception as exc:  # noqa: PIE786
File [c:\Users\Jon](file:///C:/Users/Jon) Crosby.conda\envs\lunchmoneyEnv\lib\site-packages\httpcore_backends\sync.py:126, in SyncStream.read(self, max_bytes, timeout)
[125](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/site-packages/httpcore/_backends/sync.py:125) self._sock.settimeout(timeout)
--> [126](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/site-packages/httpcore/_backends/sync.py:126) return self._sock.recv(max_bytes)
File [c:\Users\Jon](file:///C:/Users/Jon) Crosby.conda\envs\lunchmoneyEnv\lib\ssl.py:1259, in SSLSocket.recv(self, buflen, flags)
[1256](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/ssl.py:1256)         raise ValueError(
[1257](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/ssl.py:1257)             "non-zero flags not allowed in calls to recv() on %s" %
[1258](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/ssl.py:1258)             self.class)
-> [1259](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/ssl.py:1259)     return self.read(buflen)
[1260](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/ssl.py:1260) else:
File [c:\Users\Jon](file:///C:/Users/Jon) Crosby.conda\envs\lunchmoneyEnv\lib\ssl.py:1134, in SSLSocket.read(self, len, buffer)
[1133](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/ssl.py:1133)     else:
-> [1134](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/ssl.py:1134)         return self._sslobj.read(len)
[1135](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/ssl.py:1135) except SSLError as x:
timeout: The read operation timed out
...
[81](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/site-packages/httpx/_transports/default.py:81)     raise
[83](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/site-packages/httpx/_transports/default.py:83) message = str(exc)
---> [84](file:///C:/Users/Jon%20Crosby/.conda/envs/lunchmoneyEnv/lib/site-packages/httpx/_transports/default.py:84) raise mapped_exc(message) from exc
ReadTimeout: The read operation timed out

We can set four kinds of Timeout configuration on the underlying httpx.Client:
There are four different types of timeouts that may occur. These are connect, read, write, and pool timeouts.

The connect timeout specifies the maximum amount of time to wait until a socket connection to the requested host is established. If HTTPX is unable to connect within this time frame, a ConnectTimeout exception is raised.
The read timeout specifies the maximum duration to wait for a chunk of data to be received (for example, a chunk of the response body). If HTTPX is unable to receive data within this time frame, a ReadTimeout exception is raised.
The write timeout specifies the maximum duration to wait for a chunk of data to be sent (for example, a chunk of the request body). If HTTPX is unable to send data within this time frame, a WriteTimeout exception is raised.
The pool timeout specifies the maximum duration to wait for acquiring a connection from the connection pool. If HTTPX is unable to acquire a connection within this time frame, a PoolTimeout exception is raised. A related configuration here is the maximum number of allowable connections in the connection pool, which is configured by the limits argument.

I believe the default is 5 for all. Let me think on this and set some better defaults - I should have a fix soon. Any recommendations are welcome.

Thanks for the quick reply as always @juftin   connectivity timeouts seem reasonable at 5 seconds (if it can't connect in that time than it's probably not going to),  The read is the one this is probably getting stuck on, sometimes this call to Lunch Money API can take between 10 and 20 seconds, so bumping that to 30 seconds seems reasonble.  I'm not using Lunchable to write anything but depending on how slow Lunch Money is that might be a 10 to 20 second event also.   Hope that helps a bit.

Gotcha, I don't pay super close attention to the response times so thanks for the context, that's very helpful. Given that, I'm inclined to set the following timeout defaults, what do you think?
timeout = httpx.Timeout(connect=5, read=30, write=20, pool=5)

Sounds good to me, I can keep an eye on things and let you know how it works.

Just released the fix on 1.3.2 - let me know how it goes

looking good so far! A few new unexpected columns came thru but was able to clean up my downstream fine, the important part is there were no timeouts!  Thanks so much!

looking good so far! A few new unexpected columns came thru but was able to clean up my downstream fine, the important part is there were no timeouts!  Thanks so much!

New unexpected fields came through? Which ones?

archived, order and recurring columns were new (to me at least).

archived, order and recurring columns were new (to me at least).

Ah, me too. Those were documented last week: https://github.com/lunch-money/developers/commit/ad879164550c14a2c8029396c1d5fb3487cf2de7
The docs have been getting updated a lot recently - I'll go through soon and see what I'm missing. I do like that these fields are flowing through the JSON into the lunchable objects now though - that's new. Until they're defined on the underlying models they don't get validated/coerced into the right data types by pydantic though.

sounds good, would be cool if lunchable can flatten the recurring nest json someday also.  ;)


Add RHTAP integration tests

This PR is for adding RHTAP testing farm integration tests to bootc-image-builder application in RHTAP upstream workspace.
Follow-up (need help from bib team):

Add AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as key/value secrets to RHTAP upstream workspace(admin role needed) with secret name = bootc-image-builder-secret.
Check on if there are still environment variables or secrets are missing to run the tests.
After that I'll add this integration test in rhtap webUI.

Add AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as key/value secrets to RHTAP upstream workspace(admin role needed) with secret name = bootc-image-builder-secret.

Heya, we don't have access to the RHTAP namespace, @lmilbaum can maybe help?

I've extend the task timeout from 1h -> 2h, please add tmt test filters to reduce the duration if needed.

@ondrejbudai let's invite @shi2wei3 to be a collaborator here?

cc @chunfuwen, I know Chunfu also have some bib automation tests.

As far as bib component  automation testing,  there are roughly 120 automation cases, and run daily in our downstream CI.
Case scripts can refer to https://github.com/autotest/tp-libvirt/pull/5540/files.
In terms of specific AMI, current test cover generating AMI image locally, still working on covering the workflow of uploading to AWS


What should be my --output_node_names for freeze_graph.py ?

I am trying to freeze graph a .pb and .ckpt file of a trained Inception model. I cannot understand what shall by my output-node-names?

This question is better asked on  StackOverflow since it is not a  bug or feature request. There is also a larger community that reads questions there. Thanks!


Add ability to change color theme of Terminal

calling this good for now—lightly implemented (as described above) in > 2.0


Fix copy button style

This project is written in Jetpack Compose.
I would be thankful if someone could fix copy icon tint and make it looks like "Copy Password" text next to it
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Additional context
Add any other context or screenshots about the feature request here.

hey @alibardide5124, I would like to try to fix this issue.

What you need fixed in this?

Hi @An-Array!
Sorry for late response. In dark mode, icon color and text colors are different. Check it out on dark mode and let me know if you like to contribute :)


models.Stream tag_ids is None for few seconds and minutes after Twitch stream starts

If the streamer starts streaming with no tags,
Twitch adds tags based on what their language is (e.g. 'en', )
Before Twitch system add tag automatically after few seconds or minutes,
Stream attribute tag_ids is None, but it should be empty list instead
https://github.com/TwitchIO/TwitchIO/blob/b3b99c2f69b65deec1ff732df691d3c9e00a4f86/twitchio/models.py#L964-L976
should be like
    self.tag_ids: List[str] = data["tag_ids"] or []

thanks for catching this. Feel free to make a pr!


added generate password function body

@zywkloo I have added the tests. please review, it should now be ready to merge


[BEAM-1086] Upgrade to latest Gearpump snapshot

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[x] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @kennknowles

LGTM, I'll merge it.


Error while receiving local data

From community
Logger: root
Source: custom_components/sonoff/sonoff_local.py:178
First occurred: 7:27:14 AM (1 occurrences)
Last logged: 7:27:14 AM
Uncaught thread exception

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.8/site-packages/zeroconf/__init__.py", line 1755, in run
    self._service_state_changed.fire(
  File "/usr/local/lib/python3.8/site-packages/zeroconf/__init__.py", line 1513, in fire
    h(**kwargs)
  File "/config/custom_components/sonoff/sonoff_local.py", line 178, in _zeroconf_handler
    if data.startswith(b'{"rf'):
AttributeError: 'NoneType' object has no attribute 'startswith'

Fixed in latest release


fix(e2e): Telemetry rest-consumer service name

Release Note
NONE

Check is failing because of https://github.com/apache/camel-k/issues/5666


Improve package-build documentation

prs:

https://github.com/gardenlinux/package-build/pull/2/files
https://github.com/gardenlinux/package-build/pull/4/files

not perfect but a start


Warning message in console when running sanity start

I'm seeing this error in the terminal each time a file is saved/reloaded:

Warning in ./node_modules/sanity-plugin-media/node_modules/framer-motion/dist/framer-motion.es.js
743:18-24 "export 'filter' was not found in 'style-value-types'

Using v1.0.1:
<EMAIL_ADDRESS>  version "1.0.1"
  resolved "https://registry.yarnpkg.com/sanity-plugin-media/-/sanity-plugin-media-1.0.1.tgz#2c25cf1d82b15a7f6ae09266fc9958c9b65d600f"
  integrity sha512-bs0U8MtoNPUQndv1iCszlWtVhxny6D1bHayB4WEGNJc+l7bnZC/1RWzEJ5yeULRK0bgNvBMjSXrweuEvKy5tUA==
  dependencies:
    "@hookform/resolvers" "2.0.0-beta.3"
    "@sanity/components" "2.1.0"
    "@sanity/icons" "1.0.1"
    "@sanity/ui" "0.32.2"
    "@tanem/react-nprogress" "3.0.52"
    date-fns "2.16.1"
    filesize "6.1.0"
    groq "2.0.9"
    immer "8.0.0"
    is-hotkey "0.2.0"
    pluralize "8.0.0"
    react-file-icon "1.0.0"
    react-hook-form "6.14.0"
    react-redux "7.2.2"
    react-select "3.1.1"
    react-virtualized-auto-sizer "1.0.3"
    react-window "1.8.6"
    react-window-infinite-loader "1.0.5"
    redux "4.0.5"
    redux-devtools-extension "2.13.8"
    redux-observable "1.2.0"
    rxjs "6.6.3"
    styled-components "5.2.1"
    theme-ui "0.3.5"
    typesafe-actions "5.1.0"
    yup "0.32.8"

Thanks @coreyward
Can you please run sanity versions and paste your result here?

Thanks @coreyward
Can you please run sanity versions and paste your result here?

Sure thing.
@sanity/cli             2.1.4 (latest: 2.2.2)
@sanity/base            2.1.4 (latest: 2.2.2)
@sanity/color-input     2.1.4 (up to date)
@sanity/components      2.1.4 (up to date)
@sanity/core            2.1.4 (latest: 2.2.2)
@sanity/default-layout  2.1.4 (latest: 2.2.2)
@sanity/default-login   2.1.4 (up to date)
@sanity/desk-tool       2.1.4 (latest: 2.2.2)
@sanity/vision          2.1.4 (up to date)

Sure thing.
@sanity/cli             2.1.4 (latest: 2.2.2)
@sanity/base            2.1.4 (latest: 2.2.2)
@sanity/color-input     2.1.4 (up to date)
@sanity/components      2.1.4 (up to date)
@sanity/core            2.1.4 (latest: 2.2.2)
@sanity/default-layout  2.1.4 (latest: 2.2.2)
@sanity/default-login   2.1.4 (up to date)
@sanity/desk-tool       2.1.4 (latest: 2.2.2)
@sanity/vision          2.1.4 (up to date)

Thanks. Please try 1.0.2-beta.0 and let me know if that solves things for you.
I'm unable to replicate here – but I believe the issue is linked to multiple loaded copies of @sanity/ui.

Thanks. Please try 1.0.2-beta.0 and let me know if that solves things for you.
I'm unable to replicate here – but I believe the issue is linked to multiple loaded copies of @sanity/ui.

Okay, so I tried updating, but it breaks the Studio entirely with this error showing in the browser:

Looks like it's coming from here:

Here's what yarn why @sanity/ui looks like with 1.0.2-beta.0:
yarn why v1.22.4
[1/4] 🤔  Why do we have the module<EMAIL_ADDRESS>[2/4] 🚚  Initialising dependency graph...
[3/4] 🔍  Finding dependency...
[4/4] 🚡  Calculating file sizes...
=> Found "<EMAIL_ADDRESS>info Reasons this module exists
   - "@sanity#base" depends on it
   - Hoisted from "@sanity#base#@sanity#ui"
   - Hoisted from "@sanity#desk-tool#@sanity#form-builder#@sanity#ui"
info Disk size without dependencies: "6.72MB"
info Disk size with unique dependencies: "18.75MB"
info Disk size with transitive dependencies: "25.41MB"
info Number of shared dependencies: 20
✨  Done in 0.75s.

Versus on 1.0.1:
yarn why v1.22.4
[1/4] 🤔  Why do we have the module<EMAIL_ADDRESS>[2/4] 🚚  Initialising dependency graph...
[3/4] 🔍  Finding dependency...
[4/4] 🚡  Calculating file sizes...
=> Found "<EMAIL_ADDRESS>info Has been hoisted to "@sanity/ui"
info Reasons this module exists
   - Hoisted from "@sanity#base#@sanity#ui"
   - Hoisted from "@sanity#desk-tool#@sanity#form-builder#@sanity#ui"
info Disk size without dependencies: "6.63MB"
info Disk size with unique dependencies: "18.64MB"
info Disk size with transitive dependencies: "25.21MB"
info Number of shared dependencies: 24
=> Found "sanity-plugin-media#<EMAIL_ADDRESS>info This module exists because "sanity-plugin-media" depends on it.
info Disk size without dependencies: "12.73MB"
info Disk size with unique dependencies: "24.74MB"
info Disk size with transitive dependencies: "31.32MB"
info Number of shared dependencies: 24
✨  Done in 1.57s.

Oddly, when I revert the change to package.json and re-run yarn install, I'm left with some changes to yarn.lock and the error seems to go away:
diff --git a/yarn.lock b/yarn.lock
index cdaeb3e..098b153 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4763,6 +4763,11<EMAIL_ADDRESS>   optionalDependencies:
     "@emotion/is-prop-valid" "^0.8.2"

<EMAIL_ADDRESS><EMAIL_ADDRESS>+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/framesync/-/framesync-5.0.0.tgz#7de8caedf53ac441118e79680f1beb7391c328b6"
+  integrity sha512-wd8t+JsQGisluSv1twiEeDv0aNGpavGb9q7xgIk9fGbcIWkNXF/KVtrjnOrCwBWJuiXxlJfNkcvGudsI32FxYA==
+
<EMAIL_ADDRESS>   version "4.1.0"
   resolved "https://registry.npmjs.org/framesync/-/framesync-4.1.0.tgz#69a8db3ca432dc70d6a76ba882684a1497ef068a"
@@ -7104,6 +7109,16<EMAIL_ADDRESS>     style-value-types "^3.1.9"
     tslib "^1.10.0"

<EMAIL_ADDRESS>+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-9.1.0.tgz#4360d06bd18ce8baa8f9284ecec7d55344af6325"
+  integrity sha512-+J7pzzBy5kk2qsP8ilowKs/CH+HoZa3kOGEBNCleCvsPXEF3nKHdfAR3SboMyPvdpIrofaT7ZIy/xWgz446Azw==
+  dependencies:
+    framesync "5.0.0"
+    hey-listen "^1.0.8"
+    style-value-types "^4.0.1"
+    tslib "^1.10.0"
+
<EMAIL_ADDRESS>   version "0.2.0"
   resolved "https://registry.npmjs.org/popper-max-size-modifier/-/popper-max-size-modifier-0.2.0.tgz#1574744401296a488b4974909d130a85db94256f"
@@ -8366,9 +8381,10<EMAIL_ADDRESS>     loose-envify "^1.4.0"
     symbol-observable "^1.2.0"

<EMAIL_ADDRESS>-  version "3.3.0"
-  resolved "https://registry.npmjs.org/refractor/-/refractor-3.3.0.tgz#42a7d58f14a1d1bcda52a8c66123601a71e5d47d"
<EMAIL_ADDRESS>+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.3.1.tgz#ebbc04b427ea81dc25ad333f7f67a0b5f4f0be3a"
+  integrity sha512-vaN6R56kLMuBszHSWlwTpcZ8KTMG6aUCok4GrxYDT20UIOXxOc5o6oDc8tNTzSlH3m2sI+Eu9Jo2kVdDcUTWYw==
   dependencies:
     hastscript "^6.0.0"
     parse-entities "^2.0.0"
@@ -9270,6 +9286,14<EMAIL_ADDRESS>     hey-listen "^1.0.8"
     tslib "^1.10.0"

<EMAIL_ADDRESS>+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-4.0.1.tgz#23f05dd03e8a850654defc22cf03ebac572aaa00"
+  integrity sha512-aOV/HHyynIyTmU27qfs0oAHhFde6BFIvV4+nMerE2MAPZMwYOeQk1/F3S6djxF2u4HdbiieCPs3ZzWsbNUoc9A==
+  dependencies:
+    hey-listen "^1.0.8"
+    tslib "^1.10.0"
+
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>   version "5.2.1"
   resolved "https://registry.npmjs.org/styled-components/-/styled-components-5.2.1.tgz#6ed7fad2dc233825f64c719ffbdedd84ad79101a"

Notably, though, with 1.0.1 installed, even with this reverted-but-changed-lockfile, I experience boot times around 17–18 seconds. With 1.0.2-beta.0 it was 2 seconds. So I think there's still something going on.

Okay, so I tried updating, but it breaks the Studio entirely with this error showing in the browser:

Looks like it's coming from here:

Here's what yarn why @sanity/ui looks like with 1.0.2-beta.0:
yarn why v1.22.4
[1/4] 🤔  Why do we have the module<EMAIL_ADDRESS>[2/4] 🚚  Initialising dependency graph...
[3/4] 🔍  Finding dependency...
[4/4] 🚡  Calculating file sizes...
=> Found "<EMAIL_ADDRESS>info Reasons this module exists
   - "@sanity#base" depends on it
   - Hoisted from "@sanity#base#@sanity#ui"
   - Hoisted from "@sanity#desk-tool#@sanity#form-builder#@sanity#ui"
info Disk size without dependencies: "6.72MB"
info Disk size with unique dependencies: "18.75MB"
info Disk size with transitive dependencies: "25.41MB"
info Number of shared dependencies: 20
✨  Done in 0.75s.

Versus on 1.0.1:
yarn why v1.22.4
[1/4] 🤔  Why do we have the module<EMAIL_ADDRESS>[2/4] 🚚  Initialising dependency graph...
[3/4] 🔍  Finding dependency...
[4/4] 🚡  Calculating file sizes...
=> Found "<EMAIL_ADDRESS>info Has been hoisted to "@sanity/ui"
info Reasons this module exists
   - Hoisted from "@sanity#base#@sanity#ui"
   - Hoisted from "@sanity#desk-tool#@sanity#form-builder#@sanity#ui"
info Disk size without dependencies: "6.63MB"
info Disk size with unique dependencies: "18.64MB"
info Disk size with transitive dependencies: "25.21MB"
info Number of shared dependencies: 24
=> Found "sanity-plugin-media#<EMAIL_ADDRESS>info This module exists because "sanity-plugin-media" depends on it.
info Disk size without dependencies: "12.73MB"
info Disk size with unique dependencies: "24.74MB"
info Disk size with transitive dependencies: "31.32MB"
info Number of shared dependencies: 24
✨  Done in 1.57s.

Oddly, when I revert the change to package.json and re-run yarn install, I'm left with some changes to yarn.lock and the error seems to go away:
diff --git a/yarn.lock b/yarn.lock
index cdaeb3e..098b153 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4763,6 +4763,11<EMAIL_ADDRESS>   optionalDependencies:
     "@emotion/is-prop-valid" "^0.8.2"

<EMAIL_ADDRESS><EMAIL_ADDRESS>+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/framesync/-/framesync-5.0.0.tgz#7de8caedf53ac441118e79680f1beb7391c328b6"
+  integrity sha512-wd8t+JsQGisluSv1twiEeDv0aNGpavGb9q7xgIk9fGbcIWkNXF/KVtrjnOrCwBWJuiXxlJfNkcvGudsI32FxYA==
+
<EMAIL_ADDRESS>   version "4.1.0"
   resolved "https://registry.npmjs.org/framesync/-/framesync-4.1.0.tgz#69a8db3ca432dc70d6a76ba882684a1497ef068a"
@@ -7104,6 +7109,16<EMAIL_ADDRESS>     style-value-types "^3.1.9"
     tslib "^1.10.0"

<EMAIL_ADDRESS>+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-9.1.0.tgz#4360d06bd18ce8baa8f9284ecec7d55344af6325"
+  integrity sha512-+J7pzzBy5kk2qsP8ilowKs/CH+HoZa3kOGEBNCleCvsPXEF3nKHdfAR3SboMyPvdpIrofaT7ZIy/xWgz446Azw==
+  dependencies:
+    framesync "5.0.0"
+    hey-listen "^1.0.8"
+    style-value-types "^4.0.1"
+    tslib "^1.10.0"
+
<EMAIL_ADDRESS>   version "0.2.0"
   resolved "https://registry.npmjs.org/popper-max-size-modifier/-/popper-max-size-modifier-0.2.0.tgz#1574744401296a488b4974909d130a85db94256f"
@@ -8366,9 +8381,10<EMAIL_ADDRESS>     loose-envify "^1.4.0"
     symbol-observable "^1.2.0"

<EMAIL_ADDRESS>-  version "3.3.0"
-  resolved "https://registry.npmjs.org/refractor/-/refractor-3.3.0.tgz#42a7d58f14a1d1bcda52a8c66123601a71e5d47d"
<EMAIL_ADDRESS>+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.3.1.tgz#ebbc04b427ea81dc25ad333f7f67a0b5f4f0be3a"
+  integrity sha512-vaN6R56kLMuBszHSWlwTpcZ8KTMG6aUCok4GrxYDT20UIOXxOc5o6oDc8tNTzSlH3m2sI+Eu9Jo2kVdDcUTWYw==
   dependencies:
     hastscript "^6.0.0"
     parse-entities "^2.0.0"
@@ -9270,6 +9286,14<EMAIL_ADDRESS>     hey-listen "^1.0.8"
     tslib "^1.10.0"

<EMAIL_ADDRESS>+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-4.0.1.tgz#23f05dd03e8a850654defc22cf03ebac572aaa00"
+  integrity sha512-aOV/HHyynIyTmU27qfs0oAHhFde6BFIvV4+nMerE2MAPZMwYOeQk1/F3S6djxF2u4HdbiieCPs3ZzWsbNUoc9A==
+  dependencies:
+    hey-listen "^1.0.8"
+    tslib "^1.10.0"
+
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>   version "5.2.1"
   resolved "https://registry.npmjs.org/styled-components/-/styled-components-5.2.1.tgz#6ed7fad2dc233825f64c719ffbdedd84ad79101a"

Notably, though, with 1.0.1 installed, even with this reverted-but-changed-lockfile, I experience boot times around 17–18 seconds. With 1.0.2-beta.0 it was 2 seconds. So I think there's still something going on.

@coreyward Thanks so much for the above info.
The only change in 1.0.2-beta.0 is that @sanity/ui is now listed as a peer dependency.
It should have worked with the version of @sanity/base you've listed  and according to their docs, Sanity ships with a version of it. I tried replicating on the exact same versions and had no issue – so, I'm quite stumped!
But if you managed to get it resolved by reinstalling your deps, I'll gladly accept that and keep things the way they were!

With 1.0.2-beta.0 it was 2 seconds.

Can you confirm that boot time of 2 seconds or was that a typo? Did you mean 20?

@coreyward Thanks so much for the above info.
The only change in 1.0.2-beta.0 is that @sanity/ui is now listed as a peer dependency.
It should have worked with the version of @sanity/base you've listed  and according to their docs, Sanity ships with a version of it. I tried replicating on the exact same versions and had no issue – so, I'm quite stumped!
But if you managed to get it resolved by reinstalling your deps, I'll gladly accept that and keep things the way they were!

With 1.0.2-beta.0 it was 2 seconds.

Can you confirm that boot time of 2 seconds or was that a typo? Did you mean 20?

Ahhh okay so I think what's causing this is compatibility issue with the shared dependency is the (incorrect?) dependency from @sanity/base on<EMAIL_ADDRESS>which does not export a hues named export.
https://github.com/sanity-io/sanity/blob/2e80f0af5776c43328b4c4fd17139cbc27e34382/packages/%40sanity/base/package.json#L36
And yep, I don't know if maybe the 2s (2013ms) boot time was leveraging cache or what, but that's what was reported in the terminal when I updated to v1.0.2-beta.0.

Ahhh okay so I think what's causing this is compatibility issue with the shared dependency is the (incorrect?) dependency from @sanity/base on<EMAIL_ADDRESS>which does not export a hues named export.
https://github.com/sanity-io/sanity/blob/2e80f0af5776c43328b4c4fd17139cbc27e34382/packages/%40sanity/base/package.json#L36
And yep, I don't know if maybe the 2s (2013ms) boot time was leveraging cache or what, but that's what was reported in the terminal when I updated to v1.0.2-beta.0.

Looks like you're right – @sanity/base is pointing to  @sanity/color ^1.0.0 whilst @sanity/ui asks for ^2.0.11 (which @sanity/base includes as a dependency)
Though I'm not sure why this would have caused in an issue – my understanding is that yarn / npm adds the duplicate @sanity/color ^1.0.0 package in @sanity/base as a private, non-hoisted version (which should work when both versions are installed)
In any case, I'll close this out for now and will continue to include @sanity/ui as a dependency. Please let me know if it rears its head again!


Using className property for passing down classes breaks the length property of enzyme

We are facing an issues with tests when using Material-UI components with jest and enzyme.
Assume you want to test the following component:
const Override = (props: Props3) => {
  const { classes } = props
  return (
    <Grid container className={classes.customContainer}>
      <Grid item className={classes.customItem}>
        something
      </Grid>
    </Grid>
  )
}

in the test, I want to check, if the class appears exactly once (or in a more complex example, e.g., 4 times). So when I write the following test:
it('should override', () => {
    const override = mount(<Override classes={{ customItem: 'myContainer' }} />)
    expect(override.find('.customItem').length)toBe(1)
  })

the test fails like:
Expected value to be (using ===):
      1
    Received:
      4

(by the way, I know that you use the getClass method to write your own tests, we wrote our own wrapper around withStyles that is removing the hashing of the classes in test case, that's the reason why I don't have the getClass method in there...)
The only way I could figure out for all the cases I tested to get accurate results was to use the shallow method of enzyme and the .dive() feature, but this is pretty limiting the enzyme functionality.
I digged a bit into how you apply this override functionality and I think, if you would just use another property for this override functionality it would not be an issue as enzyme seems to use it for resolving the selects.
I know, the above example is not really relevant or a real world example and you could do the test for that simple example like:
expect(override.find('.customItem').length > 0)toBe(true)

but for more complex cases in my opinion it is quite a limitation on testing side.
If you want to play around, I put my test component "Simple" and the wrapper we use around "withStyle" here: https://codesandbox.io/s/y7k8zv30kz (I'm not sure there is a way to run the tests there... but at least you have the code to play around with)

Tech
Version

Material-UI
1.0.0-beta.17

React
^16.0.0

JSS
^8.1.0

etc

From what I understand of you issue, you need to teardown each tests by unmounting them. I don't think it's related to Material-UI. I can't help much without a reproduction repository. Also, try the behavior with raw HTML elements.

@oliviertassinari
It is not related to not unmounting in the test but to the fact that material-ui is using the className property to pass down classes to child components and to the fact that enzyme seems to use the same property to determine the class selector.
I created an example repository (see the readme for how to reproduce)
https://github.com/ricardo-ch/material-ui-issue-example

@oliviertassinari any chance this get checked again?

@gwildu Thanks for the reproduction. It took the time to have a look at it.
It's not a Material-UI related issue. 3 of the 4 enzyme matches aren't on DOM element, but on intermediary component.


When compiling manifests, filter out remarks emitted by new Swift compiler driver

Filter out remarks from the swift driver when parsing manifests.
Motivation:
This remark is temporary, but is causing spurious test failures for tests that make sure there are no diagnostics.
Modifications:
Avoid emitting a diagnostic when the only output from manifest compilation is the remark.
Result:
Remarks from manifest compilation will no longer show up as diagnostics from SwiftPM.  Note that remarks from building are unaffected.

@swift-ci please smoke test

this is fine as temporary workaround, but would be better to ask the driver folks to fix it on their end. cc @artemcm

this is fine as temporary workaround, but would be better to ask the driver folks to fix it on their end. cc @artemcm

A fix for rdar://73710910 is in Integrate.  I'll note the Radar number in the comment.

I would normally have just waited for the fix to make it into a toolchain but tests are failing left and right.

@swift-ci please smoke test

@swift-ci please smoke test


Documentation and usage examples

https://docs.rs/json5/0.2.1/json5/ is looking pretty bare.
See these pages for some good examples:

https://docs.rs/serde_json/1.0.32/serde_json/
https://docs.rs/serde_cbor/0.9.0/serde_cbor/
https://docs.rs/toml/0.4.8/toml/
https://docs.rs/avro-rs/0.6.1/avro_rs/

I finally got round to having a stab at some documentation. https://docs.rs/json5 is hopefully a little more useful now!


feat: Initial entry for a workflow to package the gui application.

Implementation for a GitHub workflow to build the GUI application installers and packages on all key environments.

Per https://github.com/MobilityData/gtfs-validator/actions/runs/2382685953, this workflow is successfully packaging for Windows, Mac, and Linux.  Ready for review.

Also, now that #1168 is merged, the acceptance tests should pass.

@isabelle-dr I'm happy to write that documentation, but I think it's getting beyond the original scope of this PR?  Would it be ok if I updated documentation in a follow-up PR?

@bdferris-v2 No problem updating the documentation in another PR, I thought it was in scope.

We just need to update this branch with master and we can merge.

Done.

Thank you @bdferris-v2 !