removing /explorer/ from the url

Having the extra word in the url is redundant and makes the url longer.
https://explorer.dcrdata.org/explorer/block/187492
https://explorer.dcrdata.org/block/187492   would be better.
https://dcrdata.org/block/187492   would be even shorter.

Also please https://explorer.dcrdata.org/explorer -> https://explorer.dcrdata.org/blocks

Would need to merge explorer and the root page for this to work.

I like @xaur's idea of making /explorer into /blocks , more descriptive of the element that is actually being shown. Id like dcrdata.org to be identical to explorer.dcrdata.org instead of forwarding to it so that sharing urls would stay compact.

I agree that /explorer, which currently shows a list of blocks, should be at /blocks.
Root page is good as the root page.
A specific block's page should go from /explorer/block/190365 to /blocks/190365.
The other pages are good, just without the /explorer prefix.

If you plan to deploy other apps on dcrdata.org domain, better keep explorer subdomain.

There is a consistency concern regarding singular vs plural form.
Popular explorers use singular form:
https://blockchain.info/block/0000000000000000007f6c84ee3f61cb0d897a928cf29c590645bdef447d0d6f
https://blockchain.info/tx/b1606386935bdad97b017c215ce9a7c35dd4e25fc26de7a5c0a75680c5337070
https://blockchain.info/address/18cBEMRxXHqzWWCxZNtU91F5sbUNKhL5PX
https://mainnet.decred.org/address/DsUBWJgJheWPQynZ4nqRXTTPvVTx3aDkPci
https://mainnet.decred.org/tx/98580b8a092b8258b6e0f8c90b89f402ca58b65730709130ddb2398b70806fb7
https://mainnet.decred.org/address/DsmM7jVwRsBk21rLK4QyUywiNDALZfk54G7
https://www.coinprism.info/block/0000000000000000002dc1a21e0c24645a434b49aed634008ab362c4c74ebbd2
https://www.coinprism.info/tx/9232d9e3cac93cf34f5f9f34293fff32c6188bcb1269880cc8f5d4cb999b4c84
https://www.coinprism.info/address/19y9cs7ffYLpJ15Y299KZXhsRWc8gzfzgC
.. and so on.
If you use /blocks/x, then for (local) consistency within dcrdata explorer plural form should be used in other places, e.g. /addresses/x (/tx may just work since its an abbreviation). This is more in line with REST collection naming, but perhaps does not matter much for non-API URLs.
Personally, I would go with the crowd.

@xaur Thanks for your input on this issue.  Regarding the API, we should definitely ensure plural us used wherever it makes sense.  Admittedly, I have not been consistent.
As far as the HTML pages are concerned, I'm not particularly dogmatic about any given solution, except for self-consistency.
In general, I strongly believe we should prioritize:

what make sense
what makes routing less compless
what others do

Let's not be afraid to go against the crowd when is makes sense to do so.

Before someone cooks up a PR for this.  Let's see a thorough proposal for all the URLs.

/ -> /
/explorer -> /blocks
/explorer/block/x -> /blocks/x
/explorer/tx/x -> /tx/x
/explorer/address/x -> /address/x
/explorer/decodetx -> /decodetx
Will need to export the path contexts but this could work.

There may be a need to have an /addresses page.  There is a variety of data we can report: number of known addresses, utxos by address, balance stats, etc.  Of course this could just be called something else when we get around to it.

So are we okay on the new urls?

Sure.  We'll rework the API URLs in a separate PR


What is a suitable editor for Symbiflow projects?

I'm working through the Symbiflow examples and modifying some using VS Code with the "Verilog-HDL/SystemVerilog/Bluespec SystemVerilog" plugin. So far I've seen, it does a good job at highlighting syntax correctly, but that's about it. I have not been able to configure it to be able to jump between modules (e.g.: as with a C++ extension), which I'm missing.
I do like the attached terminal on VS Code,
What alternatives IDE's are there to VS Code, or alternative extensions to VS Code that work well?
Cheers,
Alberto

Symbiflow is really a set of command line tools that take HDL language (text files, e.g. Verilog) to "compile" them (synthesize, place & route, generate fasm and finally generate an FPGA bitstream from it), very much (spiritually) like gcc or llvm (that take e.g. C code and spit out a binary). Therefore IDE is the programmers choice.
VS Code is definitely one option. I personally prefer old-school console tools like vim + console.

Unfortunately I never went much into vi(m) unless absolutely necessary. I don't mind the console aspect of the synthesis, placement and routing process.
As projects get larger and you have more and more modules, I find that text only editors lack the ability to click and jump between them. Not a deal breaker, but a nice to have.

what I am trying to say is that the toolchain is not limiting your ability to choose anything you want. So anything that works for you is suitable. There is no technical limitation in Symbiflow (to my knowledge) that prevents you from using any code editor you want.


[qt] update to 6.7.2

Library name
qt
New version number
6.7.2
Other information that may be useful (release notes, etc...)
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.7.2/release-note.md

@Neumann-A, there are many nice fixes in this release. It also comes hot on the heels of 6.7.1 which is a good indication that they are important.

@Neumann-A, there are many nice fixes in this release. It also comes hot on the heels of 6.7.1 which is a good indication that they are important.

Equally good indication that they are rushing and behind schedule and are letting things slide.
Excessive patching is not a sign of good software health.


1.8 Java support?

I know its kinda dumb... but hear me out. BetterRTP, ur favorite plugin I know, needs to be able to run on any minecraft server version.
Allowing this api to just default to the bukkit async/sync rules if folia just was not installed in any other java/minecraft version.

@SuperRonanCraft

yoooooooooooooooo
🔥 🔥

Leaving open as there is still no long term support for this.

Java doesn't break backward compatibility, so there is no reason to use old versions in any case.

That's not what we are talking about. You can run old java on new java but you can't run new java on old java.
Legacy 1.8 servers run old java (sometimes). This lib (other than the special legacy version), doesn't support old java runtimes.

I mean we should force server owners to update their java and not downgrade our language level

That's what we want to believe but then we get 1 star reviews bc they really needed to use the most outdated version of paper that exists...


clear callbacks when closing the account

Details
Clears all callbacks when we're closing the account.

Fixed Issues

$ https://github.com/Expensify/App/issues/25793#
PROPOSAL: https://github.com/Expensify/App/issues/25793#issuecomment-1692105260
Tests

[x] Verify that no errors appear in the JS console

Open settings -> Security -> close the account
Observe user should be re-directed to Sign-in screen.
Move the app to background (2-3 open and close the app try not to open the app from recents)
Now try to login using new email address (no account) , user should able to login in any-case.
Repeat the same steps with maigclink as well.

Offline tests

NA - No login possible when offline
QA Steps

Same as above

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/59088937/5a7fbb09-508b-4b56-bb72-1f2a54e07569

Mobile Web - Chrome
https://drive.google.com/file/d/1UH_kQ4dPMtVSNK8ZFtk4R-SwffetPMES/view?usp=sharing

Mobile Web - Safari
https://github.com/Expensify/App/assets/59088937/47a710d2-b4b1-4003-888d-139de0510774

Desktop
https://github.com/Expensify/App/assets/59088937/190e02a9-3a77-4241-a288-0e608db7f80c

iOS
https://github.com/Expensify/App/assets/59088937/e0f74a61-a101-4cbb-a8b5-4eb76e30cdb0

Android
https://github.com/Expensify/App/assets/59088937/75b56b28-b365-41ac-8ec1-e5d091d38266

@b4s36t4 Reviewing now - just noticed that you're missing mWeb screenshots for Chrome & Safari, can you add them?

Hey @jjcoffee sorry forget them. Will add and ping you soon.

@b4s36t4 Could you also tweak the test steps to match the issue, so step 4 should be to login with a new email address (that doesn't have an account). I know the error was happening in normal login case too, but it's easier to test the fix if we just follow the original issue, I think!

@jjcoffee Updated the things you suggested. Sorry to wait you up though :). Thanks.

Thanks a lot @jjcoffee :) committed the suggested change. Really sorry.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/jasperhuangg in version: 1.3.68-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 1.3.68-17 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


[ISSUE #1132]⚡Optimize std String with Cheetah String🔥

Which Issue(s) This PR Fixes(Closes)

Fixes #issue_id
Brief Description

How Did You Test This Change?

🚀Thanks for your contribution🎉. CodeRabbit(AI) will review your code first🔥


changed the color of the editor-toolbar_hover class

Fixes
Issue Number: https://github.com/lbryio/lbry-desktop/issues/7619

What is the current behavior?

What is the new behavior?

Other information

PR Checklist

Toggle...
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting)
[ ] Refactoring (no functional changes)
[ ] Documentation changes
[ ] Other - Please describe:

Please check all that apply to this PR using "x":

[x] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged)
[ ] I added a line describing my change to CHANGELOG.md
[x] I have checked that this PR does not introduce a breaking change
[ ] This PR introduces breaking changes and I have provided a detailed explanation below

What do you think of something like this?

Of course adjusted to work with themes.

Hi @jessopb , what do you think?


5076 pf upgrade p3

Description
Last part of the upgrade to PF 5, all components have been updated.
I also resolved the e2e flake on oss, and adjusted the hover color on the rows.
closes: #5076 and #5355

Processing this pull request

Merged into branches iso6, master in 5d1f6d5138d7832c831a387244c2ec3c559e48e0


When tapping a Button which triggers a screen change - and the new screen has another button under the original touch point, the ripple effect plays again

It doesn't seem to happen ALL the time but it certainly happens enough to be a noticeable problem. Most of my screens have another button on the next screen, (multiple listviews) and this behavior is very noticeable. I seems to be able to get around it by calling a setTimeout(500) before triggering the screen navigation but I would hope I don't need to put that everywhere.

Do you have a link to some code that can reproduce this issue? Also, can you provide version numbers as per the issue template? It will make it easier to diagnose the problem and provide help. Thanks!


Add arrayFormat option to the readme

Related to this PR https://github.com/hapijs/qs/pull/70

Good call, thanks


Support for Production & Sandbox Key Generation & Store UI Changes & Code Refactor

Purpose
Support for Production & Sandbox Key Generation
With the existing code-base only either Productions keys or the Sandbox keys can be generated from the Store portal. With the given pull request, able to generate both the Production and Sandbox keys from the Store portal.

This is done by appending the Key Type as the postfix to the Client Name when creating a new (registering a DCR) application at the Okta end.

Support for Change Application Owner
Added functionality to support change application ownership (which is supported from WSO2 APIM 2.6 onwards Doc)
Enhanced Store UI to Display Edit & Delete Application Actions
The current Jaggery implementation doesn't display the Edit and Delete actions in the Application List view template. The fix has been done to the okta/js/application.js file.
Refactored
Refactored the codebase to support lint and to make more readable

 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 have signed the CLA already but the status is still pending? Let us recheck it.


Failed to find wheel for gurobipy

When I try to open a nix-shell with gurobipy like below
{ pkgs ? import <nixpkgs> {} }:

let
  mach-nix = import (
    builtins.fetchGit {
      url = "https://github.com/DavHau/mach-nix/";
      ref = "3.2.0";
    }) {
      python = "python38";
    };

  pythonPackages = mach-nix.mkPython {
    requirements = ''
      cobra
      gurobipy
    '';
    providers = {
      "ruamel.yaml" = "nixpkgs";
    };
  };

  RPackages = with pkgs; [
  ];

  linuxPackages = with pkgs; [
  ];

in

pkgs.mkShell {
  buildInputs = [ pythonPackages ] ++ RPackages ++ linuxPackages;
}

I get the error
The Package 'gurobipy' is not available from any of the selected providers {'nixpkgs', 'wheel', 'sdist'}
 for the selected python version
If the package's initial release date predates the release date of mach-nix, either upgrade mach-nix itself or manually specify 'pypi_deps_db_commit' and
'pypi_deps_db_sha256 for a newer commit of https://github.com/DavHau/pypi-deps-db/commits/master
If it still doesn't work, there was probably a problem while crawling pypi.
Please open an issue at: https://github.com/DavHau/mach-nix/issues/new

Ok, using a more recent commit of pypi-deps-db makes it work.


Using reference datasets

Dear infercnvpy developer team!
I wanted to tell you a warm thank you for this tool! In my project I am characterising a cohort of solid tumors and I use infercnvpy to quantify the CNVs in my data.
I am happy to provide concrete feedback that you are interested in that would help you develop the package further.
I also have one technical question I would be happy to get feedback on from your experience. In my case I have a low percentage of non-tumor cells and from recommendations and the method description I realized that the optimal thing for me to do is to use a reference dataset (f.e. from GTeX). Nevertheless I am unsure how to combine the reference data with the experimental. Is this something you also thought about/considered adding to the pipeline? For now I've just merged datasets and normalized them together, but I am not sure it is the optimal way to do it.

Hi @dariarom94,
thanks for your interest in infercnvpy!

I am happy to provide concrete feedback that you are interested in that would help you develop the package further.

We are always happy about feedback, feel free to open an issue at any time!

I realized that the optimal thing for me to do is to use a reference dataset (f.e. from GTeX). Nevertheless I am unsure how to combine the reference data with the experimental. Is this something you also thought about/considered adding to the pipeline?

You can specify a 1-dimensional numpy array with reference gene expression (same order as adata.var_names) via the
reference parameter of tl.infercnv: https://icbi-lab.github.io/infercnvpy/generated/infercnvpy.tl.infercnv.html#infercnvpy.tl.infercnv
The documentation could definitely be better about this feature. However, I never tried it in practice and I'm unsure how well it actually works, due to different characteristics of bulk RNA-seq and sigle-cell RNA-seq data. If you try it out, please let us know how it goes!
Cheers,
Gregor


[stable/drupal] Fix 'storageClass' macros

Signed-off-by: Alejandro Moreno<EMAIL_ADDRESS>What this PR does / why we need it:
At #16433 we introduced a new macro that allows us to use a global.storageClass parameter to overwrite any other storageClassName used on other parameters.
Despite new PVCs and Statefulsets generated are syntactically correct (PVC manifests generate exactly the same PVC in the K8s cluster), we introduce a backwards incompatibility since Helm includes some "sanity checks" to ensure immutable objects do not change their specs during an upgrade (see the error below):
Error: UPGRADE FAILED: PersistentVolumeClaim "xxxxx" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims

This error is a consequence of the change below introduced in the PR (when no storagleClass is provided):
kind: PersistentVolumeClaim
...
    requests:
      storage: "8Gi"
+   storageClassName:

Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @juan131

/lgtm


[MASK] token representation

Hello! I was wondering what is considered a "[MASK]" token in byte pair encoding / the tokenizer.py for CLIP / if there is a standard method for marking masked words?

Our tokenizer only has <|startoftext|> and <|endoftext|> as special tokens, and no [MASK] because CLIP is not a masked language model. We use a triangular attention mask to have an option to transfer from/to autoregressive language models. You can edit simple_tokenizer.py to add support, if you'd like to fine-tune the model using a mask-based method.
Alternatively, in case you just need a tokenizer, you can choose from existing tokenizers that supports [MASK], or build your own using Huggingface Tokenizers

Our tokenizer only has <|startoftext|> and <|endoftext|> as special tokens, and no [MASK] because CLIP is not a masked language model. We use a triangular attention mask to have an option to transfer from/to autoregressive language models. You can edit simple_tokenizer.py to add support, if you'd like to fine-tune the model using a mask-based method.
Alternatively, in case you just need a tokenizer, you can choose from existing tokenizers that supports [MASK], or build your own using Huggingface Tokenizers

Thanks!

Thanks!

Hello, I was wondering what the distribution of words looks like for the captions CLIP has trained on? Ie is there some kind of neutral word that could possibly function like a "[MASK]" token given the dataset CLIP was trained on?

Hello, I was wondering what the distribution of words looks like for the captions CLIP has trained on? Ie is there some kind of neutral word that could possibly function like a "[MASK]" token given the dataset CLIP was trained on?

CLIP is trained with all lower case but I believe has uppercase tokens as part of the first 256 "byte" vocab slots. You could probably use one of those untrained uppercase letters as a mask token if you'd like.

CLIP is trained with all lower case but I believe has uppercase tokens as part of the first 256 "byte" vocab slots. You could probably use one of those untrained uppercase letters as a mask token if you'd like.


The Tilemap overlay conflicts with the Sabre UI

Unity added 2D tilemaps in version 2017.2. When you have a tilemap in your scene, it displays a little popup in the bottom left corner. This popup allows you to view the tilemap in isolation from the rest of the scene so it's not obstructed by any other elements.
Anyway, the Tilemap popup often ends up on top of the Sabre UI:

When this happens, I can't click on anything in Sabre. It's not just the area under the tilemap popup that's affected; nothing works, not even the tabs in the top right. The presence of the tilemap popup appears to block all mouse events to the UI layers below it.
There's a workaround for this: deselect your applied brush and select it again. When you do that, it puts the Sabre UI back on top, allowing you to interact with it.

It seems having the "Tile Palette" window open is causing all of the conflicts.
There is also an issue that any selected tile tool will continue to edit the tilemap while you drag brushes around. So we'd need to make sure no tool is selected:

Sadly I have been unable to pinpoint the exact reason why we can sometimes have priority over the tile editor. If we can figure that out we could brute-force ourselves to be on top and the first to receive all events before the tile editor gets a chance. But that sounds like a nasty hack. I am not sure what to do.

I see.
I certainly wouldn't want Sabre to put itself on top at the expense of other tools. I just want it to listen to my clicks. If there's nothing Sabre can do to ensure this (short of directly observing the tilemap tool) then it sounds like Unity's tilemap UI is the problem.
I'll file a bug with Unity.

Adding to this, in the 2019 edition of unity, they are adding custom tools like the aforementioned tilemap tool. This blocks the entirety of the toolbar, preventing SabreCSG from being used. I can see this becoming a more prominent issue once 2019 comes out, and devs start using the feature in their plugins.


Disable RabbitMQ in WFD when using Kafka or Kenesis

When using Kafka or Kenesis, the RabbitMQ auto-configuration needs be disabled.

Addressed in PRs #295 and #294


Lag causing the server to crash

Issue description:
I noticed that after I timed out on my server, those errors appears on the console, And I dont find why it's keep doing that and what I need to do to fix it
(Btw I'm new in GitHub :D ans I'm French)
Steps to reproduce:

Version (make sure you are on the latest version before reporting):
**Forge: **forge-1.10.2-<IP_ADDRESS>7-universal
Mekanism: Mekanism-1.10.2-<IP_ADDRESS>1
Other relevant version:
Pastebin

Do you have a whole log? The warnings I see aren't related to a slow server only to the broken IC2 integration of Mekanism (see #4370).
What does indicate that you're having a slow server is the first line of the provide log, but that's not Mekanism.

Your Refined Storage is having errors, make sure that's on the latest version too.


[RFC]: refactor blas/ext/base/scusumkbn to follow current project conventions

Description
This RFC proposes refactoring @stdlib/blas/ext/base/scusumkbn to follow current project conventions.
These conventions are outlined in more detail in https://github.com/stdlib-js/stdlib/issues/788. Namely, we want to migrate from C++ add-on interfaces to C add-on interfaces and then make various style and simplification changes.
Some example commits which perform most, if not all, of the requested changes include https://github.com/stdlib-js/stdlib/commit/d66d80cfcbab1da95cb5ae8cfae4a1fc4c5129d1 (saxpy),  https://github.com/stdlib-js/stdlib/commit/3c82fe7b6c0f9fd6ef02c86d6e2024d708ac8c14 (cswap), and https://github.com/stdlib-js/stdlib/commit/5b15c9675be434c0e11b1ec1e1f78d7b089abbcd (dasum).
Related Issues
Related issues #788, #1152.
Questions
No.
Other
No.
Checklist

[X] I have read and understood the Code of Conduct.
[X] Searched for existing issues and pull requests.
[X] The issue name begins with RFC:.

@Planeshifter my previous pr are under review I would like to work on this could u please assign me this?

@Planeshifter @Pranavchiku @kgryte  my previous prs' are under review I would like to work on this could u please assign me this?

@Planeshifter @Pranavchiku @kgryte  my previous prs' are under review I would like to work on this could u please assign me this?

Hey @vr-varad will review your PRs soon, till then feel free to pick up whatever issue you may wish to work on


Example code produces an error

The  example code in the README for local access includes these two lines
message = vesta.encode("{67} Hello, World {68}")
assert local_client.write_message(message)

However, data produced by vesta.encode apparently does not meet the format required by  local_client.write_message and produces this error:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/homebrew/lib/python3.9/site-packages/vesta/clients.py", line 222, in write_message
    validate_rows(message)
  File "/opt/homebrew/lib/python3.9/site-packages/vesta/chars.py", line 52, in validate_rows
    raise ValueError(f"expected a ({ROWS}, {COLS}) array of encoded characters")
ValueError: expected a (6, 22) array of encoded characters

Thanks for spotting that, @garthwebb! Those examples should have used vesta.encode_text() to render the full character array. I've updated the README.md accordingly.


Updated Deprecated Andriod methods

Created fork to update and hopefully bug fix the android specific methods where necessary.

Same as #168


Bug: Not possible to add locations via smartphone (Android)

When using the map view plugin on a smartphone, I'm not able to add new locations (notes) via the map itself. When I press and hold a point on the map, the context menu appears where I can chose to generate a new note (inline or front matter). But no matter which one I click, nothing happens. No new note is generated, not even in the background. The only way to add locations to the map on my smartphone is to chose "copy geolocation (as front matter)" from the context menu, manually add a new note to my vault and paste the geolocation into the note.
Tested on two different Android phones with the latest version of the plugin.

Turns out it happens for me too. Will look for the cause.

Fixed in 2.0.5.

It works - thank you! 😊


Workspace specific shell: Move Cancel button in confirmation message to the right

VSCode Version: Code - Insiders 1.11.0-insider (a35c7da7b8f324c1e8cc7830173418e392542f6d, 2017-03-28T12:40:24.966Z)
OS Version: Darwin x64 15.6.0
Extensions: none

Testing #23128
The message asking if you want to allow the workspace specific shell to run in the integrated terminal shows Allow, Cancel, Disallow buttons. Having Cancel in the middle seems unusual, it should be the last button on the right.

This order was copied from a git choose action:
		const message = nls.localize('sync is unpredictable', "This action will push and pull commits to and from '{0}'.", HEAD.upstream);
		const options = [nls.localize('ok', "OK"), nls.localize('cancel', "Cancel"), nls.localize('never again', "OK, Never Show Again")];

		return this.choiceService.choose(Severity.Warning, message, options).then(choice => {

So it also applies to @joaomoreno?

Not anymore in the git extension.


Domain Deployment to server group fails if one server is stopped.

In live environment it can be that you have started and stopped servers within a server group. (Peek Time Configuration, Dynamic RAM) ...
During the validation of the domain deployment (org.wildfly.plugin.deployment.domain.DomainDeployment:199) the method should check, if each provided "server-group" has at least one server in ServerStatus.STARTED.
What it currently does:

check if servers are assigned to the server-group selected for deployment
check if these servers are all started

Therefore even if one server is started the method throws an DeploymentFailureException which is a different behavior compared to Management Console Deployments.
It is also possible that the error is within, "client.getServerStatuses()" according to the documentation: (org.jboss.as.controller.client.helpers.domain.impl.DomainClientImpl:145)
"Gets a list of all servers known to the domain, along with their current status. Servers associated with host controllers that are currently off line will not be included."
The actual implementation returns all available servers within the host configuration including on and offline servers. CLI also returns on and offline servers. So maybe the behavior has changed.
So where to fix?
Best
Jens
org.jboss.as.controller.client.helpers.domain.impl.DomainClientImpl:145
    @Override
    public Map<ServerIdentity, ServerStatus> getServerStatuses() {
        Map<ServerIdentity, ServerStatus> result = new HashMap<ServerIdentity, ServerStatus>();
        List<String> hosts = getHostControllerNames();
        for (String host : hosts) {
            Set<String> servers = getServerNames(host);
            for (String server : servers) {
                ModelNode address = new ModelNode();
                address.add("host", host);
                address.add("server-config", server);
                String group = readAttribute("group", address).asString();
                ServerStatus status = Enum.valueOf(ServerStatus.class, readAttribute("status", address).asString());
                ServerIdentity id = new ServerIdentity(host, group, server);
                result.put(id, status);
            }

        }
        return result;
    }

org.wildfly.plugin.deployment.domain.DomainDeployment:199
    void validate() throws DeploymentFailureException {
        final Map<ServerIdentity, ServerStatus> statuses = client.getServerStatuses();
        // Check for NPE
        final List<String> serverGroups = domain.getServerGroups();
        for (String serverGroup : serverGroups) {
            boolean notFound = true;
            // Check the servers
            for (ServerIdentity serverId : statuses.keySet()) {
                if (serverGroup.equals(serverId.getServerGroupName())) {
                    ServerStatus currentStatus = statuses.get(serverId);
                    if (currentStatus != ServerStatus.STARTED) {
                        throw new DeploymentFailureException("Status of server group '%s' is '%s', but is required to be '%s'.",
                                serverGroup, currentStatus, ServerStatus.STARTED);
                    }
                    notFound = false;
                    break;
                }
            }
            if (notFound) {
                throw new DeploymentFailureException("Server group '%s' does not exist on the server.", serverGroup);
            }
        }
    }

Moved to https://issues.jboss.org/browse/WFMP-4


HDDS-9652. Legacy RM will not replicate all unhealthy containers when some are decommissioning

What changes were proposed in this pull request?
In a situation where a container is closed or quasi-closed with all unhealthy replicas, the legacy Replication Manager will not replicate the unhealthy containers if the under replication is caused by decommission.
Ie, if we have 3 replicas:
IN_SERVICE, unhealthy
IN_SERVICE, unhealthy
DECOMMISSIOING, unhealthy
Then the legacy RM will take no action and decommission will be stuck.
The new RM handles this state correctly and does not need to be changed.
Additionally, in KeyValueContainer.java, unhealthy replicas cannot be exported / replicated, so even if the RM was not present, replication still could not happen.
This change corrects both issues and adds a couple of extra tests to the new RM to prove it works ok.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-9652
How was this patch tested?
New unit tests added.

I added a unit test for the unhealthy export / import

Thanks @sodonnel for the patch, @siddhantsangwan for the review.


Inconsistencies between ways of starting up applications

Local-startup currently has:

PKI generation
Scripts/config for starting apps in JVM
Scripts/config for starting apps in docker-compose (different config)
Misc. scripts that other repos source

The intention/direction of this repository should be cleared up so that it can do one thing and do it well

@andy-paine I appreciate you might not care about this any more but I am going through the process of cleaning up the issue log for this repo.  We've done a number of changes to this repo recently. The main goal of this is allow this repo to be the gateway to running the verify-hub locally in docker using only our open source repos so anyone can run the hub locally.
I understand there is a number of what appears to be disparate parts.  We're about to start going through a process of updating the README and associated documentation for this repo which I hope will clean up some of your comments and explain why things are the way they are.

@andy-paine I appreciate you might not care about this any more but I am going through the process of cleaning up the issue log for this repo.  We've done a number of changes to this repo recently. The main goal of this is allow this repo to be the gateway to running the verify-hub locally in docker using only our open source repos so anyone can run the hub locally.
I understand there is a number of what appears to be disparate parts.  We're about to start going through a process of updating the README and associated documentation for this repo which I hope will clean up some of your comments and explain why things are the way they are.


Trouble installing

this is the error I recieved:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
daal4py 2021.5.0 requires daal==2021.4.0, which is not installed.
scipy 1.7.3 requires numpy<1.23.0,>=1.16.5, but you have numpy 1.23.4 which is incompatible.
numba 0.55.1 requires numpy<1.22,>=1.18, but you have numpy 1.23.4 which is incompatible.
Cloning into 'k-diffusion'...
remote: Enumerating objects: 427, done.
remote: Counting objects: 100% (146/146), done.
remote: Compressing objects: 100% (22/22), done.
Receiving objects:  90% (385/427)used 124 (delta 124), pack-reused 281 eceiving objects:  89% (381/427)
Receiving objects: 100% (427/427), 76.34 KiB | 473.00 KiB/s, done.
Resolving deltas: 100% (286/286), done.
Environment set up in 21847 seconds
(base) C:\Users\mayab\DeforumStableDiffusionLocal-main>python run.py --enable_animation_mode --settings "./runSettings_Template.txt"
Local Path Variables:
models_path: ./models
output_path: ./output
Traceback (most recent call last):
File "C:\Users\mayab\DeforumStableDiffusionLocal-main\run.py", line 1312, in
main()
File "C:\Users\mayab\DeforumStableDiffusionLocal-main\run.py", line 79, in main
import cv2
ModuleNotFoundError: No module named 'cv2'
(base) C:\Users\mayab\DeforumStableDiffusionLocal-main>

It seems like the opencv is not installed, you can try to manually run this command conda install -c conda-forge opencv -y
Can you try the latest version's setup.py to see if that's working now?
Environment set up taking 21847 seconds definitely not normal, you may encounter some internet issue. That downloading speed is just too slow and probably it will corrupt the downloaded installation files.


[X11] Fallback to root window size, when Xinerama extension is available, but return zero screens.

Fixes https://github.com/godotengine/godot/issues/85886

Thanks!


quilt-loader-0.18.1-beta.29 spams something about "Found access to quilt-loader internal interface"

We have quite literally no idea what's going on. Fresh install via quilt-installer-0.5.0.
latest.log: http://0x0.st/o7ps.log

It looks like loader's internal hiding PR (#161) interacts poorly with log4j - for now you'll need to dowgrade to beta 28 (using the same installation process).

Can also confirm that this occurs when attempting to run Quilt via docker. I will downgrade from the latest quilt for the time being.

Okay, I've disabled that new functionality in beta 30, so it should work now.

And I've re-enabled it but fixed the broken functionality in beta 34 - so this should be fixed now?

We will close this for now, we're not in a position to test it yet, but we think it should be fine. Will reopen if it still doesn't work.


Query for a path containing whitespace doesn't return anything

After importing some files inside a directory containing spaces, I'm not able to list them using the path field.
beet ls -f '$path'
/music/Depeche Mode/Sounds of the Universe/01 - In Chains.mp3
/music/Depeche Mode/Sounds of the Universe/10 - Perfect.mp3
...

Using the path above to get the same result, leads to no found files.
beet ls path:"'/music/Depeche Mode/Sounds Of The Universe'"

I also tried several combinations of ", ' and \  to be sure my shell (bash on MacOS X) doesn't break it.
What am I doing wrong or is this a bug?

Weird—this works for me on a path with spaces:
$ beet ls -p path:"/Users/asampson/Music/Non-Album/Aesop Rock"
/Users/asampson/Music/Non-Album/Aesop Rock/None Shall Pass.mp3

No need for any additional escaping beyond telling your shell to treat the query as a single argument. I'm not sure what's different here…

Ehh... After looking at my firs comment again, I have to admit there was a typo in my query :flushed:. I messed up with the case of some letters. Maybe it was a bit late ... :wink:


groups

Add an argument 'groups' to AutoML.fit(). Use GroupKFold when this argument is passed and the eval method is cv.
close #56

Wow, thank you for this. I'm going to test it and report back if I find any issues.

Seems to be working for my binary classification problem with both CV and holdout methods. Metrics progression seem appropriate for grouping as if it wasn't doing it it would be overfitting pretty much instantly. Will test with regression soon.

It doesn't seem to be behaving any differently when I pass in groups (which are a pandas series of string names, but I've also tried a numpy array of strings, and a numpy array of integer category codes with no success.) It's hard to tell exactly what's happening under the hood as I've tried extracting the GroupKFold code from the FLAML implementation and it seems to do what it's supposed to, but I'm getting results that I know to be impossible unless there's data leakage to overfit on. Can you think of any reason why this would happen or steps to understand what's going on?
For context, each group is a match in a sport with many rows of data for that match, and without correctly separating each match into its own group it'll very easily overfit on identifying information. With the split, however, it shouldn't be able to do that. It works fine with sklearn's GridSearchCV/RandomizedSearchCV, so I'm not sure why it wouldn't here.

From what I can tell it seems to be working as expected now!


Add Prepared Statement support

Code, tests, docs and version bump.

Great work @guyboertje  - left a few minor comments but otherwise LGTM!


Chatbox needs to be clicked each time you want to type a message

Describe the bug
Once you've hit "enter" and send a message, you have to click the chatbox again to write.
Expected behavior
After hitting "enter" and sending a message, the chatbox should stay active so you can instantly type another message without clicking the box again.


Fixing broken anchor link

Existing link was making http://ci.openmicroscopy.org/view/Docs/job/OMERO-5.1-merge-docs/ yellow and when I hunted around, I found the topic was actually on a different page.
cc @aleksandra-tarkowska - if you are happy with this, I'll rebase to dev_5_0 once the build is green.

@hflynn I think it should be https://docs.djangoproject.com/en/1.6/topics/templates/#template-inheritance

Looks like we need to check if we have more links like https://docs.djangoproject.com/en/dev/, they should all be 1.6 rather then dev

$ git grep "docs.djangoproject.com/en/dev" | wc
       5      15     608

Time to create a djangodocs extlink? This will also simplify maintenance the day we bump our Django version.

@sbesson great idea, what is the best strategy to do it?

I'll do that on this PR, thanks for pointing that out @aleksandra-tarkowska

I left one /dev/ link because it was to the 1.5 notes instead.

Ok, I've got extra '/' in the links, I'll fix that after stand-up (realised after I left yesterday, bah!)

I would use this PR to find and replace all links to the django documentation using your new extlink:
$  git grep "docs.djangoproject.com/en" | wc
      22     175    3742

Ah, I only grepped for /en/dev/ - I'll fix this up this afternoon

Ok, aside from the 1.5 one already mentioned, that is all of them except those in the config.txt which I'll need to open a PR on the code base tomorrow to fix.

https://ci.openmicroscopy.org/job/OMERO-5.1-merge-docs/ is green. :+1: Anything else on this PR?

I hadn't planned to add anything unless someone spotted a mistake I missed.

I am good

--rebased-to #1067


np.linalg.inv support

I've been trying to implement Gaussian Processes Regression, which require the calculation of a matrix inverse. With regular numpy I would use np.linalg.inv, but I can't find this function back in jax.
Everything else is working as expected, and I can use np.linalg.inv for basic calculations.
Unfortunately, the use of np.linalg.inv keeps me from using grad to calculate gradients, which would be the most exciting part of the whole implementation!
I would love to contribute a PR if someone can tell me where to start.

Thanks for bringing this up, and for the offer to help! Good np.linalg linear algebra support was one of the best parts of Autograd, with a lot of users choosing Autograd just for that. It's also near and dear to my heart because working on the linear algebra support is how I first got into developing Autograd, and it's critical to my kind of machine learning research. JAX needs to get there too!
I believe the main challenge is getting XLA to call into backend-specific linear algebra routines (e.g. in LAPACK and MAGMA) using the CustomCall HLO on CPU and GPU (and, more generally, call into the XLA client library for TPU). @hawkinsp has already started to look into what we need. Once we can generate calls into these routines, we can use similar rules as in Autograd for differentiation.
An alternative route is just to implement the algorithms we need in terms of lax primitives, since we can already compile and differentiate all of those (on any backend). That's the approach taken in the jax.experimental.lapax module, which just has cholesky and solve_triangular. As you can see from e.g. the cholesky routine, these algorithms aren't so bad to implement ourselves, but they'll likely be slower on CPU and GPU than the extremely well optimized LAPACK and MAGMA kernels. (Even for TPU, we'd rather reuse HLO implementations in the nascent XLA client library than duplicate that effort in JAX, as convenient as it is to write this code in Python.)
We'd love to get contributions on this. I think the best course of action is to wait for us to sort out our CustomCall / client library story, which we might be able to do this week (fingers crossed), and to make it work with one linear algebra routine (e.g. cholesky). Once we get one example working, it would be really helpful for contributors to dive in and help us set up the rest, along with their derivatives.
How does that sound to you?
To unstick your work for now, given that you're working on GPs you might be able to work with the cholesky and solve_triangular routines in jax.experimental.lapax. You might also be able to implement something like a CG iteration, though that path has its own bumps that need ironing out (@jaspersnoek mentioned he'd had some success in this direction).

One other thing: it's not documented yet, but JAX has a configuration option for enabling 64-bit dtypes, which are off by default (instead capping everything to 32 bits). You can switch it on like this:
import jax.numpy as np

from jax.config import config
config.update("jax_enable_x64", True)

print np.dot(np.zeros(2), np.zeros(2)).dtype   # should print 'float64'

Here's a quick example of sampling from a GP with a squared exponential covariance function using jax.
import numpy as onp
import matplotlib.pyplot as plt
import jax.numpy as np
import jax.random as random
from jax.experimental import lapax

key = random.PRNGKey(0)
numpts = 50

def dist(x1, x2):
  distance = -2. * np.dot(x1, x2.T) + np.sum(x2**2,    axis=1) + np.sum(x**2, axis=1)[:, None]
  return distance

def cov(x1, x2):
  return np.exp(-dist(x1, x2))

x = onp.linspace(0, 1., numpts)[:, None]

K = cov(x, x) + onp.eye(x.shape[0]) * 1e-6
L = lapax.cholesky(K + onp.eye(x.shape[0]) * 1e-6)

normal_samp = random.normal(key, shape=(x.shape[0], 10))
y_hat = np.dot(L, normal_samp)
plt.plot(x, y_hat)```

Nice, thanks so much @JasperSnoek!
I think eye recently got into jax.numpy, I'll add linspace now too so that onp import won't be necessary.

I must admit I did see the cholesky decomposition in lapax already, but did not make the connection to using it for this yet! I am going to dive into this right now.
For completeness sake, here is what I have done so far:
import jax.numpy as np
from jax import random, grad

from numpy import log10, diag
from numpy.linalg import inv, det

import matplotlib.pyplot as plt

LOG2PI = log10(2 * np.pi)

def ard_kernel(x1, x2, length_scale):
    return np.exp(-length_scale * ((x1.T - x2) ** 2))

def gp_predict(x_train, y_train, x_test, variance, length_scale, kernel = ard_kernel):
    k_x_x = kernel(x_train, x_train, length_scale)
    k_x_xs = kernel(x_train, x_test, length_scale)
    k_xs_x = k_x_xs.T
    k_xs_xs = kernel(x_test, x_test, length_scale)

    v_inv = inv(k_x_x + variance * np.eye(x_train.size))
    q = np.dot(k_x_xs, v_inv)

    mu = np.dot(q, y_train).T[0]
    cov = k_xs_xs - np.dot(q, k_xs_x)
    sigma = diag(cov)

    return mu,sigma

def gp_log_marginal_likelihood(x_train, y_train, variance, length_scale, kernel = ard_kernel):
    k_x_x = kernel(x_train, x_train, length_scale)
    k_var = k_x_x + variance * np.eye(x_train.size)
    v_inv = inv(k_var)

    data_fit = np.dot(np.dot(-.5 * y_train.T, v_inv), y_train)
    complexity = .5 * np.log(det(k_var))
    size_correction = .5 * x_train.size * LOG2PI
    return (-data_fit - complexity - size_correction)[0][0]

length_scale = 100
variance = .1
size = 50

random_key = random.PRNGKey(0)

x_train = 2 * random.uniform(random_key, shape=(size,)).reshape((-1,1))
y_train = np.sin(x_train * 10) + random.normal(random_key, shape=(size,)).reshape((-1,1))

x_test = np.arange(-.5,2.5,.05).reshape((-1,1))

mu, sigma = gp_predict(x_train, y_train, x_test, variance, length_scale)

plt.plot(x_test, mu)
plt.fill_between(x_test.T[0], mu + 2 * sigma, mu - 2 * sigma, alpha = .5)

plt.scatter(x_train.T, y_train.T, c = 'black')

This is following Rasmussen & Williams quite literally, which is why I resorted to np.linalg.inv in the first place. In addition there are a few functions that I haven't found in JAX yet: log10,diag and np.linalg.det.
From what I understand, and have seen from examples, getting the predictive mean using the cholesky decomposition uses np.linalg.solve. What would be the JAX approach for this?

The other function implemented in jax.experimental.lapax is a triangular solve, which you can use in place of np.linalg.solve when the coefficient matrix is triangular (as a Cholesky factor is). You can also compute the log determinant easily given the Cholesky factor, using the facts that the determinant of a triangular matrix is the product of the diagonal entries, and the fact that the determinant of a product of two matrices is the product of their determinants. Those are the most efficient ways to implement these computations in NumPy too (because Cholesky requires fewer FLOPs than LU, and because reusing the factor saves a lot of work in the logdet calculation).
We should add direct support for np.log10 and np.diag, but for now you can get them by computing np.log(x) / np.log(10) and by using fancy indexing, respectively.

Awesome! Almost there, I just need to figure out how to get the correct arguments for lapax.solve_triangular:
def solve_triangular(a, b, left_side, lower, trans_a, block_size=1):
  """An unrolled triangular solve."""
  return _solve_triangular_right(LapaxMatrix(a, block_size),
                                 LapaxMatrix(b, block_size),
                                 left_side, lower, trans_a).ndarray

What are left_side, lower and trans_a?

left_side, lower, and trans_a have roughly the same meaning they do in LAPACK or scipy:
http://www.netlib.org/lapack/explore-html/de/da7/dtrsm_8f_source.html
I'm also actively working on adding cholesky and solve_triangular implementations to JAX, with the standard numpy/scipy APIs.

I'm also working on some GP code that could benefit from triangular inverses. Scipy includes some (fast) code for inverting triangular matrices (scipy.linalg.lapack.dtrtri); I've just tested whether  jax.scipy.linalg.solve_triangular can be used to implement something similar (by passing the identity matrix as the second argument). This approach is slower than the regular inv in Jax. In my case, it would be nice to quickly construct the inverse matrix as this will be re-used for several multiplications, and Jax's solve_triangular seems to provide no speedup. How hard would it be to add dtrtri to Jax?


Newline missing

Newlines in toots are filtered out.
Tooting
"Lorem
ipsum
dolor sit amet"
becomes
"Loremipsumdolor sit amet"
in BlueSky..

just popping in to confirm that this is happening to me too, it's rather vexing.

oop, looks like it doesn't like quotes either, an links go through all non link-y

something like this may be better than the current non discriminatory html stripping code:
https://www.npmjs.com/package/html-to-text
it adds a bit of extra complexity needing the outside library, but it should ensure that newlines and special characters don't get messed up.

I fixed this issue on my fork that is based on another fork of this repo.
The repo I forked from has replaced the removeHtmlTags method with a sanitizeHtml one and I fixed it to handle line breaks, the corresponding commit is here: https://github.com/WhiteFangs/mastodon-to-bluesky/commit/a2dc0facb28bc8998196c7b15a6223776f02ca30

I actually noticed a bug on my side after commenting here, the following line:
      const addSpace = decodeQuotes.replace(/(https?:\/\/)/g, ' $1');

removed the line breaks that were added in the previous lines, so I just had to remove it to fix that, not sure if the same problem could happen on your side here.
Adding a space before links is not actually relevant if the toot already has a space before the link (which it naturally should).


Issue with Exercise Titles in Sphinx=3.5.2

Describe the bug
The titles for exercise nodes are missing when using sphinx==3.5.2

To Reproduce
Create an environment with the following requirements.txt
jupyter-book
matplotlib
numpy
ghp-import
quantecon-book-theme
sphinx-exercise
sphinx-multitoc-numbering

then build a project that includes an exercise node.
Expected Behaviour:

Thanks! Same problem here - whats the workaround? Downgrade sphinx?

I tried down to 3.3 to no avail. sphinx versions >4 do not work yet with jupyterbook it seems.

thanks @fmaussion that version isolation is actually really helpful 👍.
Currently working on sphinx>4 in https://github.com/executablebooks/jupyter-book/pull/1448


Clarify whether the error string passed to glsl-reduce is a regex or just a string, and related issues

Is it a regex or just a string?  (WebUI says regex; command-line option says string.)

Do you need to provide quotes when passing in from the WebUI?  (Whatever the answer, update the documentation.)

Can characters such as "(" appear verbatim, or do they need to be escaped?

Closed by #167.


jdk vendor=ibm version=17 will download azul JDK

https://github.com/bmarwell/jaxrs-test-showcase/pull/30
[INFO] --- toolchains-maven-plugin:4.2.0:toolchain (default) @ jaxrstesting-root ---
[INFO] Required toolchain: jdk [ vendor='ibm' version='17' ]
[INFO] Begin to install JDK 17
[INFO] Download zing<IP_ADDRESS>-3-jdk17.0.4-linux_x64.tar.gz from https://cdn.azul.com/zing-zvm/ZVM<IP_ADDRESS>/zing<IP_ADDRESS>-3-jdk17.0.4-linux_x64.tar.gz
[INFO] Extract zing<IP_ADDRESS>-3-jdk17.0.4-linux_x64.tar.gz
[INFO] JDK installed: /home/runner/.m2/jdks/zing<IP_ADDRESS>-3-jdk17.0.4-linux_x64

Actually, 'vendor' is a misnomer in this plugin. It should be 'dist' (the actual parameter which was called), a synonym to 'distribution'.
vendor=semeru will download dist=semeru. That works.

Just a little correction here, it should be distribution=semeru for example. distro also works but was from version 2.0. You should also use https://api.foojay.io/disco/v3.0 which is the latest version. 😁

@HanSolo I have upgraded to V3.    @bmarwell  could you try version 4.3.0?  https://repo1.maven.org/maven2/org/mvnsearch/toolchains-maven-plugin/4.3.0/


Set up spec for dependencies and integrations

Updated spec for dependencies. I think for the integrations (Prometheus and Grafana) we will be using operators. We still need to set up a controller and cr for these integrations since we need to allow end users to customize their integrations. The controller reconcile can deploy the yaml or helm.

I was also wondering is there a specific kind of spec we need for the integration CRs, or can we just have the user input a CR that is accepted by the external integration operators we are using (eg. https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md)

@KaiyiLiu1234 Thanks! This work is a very comprehensive workflow and API walkthrough

The Operator has been changed to allow multiple groups. Two groups were added: Kepler System and Kepler Addons. Kepler System will contain controller(s) for Kepler, Model Server, and Estimator. Kepler Addons will contain controllers for MachineConfig and ServiceMonitor.


[N/A]: fixes loop with filters in tables

Substitute this line for a meaningful title for your changes
Overview
Changing filters in a useEffect is never a good idea 😬 . I've changed it so now the filters update is done in a more imperative way (when the new values is selected). Let me know if I haven't broken/removed anything else 😅
Designs
Link to the related design prototypes (if applicable)
Testing instructions
Please explain how to test the PR: ID of a dataset, steps to reach the feature, etc.
Feature relevant tickets
N/A

Checklist before submitting

[ ] Meaningful commits and code rebased on develop.

@andresgnlez Looks obvious now.
It should have been obvious as soon as I saw the issue with dependencies, but it never crossed my mind. 😓
Small note: the global-regional data table has the same issue. Might be worth doing it in the same PR in case we need to revert, but I have found nothing broken; filters work fine!

@SARodrigues I almost forget about it, thanks for noticing. I rebased the PR, so the fix for both tables should be in a single commit. Feel free to merge if everything is OK.


what is the variable '_dbt_max_partition' for? It looks unuseful, costs a lot of processed bytes.

https://github.com/dbt-labs/dbt/blob/72c831a80a9439a4ec7e472472cf6451c88f0223/plugins/bigquery/dbt/include/bigquery/macros/materializations/incremental.sql#L52

If a partitioned table is enough big, the SQL '''select max({{ partition_by.field }}) from {{ this }}''' still costs a lot of processed bytes.

Hey @xufengtian14, totally fair! We initially added _dbt_max_partition in v0.16 as a "nice-to-have" scripting variable, that demonstrated the value BigQuery scripts. At the time, we were surprised at the lack of costless options for getting max partition values in standard SQL, since there are free metadata-only queries that can be run in legacy SQL.
Unfortunately, in the 1.5 years since then, the BigQuery team has not made moves toward making select max(partition_col) from table a metadata-only (free) query. So I'd be in favor of offering an option to disable _dbt_max_partition, perhaps by default, as well as other options to achieve the same result.
I'm going to close this issue in favor of https://github.com/dbt-labs/dbt/issues/2278, which has slightly more detail about the direction we want to see this go. That one is tagged a "good first issue," meaning that I'd be thrilled to support a community member who'd be interested in taking it on as a contribution! Is that something you might be interested in giving a go?

Hey @jtcohen6 - I know this is closed but feels more relevant here than in #2278 - re: your comment above:

Unfortunately, in the 1.5 years since then, the BigQuery team has not made moves toward making select max(partition_col) from table a metadata-only (free) query. So I'd be in favor of offering an option to disable _dbt_max_partition, perhaps by default, as well as other options to achieve the same result.

Although still not technically free (10MB min per query) and still in preview, it looks like the INFORMATION_SCHEMA.PARTITIONS does get us closer to a spot where including _dbt_max_partition by default is not onerous. The column scan at the outset of an incremental update script, which currently looks like:
set _dbt_max_partition = (
    select max(<partition_column>) from `<projectid>`.`<dataset>`.`<table>`
);

could become something more like:
set _dbt_max_partition = (
  select max(parse_date('%Y%m%d', partition_id))
  from `<projectid>`.`<dataset>`.INFORMATION_SCHEMA.PARTITIONS
  where table_name = '<table>'
);

for date partitions; with the appropriate handling of other supported partition types and granularity.


Connect4: Put 4

Please do not change the title. Just click "Submit new issue". You don't need to do anything else :D

This was a testcase. Working!


IP address of service's public load balancer not returned by kubectl

In 0.18.1 on Google Container Engine, I have a service with createExternalLoadBalancer=true. The load balancer is created and works as expected, but neither kubectl get service nor kubectl describe service include the LB IP. This worked in 0.17.1.
Output of kubectl get service (condensed to show relevant service):
NAME              LABELS                                                                           SELECTOR                    IP(S)           PORT(S)
...
nginx-ssl-proxy   name=nginx,role=ssl-proxy                                                        name=nginx,role=ssl-proxy   <IP_ADDRESS>   443/TCP
                                                                                80/TCP

Output of kubectl describe service/nginx-ssl-proxy (note the first 4 lines are a separate issue, #8636):
W0605 11:26:01.870978   45582 request.go:291] field selector: v1beta3 - events - involvedObject.name - nginx-ssl-proxy: need to check if this is versioned correctly.
W0605 11:26:01.871514   45582 request.go:291] field selector: v1beta3 - events - involvedObject.namespace - default: need to check if this is versioned correctly.
W0605 11:26:01.871525   45582 request.go:291] field selector: v1beta3 - events - involvedObject.kind - Service: need to check if this is versioned correctly.
W0605 11:26:01.871533   45582 request.go:291] field selector: v1beta3 - events - involvedObject.uid - 7efc951b-0baf-11e5-94ff-42010af0de54: need to check if this is versioned correctly.
Name:			nginx-ssl-proxy
Labels:			name=nginx,role=ssl-proxy
Selector:		name=nginx,role=ssl-proxy
IP:			<IP_ADDRESS>
Port:			https	443/TCP
Endpoints:		https	<IP_ADDRESS>:443
Port:			http	80/TCP
Endpoints:		http	<IP_ADDRESS>:80
Session Affinity:	None
No events.

The version of kubectl must be stale.
$ k describe services/hostnames
W0605 11:46:25.069897   11184 request.go:291] field selector: v1beta3 -
events - involvedObject.namespace - default: need to check if this is
versioned correctly.
W0605 11:46:25.070009   11184 request.go:291] field selector: v1beta3 -
events - involvedObject.kind - Service: need to check if this is versioned
correctly.
W0605 11:46:25.070032   11184 request.go:291] field selector: v1beta3 -
events - involvedObject.uid - 11ef230b-04d0-11e5-8062-42010af0fd40: need to
check if this is versioned correctly.
W0605 11:46:25.070054   11184 request.go:291] field selector: v1beta3 -
events - involvedObject.name - hostnames: need to check if this is
versioned correctly.
Name: hostnames
Labels: run=hostnames
Selector: run=hostnames
Type: LoadBalancer
IP: <IP_ADDRESS>
LoadBalancer Ingress: <IP_ADDRESS>
Port: default 8675/TCP
NodePort: default 30689/TCP
Endpoints: <IP_ADDRESS>:9376,<IP_ADDRESS>:9376,<IP_ADDRESS>:9376 + 2 more...
Session Affinity: None
No events.

Alternately, try kubectl get -o yaml for your service
On Fri, Jun 5, 2015 at 11:27 AM, Evan Brown<EMAIL_ADDRESS>wrote:

In 0.18.1 on Google Container Engine, I have a service with
createExternalLoadBalancer=true. The load balancer is created and works as
expected, but neither kubectl get service nor kubectl describe service
include the LB IP. This worked in 0.17.1.
Output of kubectl get service (condensed to show relevant service):
NAME              LABELS                                                                           SELECTOR                    IP(S)           PORT(S)
...
nginx-ssl-proxy   name=nginx,role=ssl-proxy                                                        name=nginx,role=ssl-proxy   <IP_ADDRESS>   443/TCP
80/TCP
Output of kubectl describe service/nginx-ssl-proxy (note the first 4
lines are a separate issue that I don't have the link to atm):
W0605 11:26:01.870978   45582 request.go:291] field selector: v1beta3 - events - involvedObject.name - nginx-ssl-proxy: need to check if this is versioned correctly.
W0605 11:26:01.871514   45582 request.go:291] field selector: v1beta3 - events - involvedObject.namespace - default: need to check if this is versioned correctly.
W0605 11:26:01.871525   45582 request.go:291] field selector: v1beta3 - events - involvedObject.kind - Service: need to check if this is versioned correctly.
W0605 11:26:01.871533   45582 request.go:291] field selector: v1beta3 - events - involvedObject.uid - 7efc951b-0baf-11e5-94ff-42010af0de54: need to check if this is versioned correctly.
Name:           nginx-ssl-proxy
Labels:         name=nginx,role=ssl-proxy
Selector:       name=nginx,role=ssl-proxy
IP:         <IP_ADDRESS>
Port:           https   443/TCP
Endpoints:      https   <IP_ADDRESS>:443
Port:           http    80/TCP
Endpoints:      http    <IP_ADDRESS>:80
Session Affinity:   None
No events.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/9329.

I'm using the latest kubectl that comes with gcloud (just did gcloud components update to confimr):
kubectl version
Client Version: version.Info{Major:"0", Minor:"17", GitVersion:"v0.17.0", GitCommit:"82f8bdac06ddfacf493a9ed0fedc85f5ea62ebd5", GitTreeState:"clean"}
Server Version: version.Info{Major:"0", Minor:"18", GitVersion:"v0.18.1", GitCommit:"befd1385e5af5f7516f75a27a2628272bb9e9f36", GitTreeState:"clean"}

Outputting yaml doesn't help:
- apiVersion: v1beta3
  kind: Service
  metadata:
    creationTimestamp: 2015-06-05T18:20:08Z
    labels:
      name: nginx
      role: ssl-proxy
    name: nginx-ssl-proxy
    namespace: default
    resourceVersion: "1774"
    selfLink: /api/v1beta3/namespaces/default/services/nginx-ssl-proxy
    uid: 7efc951b-0baf-11e5-94ff-42010af0de54
  spec:
    createExternalLoadBalancer: true
    portalIP: <IP_ADDRESS>
    ports:
    - name: https
      port: 443
      protocol: TCP
      targetPort: nginx-ssl-proxy-https
    - name: http
      port: 80
      protocol: TCP
      targetPort: nginx-ssl-proxy-http
    selector:
      name: nginx
      role: ssl-proxy
    sessionAffinity: None
  status: {}

Maybe a stale kubectl bundled gcloud?

The gcloud release cycle is different than our release cycle, unfortunately.

Thanks, Brian. Might make sense to pin the cluster version created by
gcloud rather than defaulting to latest, though I expect these types of
issues will be less frequent after 1.0. Thoughts?
On Friday, June 5, 2015, Brian Grant<EMAIL_ADDRESS>wrote:

The gcloud release cycle is different than our release cycle,
unfortunately.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/9329#issuecomment-109482640
.

Not so simple, actually. Some discussion about this in #3955, #4855, and #5889.

This issue is old, but I believe the high-level problem is still valid. Users need to pull the ingress IP out of the json/yaml:
http://kubernetes.io/v1.0/docs/user-guide/connecting-applications.html#exposing-the-service

This is no longer true (looks like it hasn't been true since https://github.com/GoogleCloudPlatform/kubernetes/pull/8707)
I will update the docs.

Thanks for the doc update. However, I think it would be useful to distinguish between internal and public IPs explicitly, by using different columns.

ok, sg.

Summarizing side conversation...
Current output looks like:
$ kubectl get services kube-dns --namespace=kube-system
NAME       LABELS       SELECTOR             IP(S)       PORT(S)
kube-dns   <none>       k8s-app=kube-dns     <IP_ADDRESS>   53/UDP
                                                         53/TCP

Output conventions were discussed in the get pods issue:
https://github.com/GoogleCloudPlatform/kubernetes/issues/7843#issuecomment-101365459
I'd like get output to be one line per resource.
In this case, I'd eliminate the labels column, since -L supports specifying labels as columns.
I'd move selector to be the rightmost field displayed, due to length and utility.
Separate columns for cluster and public IPs. NodePort services should just say "Nodes" in the public IP column. Cluster services should say "<n/a>". If that is changed, please also change other instances:
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/pkg/kubectl/resource_printer.go#L987
Ports should be on the same line, separated by commas.

We could call the public IP/name column "INGRESS", to match the API.

Ok, I updated #12423
Example output:
$ kubectl get svc
NAME         CLUSTER IP       EXTERNAL IP       PORT(S)                SELECTOR     AGE
kubernetes   <IP_ADDRESS>     <none>            443/TCP                <none>       8d
nginxsvc     <IP_ADDRESS>   <IP_ADDRESS>   80/TCP,81/TCP,82/TCP   run=nginx2   11m

I adopted <none> (and fixed the <n/a> to be <none> too) since I think that looks better than empty string.
Also, note that your spec didn't mention age, but all of the other things have age last, so I kept it for consistency.
ptal.
--brendan

Thanks. Looks great. Yes, AGE was added very recently. It makes sense for it to be last.
In order for cut, etc. to work, we need a uniform number of columns, so please use CLUSTER_IP and EXTERNAL_IP.


Enable Resolve Attr Path for List or Dict of Promise

Tracking issue
https://github.com/flyteorg/flyte/issues/5856

Why are the changes needed?
We should support this:
@dataclass
class DC:
    a: int

@dataclass
class DC2:
    a: DC
    b: int

@task(container_image=image)
def task_1(in1: int) -> typing.List[int]:
    return list(range(max(2, in1)))

@task(container_image=image)
def task_2(in1: int, in2: typing.List[int]) -> int:
    return in1 + sum(in2)

@task(container_image=image)
def task_3() -> DC2:
    return DC2(a=DC(a=1), b=2)

@workflow
def my_wf(in1: int, in2: int) -> int:
    a = task_1(in1=in1)
    a1 = a[0]
    dc = task_3()
    b = task_2(in1=5, in2=[a1, dc["b"], dc.a["a"], in2])
    return b

What changes were proposed in this pull request?
If the input is the list, call resolve_attr_path_in_promise for each element of that.

How was this patch tested?

Run the code above locally & remotely.
A new unit test is added

Setup process
Screenshots

Check all the applicable boxes

[x] I updated the documentation accordingly.
[x] All new and existing tests passed.
[x] All commits are signed-off.

Related PRs

Docs link

cc @Future-Outlier

Yes you are amazing

@pingsutw I updated the function to remove some redundant code and also support the Dictionary. Could you review it for me? Thx!

testing this PR, let me merge it.

It's great.

Do you want to also add a test for dict[str, type]?
@Mecoli1219

Do you want to also add a test for dict[str, type]?

@Future-Outlier I updated it in the description


Incorporate a separate dataset

Description
User Story

As a user, I want to be able to access and create different types of data stored on the server

Created routes that provide access and allow the user to create data and make queries about animals and zookeepers.


image.write_to_memory raises FFI::NullPointerError sometimes

We've noticed on our production machines that a FFI::NullPointerError is raised sometimes when we try to image.write_to_memory (sometimes, as in, an error per minute, at a rate of a few dozen thousand jobs per minute).
I see this raised for .jpgs, but also for .tifs and .pngs.
Sorry for opening so many issues, but hopefully some of them trigger some ideas of improvement on your side as well ✌

Try changing write_to_memory to be:
    def write_to_memory
      len = Vips::SizeStruct.new
      ptr = Vips::vips_image_write_to_memory self, len
      raise Vips::Error if ptr == nil

      # wrap up as an autopointer
      ptr = FFI::AutoPointer.new(ptr, GLib::G_FREE)

      ptr.get_bytes 0, len[:value]
    end

ie. check for a NULL return. You should get a more helpful error message.

Will this give more details about the underlying C error? Referring to the ones over here.

OK, 2.0.15 is out with this improvement. I'll close.


Spoiler_Imgs for nhentai gallery doesn't work right now

Due to the way the cache is implemented, there is no distinction between the spoiler'd vs unspoiler'd versions of the image. Modify the call to the mirror blob function to include a {"spoiler": True/False} field.
Also benchmark the performance between the two solutions to see if it actually is worth it to cache! (the overhead of sending a message takes a while)

Performance Benchmark
Cold Start
2.742106,
2.035555,
1.813888,
2.099225,
2.256596,
2.50527,
2.138304,
mean: 2.23 sec
std: 0.28 sec
Warm Start
0.606059,
0.645791,
0.993224,
0.517061,
0.703853,
0.531067,
0.653984,
0.694778,
mean: 0.67 sec
std: 0.13 sec
Image upload
2.155344,
1.555129,
1.56021,
1.609084,
1.779995,
1.816835,
1.099116,
1.294492,
1.115506,
mean: 1.55 sec
std: 0.325 sec

Method
Mean Time (s)
Std (s)

Cache, cold start
2.23
0.28

Cache, warm start
0.67
0.13

Direct Upload
1.55
0.325

As an update, images can't be spoilered in embeds, so this will not be implemented.


Why not upgrade to a higher version of webpack？

Why not upgrade to a higher version of webpack for reduce the volume of the js bundle and speed up the compilation speed with the latest features?

@PerseveranceZ https://github.com/weexteam/weex-builder/commit/e7392063e88c6635db262f2bc85050bf1f36d82c.
The webpack have been upgraded to 3.10.0.

awesome!!! I have another question. Is UI component library able to support tree-shaking? I have tried it, but weex-ui or other libraries are not supported at present. When I import some components, I will still pack it all in.


User location

For a user to be able to "pin himself" to the map, we need a way to store his location in the database. This is an example of data we get from Google's geo suggestions, we can use some of its values:
value {
  "description": "Warsaw, Poland",
  "id": "6b893c3d05bf5fb2caa4b033c9aa27a41fab6fc3",
  "matched_substrings": [
    {
      "length": 3,
      "offset": 0
    }
  ],
  "place_id": "ChIJAZ-GmmbMHkcR_NPqiCq-8HI",
  "reference": "CjQmAAAA4XXeriz7FoIDPNL2zFc7maGYJU8yvvYnEP0EqVmcPCB3MqiKzRxIkPgVn1RQpRA-EhBwtDe8aAIByfnw_vGU-gmjGhQW-cV-zPiehEiAIheTPSlfOLeGCw",
  "structured_formatting": {
    "main_text": "Warsaw",
    "main_text_matched_substrings": [
      {
        "length": 3,
        "offset": 0
      }
    ],
    "secondary_text": "Poland"
  },
  "terms": [
    {
      "offset": 0,
      "value": "Warsaw"
    },
    {
      "offset": 8,
      "value": "Poland"
    }
  ],
  "types": [
    "locality",
    "political"
  ],
  "address_components": [
    {
      "long_name": "Warsaw",
      "short_name": "Warsaw",
      "types": [
        "locality",
        "political"
      ]
    },
    {
      "long_name": "Warszawa",
      "short_name": "Warszawa",
      "types": [
        "administrative_area_level_2",
        "political"
      ]
    },
    {
      "long_name": "Masovian Voivodeship",
      "short_name": "Masovian Voivodeship",
      "types": [
        "administrative_area_level_1",
        "political"
      ]
    },
    {
      "long_name": "Poland",
      "short_name": "PL",
      "types": [
        "country",
        "political"
      ]
    }
  ],
  "formatted_address": "Warsaw, Poland",
  "geometry": {
    "bounds": {
      "south": 52.0978767,
      "west": 20.851289800000018,
      "north": 52.3679992,
      "east": 21.27109829999995
    },
    "location": {
      "lat": 52.2296756,
      "lng": 21.012228700000037
    },
    "location_type": "APPROXIMATE",
    "viewport": {
      "south": 52.0978767,
      "west": 20.851289800000018,
      "north": 52.3679992,
      "east": 21.27109829999995
    }
  }
}

@robertkirsz Was added "googleLocationId" field. See docs 😀


Table of Content

Can i create the table of content (index) which helps to user read the documentation
Example:

Hi @Durgesh4993 ,
Where do you see this ToC landing?  Is it the repo's Readme file, or elsewhere?  Do you envision it replacing content that already exists, and if so, which content?
Thanks,
--Erik

No i don't want change any documentation, I just want to add ToC in readme file which helps to find documantation easily

@erikspears Can i do this task

@Durgesh4993 , yes of course, open a PR and the team will review.  Thanks for the clarification as well!

Our product documentation now lives here (https://docs.swirl.today/), and includes both persistent navigation between the guides, a table of contents for each individual guide, and also a nice find in page feature.
Thank you for the suggestion, we're closing this Issue out now.


Update to add MLwithTensorFlow2ed

Add MLwithTensorFlow2ed to your list. Thank you for your consideration!

First, make sure you have pip installed
Then, open your terminal or command prompt and enter:
pip install tensorflow scikit-learn
This will install the latest versions of TensorFlow and scikit-learn
Once the installation is complete, you can start using these libraries in your Python code:
import tensorflow as tf
from sklearn import datasets
Example code using TensorFlow and scikit-learn
(note: this is just a toy example, not a real-world ML model!)
Load the iris dataset from scikit-learn
iris = datasets.load_iris()
Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
Define the TensorFlow model architecture
model = tf.keras.Sequential([
tf.keras.layers.Dense(10, activation='relu', input_shape=(4,)),
tf.keras.layers.Dense(3, activation='softmax')
])
Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Train the model on the training data
model.fit(X_train, y_train, epochs=50, validation_split=0.2)
Evaluate the model on the testing data
loss, accuracy = model.evaluate(X_test, y_test)
print('Test loss:', loss)
print('Test accuracy:', accuracy)

hi, just bumping this @jtoy thanks for your consideration.


support for mamba?

Can I fine-tune the latest Mamba architecture model using LLaMA-Factory?

I'm also interested in support for the Mamba architecture. Any plans to support it in the future?


Nested lists diff contract?

Thanks for this terrific library! While i'm aware that a number of people have requested for ordered list-diffs, i'm happy enough with the list being treated as a set underneath. That being said, I did run into the following and was wondering if you could tell me if this is the right contract/expectation:
static class ObjHolder {

	private List<Address> addressList;

	public List<Address> getAddressList() {
		return addressList;
	}

	public void setAddressList(List<Address> addressList) {
		this.addressList = addressList;
	}

}

static class Address {

	private String line1;

	public String getLine1() {
		return line1;
	}
	public void setLine1(String line1) {
		this.line1 = line1;
	}

}

@Test
public void sampleTest() {
	Address addr1 = new Address(); addr1.setLine1("Haha St");
	ObjHolder objHolder1 = new ObjHolder(); objHolder1.setAddressList(Collections.singletonList(addr1));

	Address addr2 = new Address(); addr2.setLine1("Haha St");
	ObjHolder objHolder2 = new ObjHolder(); objHolder2.setAddressList(Collections.singletonList(addr2));

	diff(objHolder1, objHolder2);
}

private void diff(Object baseline, Object working) {
		DiffNode diff = ObjectDifferBuilder.buildDefault().compare(working, baseline);
		diff.visit(new DiffNode.Visitor() {
			public void node(DiffNode node, Visit visit) {
				if (node.hasChanges() && !node.hasChildren()) {
					switch (node.getState()) {
						case ADDED: {
							LOGGER.warn("Working obj has additional field: " + node.getPath() + " => " + node.canonicalGet(working).toString());
							break;
						}
						case REMOVED: {
							LOGGER.warn("Working obj is missing field: " + node.getPath() + " => " + node.canonicalGet(baseline).toString());
							break;
						}
						default: {
							LOGGER.warn("Original: " + node.getPath() + " => " + node.canonicalGet(baseline).toString());
							LOGGER.warn("Working: " + node.getPath() + " => " + node.canonicalGet(working).toString());
							break;
						}
					}
				}
			}
		});
}

Now even though both objects appear identical, I'm greeted with the following logs:
Working obj has additional field: /addressList[com.some.package.VODifferTest$Address@26a7b76d]/line1 => Haha St
Working obj has additional field: /addressList[com.some.package.VODifferTest$Address@5f3a4b84]/line1 => Haha St

Is this expected? Is there any way I can supply a configuration that would suppress these as "diffs"? I ask this because if I change the ObjHolder to hold a single instance of type Address it works as expected, but somehow the inclusion of a list trips things up a little bit. Please don't hesitate in correcting my understanding of the API.

The problem is that there is no way to establish an object relationship because addr1.equals(addr2) is false. When objects are contained in a List, the library first tries to figure out, which objects are known in both versions by checking their identity via equals. Once the relationship is established, the matching objects will be diffed as usual. Unfortunately your Address doesn't really contain any properties that lend themselves for a good equals implementation. So either you go full monty and simply switch the Address into equals-only mode (which is probably not desired because it reduces the granularity of the diff) or you add an identifier property like an UUID and make use of it in a custom equals method to allow the library to properly establish the relationship. I'm afraid currently these are your only options.
That being said, I think it would be a cool feature if one could configure the ObjectDiffer to match List-items by index instead of identity. But currently that's not supported.

Closing for inactivity. Feel free to reopen.


Upgrade 12.04-based containers to 14.04

Aims to fix #149 for armv7-unknown-linux-gnueabihf, i686-unknown-linux-gnu and x86_64-unknown-linux-gnu containers, by upgrading them to Ubuntu 14.04, where multiarch is properly supported.

Thanks for the PR.
Unfortunately, this change makes the binaries produced by cross less portable because it increases the glibc version of the (cross) C toolchains. For instance, the binaries produced with these changes won't run on Ubuntu 12.04 ("undefined reference to $SYMBOL" error at runtime).
We strive to make Cross-generated binaries as portable as the rustc binary shipped by rust-lang/rust so I won't be accepting this change. Sorry but you'll have to find another solution to #149. (Idea: perhaps there's some debian release that supports multiarch and also has an old glibc version?).

Sorry to hear that. Unfortunately, that’s not really something I understand enough to contribute.
As it stands, the instructions for adding library dependencies which is in the readme simply do not work, for confusing reasons, on a whole bunch of common architectures. Adding another invisible dependency on a different OS seems like an even more confusing change!
It might be good to add the OS and version pair to the table in the Readme, so these differences are clear. Moving any of these to Debian may also mean package names change subtly.

As far as I can see, Rust uses Ubuntu 16.04 for armv7-unknown-linux-gnueabihf and CentOS 5 with vault.centos.org repository mirror for i686-unknown-linux-gnu and x86_64-unknown-linux-gnu targets. I hope we can update Dockerfiles for these targets.

cc @rust-embedded/tools

To reiterate: we are not going to bump the glibc versions in the v0.1.x line
because that's a breaking change. We'll bump the glibc versions when we are
ready to release v0.2.0.

As far as I can see, Rust uses Ubuntu 16.04 for armv7-unknown-linux-gnueabihf

But rust-lang/rust builds their own toolchains from scratch. For example, they
use glibc 2.16 + gcc 5.2 for armv7-unknown-linux-gnueabihf. We use Ubuntu 12.04
which comes with glibc 2.15 for armv7-unknown-linux-gnueabihf. Bumping our glibc
beyond 2.16 (i.e. moving to 14.04 or 16.04) would be a breaking change so it
can't be done in the v0.1.x line.

What will happen when Ubuntu 12.04 becomes completely unsupported in April 2019

Nothing's going to happen to the existing releases; our tagged docker images
will still be there. If someone is concerned about using an image based on
Ubuntu 12.04 they are free to use a custom image, Cross supports this.

I should also add that we are not going to increase the CI load of this
repository because it's already ridiculously large (and affects the whole
rust-embedded org). This means:

We are not going to build custom toolchains. Not here nor in another
repository under the rust-embedded org. If a third party provides nicely
packaged toolchains that meet our needs we'll gladly use them but we are not
going to build them ourselves.

We are not going to provide variants of existing images so no
armv7-unknown-linux-gnueabihf-with-recent-glibc. One image per target is
plenty of CI time already.

With that say I'm going to close this PR since it's not actionable until we have
decided what to do with glibc versions for v0.2.0. If someone feels like
proposing a plan of action for v0.2.0 please post it in an RFC issue.


JS code-gen is unhygienic

Example:
def f x = case 1 of { 1 -> x }

Generates, for the body of f:
(x) => (function (x) { if (x == 1) { return x; } throw new Error("non-exhaustive case expression"); })(1)

The normal way of dealing with this is the "gensym" approach, for "generating symbols". For every name x you want to use, you call gensym("x"), and a new name distinct with every other name in the program is picked.
We could also have a more local version that only picks names different from names currently in scope, which would avoid generating too many harder-to-read unique names.

Yes. I’m aware of this problem, too. My plan is to track current JavaScript scope during transpiling. The scope object provides name allocation and renaming functionalities.


:boom: Better command types and application command types

Changes

adds: New CommandArg modifiers (Description, Choices, ChannelTypes, MaxValue, MinValue). Only autocomplete is missing. You can now use @user_command and @message_command to create their respective application command types.
fixed: Optional arguments now work with default values
improvements: Changed some parts of the interaction_create middleware so its easier to use. Command args now use composition (check README.md on my branch for an example). Commands now have a folder because there's so much stuff.

Stuff that sucks
Im merging a bug where you aren't able to have application commands that are different types but have the same name.
I have no idea how the hell to do the inheritance stuff for the functions in commands.py
Check off the following

[x] I have tested my changes with the current requirements
[x] My Code follows the pep8 code style.

🚀


Merge dev/socket into main

@loganek Are there any PRs to submit to dev/socket recently? Shall we merge the changes from dev/socket into main firstly, since we are planning to release a new version of WAMR.

We'll definitely have more PRs for sockets, but none of the changes we have in the branch are breaking WAMR so I think it's safe to merge. Having said that, please don't remove the dev/socket branch as we'll be sending few more PRs (for ipv6, some of the socket properties, add getaddrinfo implementation in socket libc etc.)

Tend to keep all modifications on dev/socket until all PRs and features(ipv6, socket properties, and so on) are ready.

Some of the changes really impact the current wasm app, for example, the implementation of wasi_sock_ext is changed, which will be linked into wasm app, and signatures of sock_addr_local/sock_addr_remote/sock_addr_resolve are also changed. These mean that the old wasm app cannot run correctly in the current runtime.
@loganek @lum1n0us How about we keep the socket API unchanged in the next release? And merge this PR after the new version is released?

the signatures of sock_addr_local/sock_addr_remote/sock_addr_resolve

@wenyongh I understand your concerns and I agree those APIs have changed. Having said that, they did not have the implementation, so I'm not sure if there's a serious risk in releasing those - not only they didn't have an implementation, but they were also not exposed through wasi_sock_ext so not sure if there was any usecase of those functions?

the signatures of sock_addr_local/sock_addr_remote/sock_addr_resolve

@wenyongh I understand your concerns and I agree those APIs have changed. However, they did not have the implementation, so I'm not sure if there's a serious risk in releasing those - not only they didn't have an implementation, but they were also not exposed through wasi_sock_ext so not sure if there was any usecase of those functions?
Having said that, I don't mind waiting with the merge until all the changes we're waiting for are merged to dev/socket. I guess we can have another WAMR release shortly after we merge dev/socket into main?

@loganek Yes, thanks for your understanding, my concern is that the current wasm app compiled with recent commits (from WAMR-05-18-2022 to current commit in main branch) cannot correctly run with the runtime compiled with dev/socket, developer may complain about the compatibility, though he can recompile the wasm app to resolve the issue.
And yes, it seems a good idea to create a release without dev/socket PRs, and then create another release with dev/socket some time later. @lum1n0us What is you opinion? Is that OK?

agree with that it is a riskless option to release without dev/socket.

We've internally performed the tests and the PR is ready for review and merge. @wenyongh could you remove a draft flag from the PR and have a look? Thanks.


Remove RuboCop::RSpec::Language::NodePattern

Fix: https://github.com/rubocop/rubocop-rspec/issues/1832
Can be merged next major update.

Before submitting the PR make sure the following are checked:

[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Updated documentation.
[-] Added an entry to the CHANGELOG.md if the new code introduces user-observable changes.
[x] The build (bundle exec rake) passes (be sure to run this locally, since it may produce updated documentation that you will need to commit).

Should we create a 2-x-stable branch to backport non-v3 changes to while we prepare for the upcoming v3 release?

@ydah Now that we have a separate 2-x-stable branch, I think we are ready to merge this pull request after the conflicts are fixed.

FYI specs are failing.

memo) needs: https://github.com/rubocop/rubocop-rspec/pull/1848


Purpose of Permissions "slug"

Not quite sure the purpose of the slug field in the permissions table.
Assuming I have a permission such as -

Name
Slug
Description

todo.create.all
tca
Can create a todo in all categories

Is that to facilitate something like
if ( Auth::user()->can('tca') )

instead of something like
if ( Auth::user()->can('todo.create.all') )

? Thanks.

Right - you use the slug when needing to reference a permission for a check. The name is for your user-friendly name within your application.
So, in your example you would have something like this:

Name
Slug
Description

Create All Todo
todo.create.all
Can create a todo in all categories.

And when needing to check for the permission, you'd reference the slug:
if (Auth::user()->can('todo.create.all') {
    //
}

Fantastic. Thanks for the quick response. You should probably cut/paste your response directly into your usage page. Very helpful. :)

No problem, and I'll certainly get the usage and some other documentation updated here shortly!
:+1:


Replace newline in diagnostic message with .  for better readability

For example with the following diagnostic message from Deno:

The current lualine-diagnostic-message displays it as this, which is not readable in my opinion.

This PR changes it to

Thanks!


Remove flutter_service_worker.js when building web app with --pwa-strategy=none

When I build my web application with --pwa-strategy=none I get an empty flutter_service_worker.js file. Why is this file still created? I think it would make more sense if it is not created in this case.

Hi @jxstxn1, it looks like this is working as intended.
The --pwa-strategy=none is intended to
Generate a service worker with no body.
This is useful for local testing or in cases where the service worker caching functionality is not desirable

Is your intent to not support pwas or you just don't want to use the caching strategy?

My main Intent is that the Current Caching Strategy make problems after I redeployed my application. Some Customers need to double reload until it works again.
So I used --pwa-strategy=none. My question is:
Why do we need to keep the empty file and don't delete it?

I believe the code that registers the serviceWorker requires that the file be there. If the file is deleted it can't be referenced as there'll be an error thrown in the console.
I believe you should see that in your index.html file

Then why don't we update the code so that this file is not necessary anymore 🤔
I see no reason except for the existing code in the index.html that we should keep this file with --pwa-strategy=none

The navigator.serviceWorker.register() method requires that a service worker file be provided, otherwise, the registration of the serviceWorker fails. This isn't something that flutter has any control over.
Kindly see https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register for more information.


DEV010 - Set default automatic update false

Set default value of automatic update to false

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 3 committers have signed the CLA.:x: huuphat1908:x: nhpa-netcompany:x: DatHoang192You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 3 committers have signed the CLA.:x: huuphat1908:x: nhpa-netcompany:x: DatHoang192You have signed the CLA already but the status is still pending? Let us recheck it.


Added a missing devDependency

Forked the master branch, did a "npm install" and then tried to run the "gulp build" command.
The "through2" was not found, so i added it to the dev dependencies...

Looks fine.. Please merge with master and update the PR

Fork merged from master. It should be good to go.
Thanks!

Another PR went in and again merge is blocked. Can you do it again.

Ok, Let's try again :P

Again blocked.. I am doing this time thanks for reporting.