The OS written by Golang for K3S?

The OS written by Golang for K3S?

https://k3os.io/
Wherever possible we built on existing open source Linux distros with proven community support and security focus. We use the Ubuntu kernel which has excellent up-to-date support for recent kernel versions. We leverage the tooling and packaging of the lightweight Alpine Linux distro.

Adding to what @warmchang has said, we re-use/fork a handful of the linuxkit executables that are written in go.


[Question] How to let sparkjava ignore the order of params in a link

I want to use sparkjava, to make a imageAPI, that returns a image with text, that was provided through the link itself.
f.e. I would do http://localhost:4567/?text=some%20text and it would return a image, that has the text "some text" in it.
But in my case will there be multiple params like who requested it, the color, the image, etc.
How can I let sparkjava listen to for example http://localhost:4567/img?text=some%20text&user=user but also for http://localhost:4567/img?user=user&text=some%20text
Would I have to set a get for every possible way, or is there a option, to let it listen for the params and ignore the order?
Like would the following code only work for http://localhost:4567/img?text=some%20text&user=user or would it also work for other the other example?
public void main(String[] args){
    get("/img?text=:text&user=:user, (req, res) -> {
        String text = req.params(":text");
        String user = req.params(":user");

        // We would return the image directly for that link
        return ImageUtil.newImage(text, user);
    });
}

I assume that this would only work for the provided format in the link (text first, then user) and not for the other one too.

I think I've found, what I was searching for.
Instead of using req.params(":something"); I can just use req.queryParams("something");


envoyfilter tests are failing on remove metrics (istio_requests_total)

I tried using the following EnvoyFilter to filter the metrics ('istio_requests_total') in the sidecar, but I still see values being collected from http://localhost:9090/api/v1/query?query=istio_requests_total. Is there an issue with the EnvoyFilter configuration?"
Version
$ istioctl version
client version: 1.13.5
control plane version: 1.13.5

envoyfilter
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: disable-istio-requests-total
  namespace: sample
spec:
  workloadSelector:
    labels:
      app: helloworld
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_INBOUND
        listener:
          filterChain:
            filter:
              name: envoy.filters.network.http_connection_manager
              subFilter:
                name: envoy.filters.http.stats
      patch:
        operation: MERGE
        value:
          name: envoy.filters.http.stats
          config:
            stats_matcher:
              exclusion_list:
                patterns:
                  - exact: "istio_requests_total"

    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_OUTBOUND
        listener:
          filterChain:
            filter:
              name: envoy.filters.network.http_connection_manager
              subFilter:
                name: envoy.filters.http.stats
      patch:
        operation: MERGE
        value:
          name: envoy.filters.http.stats
          config:
            stats_matcher:
              exclusion_list:
                patterns:
                  - exact: "istio_requests_total"

These configurations might be a result of trial and error during testing. I would like to there are better examples for filtering metrics using EnvoyFilter.

Telemetry would be simpler:
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: remove-request-count
  namespace: istio-system
spec:
  metrics:
    - providers:
        - name: prometheus
      overrides:
        - disabled: true
          match:
            mode: CLIENT_AND_SERVER
            metric: REQUEST_COUNT

Telemetry would be simpler:
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: remove-request-count
  namespace: istio-system
spec:
  metrics:
    - providers:
        - name: prometheus
      overrides:
        - disabled: true
          match:
            mode: CLIENT_AND_SERVER
            metric: REQUEST_COUNT

In the Istio 1.13.5 environment, using this configuration still seems to result in the presence of related metrics (istio_requests_total). Could it be that Telemetry is not supported in the Istio 1.13.5 environment?

it clound be some bugs, suggest to use a newer version.


Requester chest's inventory  within building is not shared with passive chest's inventory outside of building

It appears a requester chest's inventory within a building is not shared with passive chest outside of a building.
Having just played pre SA, this functionality seemed straightforward, maybe I'm missing something? I have the research for chest item passing, that isn't the issue.
The requester chest's inventory appears emptied out within the building so it is constantly requesting items while infinitely filling the passive provider chest linked to it outside of the building.
Could have sworn it worked differently in the previous non-SA version... but unsure. Thanks!

Set the chest connection to balance mode.

Same for outside to in:

Just saw your comment, thanks. Didn't have to do that in the non-forked version. My bad.

Factorissimo has always worked this way.
The only difference being that "balance mode" was the default option previously.


Add fusion optimization for Delayed

We're starting to realize how critical the task fusion optimization is for avoiding task overproduction (see dask/distributed#5555, dask/distributed#5223 for background).
In light of this and https://github.com/dask/dask/issues/8447, I think we should add the fuse optimization for delayed as well, which currently doesn't have it: https://github.com/dask/dask/blob/a5aecac8313fea30c5503f534c71f325b1775b9c/dask/delayed.py#L472-L478
I could see the counterargument that Delayed is lower-level, and users expect each of their delayed functions to run as a separate task. I'm not sure how much users want this, versus want help avoiding the very poor scheduling we currently have for unfused chains. We could always take the https://github.com/dask/dask/pull/7620 approach and have optimization.fuse.active=None fuse Delayed by default, but turn off fusion if explicitly set to False.
cc @rjzamora @ian-r-rose @jcrist @jrbourbeau

Thanks for the proposal @gjoseph92. For reference, @jcrist implemented this in https://github.com/dask/dask/pull/6222, but backed off due to other HLG work that was going on. That said, it's not totally clear what work he was referencing -- maybe @jcrist can clarify?

users expect each of their delayed functions to run as a separate task.

I don't think this is a strong argument, at least in the normal case that the tasks don't have extra annotations like retry.

Was about to file an issue but discovered this one, here's some code that illustrates one possible motivation for having delayed fusion support:
Basically we want to do a computation but also get some intermediate results. We're also really trying to fuse tasks together into a single node where possible. Our thought was that we can "join" the results we want together in a parent computation node that just returns the results. This way dask thinks that the whole thing is one chain and will hopefully fuse together the whole thing
import pandas as pd
import dask.dataframe as dd
import dask

dask.config.set({"optimization.fuse.active": True})
df = pd.DataFrame({'a': list(range(1000))})
ddf = dd.from_pandas(df, npartitions=1)

def f(x):
    return x
def g(x):
    return x
ddf2 = ddf.map_partitions(g, meta=ddf)
ddf3 = ddf.map_partitions(f, meta=ddf)

ddf = ddf2 + ddf3

joined_ddf = dask.delayed(f)([ddf, ddf2])

# Works as expected - one fused node
# dask.visualize(ddf, optimize_graph=True)

# Both are unoptimized
# This one is b/c the intermediate output is requested by the client
# dask.visualize(ddf, ddf2, optimize_graph=True)

# This one should be optimized and fused into a single node
dask.visualize(joined_ddf, optimize_graph=True)

This results in the following optimized graph:

FWIW this is probably much less critical for performance now that queuing is on by default, which fixes root task overproduction.


Add basic resolution change capabilities for fullscreen

[ ] Depends on #1586
Partly addresses ppy/osu#2706

This implements logic to change the resolution of a DesktopGameWindow when the SizeFullscreen framework setting is changed.
Not sure whether this should throw an ArgumentException (maybe an ArgumentOutOfRangeException?) when it can't find the right resolution, but I'd argue that the implementing game should prevent setting any invalid values.
What I'd still like to add after this:

Ability to go back to the old window size when leaving fullscreen
Multi-monitor support
Ability to change refresh rate too (should be separate from width/height setting imo)

Just for clarity, which operating systems did you test this on already?

Testing on macOS 10.13.2 the test doesn't appear to do anything. Occasionally the change to fullscreen step will complete, but if it does the screen just temporarily goes black and osu! crashes with the following error:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSApplication _setPresentationOptions:instance:flags:0xe] Both NSApplicationPresentationHideMenuBar and NSApplicationPresentationAutoHideMenuBar were specified; only one is allowed'
Though this is probably unrelated to the PR and just seems to be that WindowMode is unsupported on macOS at the moment.

About customs resolutions: they does not affect DisplayDevice.Default.AvailableResolutions.

It does not work out of the box because of the default FrameworkSetting.SizeFullscreen value(new Size(9999, 9999)).
https://www.youtube.com/edit?o=U&video_id=3cOXOr20RhY
Suggested quickfix:
protected override void InitialiseDefaults()
        {
            Set(FrameworkSetting.SizeFullscreen, getDefaultSizeFullscreen(), new Size(320, 240));
        }

        private Size getDefaultSizeFullscreen()
        {
            var availableRes = DisplayDevice.Default.AvailableResolutions.OrderBy(r => r.Width).ThenBy(r => r.Height);
            var res = availableRes.Last();
            return new Size(res.Width, res.Height);
        }

@peppy In addition to https://github.com/ppy/osu-framework/pull/1588#issuecomment-396043880 we may have the following situation.
Let's say I have two monitors. M1=1920x1080, M2=1680x1050.
Performing the following steps will result into unhandled exception:

Launch the game on M1.
Exit the game.
Change display to M2 and launch the game again. At this moment SizeFullscreen will be 1920x1080.
OpenTK won't find suitable resolution and the exception will be thrown.

It is obvious that we need some fallback logic(for example, select the highest resolution available if the SizeFullscreen is incorrect). Where should this be implemented(framework/game)?

If the configuration resolution is not found, it should fall back to the desktop resolution, as per old behaviour.

You did not write where(game/framework) this should be implemented.

It has to be in the framework. All the other resolution code is in the framework, and you would not expect a framework to crash due to any hardware changes.

The current code restores resolution to native and then throws an exception.. I guess I can just omit the exception and it'll be fine?

I think we should remove the exception for now since it's going to propagate out from a bindable ValueChanged, which may be hard to handle (if it's bound to a UI control, for instance).

Adding multi-monitor support on top of this shouldn't be too hard (check DisplayDevice.FromPoint for an implementation we could build on), but as this was never supported I'm fine with merging without it.


Merge pull request #1 from aspnet/master

pull updatew
When creating a new PR, please do the following and delete this template text:

Reference the issue number if there is one:
Fixes #Issue_Number

The "Fixes #nnn" syntax in the PR description causes
GitHub to automatically close the issue when this PR is merged.

Suggest reviewers if you know who should review the PR, using the GitHub Reviewers UI.

@pkellner,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot


Spin out AMM into specific open source repo

It has come to the point where we should spin out the AMM into its own specific repository to allow easy contribution from outside collaborators.
This would involve the following:

[ ] Moving contracts
[ ] Environment setup using poetry and protostar to manage OZ dependencies
[ ] Python deploy scripts
[ ] Tests (these still need a bit of work for total coverage)
[ ] Keep remote container

New blank repo made here - https://github.com/BibliothecaForAdventurers/ResourceSwap

This has been started with progress details https://github.com/BibliothecaForAdventurers/ResourceSwap/commit/e3cef3dd852f7d3d1ca9930ef0cfb74aeaeac11c

closing and will move to new repo


[release-1.20] Replace a deprecated go-jose repo with active one

Manual cherrypick required.
#48324 failed to apply on top of branch "release-1.20":
Applying: Replace a deprecated go-jose repo with active one
Using index info to reconstruct a base tree...
M	go.mod
M	go.sum
M	pkg/spiffe/spiffe.go
Falling back to patching base and 3-way merge...
Auto-merging pkg/spiffe/spiffe.go
Auto-merging go.sum
Auto-merging go.mod
CONFLICT (content): Merge conflict in go.mod
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 Replace a deprecated go-jose repo with active one
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

duplicated


Adding a remap bucket type

Imagine a scenario where you have 4 servers:
server-a
server-b
server-c
server-d

and all of them are servicing 25% of the load using anchorhash. server-d now dies and load is being redistributed to the other 3 servers. Some of the new objects that are being written to those 3 servers will need to be redistributed once server-d comes back. How does one discover which objects need to be rewritten when the 4th server returns to service?

The 1st way I can think of is just to rehash every single object in the cluster. ( expensive )
The 2nd way would be if anchor had some way of telling me which objects are being redirected and saving those somewhere as needing to be rebuilt.
The 3rd way could be push this to the client and if they happen to write an object that is now going to the wrong server then it gets rebuilt.

There's probably other ways but I think the 2nd way could be the easiest if a small modification was made to anchor.

Hey @cholcombe973
AnchorHash doesn't store the keys internally, so it has no way of reporting what has moved where in the situation you describe. The keys themselves are hashed and then mapped to a bucket, and the only state maintained are the buckets.
The only way to know what has moved is to know what keys were mapped to server-d, which means keeping a map of keys -> resources, which is prohibitively expensive if you're hashing session IDs or ip:port tuples at a rate of thousands-per-second. Most applications don't care about a session ID after a request, and definitely don't want to keep it in memory!
If your application needs to figure out what keys have been remapped (and you have a low number of keys / are happy to use the memory), I suggest wrapping the AnchorHash with a higher-level type that also maintains a map of resource -> [keys]. When you call AnchorHash::remove_resource() you then lookup all the keys that mapped to server-d, rehash them, and update the mapping as necessary. This effectively means that AnchorHash is used to build the mappings, and your application caches the results.
This is a long way of saying I think it has to be option 3 to remain a flexible/reusable component in systems that don't/can't store the keys - I hope I explained why well enough!


MetMinBasicFabberCount excludes naval

MetMinBasicFabberCount should count all AI fabbers and compare them to the required minimum number for the personality. It seems naval fabbers are not counted.
Produced a test case for mikeyh

Following further testing this appears to have been fixed in the latest patch. Or I cocked up at my end. Either way it looks good now.


@azure/openai OpenAI API call credential injection broken

Package Name: @azure/openai
Package Version: ^1.0.0-beta.1
Operating system: macOSX (ARM)
[ ] nodejs

version:  v16.17.0

[ ] browser

name/version:

[ ] typescript

version:

Is the bug related to documentation in

[ ] README.md
[ ] source code documentation
[ ] SDK API docs on https://docs.microsoft.com

Describe the bug
Based on the documentation here: https://www.npmjs.com/package/@azure/openai
I set up a new client as so: const client = new OpenAIClient(new OpenAIKeyCredential("<API key>"));
When I try making any calls with the client, this is the API error I receive:
error: {
    message: "You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.",
    type: 'invalid_request_error',
    param: null,
    code: null
  }

Looking further into the source code, it's evident that the credentials don't get added to the headers in the final API call in any way:
https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/openai/openai/src/api/operations.ts
see: export function _getCompletionsSend(
I tried to call it with explicit headers and everything works:
    const result = await this.client
      .getChatCompletions(this.modelName, messages, {
        ...params,
        requestOptions: {
          headers: {
            Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
          },
        },
      })

It is clearly evident that the @azure/openai library does not properly inject the OpenAI key credentials into the API call being made.
To Reproduce
Steps to reproduce the behavior:

reference above

Or just try to run the sample code: https://github.com/Azure/azure-sdk-for-js/blob/9c2c9cfe757f419708b3608c07b95af10145e40e/sdk/openai/openai/samples-dev/openAi.ts
Expected behavior
const client = new OpenAIClient(new OpenAIKeyCredential("<API key>")); should be sufficient to not need to enter the API key anywhere else.
Calls such as getChatCompletions or getCompletions should succeed
Additional context
Add any other context about the problem here.

Looking forward for the fix. @DecathectZero , thanks for the workaround with requestOptions.
I've also come across the issue when decided to extend OpenAI API vendor selection with Azure, switched from openai NPM to @azure/openai and got stuck for an hour trying to find out what I messed with API keys (https://github.com/maxim-saplin/cptX)

I've made a pull request with a fix here: https://github.com/Azure/azure-sdk-for-js/pull/26023

Thanks for reporting this issue and sending the fix! I merged it.

<EMAIL_ADDRESS>has been released and it contains the fix. Thank you!


tsp, formatting on Javadoc causes a diff on newline with codesnippet

see https://github.com/Azure/azure-sdk-for-java/pull/39520#discussion_r1551062936

Use @formatter:off solves it.


Collection for Dockge Docker Container.

I have created this collection to protect Dockge docker container. I'm using this and working fine. Hope others can use this too.

thx for contrib, having a look :)

thx for contrib, having a look :)

Thanks.

Hi, I have added another collection for Open WebUI and a Fix for nextcloud whitelist #1102. I wanted to open new pull request but I'm still new with GitHub and somehow it pulled in this request. Sorry about that. Hope this wont complicate things for you to review. Anything please let me know. Thanks again

Hi, I have added another collection for Open WebUI and a Fix for nextcloud whitelist #1102. I wanted to open new pull request but I'm still new with GitHub and somehow it pulled in this request. Sorry about that. Hope this wont complicate things for you to review. Anything please let me know. Thanks again

All good! the better approach is to never work on master or main and simply create a branch to work on, however, this can cause issue if you already modified master or main since it will pull across your changes unless you wipe your changes.
But dont worry we love a 2 in 1 offer and can handle this in a single PR 👍🏻

I'm really sorry about this and thanks for your understanding.


Move sessions storage into memcahe

It should be configurable.

Consider memcached: https://docs.webfaction.com/software/memcached.html and https://www.npmjs.com/package/connect-memcached

Try to use following URL to the server: 'unix:///tmp/memcached.socket'


Tooltip labels being offset in Firefox

Labels for point geojson layer created using the bindTooltip method is coming in extremely offset in Firefox. The offset increases as the map is zoomed out. On Chrome and Edge it seems to display correctly.
The pointToLayer function is returning
L.marker(latlng, {icon: divIcon}).bindTooltip(feature.properties.post_id, {className:'post-label', permanent: true, direction:'center', offset: [0, 15]});

Chrome & Edge:

Firefox:

This was tested in the following environments:

Browser

Firefox 68.0.2 (64-bit)
Chrome 76.0.3809.100 (Official Build) (64-bit)
Edge 42.17134.1.0

OS

Win7
Win10
Ubuntu 16.04.16

Leaflet

1.5.1
1.0.3

Issue is caused by a CSS setting and not due to Leaflet.


Improve compilation time and memory

Memory usage dropped from ∞ to 2.9 GB DMD + 0.25 GB linker, but I want to reduce it to a sane limit. Stay tuned.
Closes #122 when it is complete.

Thanks for this effort. I've never had time to look at it. Please be aware that there is not yet committed change where I rewrote parser.d so it will affect this PR. I'm rebasing changes and will push them as soon as I'm done.

Everything is fine; it’s not ready yet to look at it anyway. Rewriting parser.d will affect this PR minimally: it focuses primarily on command.d and argumentuda.d. Perhaps, valueparser.d as well, but not sure yet.

FYI I'm planning to merge 2.x branch into master as I'm done with major changes and IMO it makes sense to have everything in default branch.

Iʼll keep that in mind, thanks.
For the record, in the last few days Iʼve been optimizing pure templates (those that do not produce any code in the binary) – rewriting TypeTraits, to be exact. However, this saved pitiful 50 MB so I discarded those changes. (I still have (the essential part of) the source though.)
Trying a different approach now. It is showing prominent results.

Thanks to your recent refactoring, even unpatched 2.x requires only 2.7 GB RAM to build. The first commit in this PR reduces it to 2.3 GB. And then a few surgical changes…

https://github.com/andrey-zherikov/argparse/blob/498790f547d448c5548ae010b2ccaba0be0a9b26/source/argparse/api/cli.d#L155-L160
By the way, now I understand that DMD was correct here. CLI!(config, C).complete instantiates CLI!(config, Complete!C). CLI!(config, Complete!C).complete in turn instantiates CLI!(config, Complete!(Complete!C)), and so on… You just ran out of memory faster than DMD figured out the recursion is infinite.
Now that complete is a template (not semchecked until necessary), this issue is gone.

For the best end-user experience, I’d suggest moving tests from argparse/package.d to a separate module that is not in sourcePaths and therefore not distributed with the rest of the library.

I think the better approach would be to move those unit tests to other modules. I've been adding new unit tests there but didn't pay attention to remove them from package.d. I'll take a look at it.

I also thought about splitting Config into two structs to reduce amount of fields that must be known at compile time.

I looked at this some time ago and it didn't look promising at that point because I found working on parser rewriting will give greater benefit so I started working on that. May it makes sense to review that idea again since I'm done with rewriting.

https://github.com/andrey-zherikov/argparse/blob/eb44f11df966462bedcc8491755c897f460ad2a6/source/argparse/internal/parser.d#L620-L623
If I make both branches identical (passing true to enableStyling), it compiles 15% faster and produces a 15% slimmer binary. I expect splitting Config will have approximately this impact.

https://github.com/andrey-zherikov/argparse/blob/eb44f11df966462bedcc8491755c897f460ad2a6/source/argparse/internal/parser.d#L620-L623
If I make both branches identical (passing true to enableStyling), it compiles 15% faster and produces a 15% slimmer binary. I expect splitting Config will have approximately this impact.
Upd.: Measured for a unittest build, which instantiates hundreds of commands. For a regular case of just 1 command, the difference is negligible. I still believe that compilation time matters for unittest too.

I think we can live with that for now. I'd rather look at possibility of splitting Config - I think it should be possible to extract a part that affects parsing settings and the rest can be used as runtime parameters.

Just curious, is added argument soup (scope nothrow pure @safe etc) required?

A library should correctly list attributes for its public APIs, or otherwise it would be disruptive to users who wish to use those attributes. There are few things more frustrating in D programming than getting a compiler error third_party.someFunc is not safe, peeking at the implementation, and finding out there were no reasons not to declare it safe. Yet it is @system, and it poisons the whole user’s call stack with systemness. While @safe, scope, and const are quite easy to fake in userland via a @trusted wrapper (even a lambda suffices), lack of nothrow, pure, or @nogc is more tricky to deal with.

That being said, I think it is tolerable to leave out attributes for UDA-related API since it is supposed to be called at struct-declaration time, when it doesn’t matter. I’m also ready to drop them from private/package functions where it doesn’t affect API if you are not comfortable with them: while I think it is always good to have more semantic checks from the compiler, that is my own opinion, and I admit I’ve pushed it too far here.

I think we can live with that for now. I'd rather look at possibility of splitting Config

I do not propose enabling colors always/never. That was just a quick test to see how much we can gain from splitting the config.

I think we can live with that for now. I'd rather look at possibility of splitting Config

I do not propose enabling colors always/never. That was just a quick test to see how much we can gain from splitting the config.

No worries, I got your point :)

Just curious, is added argument soup (scope nothrow pure @safe etc) required?

A library should correctly list attributes for its public APIs, or otherwise it would be disruptive to users who wish to use those attributes. There are few things more frustrating in D programming than getting a compiler error third_party.someFunc is not safe, peeking at the implementation, and finding out there were no reasons not to declare it safe. Yet it is @system, and it poisons the whole user’s call stack with systemness. While @safe, scope, and const are quite easy to fake in userland via a @trusted wrapper (even a lambda suffices), lack of nothrow, pure, or @nogc is trickier to deal with.

That being said, I think it is tolerable to leave out attributes for UDA-related API since it is supposed to be called at struct-declaration time, when it doesn’t matter. I’m also ready to drop them from private/package functions where it doesn’t affect API if you are not comfortable with them: while I think it is always good to have more semantic checks from the compiler, that is my own opinion, and I admit I’ve pushed it too far here.

I don't mind having these attributes. Could you please do the following:

Move adding attributes to separate PR. This will allow having more targeted PRs.
Since this allows some specific/additional use cases (e.g. in safe code), it should be checked and proved with unit tests so please add (or update existing) unit tests to validate the use case.

No problem. I excluded that commit from this PR.

Is it too late to ask you to split this PR into separate smaller/simpler PRs that do single thing each? It's hard to review big one since you did a lot of things.

I hope it became more manageable now.

I checked improvements on my WSL Ubuntu: memory usage during dub test dropped from 4 GB to 1 GB. Impressive!

In general I prefer to leave Config as template parameter in parser unless moving it to runtime parameters gives feasible benefits. One item in my TODO list is to try splitting Config into smaller parts with "single responsibility", for example: there is definitely one part that affects parser that IMO should stay as template parameter and there is also a "styling" part that can absolutely be runtime parameter.

Hm, I see your point. To be honest, I haven’t looked at the parser’s source carefully yet; was planning to do it after we decide on #117. I’ll return Config to parser’s template parameters for now.
Smaller parts with single responsibility sounds great. For example, namedArgPrefix should be statically known by TypeTraits (so that they can validate that argument names do not begin with it) while it can be a runtime parameter for the parser (it doesn’t get any benefits from statically knowing it).

https://github.com/andrey-zherikov/argparse/blob/7cff35208827fbe888cce880751038e16c92696f/source/argparse/internal/argumentuda.d#L30-L33
By the way, I wonder whether this code is correct. If ValueParser == void, shouldn’t we return ArgumentUDA!T(newInfo)? Apparently, no test stresses this.

Just a FYI: I plan to merge 2.x branch to master after this PR so all following work (if any) should go to default branch.


fix: single readPreferenceTags should be parsed as an array

ReadPreference tags must be an array in order for matching to
succeed during server selection. If a single value is entered for
the readPreferenceTags uri option, it should be parsed as an
array of size one.
NODE-2541

this does not work correctly in v3.6
?readPreference=secondary&readPreferenceTags=nodeType:ELECTABLE
will be parsed as
  ReadPreference {
    mode: 'secondary',
    tags: [ 'nodeType:ELECTABLE' ],
    hedge: undefined
  }

but the valid value is
  ReadPreference {
    mode: 'secondary',
    tags: [ { nodeType: "ELECTABLE" } ],
    hedge: undefined
  }


7-zip support

Etcher version: 1.0.0-beta14
Operating system and architecture: OS X 10.10

I looked through documentation, issues and finally code and could not find support for .7z archives. Is there a specific reason why it's missing (7-zip being LGPL)?

We've looked into it a while back, but we couldn't find any decent 7zip
NodeJS modules we could use (all of them either depend on the 7zip tool
being available on the path, or embed the binary inside the package).
Given that 7zip is not a common compression method for IoT images (the
main focus of Etcher), working on our own decompressor to include to
support for it has not being a priority.
I'm happy to give it another go if you think there's a library worth
checking (please re-open if so).
On Wed, Sep 21, 2016 at 01:19:25AM -0700, Thomas Kaiser wrote:

Etcher version: 1.0.0-beta14
Operating system and architecture: OS X 10.10

I looked through documentation, issues and finally code and could not find support for .7z archives. Is there a specific reason why it's missing (7-zip being LGPL)?
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/resin-io/etcher/issues/711

--
Juan Cruz Viotti
Software Engineer

Well, we (Armbian) switched away from .zip to .7z a while ago  and I already encouraged other distro bakers to do so as well. Am exploring other opportunities now first (.bz2not working on OS X with a first attempt). I'll investigate myself first, get some experiences and we discuss this internally. Anyway thanks for this great piece of software even if the package size seems to scare some users :)

Hi @ThomasKaiser ,
That's interesting. What were the reasons for switching to .7z?

I'll investigate myself first, get some experiences and we discuss this internally. Anyway thanks for this great piece of software even if the package size seems to scare some users :)

Haha, sounds good! Hopefully Electron finds a way to make applications smaller!

That's interesting. What were the reasons for switching to .7z?

More or less only image size. LZMA with maximum compression applied to a clean image (made from scratch) is way more effizient than .zip: https://github.com/igorpecovnik/lib/issues/209
In the meantime we only use -mx=3 instead of -mx=9 since we build +100 OS images with every update, size differences are only small but time savings huge. Only drawback (at least for me using OS X): decompression happens on the CPU cores and not on the GPU as with .zip (OpenCL/GCD). But I'm not the average user :)
BTW: Regarding application size: Did you try to apply HFS+ transparent file compression to your application bundle already using afsctool?

More or less only image size. LZMA with maximum compression applied to
a clean image (made from scratch) is way more effizient than .zip:
https://github.com/igorpecovnik/lib/issues/209

What about .xz? It also uses the LZMA compression algorithm and its
more well-known to image consumers, plus we have support for it in
Etcher already.

BTW: Regarding application size: Did you try to apply HFS+ transparent
file compression to your application bundle already using
afsctool?

Very nice, thank you very much for the suggestion. The savings are small
(~10MB), but its definitely an improvement. I'll add it to the build
scripts very soon.
On Thu, Sep 22, 2016 at 10:19:54AM -0700, Thomas Kaiser wrote:

That's interesting. What were the reasons for switching to .7z?

More or less only image size. LZMA with maximum compression applied to a clean image (made from scratch) is way more effizient than .zip: https://github.com/igorpecovnik/lib/issues/209
In the meantime we only use -mx=3 instead of -mx=9 since we build +100 OS images with every update, size differences are only small but time savings huge. Only drawback (at least for me using OS X): decompression happens on the CPU cores and not on the GPU as with .zip (OpenCL/GCD). But I'm not the average user :)
BTW: Regarding application size: Did you try to apply HFS+ transparent file compression to your application bundle already using afsctool?
--
You are receiving this because you were assigned.
Reply to this email directly or view it on GitHub:
https://github.com/resin-io/etcher/issues/711#issuecomment-248968941

--
Juan Cruz Viotti
Software Engineer

Hi @ThomasKaiser ,
I'm not sure if you're aware of it, but Etcher has the concept of "Extended Archives" which consists basically in a ZIP file containing your image, plus some extra metadata that allows the image to be more tightly integrated into Etcher and support extra functionalities (like bmaps, logos, etc), while still allowing users to flash it as a normal image outside Etcher.
If you're interested, I'm happy to provide more details on how to build such an extended archive via email!

Well, I'm not Thomas Kaiser, but I am interested in building extended archives. You can find my email in my github profile.

Hi @jviotti,
I've read through this document already with interest. Will think a bit about it and then maybe get back to you with some feedback (the context was different: creating device backups that contain metadata. And I really hate re-inventing the wheel so I read through your spec with interest)
Will do later some investigations around .xz (in case the compressor is multi-threaded and compression results are on par with 7-zip then it's really worth a look).
And it's strange that you get only 10MB savings since the compressed disk image containing Etcher is just ~75MB in size, isn't it? Will check that also later.

Hey @ThomasKaiser, from some basic research, xz looks like a slightly improved version of 7z, with multi-threading support as well. It uses the same compression algorithm, so the file size results should be the same. At the same time, we've discovered a promising 7zip library that we'll try as well.
We'd love to hear more about the "device backups with metadata" use case too, as backups are on the etcher roadmap, if a bit down the line.
By the way, we discuss a lot about etcher and new features in gitter, feel free to drop in (cc @dlech )

DietPi also uses 7zip for their images, so that project would also benefit from 7zip support, although I suspect they'd also be just as happy to move to xz if it was found to be more efficient ;) I'd also like to thank you guys for the great work you've done on Etcher... it certainly makes supporting users on multiple OSes a lot easier! 👍

Thanks a lot for the kind words @pfeerick !
@alexandrosm found the following 7z NodeJS module: https://github.com/jalcaldea/7z-stream
Happy to re-open this issue if we find the module above does what we need.

We'd love to hear more about the "device backups with metadata" use case too, as backups are on the etcher roadmap, if a bit down the line.

From time to time I do some research on this as it's something Armbian users are constantly asking for. Last occasion was this. Doing SD card clones is easy (and save, a running OS can not be cloned 100 percent consitently without taking special precautions) but people struggle with eMMC equipped board.
On Fast Ethernet equipped boards the best mode would be a special mini distro they can boot with that hands out the eMMC in USB mass storage gadget mode (explained here to prepare correctly sized DD images), on GbE equipped boards IMO the best variant is to send the eMMC's contents over network to a beefy box where it gets compressed there (in fact I do this for quick cloning, using dd on the devices I test with, send the stream through netcat and create an archive at the target location (if it's OS X it's done mostly on the GPU cores using ditto -c -k --sequesterRsrc --keepParent)
But we're searching for a way to clone to network shares or external disks to. Problem is that SBC are pretty slow when it's about compression and that most tools fail to compress multi-threaded when input is stdin (pipe from dd). One approach would be the use pbzip2 another to split up the whole operation in n tasks and let grep -c "^processor" /proc/cpuinfo of them be processed in parallel.
So after installing lz4-tools one could check the size of the eMMC (/proc/partitions), then split it up into eg 48 chunks and let 4 of them be processes in parallel with single dd/lz4 pipes. But then you end up with 48 files that need to be processed in exactly the same order to restore the eMMC contents. And that's where some sort of a container would be a good idea. So basically it's a different approach but if we start with something like that we don't want to re-invent the wheel and try to use something that is already developed/established if it fits our needs.
Regarding .7z: I will follow your advices and look into xz a bit more and do some tests regarding speed and compression ratio. It's the same as 7-zip then we will most likely switch to .xz instead.

Incredibly interesting stuff @ThomasKaiser !
Given the increasing amount of interest in 7zip, I'll keep this open, and see if we can actually do something about it (regardless on if you switch to xz or not).

Just a small note on the 'backup and/or flash eMMC' problem: within 24 hours the problem is solved for Allwinner devices (am a bit curious why none of the ultra cheap and powerful H3 devices is supported by resin.io): http://forum.armbian.com/index.php/topic/2125-armbian-for-orange-pi-does-not-boot/?p=16455
Now it's just connecting the H3 device's Micro USB port to the USB port of a Windows, Linux or OS X host, then start a script, the device boots a kernel and turns itself into an USB Mass Storage gadget within half a minute and can then both be backed up or directly flashed with Etcher. I will build an application bundle the next days for OS X and keep you guys updated (but of course not that useful for you since you don't seem to support any Allwinner device now)
Absolutely weird that all the great and cheap H3 devices are missing here :)

And .zst is something we should keep an eye on: https://code.facebook.com/posts/1658392934479273/smaller-and-faster-data-compression-with-zstandard/

Wow, really nice and exciting!
--
Alexandros Marinos
Founder & CEO, Resin.io
+1<PHONE_NUMBER>
@alexandrosm
On Tue, Oct 4, 2016 at 12:56 AM, Thomas Kaiser<EMAIL_ADDRESS>wrote:

And .zst is something we should keep an eye on: https://code.facebook.com/
posts/1658392934479273/smaller-and-faster-data-compression-with-zstandard/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/resin-io/etcher/issues/711#issuecomment-251319513,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLUCImQB9aZhJE7lCKUky0M-9CXAi__ks5qwgaqgaJpZM4KChYy
.

@ThomasKaiser @alexandrosm there's also brotli (see https://www.opencpu.org/posts/brotli-benchmarks/).
Although the article is old, it shows brotli beating xz; and Facebook's page shows xz beating zstd.
For node you've got the "brotli" and "iltorb" modules.  "brotli" is "compiled" to LLVM and transpiled to JavaScript using Emscripten; the performance hit isn't horrible, but it's noticeable (I haven't benchmarked, but it should be anywhere from a .5x to 10x hit).  "iltorb" uses compiled binaries and happens to have the latest sources compiled.
The only downside to brotli is no file tree support; it's single file only.

Some more info on zstandard (see comments for some tests related to SBC world)

@ThomasKaiser so you didn't look into brotli, I take it?  I am well aware of zstandard tests and benchmarks. :)

@skhameneh The article you link to about brotli says "in particular small text documents", which makes me suspect that it wouldn't be that useful for Etcher, where we're dealing with very large binary files?

@ThomasKaiser Any more thoughts about changing Armbian from .7z to .xz ?

Any more thoughts about changing Armbian from .7z to .xz ?

@lurch I suggested it a while ago but got overruled by other devs for now. In the meantime I found burning .xz compressed images way slower than 'decompress first and burn uncompressed' (disclaimer: SD cards in my MacBook Pro are written/read with ~80MB/s and I use a few SanDisk Extreme Pro/Plus only for this purpose) so I didn't look into it for now.
Additional problem: I prepared reporting that back to you (and did some measurements/profiling in macOS but MacBook crashed and numbers gone).
But I'm still trying to get best integration of Armbian image creation with Etcher since it's simply the best tool out there.
BTW: Removing display of CRC32 at the end of burning with Etcher 1.0 is a bit sad since we've to deal with users that think Etcher would be unnecessary 'bloatware', refuse to use it but claim the opposite. In the past the simple question to show Etcher's CRC32 value resolved this, people used Etcher and understood that their SD card sucked.

That's a shame, but thanks very much for trying @ThomasKaiser :+1:
Regarding the CRC32 - ironically we removed it for exactly the opposite reasons - it was confusing newbie users ;-)  #993

users that think Etcher would be unnecessary 'bloatware'

Well, you can't please everyone all of the time.

Just looking through old issues, and the comment above about

Now it's just connecting the H3 device's Micro USB port to the USB port of a Windows, Linux or OS X host, then start a script, the device boots a kernel and turns itself into an USB Mass Storage gadget within half a minute and can then both be backed up or directly flashed with Etcher.

sounds very similar to the usbboot stuff we added to Etcher to support the Raspberry Pi Compute Modules :grinning:  (but it looks like quite a different protocol )

That is actually the same mechanism the CHIP board uses for flashing (FEL / fastboot) – good to know.

If 7-zip support is going to be added, it would be also great, if self-extracting files (exe) would also be supported. Thanks.

@ThomasKaiser You've created an ergonomics problem for people who are new to the platform.

@ThomasKaiser You've created a roadblock for people who are new to the platform.

@jdmarshall  Excuse me? How has asking for 7z support to be added created a roadblock? Or do you perhaps mean the choice of the Armbian devs to use 7z as their compression method (as opposed to say xz) added a extra step for new users (having to decompress the 7z file so the image can be written with Etcher).

@jdmarshall Excuse me? How has asking for 7z support to be added created a roadblock? Or do you perhaps mean the choice of the Armbian devs to use 7z as their compression method (as opposed to say xz) added a extra step for new users (having to decompress the 7z file so the image can be written with Etcher).

The latter. I get that new formats don’t get established if nobody uses them but maybe pick one your complements already handle.  Last time I did Pi stuff I ran into .rar files. Are you kidding me?  I haven’t seen a RAR file in ten years. If memory serves I had to use a trial version of some OS X payware to extract them.  I just want to play with the Pi, not get sucked into The Compression Wars (and I say that as someone who used to hang out on comp.compression)
It sounds like Armbian folks believe that Etcher the archive format can’t be read by etcher.  But I don’t think https://github.com/balena-io/etcher/blob/bdf920f86459d4ab63e62bd3b380f6c2d336ceac/docs/EXTENDED-ARCHIVES.md says that, does it?  Is this just a miscommunication?

True, since Etcher turned up on the scene (and Armbian was already established), things have been less than ideal. However, I for one don't expect Armbian to change just to suit Etcher users, since it's not that hard for you to download 7zip (free, open source, and supports ZIP, RAR, 7z, and many other compression formats) if you don't have it... and if that is hard... I really don't think I would want what to know what other problems you'd have.
The Extended Archives document is specifically about ZIP files, not tarballs (which actually don't appear to be supported), and is old documentation from 2016 that has been subsequently removed. In point of fact, I don't know how you're supposed to know what image format balenaEtcher supports outside of some random webpage tell you, looking through the source code, or download it just to see the tooltip popup (img, iso, zip, bin, bz2, dmg, dsk, etch, gz, hddimg, raw, rpi-sdimg, sdcard, wic, xz at present)... surprising omission from the FAQs! :-O
I do wonder if this is worth revisiting, as there are projects like https://www.npmjs.com/package/node-7z are looking pretty popular with some 2k+ downloads per week, and whilst it is still a wrapper for the binaries, it looks to be self-contained. Doing so would also open up RAR, XZ, Z, CAB, and other formats 7z natively supports.

whilst it is still a wrapper for the binaries, it looks to be self-contained.

I'm not an Etcher developer, but don't forget that it needs to run on 32-bit Windows, 64-bit Windows, 32-bit Linux, 64-bit Linux and macOS. https://github.com/balena-io/etcher/releases

Yup, which is why I suggested that package, since it can use a system installed 7zip (nice way to cheat), include the 7zip-bin npm package that is recommended, which provides binaries for Windows (32/64), Mac, and Linux (32/64/arm/arm64)... so anywhere Etcher runs AFAIK.


Feature/registration modified filtering [OSF-6686]

Purpose
To filter registrations by their date modified, particularly for API scraping.
Changes
Originally, the field had a HideIfWithdrawal serialization, which prevented the filtering. Product allowed removing this feature, so I did. It serializes normally now.
Side effects
Withdrawing the registration won't hide its last date modified
Unit tests had to be changed to allow date_modified in withdrawn registrations
Ticket
https://openscience.atlassian.net/browse/OSF-6686

Looks great. 🎉 🐧 🎉


fix: lock the semantic release toolchain to specific known working versions

Description
This pull request changes the following:

Locks the semantic release CLI toolchain to specific versions in order to resolve the failures encountered during the v0.8.0 release.

Related Issues

Closes #341

:tada: This PR is included in version 0.8.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


@rollup/plugin-commonjs before @rollup/plugin-babel

Hi! According to the @rollup/plugin-babel doc, the order of the plugins matter, if you are using the commonjs plugin alongside the babel plugin:

When using @rollup/plugin-babel with @rollup/plugin-commonjs in the same Rollup configuration, it's important to note that @rollup/plugin-commonjs must be placed before this plugin in the plugins array for the two to work together properly

When inspecting the output from this utility, the commonjs plugin is placed after the babel plugin in the plugins array.

Will be resolved in next release.

This is fixed with v4.0.5, closing.


Feature services aren't updated by GeoEvent Extension

I'm following the 2014 Q4 Ops Server installation guide. I'm on page 46 (marked as page 45) and trying to verify that the GeoEvent Extension is updating feature services. It is not updating them. The simulators are running, and the GeoEvent Extension manager page is showing inputs and outputs on the services, but neither the Operations/FriendlyOperations service nor the Operations/FriendlySituation services has any features in it. I checked the logs for GeoEvent Extension and ArcGIS for Server and couldn't find any clues when running just the FriendlyOperations simulator. I don't understand why GeoEvent Extension would say it is writing outputs if those outputs are not actually written to the feature service.

@pHill5136 my system has a really high specs where restarting the server and reaching the point where all outputs are in stopped state takes about 5-10 minutes, and I start the output connectors manually and it turns green successfully; so, I don't have a problem in this regards despite that I have to start them manually every restart time.
As of stopping the connectors update after a while, I also don't have this problem.
My problem is restarting the windows service for GeoEvent which would be either manually or by restarting the machine will directly stops output connectors updates despite that it showing green live status and this is for all update feature connectors; recreating the connector solves with the same parameters solves the problem till the next GeoEvent service restart, where I'll have to re-create the connector again.

I haven't not noticed that in my environment yet, but I suspect that it is related to the other issues we have been having.  I will attempt to replicate this today.  We have one of the GEE developers working on these issues and we have given him full access to our servers to diagnose (so far that has been the biggest impediment to troubleshooting the issue).
One thing from your side that may help is if you post this issue to the sp-geoevent alias.  If the GEE developers -who watch the alias pretty closely -  see that other people are having the same issues, it might expedite a solution.
-Patrick

@pHill5136 - added to the backlog: https://app.asana.com/0/22926133759983/31304190918340

This was resolved with the GEE Patch. Closing and updating Asana.


Please add .proxy(host, port, username, password) method to the request scope

There is Unirest.config().proxy(...) method which allows adding an authenticated Proxy
I need to be able to call Unirest.post(...).proxy(...)... and specify authenticated proxy per request, without setting the proxy for all requests in the whole app.
Please add a method accepting either username/password or the whole Proxy object.

People have asked for this before and unfortunately it is NOT possible because the proxy is part of the root client config and setting it per request would require each request to re-build the client which would destroy performance and cause a lot of thread flailing.

this is sort of complete in 3.14.0
you can try it, It takes a full "Proxy" object rather than the 4 params. I'm not convinced that it will actually pass the auth though, I'm pretty sure I tried that once upon a time and Apache wouldn't do it because the auth is only configurable on the full client and not per request, but give it a shot and let me know.
4.0.0-RC6 does not have this because the Java HttpClient doesn't have Proxy per request.


Next v6.0.0 babel plugin provided an invalid property of "default"

Ever since upgrading to Next 6 and trying to take advantage of the new _app.js file, I seem to have issues with having a .babelrc file. If I remove the .babelrc file everything works fine except for my mocha tests.
But keeping the file:
{
  "presets": [
    "es2015",
    "next/babel",
    "stage-2"
  ]
}

I get the following error:
Error: Plugin 0 specified in "/Users/dillonraphael/Desktop/REED/node_modules/next/babel.js" provided an invalid property of "default" (While processing preset: "/Users/dillonraphael/Desktop/REED/node_modules/next/babel.js")
This is my package.json:
"scripts": {
   "dev": "nodemon -w ./server --exec babel-node ./server/server.js --presets=es2015,stage-2",
   "build": "next build",
   "start": "next start",
   "test": "mocha --require babel-core/register --exit"
 },
 "dependencies": {
   "@zeit/next-sass": "^0.1.2",
   "dotenv": "^5.0.1",
   "express": "^4.16.2",
   "mongoose": "^5.0.8",
   "next": "^5.1.0",
   "next-images": "^0.10.1",
   "node-sass": "^4.9.0",
   "react": "16.2.0",
   "react-dom": "16.2.0",
   "renaissancecss": "^3.0.0"
 },
 "license": "ISC",
 "devDependencies": {
   "babel-cli": "^6.26.0",
   "babel-preset-es2015": "^6.24.1",
   "babel-preset-stage-2": "^6.24.1",
   "chai": "^4.1.2",
   "chai-http": "^3.0.0",
   "mocha": "^5.0.4",
   "nodemon": "^1.17.1"
 }

Same issue here.  Updated from 5.0.1-canary.15 to 6.0.0.
Next.js pages build successfully but all my tests fail to run with similar error as @dillonraphael 's and my Storybook also fails to build. Rolled back to 5.0.1-canary.15 for now.

I've updated to using babel-preset-env instead of babel-preset-es2015. So now my .babelrc file looks like this:
{
  "presets": [
    "env",
    "next/babel",
    "stage-2"
  ]
}

but @zeit/next-sass doesn't seem to be working. I'm getting a http://localhost:3000/_next/static/style.css 404 (Not Found)
This is my next.config.js:
const withImages = require('next-images')
const withSass = require('@zeit/next-sass')
require('dotenv').config()

module.exports = withImages(withSass({
  serverRuntimeConfig: {
    MONGOURL: process.env.MONGOURL
  }
}))

@maniart Check out http://babeljs.io/env

See https://github.com/zeit/next.js/issues/4227#issuecomment-385688144

@timneutkens @zeit/next-sass still not working though

same for me _next/static/style.css  gives 404

Was getting the same error after upgrading to Next v6 and Babel v7.
I changed -r babel-register in my mocha script to -r @babel/register and the error went away, but now I'm getting a different babel error:
import expect from 'expect';
^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:74:10)
    at Object.runInThisContext (vm.js:116:10)
    at Module._compile (module.js:537:28)
    at Module._compile (/Users/spark/rentals-www/node_modules/pirates/lib/index.js:91:24)
    at Module._extensions..js (module.js:584:10)
    at Object.newLoader [as .js] (/Users/spark/rentals-www/node_modules/pirates/lib/index.js:96:7)
    at Module.load (module.js:507:32)
    at tryModuleLoad (module.js:470:12)
    at Function.Module._load (module.js:462:3)
    at Module.require (module.js:517:17)
    at require (internal/module.js:11:18)
    at /Users/spark/rentals-www/node_modules/mocha/lib/mocha.js:231:27
    at Array.forEach (<anonymous>)
    at Mocha.loadFiles (/Users/spark/rentals-www/node_modules/mocha/lib/mocha.js:228:14)
    at Mocha.run (/Users/spark/rentals-www/node_modules/mocha/lib/mocha.js:514:10)
    at Object.<anonymous> (/Users/spark/rentals-www/node_modules/mocha/bin/_mocha:480:18)
    at Module._compile (module.js:573:30)
    at Object.Module._extensions..js (module.js:584:10)
    at Module.load (module.js:507:32)
    at tryModuleLoad (module.js:470:12)
    at Function.Module._load (module.js:462:3)
    at Function.Module.runMain (module.js:609:10)
    at startup (bootstrap_node.js:158:16)
    at bootstrap_node.js:598:3

.babelrc
{
  "presets": [
    [
      "next/babel",
      {
        "preset-env": {
          "modules": "commonjs"
        }
      }
    ]
  ],
  "plugins": [
    [
      "inline-react-svg",
      {
        "svgo": false
      }
    ]
  ],
  "env": {
    "test": {
      "sourceMaps": "inline",
      "plugins": [
        "rewire"
      ]
    }
  }
}

package.json
{
  "scripts": {
    "test": "BABEL_ENV=test mocha -r @babel/register -r test/config/unit-setup.js 'src/**/*test.js'"
  },
  "dependencies": {
    "@babel/cli": "7.0.0-beta.44",
    "@babel/core": "7.0.0-beta.44",
    "babel-plugin-inline-react-svg": "^0.4.0",
    "babel-plugin-rewire": "^1.1.0",
  },
  "devDependencies": {
    "@babel/register": "^7.0.0-beta.49"
  }
}

Earlier this week I was was running into the same issue trying to get jest up and running, mocha ran into the same problem. Got back to it today and just doing a copy/paste of the "with-jest" example babelrc and package.json's relevant dev dependencies worked for me, which is odd because thats the first thing I tried earlier this week but I got this error.


Fix incorrect storing key for core resources

Description
There's a bug where apps can't watch for core resources, because these aren't stored under proper key $apiVersion~~$kind, whereas it should be stored as core~$apiVersion~$kind. This is caused by splitting the groupVersion by /, but if no such string is found within the groupVersion it means it's just a version. So let's prepend this string with / if not found to properly split the string.
Since we are using batched requests let's pull for core ones first as they can't be properly sorted and are somewhat crutial to apps.

/lgtm

/lgtm

/approved

/approve

Codecov Report

Merging #128 (8e4e50e) into main (39318c7) will decrease coverage by 0.74%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #128      +/-   ##
==========================================
- Coverage   17.87%   17.12%   -0.75%
==========================================
  Files          40       40
  Lines        1382     1477      +95
  Branches      354      388      +34
==========================================
+ Hits          247      253       +6
- Misses       1135     1224      +89

Impacted Files
Coverage Δ

packages/lib-utils/src/app/api-discovery/index.ts
0.00% <0.00%> (ø)

...lib-utils/src/app/api-discovery/discovery-cache.ts
0.00% <0.00%> (ø)

...ib-utils/src/components/table/VirtualizedTable.tsx
0.00% <0.00%> (ø)

...tils/src/components/list-view/ListView.stories.tsx
0.00% <0.00%> (ø)

...tils/src/components/table/VirtualizedTableBody.tsx
0.00% <0.00%> (ø)

...es/lib-utils/src/components/list-view/ListView.tsx
1.98% <0.00%> (+1.98%)
:arrow_up:

packages/lib-utils/src/k8s/k8s-utils.ts
26.49% <0.00%> (+2.38%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us.


Ocean theme seems resolved. Dark has a regression

Summary of changes 🔍

Update neutralTertialAlt from a near black to a grey used when adding map key is disabled.
Before:

After:

Testing 🧪

[ Add any special instructions needed to test or view your changes such as environment URLs or other config details. ]

Checklist ✔

[ ] Linked associated issue (if present)
[x] Added relevant labels
[ ] Requested developer reviews
[ ] Request UI review from design / PM
[ ] Verify all code checks are passing

For issue #514


Feat/cc expression parsing

Codecov Report

Merging #76 (f129989) into main (320d9c4) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #76   +/-   ##
=======================================
  Coverage   61.64%   61.64%
=======================================
  Files          82       82
  Lines        2988     2988
=======================================
  Hits         1842     1842
  Misses       1146     1146

Continue to review full report at Codecov.

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


test a pipeline does not show the output of the adapter

Describe the bug
When using test a pipeline (in this case with JSON output)
it returns {"binary":false,"empty":false}
instead of the output of the pipeline
Reporter
Jjansenvr
Category

Frank Framework / console

To Reproduce
use a adapter with a api listener with json output and use test a pipeline
Expected behavior
i would expect the output of the adapter instead of {"binary":false,"empty":false}
Screenshots
Environment:

Application server (WebSphere)
FF! 7.6-20200622.103044:

I am having a similar issue. In my case, the output is not JSON but just a number. The similarity is that I see the correct output in Ladybug, while in Test Pipeline I see "{"binary":false, "empty":false}" (I typed this over, do not search for this literally). I observed that I do not have this issue with older issues of the FF!. I am trying different versions now (binary search) to see which version introduces the issue.

I found which FF! version introduced the issue:
7.6-20200619.094149 OK
7.6-20200619.153012 NOT OK

Should be solved in PR #864

Verified.


Coverity: fix redcard/yellocard comments

The logic error made all non-redcard PRs get redcards.
Fixes #599
Signed-off-by: MyungJoo Ham<EMAIL_ADDRESS>

:memo: Version: 1.3.20190927. Thank you for submitting PR #600. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnsuite.mooo.com/.

INFO: You can read if there are syntax errors in the our shellcheck report. Please read http://nnsuite.mooo.com/TAOS-CI/ci/repo-workers/pr-checker/600-201912031909040.084243059158325-405c52829abcf69d29dc57c20ec16b614f5d2815/report/shellcheck_syntax_result.txt.


[DRAFT] Basemap Viewer Fixes

Addresses outstanding bugs and UI tweaks related to the Offline Basemap Viewer UI.
Fixes #610

@scolsen Gentle ping!

Fixes #611, #612

Fixes #613


Is it possible UPSCALE image? Not resize but make it bigger then original size?

Hi there! The internet is full of examples how to resize or downscale image... but is it possible UPSCALE image? Not resize but make it bigger then original size?
Thank you!

It seems like i just works as it is... set width and height to bigger dimension and save.


Fresh macos install using brew shows errors

Describe the bug
Clean install using brew is throwing errors, I'm probably doing something silly as I don't have a full understanding of what's going on just following the readme
To Reproduce
Install, use instructions
$ brew reinstall zplug
==> Downloading https://ghcr.io/v2/homebrew/core/zplug/manifests/2.4.2
Already downloaded: ~/Library/Caches/Homebrew/downloads/51fe0f48541fcfef0c26996bac2ddbd84843916b8bf1162984b3f7a8b7cfda12--zplug-2.4.2.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/zplug/blobs/sha256:88f086071ba188267046f170817aee4ad59fcdd9d9b7ad183b639306c5b8ef29
Already downloaded: ~/Library/Caches/Homebrew/downloads/20953c4bdecc7822ca4ba711b64de0b13cb072e8c7c6eee9e2cd463bcef9495e--zplug--2.4.2.all.bottle.tar.gz
==> Reinstalling zplug
==> Pouring zplug--2.4.2.all.bottle.tar.gz
==> Caveats
In order to use zplug, please add the following to your .zshrc:
  export ZPLUG_HOME=/opt/homebrew/opt/zplug
  source $ZPLUG_HOME/init.zsh
==> Summary
🍺  /opt/homebrew/Cellar/zplug/2.4.2: 198 files, 370.0KB

Add to ~/.zshrc
export ZPLUG_HOME=/opt/homebrew/opt/zplug
source $ZPLUG_HOME/init.zsh

Open new terminal window
__zplug::core::load::from_cache:12: no such file or directory: /opt/homebrew/opt/zplug/cache/fpath.zsh
__zplug::core::load::from_cache:source:17: no such file or directory: /opt/homebrew/opt/zplug/cache/plugin.zsh
__zplug::core::load::from_cache:source:18: no such file or directory: /opt/homebrew/opt/zplug/cache/lazy_plugin.zsh
__zplug::core::load::from_cache:source:19: no such file or directory: /opt/homebrew/opt/zplug/cache/theme.zsh
__zplug::core::load::from_cache:source:20: no such file or directory: /opt/homebrew/opt/zplug/cache/command.zsh
__zplug::core::load::from_cache:source:23: no such file or directory: /opt/homebrew/opt/zplug/cache/defer_1_plugin.zsh
__zplug::core::load::from_cache:source:29: no such file or directory: /opt/homebrew/opt/zplug/cache/defer_2_plugin.zsh
__zplug::core::load::from_cache:source:30: no such file or directory: /opt/homebrew/opt/zplug/cache/defer_3_plugin.zsh

Env (please complete the following information):
$ zplug --version
2.4.2
$ zsh --version
zsh 5.8 (x86_64-apple-darwin21.0)
$ uname -a
Darwin [computername] 21.1.0 Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:01 PDT 2021; root:xnu-8019.41.5~1/RELEASE_ARM64_T6000 arm64

Minimal zshrc (with less than 30 lines)
Posted above
Additional context
Am on a M1 macbook pro

I have a similar issue. I tried to:

Uninstall from brew, and reinstall using the curl script. The issue is still here.

My .zshrc config is quite minimal:
# Install plugins if there are plugins that have not been installed
if ! zplug check --verbose; then
    printf "Install? [y/N]: "
    if read -q; then
        echo; zplug install
    fi
fi

# Then, source plugins and add commands to $PATH
zplug load --verbose

Which give me:
[zplug] Loaded from cache (/opt/homebrew/opt/zplug/cache)
__zplug::core::load::from_cache:12: no such file or directory: /opt/homebrew/opt/zplug/cache/fpath.zsh
__zplug::core::load::from_cache:source:17: no such file or directory: /opt/homebrew/opt/zplug/cache/plugin.zsh
__zplug::core::load::from_cache:source:18: no such file or directory: /opt/homebrew/opt/zplug/cache/lazy_plugin.zsh
__zplug::core::load::from_cache:source:19: no such file or directory: /opt/homebrew/opt/zplug/cache/theme.zsh
__zplug::core::load::from_cache:source:20: no such file or directory: /opt/homebrew/opt/zplug/cache/command.zsh
__zplug::core::load::from_cache:source:23: no such file or directory: /opt/homebrew/opt/zplug/cache/defer_1_plugin.zsh
[zplug] Run compinit
__zplug::core::load::from_cache:source:29: no such file or directory: /opt/homebrew/opt/zplug/cache/defer_2_plugin.zsh
__zplug::core::load::from_cache:source:30: no such file or directory: /opt/homebrew/opt/zplug/cache/defer_3_plugin.zsh

I've also tried to use ZPLUG_USE_CACHE=false but doesn't seems to help:
19:29:21|➜  ~ ZPLUG_USE_CACHE=false zplug load
__zplug::core::load::from_cache:12: no such file or directory: /opt/homebrew/opt/zplug/cache/fpath.zsh
__zplug::core::load::from_cache:source:17: no such file or directory: /opt/homebrew/opt/zplug/cache/plugin.zsh
__zplug::core::load::from_cache:source:18: no such file or directory: /opt/homebrew/opt/zplug/cache/lazy_plugin.zsh
__zplug::core::load::from_cache:source:19: no such file or directory: /opt/homebrew/opt/zplug/cache/theme.zsh
__zplug::core::load::from_cache:source:20: no such file or directory: /opt/homebrew/opt/zplug/cache/command.zsh
__zplug::core::load::from_cache:source:23: no such file or directory: /opt/homebrew/opt/zplug/cache/defer_1_plugin.zsh
__zplug::core::load::from_cache:source:29: no such file or directory: /opt/homebrew/opt/zplug/cache/defer_2_plugin.zsh
__zplug::core::load::from_cache:source:30: no such file or directory: /opt/homebrew/opt/zplug/cache/defer_3_plugin.zsh

Hi @avallete
did you found a fix for this issue ?

Hi @avallete
did you found a fix for this issue ?

Hey there, sadly no.

I had the exact same issue, I fixed this by running zplug clear (worked with manual and brew install)

Same issue here, happening on a fresh install with brew on an Ubuntu machine (zplug clear didn't fix anything, unfortunately)


Fix 'rake sample:demo'

'rake sample:demo' from api repo fails with the following error.
NoMethodError: undefined method `product_id=' for #<Null::Service:0x00000009dd40b0>
Did you mean?  product=
<EMAIL_ADDRESS>  /attribute_methods.rb:433:in `method_missing'
/home/jellyfish/Documents/api/lib/tasks/sample.rake:94:in `block (5 levels) in <top (required)>'
/home/jellyfish/Documents/api/lib/tasks/sample.rake:91:in `tap'
/home/jellyfish/Documents/api/lib/tasks/sample.rake:91:in `block (4 levels) in <top (required)>'
 /home/jellyfish/Documents/api/lib/tasks/sample.rake:85:in `map'
/home/jellyfish/Documents/api/lib/tasks/sample.rake:85:in `block (3 levels) in <top (required)>'
/home/jellyfish/Documents/api/lib/tasks/sample.rake:5:in `block in sample_data'
/home/jellyfish/Documents/api/lib/tasks/sample.rake:5:in `each'
/home/jellyfish/Documents/api/lib/tasks/sample.rake:5:in `sample_data'
/home/jellyfish/Documents/api/lib/tasks/sample.rake:79:in `block (2 levels) in <top (required)>'
/home/jellyfish/.rvm/gems/ruby-2.3.0@jellyfish/bin/ruby_executable_hooks:15:in `eval'
/home/jellyfish/.rvm/gems/ruby-2.3.0@jellyfish/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => sample:demo
(See full trace by running task with --trace)

Have you run the following rake tasks before attempting 'rake sample:demo'?
rake db:setup
rake db:seed

I have done all that. Even the model specs were failing after you clone the repo from this url
 git clone https://github.com/projectjellyfish/api.git.

Is the error not reproducing for you? Am I missing something? I have managed to fix it in the meanwhile by adding these two migrations and ran rake db:migrate which fixed the failing model specs and the above error.
rails g migration RemoveColumnFromOrder product_id:integer service_id:integer
rails g migration AddColumnToService product_id:integer order_id:integer

Looks like you are cloning the wrong repo, could you please give this one a try:
https://github.com/boozallen/projectjellyfish.git
Chris

Tried with cloning this repo, rspec models are passing but the above error still persists.

@railsmith can you please cut and paste the error you are now seeing?

NoMethodError: undefined method `product_id=' for #<Null::Service:0x00000009b096a0>
Did you mean?  product=
/home/jellyfish/.rvm/gems/ruby-2.3.0@jellyfish/gems/activemodel-4.2.3/lib/active_model/attribute_methods.rb:433:in `method_missing'
/home/jellyfish/Documents/projectjellyfish/lib/tasks/sample.rake:94:in `block (5 levels) in <top (required)>'
/home/jellyfish/Documents/projectjellyfish/lib/tasks/sample.rake:91:in `tap'
/home/jellyfish/Documents/projectjellyfish/lib/tasks/sample.rake:91:in `block (4 levels) in <top (required)>'
/home/jellyfish/Documents/projectjellyfish/lib/tasks/sample.rake:85:in `map'
/home/jellyfish/Documents/projectjellyfish/lib/tasks/sample.rake:85:in `block (3 levels) in <top (required)>'
/home/jellyfish/Documents/projectjellyfish/lib/tasks/sample.rake:5:in `block in sample_data'
/home/jellyfish/Documents/projectjellyfish/lib/tasks/sample.rake:5:in `each'
/home/jellyfish/Documents/projectjellyfish/lib/tasks/sample.rake:5:in `sample_data'
/home/jellyfish/Documents/projectjellyfish/lib/tasks/sample.rake:79:in `block (2 levels) in <top (required)>'
/home/jellyfish/.rvm/gems/ruby-2.3.0@jellyfish/bin/ruby_executable_hooks:15:in `eval'
/home/jellyfish/.rvm/gems/ruby-2.3.0@jellyfish/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => sample:demo

Running my migrations fixes the issue.

Yes, did you run first?
rake db:setup
rake db:seed

Yes, I did ran those first.

@mafernando any thoughts on this?

Closing this ticket.  This is no longer part of the work build process in develop, and we'll be promoting in a day or so.


Merge evaluation arguments between processor and hash coprocessor

Since inputs to and outputs from the hash coprocessor are written in exactly one order – namely in_0, out_0, in_1, out_1, and so on – we can use one evaluation argument serving as a bidirectional bus to connect the processor with the hash coprocessor.

Consider a program where one execution of instruction hash is directly followed by another instruction hash. The first instruction reads from the (one) bus between processor and has coprocessor, while the second instruction needs to write to the same bus. Allowing for this special case in the AIR adds a lot of (mental) complexity for little benefit.
Closing as wontfix.


Customers

Many ecommerce stores allow the customer to sign up with orders being linked to them.
I'm thinking of adding a new model - Shoppe::Customer - which will any orders will be linked to. Adding this new model will allow the customer to have some saved addresses (when this is added) as well as payment methods (again, when it's added).
Thoughts?

#167 has been merged so I'm closing this


The destructor of the algorithm base class is not a virtual function.

The destructor of the algorithm base class is not a virtual function, so the inherited class is not released correctly.

https://github.com/kancve/mr4c


Build with Isocline failed

history.c
line 13 #include <termios.h>
termios.h should be included unconditionally:
Old:

#include <termios.h>
#endif

New:

#endif
#include <termios.h>

Interesting. Unfortunately, I'm confined to Linux and have no Windows or Mac.
Many thanks!


File name tab

Type: Bug
Sometime ago, while editing an already saved file, one would know if the file had been changed in the session, because the edit name tab would show a white dot to the right of the name tab, instead of an X.
Also, if I wanted to close a file with changes, Visual Studio would alert that the changes had not been saved.
Linux is not alerting. Is my responsability to save it always.

VS Code version: Code 1.86.1 (31c37ee8f63491495ac49e43b8544550fbae4533, 2024-02-07T09:07:19.849Z)
OS version: Linux x64 6.1.64-09049-g010fe86d9eae
Modes:

System Info

Item
Value

CPUs
Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz (4 x 2592)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
1, 1, 0

Memory (System)
6.43GB (5.88GB free)

Process Argv
--unity-launch --crash-reporter-id a5609e06-42af-4e99-96a0-b7ae3709ea24

Screen Reader
no

VM
100%

DESKTOP_SESSION
undefined

XDG_CURRENT_DESKTOP
X-Generic

XDG_SESSION_DESKTOP
undefined

XDG_SESSION_TYPE
undefined

Extensions: none
A/B Experiments
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492cf:30256860
vscoreces:30445986
vscod805:30301674
binariesv615:30325510
vsaa593cf:30376535
py29gd2263:30899288
vscaat:30438848
c4g48928:30535728
azure-dev_surveyone:30548225
a9j8j154:30646983
962ge761:30959799
pythongtdpath:30769146
welcomedialog:30910333
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
pythontestfixt:30902429
pythonregdiag2:30936856
pyreplss1:30897532
pythonmypyd1:30879173
pythoncet0:30885854
pythontbext0:30879054
accentitlementst:30887150
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
pydisww1:30959800
b1063948:30958189
3ef8e399:30964150
bg6jg535:30958357

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.86.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

/needsMoreInfo
Do you have Auto Save enabled?

Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.
Happy Coding!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Select-All is wonky

Run MissingArt where there is missing art. Select All.
Effect: The app slows down, getting a spinning cursor. The window grows taller. The DescriptionList "overlays" the title bar. Not everything appears to be selected. The multi-selection detail view does not scroll with all the items it must show.

Fixed by #246


Fixes #74

Compared to #73, it fixes all twig functions

Thank you!

Well thank you for your package too ! :)


Fix/27634: Improve private notes flow

Details

Improvements to private notes

Fixed Issues

$ https://github.com/Expensify/App/issues/27634
PROPOSAL: https://github.com/Expensify/App/issues/27634#issuecomment-1778634010
Tests

a. Case 1: User did not have not in report yet

Open expensify app
Open any report
Open report detail screen
Click on "Private notes"
User is navigated to edit note screen
Click on save, user is navigate to report detail screen

b. Case 2: User already had a note  in report

Open expensify app
Open any report
Open report detail screen
Click on "Private notes"
User is navigated to private note list screen
Click on the current user `s private note, user is navigated to edit note screen

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

Offline tests

QA Steps

a. Case 1: User did not have not in report yet

Open expensify app
Open any report
Open report detail screen
Click on "Private notes"
User is navigated to edit note screen
Click on save, user is navigate to report detail screen

b. Case 2: User already had a note  in report

Open expensify app
Open any report
Open report detail screen
Click on "Private notes"
User is navigated to private note list screen
Click on the current user `s private note, user is navigated to edit note screen

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

PR Author Checklist

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

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

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

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native

Screencast from 15-11-2023 18:11:41.webm

Android: mWeb Chrome

Screencast from 15-11-2023 16:57:26.webm

iOS: Native

iOS: mWeb Safari

Screencast from 15-11-2023 18:03:45.webm

MacOS: Chrome / Safari

Screencast from 15-11-2023 15:28:20.webm

MacOS: Desktop

Screencast from 15-11-2023 17:23:43.webm

@DylanDylann Please update the branch with the latest main testing...

@DylanDylann, I have noticed an issue. When we try to delete some private notes by setting them to empty and then save, it unexpectedly redirects back to edit mode. Could you please look into this?
cc: @techievivek, what expected behaviour should be in this case?
https://github.com/Expensify/App/assets/24796318/1311ae9b-94c5-4fcf-958f-ff6cc925c59b

We would take them to the details page or profile page, whichever page they came from? CC @trjExpensify for cross-checking.

Yeah, interesting. I say return to the profile page if there's no notes to preview upon deleting one.

@ArekChr Just updated the PR. Please help check.

Merge the latest branch.
Handle case "Return to the profile page if there's no notes to preview upon deleting one."

@DylanDylann, I've encountered a new regression issue. When accessing Private Notes via a deep link, the app unexpectedly re-opens the Private Notes after entering and saving a note.
Steps to Reproduce:

Open any Private Note.
Copy the link for editing.
Delete the Private Note from input and save.
Log out of the app.
Paste the copied link.
Log back in.
Enter data in Private Notes and hit 'Save'.

After these steps, the input field for Private Notes appears again, which seems unintended.
This issue is not reproducible on staging.
https://github.com/Expensify/App/assets/24796318/93718d72-ab0f-468a-bbb7-1de619ae45c9

@ArekChr Updated PR to fix the issue you`ve mentioned.

RCA: After saving the private notes, it will navigate to the private notes list page but the first time the useEffect `s callback is called, the private notes list is still empty, which leads to navigating back to the edit page
Solution: Use setimeout to delay 300ms before deciding whether the private notes list is empt or not
Result:

Screencast from 21-11-2023 11:54:32.webm

@ArekChr Currently, the initial private note is something like {123456: {note: ''}}. So, I am not sure whether changing the initial value to undefined leads to regression or not

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@DylanDylann please update with latest main

@ArekChr Fixed all your comments and merge latest main, please help check

@DylanDylann, after removing private notes and opening other private notes that are not empty, the app redirects us to edit private notes, but should it redirect us to the private notes list?
https://github.com/Expensify/App/assets/24796318/43a39126-ee4a-420e-99a3-b2152b30f576

@ArekChr It seems that I cannot reproduce the bug that you mentioned https://github.com/Expensify/App/pull/31344#issuecomment-1827506051. Here is the steps:

Make sure we have 2 report A and B with private notes
Open report A => report A `s detail page => private notes => remove private notes
Open report B => report B s detail page => private notes => it will navigate user to report B s private notes list (expected)

Retesting

Will test this today.

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

Issue found here while testing. Can you fix the code for this case @DylanDylann? More details here.

🚀 Deployed to production by https://github.com/mountiny in version: 1.4.6-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

We just resolved an issue that seems to be present since the update of PrivateNotesListPage.js here, where it was added <Text ... 'privateNotes.personalNoteMessage .... This <Text .. should be added inside the <ScrollView to "roll along"


[FEATURE REQUEST] Allow exporting of transactions between dates

My adult son unfortunately was tragically injured by a third party leaving him needing 24 hour care and unable to work, he also doesn’t have capacity to manage his own affairs.  He was awarded compensation to cover his care and living expenses.  He has an annual budget and I use YNAB to manage this.  I record all his transactions via YNAB and at the end of each month I am required to send a report to his trustees (who oversee his funds) detailing all his income and expenditure, ie, his transactions for the month.  I can't simply send a bank statement as the transations for the month are incurred some from his account, some from mine and some from PayPal.  The only way for me to export all the transactions on YNAB is to export the entire budget into Excel and then go through and delete all the transactions which are not part of the month I am submitting his transations for.  At the beginning of the year this is not such a pain but by December…!  Also allows human error to creep in.  If there was a way to export all transactions within a time frame it would be so helpful.  Unfortunately the Income v Expenditure report does not give the granular detail the trustees require.
Describe the solution you'd like
The ability to export all transactions within a designated time period.
Describe alternatives you've considered
Currently exporting all transaction and deleting the ones not needed.  I cannot find any other work around.
Thanks
Emma

We use Trello to track Feature Requests so that users can vote on what they'd like to see next. This is crucial for us since there are so many requests and so little time amongst those of us who work on the Toolkit.
Your feature request has been added here and will need to be manually sorted.
This issue can now be closed.


Is there a way to get a pre-programmed SIM card?

Hi,
I want to use CoIMS to enable VoLTE on my Pixel 7 phone (for Austrian carriers) but I don't have writable SIM cards nor a SIM programmer.
Would it be possible to buy a pre-programmed SIM card somehow?

Not sure. But IMO you would need a SIM programmer and certain SIM related keys to push the SHA1 certificate atleast

All I need is just a SIM where the SHA1 certificate is already programmed. To avoid buying a programmer I was wondering if someone offers a "flashing/programming" service.

Ah I see. If you were in Germany I would have helped (need to also check the availability of SIM cards at Sysmocom). If not, let see other community member may help.

I live in Austria, does that count? The shop lists sim cards, but only 10 packs.  Do you know if it is possible to buy single sims?

I remember seeing listing on Amazon.com (US Website) and they provided only one SIM card and it was expensive.
If you can cover the postal charges, I should have a spare SIM card which I could send you. We can talk via email for coordination (in my github profile).