Patrick/code cleanup

This is a slightly opinionated cosmetic refactor of swift-toolbox, and some minor other fixes. Here they are.

Remove default features of chrono to avoid https://rustsec.org/advisories/RUSTSEC-2020-0071.html
Restructure modules to be in name/mod.rs. To me, this style is cleaner, I am happy to revert this change.
Make all doc strings of struct and enums follow rustdoc syntax, so you should be able to see the fields in your favorite IDE & they are properly formatted in the rustdocs. (FYI the way I found them was just run cargo doc --document-private-items and just look over the docs that were created. It was useful to help me get acclimated to this crate anyway. Closes https://swift-nav.atlassian.net/browse/CPP-348
Fix all markdown warning thrown by rustdoc.
Update utils/mod.rs unit tests to use a case based test framework, have the message thrown if test fails be more helpful when comparing floats & byte strings.

Sorry to put these all together, I should have done them as separate PRs.

Frontend and Release Workflow Started here

Frontend and Release Workflow Started here

Frontend and Release Workflow Started here


Add files via upload

Add Sharp X1, Commodore XPET, Commodore Plus 4
Need to fix scraper URLs

Thanks, I've updated the urls & names of platforms


fix, refactor: Stronghold import screen

Summary
On desktop and mobile:

The <input> element covers the "Continue" button, so if the user tries to click it, the file picker is repeatedly shown when importing a Stronghold
Removed some conditional rendering
Fixed typo: extentions -> extensions

On mobile only:

Matched flow of desktop (import, then user must click "Continue")
Removed <input> element as its behavior was slightly different from calling the native file picker
Get file name by splitting on the path separator instead of using a regex (the current regex would not work with file names that included spaces, such as Firefly Test Account.stronghold)

Changelog
- Removed duplicate <input> element so "Continue" button is not covered
- Removed conditional rendering
- Matched mobile flow to desktop flow
- Fixed getting file name from the file path
- Fixed typo

Relevant Issues
N/A
Type of Change

[x] Fix - a change which fixes an issue

Testing
Platforms

Desktop

[x] MacOS
[ ] Linux
[ ] Windows

Mobile

[x] iOS
[ ] Android

Instructions
Import a Stronghold when creating a new profile
Checklist
Please tick all of the following boxes that are relevant to your changes, and delete those that are not.

[x] I have followed the contribution guidelines for this project
[x] I have performed a self-review of my own code
[x] I have verified that new and existing unit tests pass locally with my changes
[x] I have verified that my latest changes pass CI workflows for testing and linting

To do: see if <input> element should be removed entirely, because its behavior on mobile differs from calling handleFileSelectMobile

On desktop all works well as you described, but on mobile I've tested on Android and can't be changed the selection once done

Ooh you're right. This is actually the current behavior on desktop too, I guess I never realized 🤔

In the next screen (the password one) the back button stop to work.

This is an issue on desktop too. I'll investigate and see if I can fix it

Maybe wait for the user to tap the continue button could feels like an extra step imo. Right now on develop branch is not working yet cause there is needed some merges more, but on test/mobile-alpha the user can go back on the password screen and choose another file again.
But yes, the users could like it, we could test with continue button and also propose to the UX team for the next implementation.

Yep, maybe we should run this by the UX team then. My primary aim was to fix the <input> element on this screen because it effectively prevents the user from proceeding with the Stronghold import (on both desktop and mobile), but I saw some areas where we could align the flow with desktop and refactor the component to be simpler. I'm fine with reverting those changes as long as we can fix the <input> issue 👍

In the next screen (the password one) the back button stop to work.

Addressed this in #3288 since the issue is coming from a different component


Session and Stream terms clarification

I am a little bit confused in following terminology

Session: A unique invocation of Aeron that identifies a single Publication and all Subscriptions for that Publication.

Stream: A Session carries sub-sessions within it. Streams are these sub-sessions.

Each time we create publication
Publication publication = aeron.addPublication(CHANNEL, STREAM_ID_1);
sessionId_1 is going to be generated for this publication.
If we create second one
Publication publication = aeron.addPublication(CHANNEL, STREAM_ID_2);
a new different sessionId_2 will be generated according to Session term and each pub-sub can be identified uniquely in two ways: by sessionId or CHANNEL:STREAM_ID. And the first one cannot replace the second one because, in my understanding, sessionId is a protocol's interior and identifies a unique pub-subs in a single driver and streamId is used for communication purposes between applications.
What kind of sub-sessions are talked about in Stream term if we are forced to specify streamId in a publication creation? Is it possible to have multiple streams in a single publication? Is there any case when SESSION_ID can be referenced by STREAM_ID as one-to-many?
Thank you.

Sub-session is a usage of shared concurrent publication by some process (thread) and all these sub-sessions share same session-id1 (by definition) and stream-id1, because for another stream-id2 separate session-id2 is going to be generated. And here i cannot understand, how to share multiple different stream-id1 and stream-id2 in one session-id as defined in Stream definition above.

Maybe @tmontgomery can clarify as he wrote the wiki page ;-)

The "sub-session" language is referring to stream Ids. It represents the fact that, from a PURELY specification perspective, it is fine to have the same Session ID on 2 different Stream IDs.

But from aeron implementation perspective i can't get it how to share a single Session ID on 2 different Stream IDs.

You cannot. Stream IDs providing multiplexing within a channel, and session ids are individual instances of streams on a given channel for a given stream id.

What @tmontgomery is saying is that session ids must be unique on a channel and stream id pairing at a given instance in time.

The actually Aeron implementation will have unique session ids for all publications on a given driver by default.

I've made some updates to the spec which will hopefully help.


Can we use Javascript instead of Swagger API?

Hi,
I consider this blockchain to use it with Javascript instead of Swagger API. For example, I want to make new wallet with an account (email, name, password,...) so I want to interact it with Javascript to post request.
Can you demonstrate a little bit about it, please?

Anwsered in @ #45


Migrate doc blocks from APIGEN (outdated) to doxygen (stable)

APIGEN is not working anymore and was not updated since more than two years. Doxygen will be used from now on to auto-generate html doc used on ](https://docs.yawk.io)

all done for now.


Add "group" to pricing plans along with name

What
Sometimes we want to ask a question like:
"How much has this organisation spent on postgres?"
"How much has this organisation spent on compute (including staging and tasks)?"
At the moment this is more difficult than it needs to be because we have
to add up all the various postgres plans the organisation might be
using. This currently involves doing string processing to work out which
plans are postgres based on which names start with "postgres", which
feels super hacky.
The plan would be to add a group field to the pricing plans in the DB,
and then expose this through the /pricing_plans API in paas-billing.
This would allow us to remove the code that does string processing on
"name".
This commit adds the following groups:

aws-s3-bucket
cloudfront
compute (includes app, staging and task)
elasticsearch
mongodb
mysql
postgres
prometheus
redis
unknown

I think it's best to add the groups to the existing plans so they're
there for all history. The paas-billing code
replaces all the pricing plans when it starts up. Once that code is
updated to include groups (separate PR to be created later) we'll be
able to start exposing them in queries.
How to review

Firstly think about whether this is a good idea in general (is there
some complexity I'm missing?).
If so, is "group" the best name for the
new key, or would something else ("category"?) be better? Do the
groupings I've come up with make sense?
Confirm that merging this isn't going to break paas-billing somehow

Who can review
Not @richardtowers - might be relevant to @46bit 's interests?

I note that https://github.com/alphagov/paas-billing/blob/94f16d71fda09ae19278e213e5e93743231deadb/eventstore/store.go#L210-L224 you linked does not do anything with the group field, and you'll probably need to a Group field to its pricing plan struct. So there is probably a second PR to do there.

Yeah, there's a second PR needed (I was going to merge it into this one, but I couldn't work up the enthusiasm to determine whether the deployment order mattered). Agree we'll need some more metadata fields in this PR to actually be useful though - your comment in https://github.com/alphagov/paas-admin/pull/159 suggests serviceName planName planVersion and planVariant - maybe we should add them all?

@richardTowers Now that you've rebuilt the calculator, is this still useful?

I think so (although this PR still isn't complete, as mentioned above).
My calculator still uses the /pricing_plans endpoint, which still has this problem.

Closing this as we now have additionalMetadata


Data Viewer Feature is still prompting Pandas installation, although it has been installed in my pipenv

Bug: Notebook Editor, Interactive Window, Editor cells

Steps to cause the bug to occur

Created a pipenv file to download all the dependencies I need for my Notebook

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
ipython = "*"
ipython-genutils = "*"
jedi = "*"
jupyter = "*"
pylint = "*"
xz = "*"

[packages]
faker = "*"
joblib = "*"
openpyxl = "*"
numpy = "*"
matplotlib = "*"
seaborn = "*"
sklearn = "*"
pandas = "*"

[requires]
python_version = "3.7"

As recommended by the Engineering Team last time I posted about this issue I tried using the daily python.insidersChannel & downloaded the xz package onto my dev environment as recommended
https://github.com/microsoft/vscode-python/issues/10759#issue-587325612
https://github.com/microsoft/vscode-python/issues/10858#issue-590252326

I tried to take a closer look at one of the dataframes in the Notebook using the Data Viewer feature

Actual behavior
More often than not I am not able to see the Dataframe in the Data Viewer and I get this error message:
Python package 'pandas' is required for viewing data. Source: Python(Extension)

Expected behavior
Note: Sometimes the Data Viewer does work, which makes me think this is a bug. See how it looks when working

Your Jupyter and/or Python environment
Please provide as much info as you readily know

Jupyter server running:                       Local  1.0.0
Extension version:                               2020-03-30 08:10:51:
VS Code version:                                 1.43
Setting python.jediEnabled:               false
Python and/or Anaconda version:     3.7.6
OS:                                                         Mac
Virtual environment:                            pipenv

Developer Tools Console Output

console.ts:137 [Extension Host] Warn Python Extension: 2020-03-30 08:15:00: Failed to get version of Pandas to use Data Viewer r [Error]: /.local/share/virtualenvs/pft-FTlP17jZ/lib/python3.7/site-packages/pandas/compat/__init__.py:117: UserWarning: Could not import the lzma module. Your installed Python is incomplete.


Installation won't work

Hey
Attempted to download the FxCommand plugin but after installing the plug in would not pop up on the right hand side despite it saying uninstall. After closing the store and going to the FxCommand again it says to reinstall it. I am not too sure if this may be a stream deck issue, below is what it looks like after attempting to install
Thanks

Hey mate, have a look here for some ideas:
https://www.reddit.com/r/elgato/comments/q491z0/elgato_stream_deck_installed_plugins_not_showing/?utm_source=share&utm_medium=ios_app&utm_name=iossmf
some users have found their Antivirus causing issues with Stream Deck and plugins, another user of this plug-in was having issues and was able to get it working after adding an exception to his AVG software

Hey Josh
Still got nothing unfortunately, attempted to do exceptions with it as well as the ideas on reddit. Not to sure whats causing the issue with it nor the reason why, not a major issue but thanks for the help mate

Closing as resolved via other channel (full reinstall sorted)


CCSequence architecture isn't good for intermediate state save/load.

CCSequence can handle only two actions, if you create it with more than 2 actions - it just uses binary tree of actions, to split them into groups of two actions, creating a lot of CCSequence inside.
1 CCSequence for 2 actions
2 CCSequence for 3 actions
3 CCSequence for 4 actions and so on...
With a fact, that CCSequence invokes -update: instead of -step: in inner actions - it makes it impossible to load
elapsed_ for all internal actions (including other CCSequences), which leads to calling -update: for actions, that already finished and have done all impact on their targets.
So some actions (like CCMoveBy) can change position of target two times, and target will not be loaded the same as was saved.
Maybe we need to refactor containers to use -step: instead of -update: to completely fix this issue.

Currently looks like workaroud in 6abe5c6b53ba64dd6c7e80bb4a41546f18ffc755 fixed this issue, but won't close it now, cause there's big chance that it will be reopened soon.

Renamed issue & updated first post.


Invalid command in task view does not give any feedback to user and throws an exception

Eg. view 1 in tasks view does not show any invalid command messages and throws ClassCastException

Fixed in #106


"Loading chunk failed" only for Windows users

Bug report
What is the current behavior?
Dynamic import splits correctly in chunks and everything works fine except for Windows users which seems unabled to load chunks from the dist folder.
No matter which browser they use,
Apart from the specific chunk you see in the screens, it happens to a whole set of files
Webpack optimization and entries configuration
   entry: {
        "app.bundle.js": "./app/js/components/app/app.js",
        "main.bundle.js": "./app/js/main.js",
    },
   output: {
        path: path.resolve(__dirname, '../dist'),
        publicPath: './dist/',
        filename: '[name]', // for multiple entry points
        chunkFilename: '[name].js',
    },
    optimization: {
         namedModules: true,
         namedChunks: true,
         minimizer: [
              new UglifyJSPlugin({
              sourceMap: true,
                   uglifyOptions: {
                        mangle: false,
                   },
               }),
          ],
          splitChunks: {
               cacheGroups: {
                   vendors: {
                          test: /[\\/]node_modules[\\/]/,
                          priority: 10,
                      },
                 },
           },
      }

Example of dynamic import in the code
    ....
    try {
        const module = await import(/* webpackChunkName: "checkToken" */ './globals/checkToken')
        module.default(someArgs)
    } catch (err) {
        SentryException(err)
    }
    ...

Other relevant information:
webpack version:  ^4.4.1
Node.js version:  8.0.0
Users are from Windows 7 to 10 and use any browser (Firefox, Chrome, IE11...)
Here is some screen from my Sentry service

@Manuelandro please create minimum reproducible test repo, for me and many other developers all works fine, looks problem on your side

Try debugging on a windows machine. I'm pretty sure it's not a webpack issue.


Header strategy - Enum, Trait objects, etc

I tried doing trait objects.  It did not turn out well.  The trait wants a "stream_out" function which must be type parameterized.  However, trait objects in rust must not have such functions for object safety reasons.
Currently the 'dev' branch code uses fields, one per header type, but this is tedious.
I'm leaning towards enums...
pub enum Header {
  OrigDate(DateTime<FixedOffset>),
  To(String),
  // ...etc
}
impl Header {
  pub fn name(&self) -> &'static str {
    match *self {
      OrigDate(_) => "Date",
      To(_) => "To",
      // ...etc
    }
  }
  pub fn multiple(&self) -> bool {
    // ...
  }
}

pub struct Email {
  single_headers: HashMap<&'static str, Header>,
  multiple_headers: HashMap<&'static str, Vec<Header>>,
  // ...etc
}

BTW: the ORDER of headers matters, so the above is not quite correct.

I think the rfc5322::Message takes care of all of this.  We will write functions that make it easier for users to get and set various types of headers.


minor broken link fix

andere talen link up a directory first before going to file.

@MrNime, I'm quite elated about your pull request. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a pull request and learned that I merged it?
We’ve recently added Facebook share and tweet feature to our web app. Could you please go to https://roshanjossey.github.io/first-contributions/#social-share and share your first contribution to open source?
Also, check out projects with easy issues while you’re there.

Nice, I ended up submitting the pull requests by changing the file directly on Github.
I cloned it on my own machine at first, but after messing around a bit with branches, I was too scared I would also include the lines of lorem ipsum I added there.
Turned out changes made in a branch that are not committed yet are also reflected in your main branch, so I got spooked over nothing.
The e-mail I got telling me someone responded on the PR and seeing it was then merged was great.
I'm definitely going to learn more about git!

@MrNime, I’d urge you to continue contributing to other open source projects.
We also have a slack team to help/mentor people trying to contribute to open source projects.
You can join the team by going to https://firstcontributions.herokuapp.com


Centralized shortcut management

This try to consolidate shortcut management, naming
and button tooltip and menu, as well as help with future configurability.
This is purposefully incomplete to keep the change of functionality
relatively small without changing too much of the internal API in
particular.
The KeymapProvider approach conflict with the possibility of putting all
QAction with shortcuts in the menu.
If a QAction with a shortcut is added to a menu, its shortcut is bound
with the main window, so it will not trigger at the KeymapProvider
level. For layers this is a problem as currently the KeyMapProvider
instance will be the one that receive the shortcut and pass self to the
callback. I believe this is fixable, but I'd like to keep it out of
scope of this PRs.
We also want to keep the KeymapProvider to bind actions (for now), so
the action manager need to do some dance and store the shortcuts and
buttons separately from the Keymap provider.
For translation and configurability it also make sens from a API point
of view to not register the shortcut at the same time as the action.
Indeed, the default shortcut that could be registered with the action
may conflict with local shortcuts, or be overridden with user
preferences. I thus think the API should encourage action makes the
recognize that the two are different. Note that it is easy to make a
context manager that let you register a function with a shortcut at the
same time if you wish to for plugins authors.
With respect to creating buttons, one does not need to directly bind the
actions, but can ask the action_manger to do so, this will let the
action manager update the button tooltips with the currently active
shortcuts.
The central action manager also have a notion of context. Currently this
is only a dict which is directly manipulated but will be updated in teh
future. This lets us manipulate the global state an actin will see and
the parameters it will receive.
For example an action which callback has the signature f(viewer), will
be called with the value of context['viewer'] as the first parameter.
This let us define actions outside of existing classes (which can be
useful for plugins) and will let us migrate some action from
KeyMapProvider to global function for example taking the active_layer
as a parameters. I believe this will make recording much simpler; as
then the flow of action goes through the action manager and be
serialised and replayed; instead of getting actions directly handled by
instances in which case tracking what action has been done can be hard.

This is a reduced version of #2495  it Removes any logic related to flashing, or recording. See
10693f0fa388b2fa1ada3aa03712135e291675ff for a commit with flashing and
recording logic.
It does not address all the comments of #2495 as some of the API.reasons still need to be discussed, but I'm hopping smaller will help move forward.
Description

Type of change

[ ] Bug-fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

@Carreau I left a lot of comments in #2495 that could have belonged here... My GIL prevented me from reading this until I'd finished processing that one 😂. After a quick glance I think there is nothing here that is "new" from #2495 (ie this is a strict subset), but please point me to the right lines if I am mistaken about that.

Failure should go away after #2615 is merged.

And rebased,.

I appreciate that you made it compatible with our existing KeymapProvider provider API... but I think one of the first things we should do in a follow-up PR is to get that logic off of the classes/instances themselves (i.e. get rid of KeymapProvider) and save that mapping in the action manager itself (or a related object). That will make our goal of cleaning up the layer models a lot easier.

I agree, I wanted to make this work with Plugins as well, my guess is there might be plugins that touch Keymap Providers directly (which we could try to detect), and provide an escape hatch.

Alright, I'm going to merge this now. Improvements can come in followup PRs!

Wooo !!!


[FR] Search Results "mega menu"

The search-bar "quick results" only searches parts.
It may be useful to have multiple columns in a "mega menu" style, where new columns are added to display results for stock items, purchase orders etc.
Each column can be individually enabled by the user if they want to show results for that category.

It would be great to be able to search by MPN.

@SchrodingersGat do you want to have that menu in the quick search dropdown or in the full view?

My idea would be to add new columns to the quick search dropdown, thusly:

We will have to check how efficient the Search API is with the number of requests increasing.


transitionEndEvent is always evaluated to 'transitionend'

In the code that tries to find which transitionend event shouldn't
if (tempEl.style[_name] !== 'undefined') {
be
if (tempEl.style[_name] !== undefined) {
That is, test against undefined and not the string 'undefined'.

Sweet, my bad for not running the latest version.

No problem. Thanks for catching that typo :+1:


False positive for jsx-indent in plain JS

After upgrade from 17.8.0 to 17.8.2, jsx-indent now complains for plain strings in plain JS files. I was expecting eslint-plugin-react to ignore this file, as it's not importing React or using JSX.
// somefile.js
const foo = {
  bar: 'baz1\nbaz2'
       ^ Expected indentation of 4 space characters but found 0
};

Fixed in 17.8.3.

Duplicate of #2563.


add a reason to masquerade_as_nightly_cargo so it is searchable

When I was working on the stabilization for workspace inheritance, it was very tedious to find all of the places to remove .masquerade_as_nightly_cargo(). I suggested to add a reason to .masquerade_as_nightly_cargo() so that it would be easier to find all of the places to remove it. By adding the reason it makes it easy to search for all places with the features name. This PR adds the reason(s) to all of the places .masquerade_as_nightly_cargo() is called, as well as updates the documentation so it talks about adding a reason when making the call.

r? @ehuss
(rust-highfive has picked a reviewer for you, use r? to override)

Thanks!  I think I would have preferred just a string to avoid all the extra punctuation, but I don't feel strongly about that. I'm going to go ahead and approve, but if @epage has any other concerns or changes, feel free to comment or post a followup pr.
@bors r+

:pushpin: Commit c239e407e74c8c542039d0b13a639eabd81a09c8 has been approved by ehuss
It is now in the queue for this repository.

:hourglass: Testing commit c239e407e74c8c542039d0b13a639eabd81a09c8 with merge bd5db301b0c45ae540afcb19e030dd7c29d2ea4f...

:sunny: Test successful - checks-actions
Approved by: ehuss
Pushing bd5db301b0c45ae540afcb19e030dd7c29d2ea4f to master...


Keyboard shortcut issues (F8 - Resume script execution)

Specs

node-inspector: v0.12.8
node.js: v6.2.2
OS: Windows 10 Home Insider Preview

Version: 1607
OS Build: 14955.1000

Affected browsers

Google Chrome Version 54.0.2840.71 m (64-bit)
Google Chrome Canary Version 56.0.2905.0 canary (64-bit)

Expected behaviour
When stopping at a breakpoint, pressing F8 should resume execution of the program.
Actual behaviour
F8 does resume the execution, but then stops somewhere else in the program.
It has a behaviour similar to "Step out of current function (Shift+F11)" in the sense that it resumes execution then stops.
Notes

The expected behaviour works when clicking on the icon for "Resume script execution (F8)".
I also have Issue #903, so they might be related (regression in Google Chrome).

Closing this issue as node-inspector might no longer be needed with Chrome DevTools packaged with nodejs and built-in editors in IDEs such as VSCode.


Add property validator mutator methods

Codecov Report

Merging #33 (c8db1c3) into master (968d1d1) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #33   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           23        23
  Lines         5026      5074   +48
=========================================
+ Hits          5026      5074   +48

Impacted Files
Coverage Δ

property_validator.go
100.00% <100.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


[BUG]recent update of 'strict' tls setting does not respect insecure options in command, unable to register nodes in airgap setup

Rancher Server Setup

Rancher version: 2.9.0-rc3
Installation option (Docker install/Helm Chart): helm, airgap

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): rke2, 1.30.2

Proxy/Cert Details: QA letsencrypt (byo) signed certs

Information about the Cluster

Kubernetes version: any (tested on 1.30.2
Cluster Type (Local/Downstream): downstream

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider): custom cluster

User Information

What is the role of the user logged in? (Admin/Cluster Owner/Cluster Member/Project Owner/Project Member/Custom)

If custom, define the set of permissions: tested with admin and standard users

Describe the bug

on an airgapped cluster with valid (i.e. lock icon shows up in browser) certs from letsencrypt, custom clusters aren't able to register nodes
To Reproduce

setup rancher with byo certificates that are valid through the browser
register a custom cluster with rancher
run the registration command on a node

Result
following log shown when running the registration command on the node:
...
[INFO]  CA strict verification is set to true
[INFO]  Using default agent configuration directory /etc/rancher/agent
[INFO]  Using default agent var directory /var/lib/rancher/agent
[FATAL]  Aborting system-agent installation due to requested strict CA verification with no CA checksum provided

Expected Result

there should be a way that's obvious to users to prevent this on their setup.
Screenshots

Additional context

This isn't affecting rancher-signed certs
only happens on 2.9.0

this is 'working as intended' -- our internal tests need updated certs that comply with the strict tls setting.

upgrades are not impacted by this change
documentation covers the use case this was opened for


Update makefile to leverage prototool

Description

Our makefile is outdated and has incorrect commands.
Expected Behavior

Update makefile to leverage prototool

hi , I want to work on this issue

@JyothiSwaroopReddy07 Thanks for working on this


Contributor graph does not work on mobile

The contributor graph at https://fortran-lang.org/community/ does not work on my iPhone:

I have iPhone 10 and Firefox. I also tried Safari, the same result.

FWIW, it works on Android 9 and Chrome.

Thanks for the report @certik - I will look into this.
(I only tested with Android + Chrome on mobile)

@LKedward thanks. Let me know if you want me to test something, I am happy to do that.

I've been able to reproduce in the Midori web browser (on Ubuntu) which I think uses the same Webkit engine as Safari.
The problem appears to be with parsing the date string from the JSON files with the Javascript Date object where some browsers implement more supported date formats in addition to the standard format.
@certik can you test a simple fix that I'm trialling here: https://lkedward.github.io/fortran-lang.github.io/community/. Can you check both Safari and Firefox on your iPhone?
There may still be a few formatting issues but if it works I will open a PR.
Thanks :+1:


swift 2.0 support ?

Hi. Currently we don't have time to update code to swift 2.0, but maybe we will update it closer to the Xcode 7 release date.

yeah,swift 2.0 change, i test it on Xcode 7 beta. but run fail.

If you want to test it run it on XCode 6 that uses swift 1.2

oh.i known that. but i want to use it for my new project on Xcode 7.

Hello, @79144876
Swift 2.0 now supported.
We created a branch to maintain it
https://github.com/Yalantis/PullToMakeFlight/tree/swift_2.0

Good.
Thanks.


Client Allocation Request for: AUSTRALIAN GOLD AND SILVER EXCHANGE PTY. LTD.

Client Allocation Questions
Core Information

Name: AUSTRALIAN GOLD AND SILVER EXCHANGE PTY. LTD.
Website / Social Media: http://agsx.com.au
Region: Oceania
DataCap Requested: 5TiB
Addresses to be Notarized: f3wofacj3z6f3epznogibutta5xpirxexszjolmgetwfexvx5ea3jv45uvoxiquxaiuvqtncdmxycp26plxfua
Notary Requested: MegTei

@panameila Please subscribe to notifications for this Issue to be aware of updates. Notaries may request additional information on the Issue.

HI @panameila I'll run through some application triage questions with you, please answer as best as possible, ping me if anything is unclear

DATACAP REQUEST
(1) In which region(s) do you intend to use the DataCap?
(2) How did you hear about the Filecoin Datacap? Do you have a good understanding of the network and/or are involved in the web3.0 community?
(3) What is your registered business name & address?
(4) Provide a description of your business, the industry you work in and what you do.
(5) What type/ category of data is being stored? (E.g Public data - back-up files, private encrypted files etc)
(6) How much data will you onboard each week?
(7) For how long do you intend to store your data with Filecoin?
(8) Have you previously received DataCap? If so, please link to any previous requests/ github issues.
(9) Are you aware of and do you intend to use any advanced features (e.g. Fast Retrieval) with your storage deals? If so, please specify the feature.
(10) How frequently do you intend to retrieve data stored on Filecoin e.g. monthly, a couple times a year, infrequently.
MINER DETAILS
(11) How many miners do you plan on using to distribute the data, providing their ID's?
(12) Are any of those miners controlled by yourself / your organization and if so, how many?

DATACAP REQUEST
Austraia, China, HongKong.
I know about Filecoin Datacap from web3 ecosystem which focuses on decentralized data storage. We do not involved in the web3 community. However, Our company has a good understanding of the network. Interplanetary file system (IPFS) provides people with high security and privacy, lower cost, reduced data breaches and uninterrupted service. FilecoinPlus is published to incentive useful storage.
Australian Gold&Silver Exchange; 154 126 351; Level 7 Suite 2,428 George Street Sydney NSW 2000 Australia;
Australia Gold and Silver Exchange is a trusted provider of gold and silver products and services for inverstors and collectors around the world. It provides the most complete set of precious metal investment products and professional services in Australia, including the issuance and supply of gold and silver physical investment products, the repurchase of gold and silver products and foreign exchange transactions platform.
Back-up files and private encrypted files. Client transaction history, company financial records such as taxes.
2T.
Three years.
None.
None.
Twice a year.
MINER DETAILS
More than 4 miners. Identified miners ID: f0807382, f0883202.
None.


Vim script page is outdated

http://www.vim.org/scripts/script.php?script_id=3538 shows in the main section
0.1 | 2011-04-03 | 6.0
And links to https://vim.sourceforge.io/scripts/download_script.php?src_id=15365
Can you update the link, or the text to this repo in the body?

Hello @Z0t , Ihave just updated the page on www.vim.org, thanks for the heads up.


Output name of process on runlabel command

From the logic in funcs.go, it looks like /proc/self/exe is used to ensure no further indirection.
However, this also shows up in the debug output:
$ podman container runlabel -p pod quay.io/baude/demodb:latest

command: /proc/self/exe run --pod new:demodb -P -e MYSQL_ROOT_PASSWORD=x -dt quay.io/baude/demodb:latest

This isn't as helpful since the command cannot be copy-pasted and reused.
This patch is a dead-simple swap-in for the current process name during the debug log.

/ok-to-test

/approve

/retest

LGTM

@vrothberg please review and merge if happy

Looks like everything's green, just needs approval

/lgtm


Saudi Arabian Public Schools

Official Website: https://moe.gov.sa/ar/pages/default.aspx

@KhalidYaa If you wish to discuss some broad cooperation to enable using JetBrains tools country-wide, please send an email to<EMAIL_ADDRESS>and we'll find optimal scheme of licensing for the schools. Please ensure that you are authorized by the Ministry of Education if you represent it.


Error could not download chart: looks like URL is not a valid chart repository or cannot be reached

Description
I'm deploying an EKS cluster using the EKS Blueprint version 4.24.0. When the pipeline runs, several errors are reported, specifically about applying helm charts.

Note: This is identical to the error I reported here: Error: Could not download chart cluster_proportional_autoscaler with module CoreDNS, though CoreDNS does deploy.

When I check the URLs that the module is trying to interact with, the OPA Gatekeeper URL throws a 404 error.
It throws a different error for the KubeCost module: could not download chart: mkdir /.cache: permission denied
But the helm chart URL for External-Secrets is functional: https://charts.external-secrets.io/. It just seems like the module is incorrectly including the ending quote (") as part of the URL, and therefore cannot reach it.

[x] ✋ I have searched the open/closed issues and my issue is not listed.

Versions

Module version [Required]: v1.24.0

Terraform version: 1.3.9

Provider version(s):

hashicorp/local v2.3.0 (signed by HashiCorp)
hashicorp/aws v4.56.0 (signed by HashiCorp)
hashicorp/helm v2.9.0 (signed by HashiCorp)
gavinbunney/kubectl v1.14.0 (self-signed, key ID AD64217B5ADD572F)
hashicorp/kubernetes v2.18.1 (signed by HashiCorp)
hashicorp/random v3.4.3 (signed by HashiCorp)
terraform-aws-modules/http v2.4.1 (self-signed, key ID B2C1C0641B6B0EB7)
hashicorp/null v3.2.1 (signed by HashiCorp)
hashicorp/tls v4.0.4 (signed by HashiCorp)
hashicorp/cloudinit v2.3.2 (signed by HashiCorp)
hashicorp/time v0.9.1 (signed by HashiCorp)
hashicorp/http v3.2.1 (signed by HashiCorp)

Reproduction Code [Required]
locals {
  cluster_version= "1.25"
}

module "eks_blueprints_kubernetes_addons" {
  source = "github.com/aws-ia/terraform-aws-eks-blueprints//modules/kubernetes-addons?ref=v4.24.0"

  eks_cluster_id = module.eks_blueprints.eks_cluster_id

  # EKS Addons
  enable_external_secrets = true
  enable_gatekeeper = true
  enable_kubecost = true
}

Steps to reproduce the behavior:

terraform init
terraform plan
terraform apply

Expected behaviour
I expect the EKS add-ons to be fully deployed.
Actual behaviour
The terraform apply fails and causes the pipeline to error out.
Terminal Output Screenshot(s)

Additional context
This is being run in an Azure Pipeline, using Azure DevOps (online, not server). Also, this is not using self-managed build services, but rather, uses the Microsoft-provided cloud build servers.

Thanks @askulkarni2, but in this case/context, I don't think running helm repo update is an option, because applying these charts is triggered/controlled through the use of the EKS Blueprint addons module.
Unless is it your suggestion to simply run helm repo update as an independent step before running terraform apply?

just FYI - this is a provider level issue, not something we can resolve in a module level implementation https://github.com/hashicorp/terraform-provider-helm/issues/630

Unless is it your suggestion to simply run helm repo update as an independent step before running terraform apply?

Yes exactly.


Updated release versions to 4.38.1 for azure-cosmos and connectors

Updated release versions to 4.38.1 for azure-cosmos and connectors
azure-cosmos
4.38.1 (2022-10-21)
Other Changes

Updated test dependency of apache commons-text to version 1.10.0 - CVE-2022-42889 - See PR 31674
Updated jackson-databind dependency to <IP_ADDRESS> - CVE-2022-42003 - See PR 31559

azure-spring-data-cosmos
3.29.1 (2022-10-21)
Bugs Fixed

Fixed serialization and persistence issues for UUID for JDK 16 and above - See PR 31417

Other Changes

Updated azure-cosmos to version 4.38.1.
azure-cosmos version 4.38.1 fixes two CVEs related to jackson-databind and apache commons-text dependencies.

azure-cosmos-encryption
1.8.1 (2022-10-21)
Other Changes

Updated test dependency of apache commons-text to version 1.10.0 - CVE-2022-42889 - See PR 31674
Updated azure-cosmos to version 4.38.1.

API change check
API changes are not detected in this pull request.


Add AwesomePatrol to organization members

I request to join as an organization member to Cilium project in accordance with https://github.com/cilium/community/blob/main/CONTRIBUTOR-LADDER.md#organization-member
My contributions:

Hubble field mask:

https://github.com/cilium/cilium/pull/23198
https://github.com/cilium/hubble/pull/1101

misc:

https://github.com/cilium/hubble-otel/pull/97
https://github.com/cilium/cilium/pull/21860

in-progress:

https://github.com/cilium/cilium/pull/26379
https://github.com/cilium/cilium/pull/26367

I plan to continue contributing and be further involved in the project, especially Hubble.

Thanks for your contributions! Happy to approve once you switch this from a draft PR :)

I wanted to get at least one more minor change merged, before applying. Now it will be handy as I need to rerun some tests 😃

Receive two "LGTM" comments from any Org Members, and approval by a committer who merges the PR

This PR has three LGTM/approval from Commiters, merging.


Golint should ignore files with DO NOT EDIT in comments

I sometimes ran into golint errors on generated files and have to manually ignore those files from CI scripts.
Generated files often have DO NOT EDIT in comments. So I suggest to make golint smarter by ignoring files which have DO NOT EDIT in comments.

Closing as duplicate of #239.


add zh /docs/reference/glossary/pod-priority.md

to address https://github.com/k8smeetup/website-tasks/issues/3315

/lgtm
/approve


Chapter 8

Hi guys,
In Chapter8/Section 2 it seems that the Rmd file does not appear. I had a couple of students reporting that issue so I think it is independent from the browser used.
Thanks!

It works for me but I did notice this issue before that slides can take a while to load at times and suggested we put a warning before. I've filed this as a separate issue #15


[Android][Question] The plugin flutter_secure_storage requires your app to be migrated to the Android embedding v2

Please, look at following steps.
I've tried to solve this but couldn't find any solutions.
thank you!
`

mkdir packages
cd packages
flutter create --template=package <package-project_name>
cd <package-project_name>
flutter pub add flutter_secure_storage
This app is using a deprecated version of the Android embedding.
To avoid unexpected runtime failures, or future build failures, try to migrate this app to the V2 embedding.
Take a look at the docs for migrating an app: https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
The plugin flutter_secure_storage requires your app to be migrated to the Android embedding v2. Follow the steps on the migration doc above and re-run this command.
exit code 1
`

Can you post the output of flutter doctor -v?

Here it is.
`
flutter doctor -v
[✓] Flutter (Channel stable, 3.7.8, on macOS 13.2.1 22D68 darwin-arm64, locale ko-KR)
• Flutter version 3.7.8 on channel stable at /Users/yongiljang/dev/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 90c64ed42b (10일 전), 2023-03-21 11:27:08 -0500
• Engine revision 9aa7816315
• Dart version 2.19.5
• DevTools version 2.20.1
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
• Android SDK at /Users/yongiljang/Library/Android/sdk
• Platform android-33, build-tools 33.0.1
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14C18
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2022.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
[✓] VS Code (version 1.76.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.60.0
[✓] Connected device (2 available)
• macOS (desktop) • macos  • darwin-arm64   • macOS 13.2.1 22D68 darwin-arm64
• Chrome (web)    • chrome • web-javascript • Google Chrome 111.0.5563.146
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!
`

Having the same issue! Haven't be able to resolve

Any update on this one?

Same error here

I am closing all older issues. If this issue still exists in the latest version, please let me know.


How to turn off the modifiy and delete

If a file address I have read permission, I can send a post request to modify or delete the file, which is not safe, I want to ask how to turn off the modification, deletion function

More details, please.

Currently not supported. Later Json Web Token will be used to control access.


New package: MIMEs v0.1.0

Registering package: MIMEs
Repository: https://github.com/fonsp/MIMEs
Created by: @fonsp
Version: v0.1.0
Commit: cf70cc373fa5c7e0982eef17102636c68538ec74
Reviewed by: @fonsp
Reference: https://github.com/fonsp/MIMEs/commit/cf70cc373fa5c7e0982eef17102636c68538ec74#commitcomment-69218852
Description: Get a MIME type from a filename!

Xref https://github.com/JuliaRegistries/General/pull/56550 from some days ago.

Thanks Fredrik! I also found out about this yesterday 🤦 , discussing options with tkf right now :)

@fredrikekre We decided to keep both, with MIMEs.jl as a more general mime package (including other queries like charset) with larger DB [noblock]

I think this is ok to merge.


Header border display

Expected behaviour
The ONS Green border above the info panel in the header should be as wide as the info panel and no more.
Actual behaviour
The ONS Green border extends as far to the left as the logo.

In Firefox the ONS Navy is visible as a 1px border beneath the ONS Green bar (screenshot below).

Steps to reproduce the behaviour
Check the header
Technical information
Browser
Chrome - 57.0.2987.133
Firefox - 52.0.2 (64-bit)
Operating System
Macintosh OS X 10.12.4
Screenshot

The session expired header is displaying the bar incorrectly too.

Technical information
Browser
Chrome - 57.0.2987.133
Operating System
Macintosh OS X 10.12.4


Positioned 'remembers' things it shouldn't.

If you create a positioned with just top set then later create a positioned with just bottom set the positioned behaves as if both were set.

What's going on here is that the way we apply ParentDataNodes is we collect them all and use the "apply" mechanism to only replace things that aren't null. We should nuke out the old state first.


Can't locate path: database schema file path

Can't locate path:
</path/to/project-root/vendor/webleit/zohobookslaravelserviceprovider/src/../database/add_zoho_id_to_users_and_invoices.php>

On publishing vendor, I was getting this error.
Did some digging & found that the actual file name is 2017_12_31_100000_add_zoho_id_to_users_and_invoices.php in package directory.
Can you please update the file name to add_zoho_id_to_users_and_invoices.php or update the publishMigrations() in ZohoBooksServiceProvider.
Thanks!

Sorry for the delayed response, github didn't notify me of the issue
Fixed!


[Bug] Assembly name 'Google.VersionHandlerImpl' does not match file name 'Google.VersionHandlerImpl_v<IP_ADDRESS>'

[REQUIRED] Please fill in the following fields:

Unity editor version: 2022.2.0b11, 2022.3.0f1 or 2023.3.0f1
Firebase Unity SDK version: latest
Source you installed the SDK: . unitypackage
Problematic Firebase Component: All
Other Firebase Components in use: All
Additional SDKs you are using: None
Platform you are using the Unity editor on: Mac
Platform you are targeting: iOS
Scripting Runtime: Mono
Pre-built SDK from the website or open-source from this repo: _____

[REQUIRED] Please describe the issue here:
Assembly 'Assets/PlayServicesResolver/Editor/Google.JarResolver_v<IP_ADDRESS>.dll' will not be loaded due to errors:
Assembly name 'Google.JarResolver' does not match file name 'Google.JarResolver_v<IP_ADDRESS>'

Assembly 'Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl_v<IP_ADDRESS>.dll' will not be loaded due to errors:
Assembly name 'Google.VersionHandlerImpl' does not match file name 'Google.VersionHandlerImpl_v<IP_ADDRESS>'

Assembly 'Assets/PlayServicesResolver/Editor/Google.IOSResolver_v<IP_ADDRESS>.dll' will not be loaded due to errors:
Assembly name 'Google.IOSResolver' does not match file name 'Google.IOSResolver_v<IP_ADDRESS>'

Steps to reproduce:

Import sdk with .unitypackage (https://firebase.google.com/docs/unity/setup-alternative?hl=ja)2.
See errors on console

Relevant Code:
None

Hi @ChurikiTenna,
Thanks for bringing this to our attention. Does the issue persist when you're using a more updated Unity editor (such as version 2022.2.9f1)? Could you also try if adding your GoogleService-Info.plist file made any difference?

Hi @paulinon !
The issue persist when using 2023.3.0f1 too.
GoogleService-Info.plist is under Assets folder. I also tried moving the file into Firebase/Plugins and Plugins/iOS/Firebase.

Additional information:
The project was created in Linux, and I am trying to run in M1 Mac.

Hi @ChurikiTenna,
I haven't been able to reproduce the issue using the provided information so far. Are there other steps in your implementation that have to be considered? Could you confirm if a similar behavior persists using our quickstart?

@ChurikiTenna
You got an ancient version of EDM4U, even before it is renamed to EDM4U! How did you get that into your project? Did you get that from Firebase SDK?
Try to remove everything under Assets/PlayServicesResolver and Assets/ExternalDepenencyManager.
Also, remove EDM4U from Unity Package Manager as well, for a fresh start.
After that, you can reinstall EDM4U from tgz or .unitypackage, whichever you prefer.
Let us know if this helps


Make svelte:compiler a weak dependency

The svelte:compiler package requires apps to use a specific svelte version and warns when the app uses a different version. When apps or packages use zodern:melte instead, they can use the latest svelte version, but if they also use rdb:svelte-meteor-data they get shown the warning from svelte:compiler to use an older version of svelte:
WARNING: this package requires<EMAIL_ADDRESS>to be installed as npm peer dependency, but your package.json specifies:

  "svelte": "^3.44.2"

If you encounter error messages, consider running:

  meteor npm install --save<EMAIL_ADDRESS>
If you make svelte:compiler a weak dependency, then apps can use the latest svelte version with zodern:melte and rdb:svelte-meteor-data without seeing the warning.

Additionally, if one wants to use the latest compiler, it will break svelte-meteor-data.

The only issue I have with this is that this package really does depend on the npm svelte package being installed, and depending on svelte:compiler guarantees that.  Is there another way of guaranteeing that?
@skandragon how is this the case?  Right now there is a minimum version requirement.

The only issue I have with this is that this package really does depend on the npm svelte package being installed, and depending on svelte:compiler guarantees that. Is there another way of guaranteeing that?

One option is using https://atmospherejs.com/tmeasday/check-npm-versions.

thanks for the help @rdb !


#1342 Fix-1342 Working link to the dataset and minor improvements

I fixed the issue, additionally improving the example (and the dataset) a bit: minor bug fixes, syntax, compatibility with newer versions of modules. Verbose=0 for training, using tqdm for time estimate and progress visualization.

Eh, github used the wrong email. I will re-create this pull request.


Hello,this package contain server side?

I didn't get it, sorry. Can you explain in details what you want?

I mean, maybe I have 10,000 items in the table. I don't want it to be downloaded all at once.. I want when I choose the page number from the pagination, it returns the requested page to me. Your package is excellent and I apply it to my projects, but now I am working on a project that contains large data, as it loads all the data of the table

Thanks for the clarification, I got it now.
I'd say this is a duplicate of issue 40.
Currently, this plugin does not load data dynamically from the server.
I'm working to figure out what is the best approach to implement such functionality.
In the future, this plugin will be compatible with Laravel's Pagination API and
it will be possible to load data from the server on demand.

Thanks bro


Visitor for union-of-unions does not work

Describe the Bug
The generated visitor for a union-of-unions type only visits visitUnknown with null values.
Information to Reproduce
create a union of unions
CLI Version
0.30.7
Generator Version
0.9.2
API Definition
The minimal OpenAPI specification or Fern definition required to reproduce the bug.
types:
  Request: list<Operation>
  Operation:
    discriminant: op
    union:
      replace: ReplaceOperation
      add: AddOperation
  ReplaceOperation:
    discriminant: path
    union:
      '/path1': string
      '/path2': number
  AddOperation:
    discriminant: path
    union:
      '/path3': string
      '/path4': number

Actual SDK
visitUnknown gets called for every operation.
Expected SDK
Appropriate visitor methods will be called.
Additional Context
Manually verified that the payload that client sdk is sending to spring is of the correct JSON format. It is an issue with the parser in the spring generated code

One day we'd love to support this. Unfortunately this request is not on the roadmap to be fixed because we're not actively developing the java-spring generator


Replace exa with eza

Pull request template
Since exa is deprecated, this PR replaces all mentions to exa with eza (code, docs).
Type of changes

[ ] CI
[ ] Bugfix
[ ] Feature
[x] Generic maintenance tasks
[x] Documentation content changes
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no URL changes)
[ ] Improving the performance of the project (not introducing new features)
[ ] Other (please describe):

Issue Number: #284
What is the current behavior?

What is the new behavior?

Does this introduce a breaking change?

[x] Yes
[ ] No

For any users of zi that are also using exa, this change would make the enhanced ls command to not work properly.
Such users should replace exa with eza in their setup.
Other information

N/A

Hello @MathPlayer! :wave:
I wanted to take a moment to express my gratitude for your contribution. Your effort is greatly appreciated and has not gone unnoticed. Keep up the good work! :1st_place_medal:


Charts/Services with Typescript

Hello,
I'm trying to create an extension with this sdk, but I don't see any typescript definition file from Charts/Services. How can I use this API from TypeScript? I need to write my own d.ts ?
Thanks the help!

Sorry on the inconvenience.
Charting types and typescript contracts did not get added with the extension SDK payload when it was initially documented and made public. That omission in d.ts was recently updated for inclusion, it will be rolling out with the next publish cycle on the extension sdk, which should happen in next few days.
Until that update reaches you, you will need to temporarily use your own temporary types or any casts.
The types are definitely a key part of the Chart SDK/Docs for discovery of the contract capabilities and allowed values, for which we'd be happy to hear feedback, once you start using it.
Kind Regards!

Chart types are added with M125 version.


Easier Alpha/Beta/Stable Releases - Build step (INS-1435)

(work in progress/Draft)
Purpose
We want to make baking and releasing alpha, beta and stable versions a 1/2 step flow. We can achieve this with 2 new workflows:

Release Build
Release Publish

TODO
(work in progress)
cc @DMarby

Deleting this one - we are continuing the work on a branch on filfreire/Insomnia


Update: usb-modeswitch 2.2.0 -> 2.2.1

Please, change as @nckx suggested :)

@jagajaga @nckx: changed... also: what is the preferred way to do name/version stuff? is there a standard, which the project follows?

Sadly, no. My understanding of name is that it's a relic from the time when attribute names weren't descriptive enough to map to common package names. The main problem was that dashes weren't allowed.
That's no longer the case. I've heard talk - no idea where or by whom - of getting rid of name entirely, presumably in favour of an unambiguous version attribute. I think that's the right way to go.
Meanwhile, this method, my preferred let version = "2"; in, or just name = "foo-2" are all accepted.

Now please squash commits into one.

is it ok now? i changed to "let version =...; in", as it seems to be the best way of @nckx 's ways to do it

It's not the best or the worst way, it's just a way :)


How to train Stable Video Diffusion model?

sorry，ask me

sorry，ask me
Hello！ Do you have a training script for Stable Video Diffusion? Could you please contact me

find a non official one #267

Our team has released the SVD training script:
https://github.com/mindspore-lab/mindone/tree/master/examples/svd
It's still under development, but you can use it for reference.

What are the GPU requirements for fine tuning @hadipash ?

What are the GPU requirements for fine tuning @hadipash ?

Currently a lot (64 GB), but we're working on reducing VRAM usage.

@hadipash thats not bad really. You tested it with sharding across multiple GPU's (eg multiple GPU's with <64gb of VRAM)?

@hadipash thats not bad really. You tested it with sharding across multiple GPU's (eg multiple GPU's with <64gb of VRAM)?

Currently, a sequence of 4 frames can be trained on a single 64GB GPU. We are working on 1) optimizing memory usage on a single device and 2) implementing distributed training to allow for longer sequences (e.g., 30+ frames).

@hadipash hello，I tried using LoRA to fine-tune the U-Net with SVD, and even with a batch size of 1, memory overflow occurs on the A100 GPU when the dataset consists of 25-frame videos. Does this mean that model parallel training must be employed, distributing the model parameters across multiple GPUs?

@DataAIPlayer Not sure about LoRA, haven't integrated it yet. However, for vanilla training - yes, need distributed training as a single 64GB GPU can only fit 4 frames.


For Activiti/Activiti#1572

For Activiti/Activiti#1572

I think we need to add version for this service in activiti-cloud-build and merge https://github.com/Activiti/activiti-cloud-org-service/pull/1 then rebase this PR before merging. This PR is going to fail as long as the version is 7-201711-EA-SNAPSHOT.


Select dropdown can not scroll in large data.

Description
Select dropdown can not scroll in large data.
CodeSandbox/Snack link
No response
Steps to reproduce
"@gluestack-style/react": "^1.0.22",
"@gluestack-ui/config": "^1.0.6",
"@gluestack-ui/themed": "^1.0.20",

            <FormControl>
              <FormControlLabel>
                <FormControlLabelText>Testing</FormControlLabelText>
              </FormControlLabel>
              <Select

              >
                <SelectTrigger variant="outline" size='md'>
                  <SelectInput/>
                  <SelectIcon mr="$3">
                    <Icon as={Ionicons} name='chevron-down-outline' />
                  </SelectIcon>
                </SelectTrigger>
                <SelectPortal>
                  <SelectBackdrop />
                  <SelectContent>
                    <SelectDragIndicatorWrapper>
                      <SelectDragIndicator />
                    </SelectDragIndicatorWrapper>
                   <SelectItem  label={1} value={1}/>ctContent>
                  ...more than 30
                </SelectPortal>
              </Select>
            </FormControl>

gluestack-ui Version
1.0.20
Platform

[ ] Expo
[x] React Native CLI
[ ] Next
[ ] Web
[X] Android
[X] iOS

Other Platform
No response
Additional Information
No response

Hey @vilenleung, checkout this snack. for scrollable Select.


[Icon Request] Support for .prettierignore

[x] I'm sure this issue is not a duplicate.

[x] I want to create an icon request (if not, remove these lines below):

Type: .prettierignore
Icon Name: Prettier
Extensions:
Filenames: .prettierignore

More info: I think we can assign the .prettierrc's icon to .prettierignore also.

@jens1o Can you do this? I'll be away for the weekend.

Yeah, I'm taking a shot :)


Example for Process.EnableRaisingEvents Property (and for ExitTime) is incorrect, InvalidOperationException is thrown on access to StartTime

Example for Process.EnableRaisingEvents (and ExitTime) Property shows how to handle 'Exited' event. In the handler process.StartTime is accessed, which throws InvalidOperationException for processes that are not running (which is 100% true for the process that Exited). Examples need to be revised and access to StartTime should be removed. I'm seeing this on WSL2/Ubuntu, but StartTime property documentation suggests that this behavior is consistent across OSes.

This issue was moved to dotnet/dotnet-api-docs#5178


Update Change

This library is designed to facilitate its use with our IoT platform, helping you to go further in your projects

Closing as duplicate of https://github.com/arduino/library-registry/pull/2086


Feature teleport request notification pops up when player receives teleport request event

Resolved build issues

Works locally + fixed linter issues. LGTM


proxy call vRP.registerMenuBuilder not found

How are you supposed to use resources that need registerMenuBuilder?, any resource that uses that function completely breaks (I updated from a really outdated version to the newest one, took me over three hours to update, but now I can't get working these)
Here's the full error

error: proxy call vRP:registerMenuBuilder not found
Error loading script server.lua in resource vrp_dmvschool: citizen:/scripting/lua/scheduler.lua:55: Current execution context is not in the scheduler, you should use CreateThread / SetTimeout or Event system (AddEventHandler) to be able to Await
stack traceback:
[C]: in function 'error'
citizen:/scripting/lua/scheduler.lua:55: in field 'Await'
@vrp/lib/utils.lua:64: in function <@vrp/lib/utils.lua:63>
(...tail calls...)
@vrp_dmvschool/server.lua:106: in main chunk
Failed to load script server.lua.

thx in advance

https://github.com/ImagicTheCat/vRP/blob/master/doc/README.adoc#issues--features--help
https://github.com/ImagicTheCat/vRP/blob/master/doc/dev/modules/gui.adoc


Using URI.escape fixes downloader issues with accented characters

@Kartones CR this fix for #3315, please.

Frontend tests were OK :+1: (details)

Frontend tests were OK :+1: (details)

:+1:


Clarify OIDC based login expiry

I've been using the OIDC based login, and the support from this action for it is great! However, I have stumbled across that tokens used for OIDC based logins does expire, and that it seemingly is not a method in this action to configure it (client side)
The README states

Note:
By default, Azure access tokens issued during OIDC based login could have limited validity. This expiration > time is configurable in Azure.

Is it possible to clarify (in the README)

What is the default expiry time (or where to find it for a given app/federated credential)?
Provide a link (MS docs/Learn) to where this expiration time can be configured?

The docs around these topics vary across Azure / Entra / Identity / Azure AD so it might be somewhere I haven't already looked, but this question has come up from customers I've been working with who's looking to change from secrets based to OIDC based login using this action.

Hi @matsest,
Here is the doc for understanding azure access-token lifetime
and the doc for configuring them
However, some customers are reporting problems with configuring them. We are working with AD team to come up with better solutions.
https://github.com/Azure/login/issues/180#issuecomment-1241746853
We shall address them soon in our readme

Mentioned the above doc in the Readme. The other details about the current issue are being tracked in https://github.com/Azure/login/issues/180. Hence closing this issue.


feat:add me 🐼

Hi !
All set and ready to go!   🫡
This one’s good to merge, just waiting for your green light.🐼🔥

Hi, Guys Is there anything that should be done from my side ?! @AramRafeq @mhmd-azeez @MiranKm

@AramRafeq  Big Supas for the quick review and approval 🔥🙌🏿

@AramRafeq  But why there's no exit from my last commit in the main branch?

 [fix:update skills](/DevelopersTree/awesome-kurds/pull/124/commits/7573c10e0083217d7ebda4fe4b7f3646d9207b57)

I mean this commit!
https://github.com/DevelopersTree/awesome-kurds/pull/124/commits/7573c10e0083217d7ebda4fe4b7f3646d9207b57

I did not understand, your name is on the list with proper skills, i did some.other changes after i merged your PR

@AramRafeq Yeah, wired!
Anyway if it works let's not touch it !!🤭


macros: Improve codegen to prevent incorrect lints

Summary
Fixes #532
@PJungkamp it seems like mixed_site would have been more correct in some cases, but it didn't cause the problem. The actual cause was that the span of the type (like gtk::Box) was used for the automatically generated ident (like _gtk_box_1), so it looked to clippy like it was added by the user. This behavior was initially added because I thought it might help with error reporting, but in the end it can only cause problems if the macro does something wrong.
Can you test if this fixes the problem for you?
Checklist

[x] cargo fmt
[x] cargo clippy
[x] cargo test
[x] updated CHANGES.md

You're right, this branch fixes the lint! Though I still don't like the fact that something like this works:
        view! {
            main_window = adw::ApplicationWindow {
                set_application: Some(application),

                #[wrap(Some)]
                set_content = &adw::NavigationSplitView {
                    set_sidebar: Some(&adw::NavigationPage::new(&sidebar_page, "Sidebar")),
                    set_content: Some(&adw::NavigationPage::new(&main_page, "Content")),
                },
            },
        };
        print("{_adw_navigationsplitview_0:?}"); // referring to an identifier that I never wanted to be in scope.

This is roughly the case in my code that made me notice the lint.

I suspect that all invocations of idents_to_snake_case are creating names in the calling scope that are nameable but shouldn't be. The __returned_widget and _conditional_widget names are still affected.
There are still at least 2 cases not covered:

For _conditional_widget_[number]
https://github.com/Relm4/Relm4/blob/273e167b1751ca122c3846ed8db6c8b19f901765/relm4-macros/src/widgets/parse/conditional_widget.rs#L55-L58
For __returned_widget_[number]
https://github.com/Relm4/Relm4/blob/273e167b1751ca122c3846ed8db6c8b19f901765/relm4-macros/src/widgets/parse/returned_widget.rs#L33-L36

Both types of widgets are nameable outside the view! macro.
I also found it very surprising that the idents_to_snake_case function is more of a create_unique_ident, that adds an underscore to the front and creates a unique suffix number on every invocation. Would you consider renaming the function and removing the span argument alltogether, so a generated ident always has mixed site span?

Check out the changes on my span-fix branch here: https://github.com/PJungkamp/Relm4/compare/nix-direnv...PJungkamp:Relm4:span-fix
Can you just pull the changes into your branch? (I've also got my Nix dev env committed, don't pull that :D)

I didn't have time this weekend but I'll review your commits tomorrow. You can also just open a PR and target this branch btw.

The patches look good! With the large amount of test coverage in the Relm4 repo I'd be confident to merge this if the CI passes on the changes.
If you have some time, it would be great if you could separate those three commits from your nix environment (with cherry-pick, for example) and open a PR. I could do it as well, but it would require me a couple of extra steps to stitch everything together.

Done! I think that's about all I'd want to put into this PR.
I just moved to a copied the branch and then did an interactive rebase onto your span-fix dropping the unrelated commits.
Did you check the detailed meaning of mixed site hygiene? Since it only applies to identifiers the *Widgets type and the __DoNotReturnManually hack is still unhygienic.
The *Widgets types should probably stay nameable. It's generation is also documented in relm4 book, so I think it's fine.
I find the __DoNotReturnManually hack strange. I was really suprised that the pre_view function, isn't a function. It's really weird to take the function body and just emplace it in another scope. I also didn't understand the justification for disallowing an early return.
Greetings from Aachen, seems like we're working in similar fields. :D

I find the __DoNotReturnManually hack strange

I know, it looks strange. The thing is though, if you return from pre_view (which you usually could), the macro-generated update code wouldn't run anymore, which has once confused someone in the past.
The more idiomatic approach would probably to use something similar to init() where you can write manual code around the view_output!() macro (in the view_update() method) to know where the codegen is pasted.
In general, I think the macro needs a complete rework, but I don't want to do it with syn because it is often quite ugly to work with and makes it hard to implement correct, predictable and scalable macros.

Greetings from Aachen, seems like we're working in similar fields. :D

Thanks, greetings from Augsburg! It's nice to see that Ferris has made it to Aachen as well :D
I recently finished my bachelor and will start with my master studies in October btw. :)
Mir ist gerade aufgefallen, wir könnten uns auch einfach gleich auf Deutch schreiben 😆

Thanks for your help with this @PJungkamp!

Ich benutze das das view! Macro immer mal wieder um gtk-rs style code I verschönern. (Manchmal auch mit anderen Crates)
Gestern bin ich dann wieder über meinen offenen Relm4 PR gestolpert.


sizedtype accessors

This adds and uses accessors for the is_signed and type fields of sizedtype as part of the type system improvement.
These make it easier to improve the type system, e.g. we could add assert(IsIntTy() to the IsSigned method to ensure that sign checking is only done on integers, without having to modify the code in 1000 places (like happens now)
This is largely an automatic refactor.

Link to #878

@danobi  can you take a look at this one when you have time? It's size makes this one annoying


Live server not working on the preview screen

Type: Feature Request
Live server is not working in my windows 11 its starting but cannot display the screen
Extension version: 5.7.9
VS Code version: Code 1.88.0 (5c3e652f63e798a5ac2f31ffd0d863669328dc4c, 2024-04-03T13:26:18.741Z)
OS version: Windows_NT x64 10.0.22631
Modes:

please help me


Update devcontainer environment to download/install IBM Cloud CLI

As a developer
I need to update devcontainer environment
So that IBM Cloud CLI is downloaded and installed
Details and Assumptions

In .devcontainer > scripts > install-tools.sh
Run to install

Acceptance Criteria
When install-tools.sh is run
Then IBM Cloud CLI is downloaded and installed

This is not needed as it's already installed


App crashes when using url_launcher on latest stable

Steps to Reproduce

Use Flutter 2.8.0 with url_launcher to launch an AliExpress item with their app (this is my case).
Immediately after launching AliExpress app my Flutter app crashes.
Downgrade Flutter to version 2.5.3 and everything will work as should be.

Expected results: AliExpress app launches without my app getting crashed.
Actual results: AliExpress app launches and my app crashes.

Code sample
launch(
            'some_aliexpress_link',
            forceSafariVC: false,
            forceWebView: false,
          );

Logs
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.dispatchWindowVisibilityChanged(int)' on a null object reference
       at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1632)
       at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1632)
       at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1632)
       at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1632)
       at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1632)
       at com.android.internal.policy.DecorView.dispatchWindowVisibilityChanged(DecorView.java:4221)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3151)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2618)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9971)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1010)
       at android.view.Choreographer.doCallbacks(Choreographer.java:809)
       at android.view.Choreographer.doFrame(Choreographer.java:744)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:246)
       at android.app.ActivityThread.main(ActivityThread.java:8633)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

Note: This happens in Android only.

Hi @CripyIce, thank you for filing this issue. I tested this on the latest stable and master channel using url_launcher 6.0.17 and the issue is not reproducible. I had the AliExpress app installed and tested this on a Samsung S10 android device but there was no crash in the app when the link is launched.
What device did you test this on? Does this only occur with an AliExpress url? Also, can you please provide your flutter doctor -v and url_launcher version used?

code sample
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

void main() {
  runApp(const MaterialApp(home: MyApp()));
}

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

  @override
  Widget build(BuildContext context) {
    return const Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: _launchURL,
          child: Text('Show Flutter homepage'),
        ),
      ),
    );
  }
}

void _launchURL() async {
  if (!await launch(
    'https://a.aliexpress.com/_m0aNdEI',
    forceSafariVC: false,
    forceWebView: false,
  )) throw 'Could not launch';
}

flutter doctor -v
[✓] Flutter (Channel stable, 2.8.0, on macOS 11.6.1 20G224 darwin-x64, locale en-US)
    • Flutter version 2.8.0 at /Users/flo/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision cf44000065 (6 days ago), 2021-12-08 14:06:50 -0800
    • Engine revision 40a99c5951
    • Dart version 2.15.0

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/flo/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.62.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (5 available)
    • SM G975U (mobile)                  • R58M95MA95E                          • android-arm64  • Android 11 (API 30)
    • Android SDK built for x86 (mobile) • emulator-5556                        • android-x86    • Android 11 (API 30)
      (emulator)
    • iPhone 13 (mobile)                 • EF1251D3-C9C4-475E-9F91-58CD010FDA48 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)                    • macos                                • darwin-x64     • macOS 11.6.1 20G224
      darwin-x64
    • Chrome (web)                       • chrome                               • web-javascript • Google Chrome 93.0.4577.63

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 2.6.0-12.0.pre.1027, on macOS 11.6.1 20G224 darwin-x64, locale en-US)
    • Flutter version 2.6.0-12.0.pre.1027 at /Users/flo/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 31d366a051 (4 hours ago), 2021-12-14 00:59:08 -0500
    • Engine revision 30f048de39
    • Dart version 2.16.0 (build 2.16.0-85.0.dev)
    • DevTools version 2.9.1

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/flo/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 13.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] VS Code (version 1.62.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (5 available)
    • SM G975U (mobile)                  • R58M95MA95E                          • android-arm64  • Android 11 (API 30)
    • Android SDK built for x86 (mobile) • emulator-5556                        • android-x86    • Android 11 (API 30) (emulator)
    • iPhone 13 (mobile)                 • EF1251D3-C9C4-475E-9F91-58CD010FDA48 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
    • macOS (desktop)                    • macos                                • darwin-x64     • macOS 11.6.1 20G224 darwin-x64
    • Chrome (web)                       • chrome                               • web-javascript • Google Chrome 93.0.4577.63

! Doctor found issues in 1 category.

Thank you


fix lots of door access

About the PR
a lot of airlock prototypes used AccessReader instead of ContainerFill which got ignored in favour of the AA electronics it had, probably due to not having merge conflicts with door electronics pr
also which doors in a department shared layout was completely random, some of them had no layout for maints, but layout for locked door, but not for unlocked door. so you can't figure out the layout on unlocked doors and if you figure it out on a real one you couldve just used the maint door with the same access as every other door
this fixes that
Why / Balance
having armoury be aa is "not good"
Technical details
made the parenting a little more sane so slightly less copy pasting shit like wire layout
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
no
Changelog
:cl:

fix: Fixed some doors having no access when they should.

merg


Support for rendering objects with ResponseFormatterInterface.

Q
A

Is bugfix?
❌

New feature?
✔

Breaks BC?
❌

Tests pass?
✔

Adds support for rendering objects that implements ResponseFormatterInterface. For example:
class CustomResponse implements ResponseFormatterInterface
{
    private string $message;

    public function __construct(string $message)
    {
        $this->message = $message;
    }

    public function format($response)
    {
        $response->setStatusCode(200);
        $response->getHeaders()->add("Content-Type", "application/json; charset=UTF-8");
        $response->content = \yii\helpers\Json::encode([
            'message' => $this->message
        ]);
    }
}

Then somewhere in controller, it would be possible to:
public function actionHello()
{
    return new CustomResponse("Hello World");
}

This is exactly what formatter is for and it is used literally one line after your code. What brings your change to the framework?

Sorry, I have not been using Yii2 since early alpha and maybe I don't understand it very well but goal here is to provide ability to return object from action that knows how to format itself, while formatter in next line expect format to be set excplicitly.
So currently as far as know if you want to provide custom formating, you would have create and register custom formatter like:

Create custom formatter

class CustomFormatter implements ResponseFormatterInterface
{
    public function format($response)
    {
        $response->setStatusCode(200);
        $response->getHeaders()->add("Content-Type", "application/json; charset=UTF-8");
        $response->content = \yii\helpers\Json::encode([
            'message' => $response->data
        ]);
    }
}

Register custom formatter

'response' => [
    'formatters' => [
          'customFormat' => CustomFormatter::class
    ]
]

Then you need to specify custom formatter before returning data
public function actionHello()
{
    Yii:$app->response->format = "customFormat"
    return "Hello World";
}

This change is more like an ad hoc implementation, if returned object already implements ResponseFormatterInterface then just proced formatting using object implementation, plus format and return data type are tied together.  I belive that there are other ways to archive this, but i just find this as an elegant solution.

Yes, you would have to set formatters and format and you could do it in the action itself, but I see your point, this way it's faster. BUT what about content, and stream, and charset, and so on? With formatters you can set all of it. And if data is not null it should be set as content.

I can only provide more use cases and you can decide if it's worth including or not.

File response

class FileResponse implements ResponseFormatterInterface
{
    private string $fileName;

    public function __construct(string $fileName)
    {
        $this->fileName = $fileName;
    }

    public function format($response)
    {
        if (is_file($this->fileName)) {
            $response->sendFile($this->fileName);
        } else {
            $response->setStatusCode(404);
            $response->getHeaders()->add("Content-Type", "application/json; charset=UTF-8");
            $response->content = \yii\helpers\Json::encode([
                'message' => "File '{$this->fileName}' not found"
            ]);
        }
    }
}

Entity response

class EntityResponse implements ResponseFormatterInterface
{
    private ?object $entity;

    public function __construct(?object $entity)
    {
        $this->entity = $entity;
    }

    public function format($response)
    {
        if (is_null($this->entity)) {
            $response->setStatusCode(404);
            $data = ["message" => "Entity not found"];
        } else {
            $response->setStatusCode(200);
            $data = $this->entity;
        }
        $response->getHeaders()->add("Content-Type", "application/json; charset=UTF-8");
        $response->content = \yii\helpers\Json::encode($data);
    }
}

Query response

class QueryResponse implements ResponseFormatterInterface
{
    private ActiveQuery $query;

    public function __construct(ActiveQuery $query)
    {
        $this->query = $query;
    }

    public function getDataProvider(): ActiveDataProvider
    {
        $requestParams = \Yii::$app->getRequest()->getQueryParams();
        return new ActiveDataProvider([
            'query' => $this->query,
            'pagination' => [
                'params' => $requestParams,
                'pageSizeLimit' => [1, 1000]
            ],
            'sort' => [
                'params' => $requestParams
            ]
        ]);
    }

    public function format($response)
    {
        $response->setStatusCode(200);
        $response->getHeaders()->add("Content-Type", "application/json; charset=UTF-8");

        $models = $this->getDataProvider()->getModels();
        $total  = $this->getDataProvider()->getTotalCount();
        $pageCount = ceil($total / $this->getDataProvider()->getPagination()->getPageSize());

        $response->content = \yii\helpers\Json::encode([
            "info" => [
                "total" => $total,
                "pageCount" => $pageCount,
            ],
            "items" => $models
        ]);
    }
}

And using would be like:
class TestController extends Controller
{
    public function actionFile()
    {
        return new FileResponse("../../data/file.csv");
    }

    public function actionGet(int $id)
    {
        return new EntityResponse(User::findOne($id));
    }

    public function actionItems()
    {
        return new QueryResponse(User::find());
    }
}

Classes like this can be provided through packages, and I have not tried but rendering simple crud-like interfaces would be possible as well.
class CrudController extends Controller
{
    public function actionIndex()
    {
        return  new VueCrud(User::class)
    }
    // Rest methods
}

Oh, sorry, my bad, somehow I told myself you are setting Response::data only, please ignore my previous comment.
Overall looks good to me. Please add unit tests for this.
@samdark thoughts?

Mixed feelings about this one. It is similar to Yii 3 responding with PSR-7 ResponseInterface but the name of the interface is "formatter" and now it is starting to store data as well making the name unfit.

Mixed feelings about this one. It is similar to Yii 3 responding with PSR-7 ResponseInterface but the name of the interface is "formatter" and now it is starting to store data as well making the name unfit.

A separate interface such as DataResponseInterface may fit better.
btw., file response is already covered in the framework code as well as 404 and custom JSON serialization. It's just done differently.

A separate interface such as DataResponseInterface may fit better.
btw., file response is already covered in the framework code as well as 404 and custom JSON serialization. It's just done differently.

I'm not really sure why you can't handle this in controller as:
return (new QueryResponse(User::find()))->format($this->response);

While at the same time there is a similar problem that cannot be easily handled at controller level - if you have 3rd-party generator (for example for generating PDF) that needs to echo its result, it is hard to call it after sendHeaders() to avoid HeadersAlreadySentException exception. If we really want to introduce support for custom content generators, I suggest to call it on sendContent() to handle cases when you can't really store response in content  (for example because it is too big).

With an interface, you would be able to implement logic in derived class so that you can avoid wrapping results in actions. in my opinion, it makes code clear, also you don't need a reference to $this->response until the object is actually converted to the response.
For content being too big, I think I've seen that it's already handled by another pull request that allows using iterable to generate content.

Re-evaluated it again. Thanks for contributing, @edin, but I've decided not to merge it:

It's possible do in your own code.
Likely it will be rarely used.


refactor: Get rid of ECCVM Composer

Please read contributing guidelines and remove this line.

Benchmark results
No metrics with a significant change found.

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit 10ef9702 and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
64 txs

l1_rollup_calldata_size_in_bytes
5,668
18,820
36,356

l1_rollup_calldata_gas
66,352
239,056
469,880

l1_rollup_execution_gas
647,450
929,414
1,306,060

l2_block_processing_time_in_ms
1,314 (+1%)
4,770
9,091 (-3%)

note_successful_decrypting_time_in_ms
189 (+9%)
541 (-3%)
1,036 (+5%)

note_trial_decrypting_time_in_ms
92.0 (+23%)
58.6 (-25%)
59.3 (-53%)

l2_block_building_time_in_ms
18,249 (+1%)
68,803
136,243

l2_block_rollup_simulation_time_in_ms
8,225 (+3%)
29,146 (+2%)
57,048 (+1%)

l2_block_public_tx_process_time_in_ms
10,000 (-1%)
39,605 (-1%)
79,094 (-1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
14,542 (-1%)
27,347 (+2%)

note_history_successful_decrypting_time_in_ms
1,240 (+1%)
2,462 (-1%)

note_history_trial_decrypting_time_in_ms
94.5 (+56%)
163 (-11%)

node_database_size_in_bytes
18,653,264
35,065,936

pxe_database_size_in_bytes
29,859
59,414

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
279
44,366
28,244

private-kernel-ordering
215 (+1%)
52,868
14,326

base-parity
1,823 (+2%)
128
311

base-rollup
720
165,787
925

root-parity
1,575 (-3%)
1,244
311

root-rollup
52.3 (+2%)
4,487
725

private-kernel-inner
641
73,771
28,244

public-kernel-app-logic
445
35,260
28,215

public-kernel-tail
174 (+1%)
40,926
28,215

merge-rollup
8.38 (+1%)
2,696
925

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
512 leaves
1024 leaves
2048 leaves
4096 leaves
32 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.2 (+2%)
16.0
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.6
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.587 (+1%)
0.495
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
46.7 (+2%)
72.7
232 (+1%)
446
891 (+1%)
1,731
N/A

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
96.0
159
543
1,055
2,079
4,127
N/A

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.479 (+2%)
0.447
0.422
0.417
0.422 (+1%)
0.412
N/A

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
54.2 (-2%)
108
339
664
1,318
2,627
N/A

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
104
207
691
1,363
2,707
5,395
N/A

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.482 (-2%)
0.487 (+1%)
0.458 (-1%)
0.456 (+1%)
0.455 (-1%)
0.455
N/A

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
61.6

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
109

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
0.537

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes

tx_size_in_bytes
22,012

Transaction processing duration by data writes.

Metric
0 new note hashes
1 new note hashes

tx_pxe_processing_time_ms
3,226
1,758 (+1%)

Metric
0 public data writes
1 public data writes

tx_sequencer_processing_time_ms
11.8 (+3%)
1,244 (+1%)