[REEF-714] Service to report REEF events

This addressed the issue by

Create avro schema which wrap all driver-side event types of REEF control flow
Create Watcher that subscribes control flow events and transfer them to EventStream
Create LogEventStream and FileEventStream

JIRA:
REEF-714

We can test Watcher Service by merging WatcherConfiguration.CONF.build() to the driver configuration in client code. Thanks.

@gwsshs22 This is multiple commits. Could you please rebase first? Thanks!

I've rebased the commits, thanks.

Thanks! I'll take a first pass.

@gwsshs22 Done with my pass. This looks good in general. Please add annotations where appropriate though, seems like some of these classes aren't meant to be exposed to users. Also, could you please add a few E2E tests or unit tests to ensure that everything is working properly?

@gwsshs22 Done with my pass. This looks good in general. Please add annotations where appropriate though, seems like some of these classes aren't meant to be exposed to users. Also, could you please add a few E2E tests or unit tests to ensure that everything is working properly?

A side note: Reading the code made me wonder whether the schemas introduced here deserve some more attention. For example: Would it make sense for us to use them also in the Bridge? Or maybe a way to retire our protobuf based wire protocols between Client, Driver and Evaluator? If we want to go down that path with a unified set of schemas, it might make sense to move them into their own project, shared between C# and Java.
Anyway, this looks good and should go in once @afchung's comments have been addressed.

@gwsshs22 I did another pass.

Thank you for the reviews! I'll address all your comments soon.

Sorry for late update.
I've address all your comments except adding tests, @afchung. I will add the tests and let you know when I done.
@markusweimer , I agree with avro based files should be placed in the other package, though Wathcer looks better to be in the reef-io package, that can be shared by Java, C# and bridge. But I don't fully understand how the reef-bridge packages work at this point. Do you think the avro based files should be replaced? If so, where would be the best place?
I believe whether the new classes should substitute existing proto-buf-based classes needs to be discussed more on another channel, separately progressing this PR.
Thanks.

@gwsshs22 Will you be adding tests in this PR? I'll do my second review after you're done. Thanks!

I've pushed a new commit containing a test, @afchung .Thanks.

(a comment completely unrelated to the main code review)
Can you please merge this PR with latest master? Both Jenkins and Travis checks fail due to Findbugs bugs in reef-io, but I can't reproduce this locally because your code branched out of master before pre-existing bugs were fixed (and even before Finbugs was configured).

I've merged the branch with master. @tcNickolas

There are indeed high-priority warnings in new code. Please fix them, build won't pass if you don't. https://cwiki.apache.org/confluence/display/REEF/Contributing describes how to run Findbugs, https://issues.apache.org/jira/browse/REEF-768 fixed similar ones

I've fixed bugs from Findbug. Thank you for your detailed information, @tcNickolas  :).
I am ready for next round  @afchung . Thanks

@gwsshs22 I've done a second pass. Only a few minor comments. +1 from me after addressing these. Thanks!

I've addressed all your comments exception one, whether or not to add private constructors to all handlers in Watcher. I think it's ok to omit the constructors of inner handler classes but I'm not sure. Thanks. @afchung  @markusweimer

@markusweimer @tcNickolas I will test and merge after you sign off. Thanks!

My interest was limited to Findbug violations, which have been fixed. Current check failures are unrelated to it (and should be fixed one this is merged with master which has the fix). I sign off

@gwsshs22 Is this ready to be merged?

@bgchun . Yes, I've checked that it passes all tests after merging into master. The fails came from problems in reef-tests, which have been resolved.

@afchung Do you mind if I test and merge this PR?

@bgchun I was originally waiting on @markusweimer 's sign off, but it looks like this is ready to be merged.

@afchung Thanks.
@markusweimer Do you sign off?

I'm +0 on merging this.
My remaining concerns are philosophical, not related to the code: This PR adds Avro schemas that almost, but not fully, duplicate the protobuf messages used between Driver and Evaluators. They also almost, but not completely, duplicate the messages exchanged between C# and Java in the C# Driver.
I'm concerned about the long-term maintainability of this.
We should have a discussion about evolving these three copies of essentially the same schemas into one coherent set, maybe a new subproject reef-schemas or such.

@markusweimer Thanks for the input. May I ask you a concrete suggestion to fix this PR to make your vote +1?

There is none. Go ahead and merge this, as it is a net improvement on REEF. My concerns need to be addressed more longer term, if at all.
If you want to do one thing, mark all of the new public types in here as @Unstable. That way, we are not beholden to them if and when we get around to unifying the schemas.

Agree with @markusweimer.
@gwsshs22 Please add the @Unstable and I'll test and merge. Thanks!

I've added Unstable annotations to public classes in alll reef.io.watcher, thanks @afchung

@gwsshs22 Thanks! I will test and merge.


[Feature Request] Element properties as pre-defined set or by element template

Possibly related to #339
Hello,
as also remarked in https://forum.archimatetool.com/index.php?topic=187.0 I think it would be usefull if Archi would provide in a way to define a standard set of properties for an element.
I see 2 possible solutions/scenarios:
a ) Define a set of properties that get applied on an element.
In this case one would need to manage multiple sets of properties.
b) "subtype" an element by means of adding a particular set of properties. This element should not conflict with the archimate standard! It should only add a set of properties that is standard for the subtype.
In my opinion b) is the prefered way as it avoids managing sets of properties.
Different subtypes can have different set of properties.
Note element inheritance migth allow for adding properties from multiple parent elements.
Ideally properties would be flagged as mandatory, in which case a "Validate Model" should indicate which mandatory properties do not have a value.
#339 is different in that it asks to edit multiple elements 1 one go. But possibly this is a different solution to the desire to add a standard set of properties to an element.
best regards,
Ruben

Hello Hervé, Jean-Baptiste,
thank you for the feedback.
I will have a look at the plugins.
Best regards,
Ruben
On Wed, Jan 16, 2019 at 11:25 PM Hervé Jouin<EMAIL_ADDRESS>wrote:

Hi Ruben,
Your request is exactly what we discussed with JB few month ago:
specialization in archi should provide a set of required properties plus
visual configuration (color, border, specific icon, ...).
For personal reasons, I'm less active on Archi at the moment but it is
definitely in my backlog.
At the moment, as JB suggests, you can mix my two existing plugins:

the Form https://github.com/archi-contribs/form-plugin plugin
allows you to present and update properties through forms (text zones,
check boxes, drop down lists, ...)
the Specialization
https://github.com/archi-contribs/specialization-plugin plugin that
allows to replace the standard Archimate icon by any icon or image of your
choice.

Please do not hesitate to open an entry in the Archi forum or on my
plugins' Github should you need assistance in order to install or configure
these plugins.
Best regards
Hervé
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/archimatetool/archi/issues/430#issuecomment-454967605,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHcU7hd5pC_l3CE_8zfR6bwkfbTsJp8Wks5vD6bdgaJpZM4aDE5u
.


refactor: Refactor function signatures to always enforce (arr_len, len) -> ....

in the words of @ClementWalter :

back to the code, is there a reason why we just used everywhere arr, arr_len and not arr_len, arr as it is supposed to be the case at least for argumenst in calldata

I think that  arr_len, arr is better because:

it’s consistent with the calldata way
arrays in solidity are encoded like that: basically in solidity we would just have arr: felt* and [arr] = arr_len (maybe this could also be adapted for cairo 1.0 ?)```

in short my point:

we need to do always the same to have a standard for this question
cairo in some contexts enforce arr_len, arr
solidity uses len, values in its internal encoding scheme
=> we should do this everywhere, ie putting the lenght of an array before the array```

Good first issue

Hi, can I work on this issue?

@ptisserand sure!

I was wondering if I have also to change this kind of helpers:
func bytes_i_to_uint256{range_check_ptr}(val: felt*, i: felt, res: Uint256) -> Uint256
into
func bytes_i_to_uint256{range_check_ptr}(arr_len: felt, arr: felt*, res: Uint256) -> Uint256


fixed issue with reading annotations without args attr

@bendichter @weiglszonja Quick hotfix needed for running nwb-conversion-tools when the annotation types don't have internal args attribute.

@CodyCBakerPhD thanks for fixing this. Two things here:

Let's start adding tests. I have written a small test illustrating how we should start. It does not cover every edge-case of the function, but ensure that the main usage is working.
I think there is a more elegant way to solve this- I don't like putting a single annotation in a 1-element list and then treating it as a list- but this code works and it's relatively urgent so I'll merge this and we can make it prettier later.

@bendichter

Are these tests currently setup for a continuous integration system, or would they just have to be run manually? Either way it's definitely a great thing to start doing for situations just like these.
2, Agreed, I'll open a draft to clean it up here in a bit.

@CodyCBakerPhD good question. They would work for CI, but importing CEDRecordingExtractor fails rn pending a release of spikeextractors. As soon as that is released, we can start using CI properly. Another option if we did't want to wait would be to point the pip install to the dev branch of spikeextractors. Alessio says he can get a release out within the week so I'd rather just wait in this case.


--failOnRequired/--failOnWarning interact in surprising way

I read the help docs:
$ npx<EMAIL_ADDRESS>docker --help
Usage: fedtest docker [options]

Start supergraph using Docker Compose

Options:
  --compose <docker-compose.yaml>  Path to docker compose file
  --debug                          debug mode with extra log info
  --failOnRequired                 boolean flag to indicate whether any failing required test should fail the script.
  --failOnWarning                  boolean flag to indicate whether any failing test should fail the script.
  --format <json|markdown>         optional output file format (choices: "json", "markdown", default: "markdown")
  -h, --help                       display help for command
  --path <path>                    GraphQL endpoint path (default: "")
  --port <port>                    HTTP server port (default: "4001")
  --quiet                          suppress logging to minimum
  --schema <schema.graphql>        Path to schema file

...and thought "I want my script to fail on both required tests and for any test", and proceeded to run with --failOnRequired --failOnWarning.  However, I discovered that --failOnWarning is ignored in this case.
It looks like the culprit is here:
https://github.com/apollographql/apollo-federation-subgraph-compatibility/blob/e952694dccc80584c18366766e459fc7d86f206f/packages/compatibility/src/compatibilityTest.ts#L61-L67
If --failOnRequired is set, --failOnWarning is silently ignored. Since --failOnWarning is a stricter flag, it seems like it should be checked first.  (And I realize now that I don't need to provide both.)

Thanks for raising this! Indeed the checks should be reversed so it works consistently if both flags are provided. Do you mind opening up a PR with a fix?


Provide Value Date In Magento

https://support.wallee.com/hc/en-us/articles/360019053399-How-to-get-bank-transactions-via-the-API- talks about integrating Magento 2 / Wallee with an ERP system. For invoice payments (and others as well), Wallee already transfers some data from Wallee to Magento:

However, in order to properly integrate Magento with the ERP system, we need to also have the value date of the respective bank transaction. Would you be able to also transfer the value date of the bank transaction from Wallee to Magento as well? We could of course talk to the Wallee API ourselves and get it, but I would prefer the plugin doing this by default :)
Background: We import CAMT files from the bank into Wallee to mark invoices as paid. However, a common case is that the payment is done yesterday, but the respective CAMT file is only imported today. Then, it looks like the payment has been done today, even though it has been done yesterday already. This leads to a date mismatch, so that we get issues on the ERP-side.

Thanks, @theodorspringwallee! Did you get any feedback already?

Dear sprankhub
I assume it will take another 1-3 weeks, till our product owners have a decision here.
Best regards

Any news, @theodorspringwallee? Thanks!

Any news by now, @theodorspringwallee? Thanks!

Dear sprankhub
Unfortunately, our product owners couldn't make a decision till yet.
We will let you know as soon a decision will be there.
Best regards

Even though I think it would be a good addition, we found another solution and don't necessarily need this any more. So I will stop bugging you with this ;-)


Reduce friction in the integration with bundlr -- remove global install

Pybundlr needs to use bundlr's CLI
bundlr's CLI needs to be installed globally
this creates all sorts of problems for users, e.g. in node the default installation does not allow for global installs
A solution would be to find a way to execute bundlr's CLI without a global install
Possible solutions:
rewrite pybundlr in node
execute a python subprocess that is fetched with a js file
see if bundlr's API works so we can replace the CLI

possible solution: rewrite pybundlr in node

FYI there is already a pybundlr JS SDK.
The point of pybundlr is the "py" part: to be readily accessible in python

execute a python subprocess that is fetched with a js file

Please elaborate. FYI there's a python library called "javascript" that makes JS code look like a python library. So one option would be to wrap the bundlr SDK this way.

see if bundlr's API works so we can replace the CLI

this is the simplest

https://github.com/oceanprotocol/pybundlr/tree/replace-cli-with-javascript-sdk

Low priority for predict-eth, because we're using ERC725 for now.


pre_trained model

Hi @pqhieu ,
Thanks for your sharing this work,
Could you provide the pre-trained model?
Thanks !

Have a look at this comment in #3, the log folder zip also contains the model.

Thank you


Normalize SCSS

Normalized all of the SCSS files to be more consistent and better match vanilla Foundation.

Travis CI build failed on the last commit for no specific reason. Will close/delete this pull request and create a new one.


Add "Communication and documentation" best practices to Documentation section

After the new Documentation section is created (#533), add a new "Communication and documentation" document under "Best practices".
Ideas for content:

Communication channels.

In-person vs. phone vs. email vs. Teams/Slack vs. Discussion section in Wiki/tasks vs. …

Recording decisions/changes.
Communicating decisions/changes.

E.g., Channels in Teams: General, Breaking Changes, Meetings, PRs, Workstreams

@magencio - is this issue still relevant, and active or ok to close?


Schema in playground is not loaded

Current behavior
Error message in playground
Schema could not be fetched.
Please check if the endpoint 'http://localhost:60001/simple/v1/cjiw8ooci001v01066nr9ot3s' is a valid GraphQL Endpoint.

Reproduction
graphcool init
graphcool deploy
graphcool playground

Graphcool version is graphcool-framework/0.11.6 (darwin-x64) node-v10.5.0
MacOS 10.13.5
I see error in graphcool-dev:0.11.1 in docker
Endpoint graphcool:60000 is marked down

Expected behavior?
Load schema in playground

It is fixed in 1.0.0-beta4.1.1
This issue can be closed


Can not save my option after I clicked Apply instead of Save

Hi, this is the first time I use this terminal. I applied the option I modified in option menu and reopened the terminal, NOTHING had been changed. And I found that Apply can not save my option and I should use the Save button.
This may be a bug. I hope this terminal can be better.

Apply will not save options to files.


Add OpenCollective donors page

Created a /donors page. The contents is rendered from opencollective.com so it may or may not have a style that matches our theme at first. We can probably improve it down the road.

[x] /donors route
[x] menu item
[x] donors localization

See: https://opencollective.com/electron

[x] maybe just ditch the package-lock.json changes
[x] See comment above about locale.yml page data

@vanessayuenn 👍
@zeke 👍

💰


implement simple handling of wildcard paths

This patch introduces a new configuration item: isWildcard, that causes the configured path to be matched against any path that begins with it.
findConfForPath() has been modified to return an additional string - the configured path that was matched. It isn't necessary at the moment (only used to print out logs), but might be useful to have.
There are some doubts I have:

Possibly incorrect behaviour if isWildcard is set for the 'all' path
Unsure if there will be odd interactions with sourceOnDemand, thus currently there is a check to make sure that sourceOnDemand is off when isWildcard is on
Possible weird interactions with the newly implemented feature for handling control paths (d0c2c3a58653ea7fe650c5eb851c228615149beb)
It seems like it should be sufficient to handle adding the dynamic path during the describe event, but I may be wrong
There is a check to only destroy the dynamic path when both the producer and consumers are disconnected, but it possibly does not handle multiple clients connecting to the same path correctly
I have only tested this for my use case, which is with dynamically generated recorder streams, and only one client per path

Do let me know how I can improve the patch for acceptance, thanks!

Hello, this is a good starting point, i think improvements are possible in two directions:

you wrote "if the source is an RTSP url, sourceOnDemand must be set to 'no'" - i think RTSP sources must be disabled on wildcard paths; a wildcard path in the configuration doesn't correspond to a single path, but to an indefinite number of paths, and at the moment a source must be attached to a single path.
Of course it would be possible to change the design in a way in which RTSP sources could be attached to wildcard paths, but i don't think this feature would be useful to most users (maybe on-demand sources with dynamic urls are of some utility, but we're digging into a subject that is very far from this PR).

Why don't directly support regular expressions in path names instead of using a wildcard? In this way we can support both

prefix*

and
more-complicated-prefix[0-9]{2}

the resulting implementation is simpler to write than the actual one.

Implemented in a different way with 6679b02, will be available in the next release.
The difference with this PR is that there isn't a wildcard parameter, but paths that starts with a tilde are interpeted like regular expressions.
For instance, this configuration
paths:
  '~^(test1|test2)$':

will match both test1 and test2, while this
paths:
  '~^prefix':

will match every path that starts with prefix.
maybe it's not as straightforward as the original proposal, but is much more versatile.

alternative implementation added in v0.10.0


Can't place TNT in region with allow-block-place: [DIRT, GRASS, TNT]

I have a region that I want to only allow placing dirt, grass and TNT in.

I can place dirt and grass just fine, but cannot place TNT.
Here's a gif where I try to place dirt, grass, TNT and wool.
Here's my versions

(I tried updating, but spigot gave me 2.12.1 and the plugin would not build from source, and I didnt have time to fix the pom.)

I found time to fix maven and debug locally; I found that the reason is when I place TNT, the block type isn't TNT, it's air. After realizing this was a WorldGuard event, not spigot, I went to the WorldGuard/WorldEdit IRC chat and asked why this is.
16:24	Pugabyte	So I'm trying to work out a bug in WorldGuardExtraFlags; [it's listening to the PlaceBlockEvent here](https://github.com/isokissa3/WorldGuardExtraFlagsPlugin/blob/master/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java#L51-L89 ) (the worldguard event, not spigot) and i'm setting the flag to only allow the placement of grass, dirt and TNT. Grass and dirt work fine, but when placing TNT, the blocktype (inside the forloop, `block.getType().toString()`) is returning `AIR`, and preventing TNT from being placed.
16:25	@wizjany	why are you listening to WG events for starters
16:25	Pugabyte	not my plugin
16:26	@wizjany	/shrug
16:26	@wizjany	we use our events how we need them
16:26	@wizjany	they're not really meant for arbitrary external use

Hmh thats funny, the events are public and not private, ig I could try figure out better solution for it


Localized string initialization failed.

I have an error when trying to create a GCKUICastButton in a custom view controller. Button doesn't appear. All the necessary steps from documentation was passed. Any ideas ?

Installation was done as dynamic framework - pods.
CocoaPods: 1.11.2
Xcode: 13.1
google-cast-sdk: 4.7.0

Hi Noolie, can you try updating your xcode environment to 13.2? The latest version may resolve the issue. If you are still experiencing problems please provide a code snippet that adds the cast button so we can take a further look.


Don't include VCS info in APK

ref: https://web.archive.org/web/20240401140804/https://monitor.f-droid.org/builds/log/yetzio.yetcalc/14
ref: https://gitlab.com/fdroid/fdroid-website/-/commit/e1cc123c1b97bb14fbada41a6f3165916a3a1654
patched in F-Droid for now: https://gitlab.com/fdroid/fdroiddata/-/commit/8ffd3e5a29863b73ee0521ba8049316bf01d35e4 this does not work, next version should works though

sheesh google and their changes. Thanks for the patch @licaon-kter.

Second sounds better imho


Main meal listing

Originally created by Tom Smyth at 2015-08-09 23:55, migrated from redmine-#2805

Status changed from New to Closed

By Tom Smyth at 2015-08-11 08:38


Issue in JPEG image sequences

I am seeing some issues while taking JPEG image sequences using the VideoKitRecorder component. The JPEG images have some patches at the bottom of the images (Sample shared below). The mp4 video is coming fine, only the JPEG sequences bear the issue.

When tried in a separate UI, the image sequences are not all saved in the target folder when taken using the VideoKitRecordButton prefab.
Unity version: 2023.1.15f1
Build platform: Android
Color space: Linear
I use almost standard settings here except for custom resolution of 1080 x 1920.

This has been fixed in the upcoming VideoKit 0.0.18 update. Feel free to test the current VideoKit alpha.


offline-synchronization

Please use the form below, leaving the prefilled data to help us. Thank you.
Page link: offline-synchronization
Document link: synchronization.md
My Issue/Suggestion
2.1.3 Selective Synchronization
Selective synchronization can only be done through a Synchronize action inside a nanoflow. In this mode, a specific set of objects will be synchronized. These objects can be either all unsynchronized objects when the [synchronize unsynchronized objects](https://docs.mendix.com/refguide/synchronize/#unsynchronized-objects) mode is selected, or a manually selected set of objects when the [synchronize selected object(s)](https://docs.mendix.com/refguide/synchronize/#selected-objects) mode is selected.

Deleted objects cannot be synchronized using selective synchronization.

This paragraph implies that the 'synchronize unsynchronized objects' (SUO) sync works like a selective sync, or is indeed a version of selective sync. My understanding was that the SUO sync is more aligned with a full sync; all dirty, committed objects will be uploaded and then for those specific tables the synchronization configuration will be applied to the download phase.
In a selective sync the synchronization configuration is ignored, and I think grouping the SUO under selective sync makes the difference between the modes more confusing for learners.
Suggested change: Remove the reference to the SUO from selective sync, and keep any details about it in it's own section (which is 2.1.2).

Hi @oriana-nerberka
The "Synchronize unsynchronized objects" mode is intended to work like selective sync, where it ignores the synchronization configuration. Do you have a specific case where you observe otherwise? Then it may be a bug to address

Hey @ekrem-aktas, no, I haven't run a test, that was always just my understanding. I must have heard it somehow and committed it to my own memory. Glad to be corrected - thanks!

Thank you @oriana-nerberka, Let us know if you encounter an unexpected behavior ;)

Closing this as we have not observed an unexpected behavior and could not duplicate it.


could not find sysinfoapi in um

Hello, I was working on my small project and found your repository, which greatly simplified obtaining system data. However, when building the project on Windows, I encountered the following error:
error[E0432]: unresolved import winapi::um::sysinfoapi   --> /home/bindi/.cargo/git/checkouts/systeminfo-rs-12dac908e940a51c/8bdca8d/src/win/osinfo.rs:18:9     | 18  |         sysinfoapi::{     |         ^^^^^^^^^^ could not findsysinfoapiinum    | note: found an item that was configured out    --> /home/bindi/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winapi-0.3.9/src/um/mod.rs:236:40     | 236 | #[cfg(feature = "sysinfoapi")] pub mod sysinfoapi;     |                                        ^^^^^^^^^^     = note: the item is gated behind thesysinfoapi` feature
For more information about this error, try rustc --explain E0432.
error: could not compile systeminfo (lib) due to 1 previous error
`
As I understand from the error output, there is an incorrect import of the package in the file osinfo.rs. Thank you in advance for your help!

I found a way to solve this problem. I just needed to add one more dependency, and the build went as it should, specifically the following one: winapi = { version = "0.3", features = ["sysinfoapi", "memoryapi", "iphlpapi", "winnt"] }


Colouring each residue

Is it possible to loop through each residue and colour them?  I am loading a PDB file and would like to colour each residue based on experimental value I get for each residue.

Probably this could be of help for you.
I usually create a list of dicts with the necessary color and residue information and then pass it to the color function. Here you can find a snippet: https://github.com/bayer-science-for-a-better-life/topefind-public/blob/73a40c4f0ef38a21d49e46e7987f69ac02baffd4/topefind/dashboard/dashboard.py#L578

I believe the user wants to color the residues within the viewer directly.

You can use the .visual.select helper method (basically what CrisSherban suggested, thank you).
The call will look something like this:
viewerInstance.visual.select({
    data: [
        { struct_asym_id: 'A', residue_number: 1, color: '#ff0000' },
        { struct_asym_id: 'A', residue_number: 2, color: '#ff8800' },
        { struct_asym_id: 'A', start_residue_number: 3, end_residue_number: 6, color: '#ffff00' },
        { struct_asym_id: 'A', start_residue_number: 15, end_residue_number: 20, color: '#88ff00' },
    ],
    nonSelectedColor: '#ffffff',
});


2213273_2312469_2311744_2310707_2212941

This pull request presents two innovative approaches to tackle the 2D Cutting Stock Problem: dynamic program Policy and simulated annealing Policy. These strategies are tailored to minimize material waste while addressing diverse input constraints.
Result:
Episode 1-----------------------------
----Dynamic Programming Policy---
Area wasted:	 8796.0
Area wasted ratio:	 0.20615947124173814
Time:	 13.00s
----Simulated Annealing Policy---
Area wasted:	 21551.0
Area wasted ratio:	 0.38885981848035944
Time:	 19.00s
...

Please read the submission instructions carefully. Otherwise I could not merge your PR (0 grade for code).


Convert 2 examples to CodeSandbox

Related to https://github.com/reactjs/reactjs.org/issues/122.
In this PR I converted 2 different examples over to CodeSandbox:

Uncontrolled Components
Portals (1 & 2)

Uncontrolled Components
Portals 1
Portals 2
For Portals I decided to split the example up in multiple files, since it's one of the more advanced examples. I can always merge it into 1 file if that's desired.
Regarding page size, @gaearon mentioned a good consideration. CodeSandbox has 2 versions: the embed version and the editor version. The embed version is a stripped down version of the editor and built to be small.
I decided to use the embed version for the examples, but it still downloads 1.8MB before render of editor+preview. This is mainly because we use the Monaco editor. To make the bundle size smaller you can give the option to use CodeMirror instead by appending ?codemirror=1 to the url. Then the size before render will be 900KB and it renders quicker, but you'll lose the vscode editor feeling/features. We'll need to decide on that.
Also, the URLs are currently pointing to my branch, because master doesn't contain the examples yet. Maybe it would be cool to automate this so we can generate custom urls based on branch, that way Netlify demos work without effort.

To make the bundle size smaller you can give the option to use CodeMirror instead by appending ?codemirror=1 to the url. Then the size before render will be 900KB and it renders quicker, but you'll lose the vscode editor feeling/features. We'll need to decide on that.

IMO the smaller payload size is better than the vscode polish.
I might be jumping the gun on the preview but it looks like they're all failing at the moment:

Updated the code to use codemirror! Regarding your error, that's really strange. I can't reproduce it on Chrome, Safari and Firefox with fresh cache. It could be related to sw-cache. What does your console say and which browser are you using?

I added the possibility to link to 1 specific file with no boilerplate. In that case it will check if the file is in a create-react-app project and use those settings. So for example in this scenario:
examples/
  rendering-elements/
    package.json
    public/
    src/
      1.js
      2.js
      3.js

You could use these urls:
https://codesandbox.io/embed/github/CompuIves/reactjs.org/tree/codesandbox/examples/rendering-elements/src/1.js?codemirror=1
https://codesandbox.io/embed/github/CompuIves/reactjs.org/tree/codesandbox/examples/rendering-elements/src/2.js?codemirror=1
https://codesandbox.io/embed/github/CompuIves/reactjs.org/tree/codesandbox/examples/rendering-elements/src/3.js?codemirror=1
And you would get 3 different projects with the entry file assigned to the linked file.
I also played a bit with the embed API, and created this:

(Top is inline, bottom is codesandbox embed)
You can actually specify line highlights in the source using comments (like eslint rules) and they work in embeds, this is really cool since your highlights live in your code (you don't have to sync line numbers) and you don't have to keep the inline code of the doc synced with the git repo.
Curious what you think!

I added the possibility to link to 1 specific file with no boilerplate. In that case it will check if the file is in a create-react-app project and use those settings.

This looks nice 👍  since it would cut down significantly on the boilerplate for multi-step examples.

You can actually specify line highlights in the source using comments (like eslint rules) and they work in embeds, this is really cool since your highlights live in your code (you don't have to sync line numbers) and you don't have to keep the inline code of the doc synced with the git repo.

That is pretty cool 😁

Updated the code to use codemirror! Regarding your error, that's really strange. I can't reproduce it on Chrome, Safari and Firefox with fresh cache. It could be related to sw-cache. What does your console say and which browser are you using?

Bizarre! I tried the links in an incognito window though and they do work there, just not in my main browser.
I wonder what about these examples would cause them to be broken the first time I load them in an incognito browser? (And if others might encounter this same issue...)

Right! I'm also exploring more options. I'm currently working on a Gatsby Remark plugin that allows you to add links to the source files in the markdown, these then get converted to the actual prism code highlights with a button to turn it into a CodeSandbox embed. The advantage of this is that you have a single source of truth for the js files, you're also not dependent on an external service just to show code and you automatically have a synced sandbox for every file.

I wonder what about these examples would cause them to be broken the first time I load them in an incognito browser? (And if others might encounter this same issue...)

Most probably it's because of a cached packager response from a couple months ago. Next week we're moving over to the new packager with a max cache time of 24h, so hopefully that will be resolved by then.

I'm currently working on a Gatsby Remark plugin that allows you to add links to the source files...

Very cool! I had been considering something along those lines as well but haven't gotten around to it yet. Glad to hear you're working on it 😁

Most probably it's because of a cached packager response from a couple months ago...

Okay. Good to hear.  I tried something new.
With this version I added a remark plugin that converts:
[Try it on CodeSandbox.](source:examples/uncontrolled-components/src/index.js{11,20})

to the Prism Highlight of that file with line highlights and a generated link to the codesandbox sandbox embed based on the branch/user/file. You can see it here: https://deploy-preview-138--reactjs.netlify.com/docs/uncontrolled-components.html.
The next thing I'm going to try is putting a React Live component in the place of the code, this can be a challenge since we may need 2 plugins in that case. One for converting the markdown and then one for hooking in the components. There are two considerations:

We lose the line highlighting. I think this is pretty big, since it's valuable to show what we mean in many cases.
We should find a way to allow the import statements to show. I think these statements can be pretty important, as it allows users to directly copy the code locally and it shows the user the recommended way of using React.

Maybe we can open a PR to react-live to add these 2 points.
A second option would be to replace the highlighted code with an embed as soon as you click on edit. This way we keep the line highlights and module imports. This keeps the user on the same page but still allows the user to fiddle. Big downside is that the user first needs to press a button. I think the React Live version would first be better to try out.
Okay, I'll get back to it this evening!

@CompuIves this is awesome! Were you planning on taking a stab at turning the "Try it on X" into a dropdown menu? Or should I make a PR to this for it?
Also, reg react-live not having the import statements — I actually think it's better for the docs to not have them there, as it's just redundant code that isn't critical to explaining the core concepts at hand. What if we did the opposite approach, where we strip out any import statements before putting them in the react-live editor? That way when the user clicks on the "try it on x" dropdown menu, the import statements will be there in the "real" environment on CSB/SB/etc (which makes more sense from the learners perspective)

Pushed a new experimentation. You can now define an example like this:
[Run the example.](source:examples/uncontrolled-components/src/index.js{11,20}?editorsize=70)

The options after the ? are options like how big (in %) you'd like the editor to be.
That line will first show the code as a Prism.js with line highlights. When you press 'Run example' the Prism.js highlighted embed will turn into a CodeSandbox embed with the same lines highlighted.
It looks like this:

@CompuIves this is cool! Have you started working on the react-live version you mentioned in https://github.com/reactjs/reactjs.org/issues/122#issuecomment-336571580? I'd love to help collab on it!  🙌

Heyo!

@CompuIves this is cool! Have you started working on the react-live version you mentioned in #122 (comment)? I'd love to help collab on it! 🙌

Didn't start it, mostly because I'm not sure if it's smart to embed live preview on every doc page for bundle size and react-live doesn't have line highlights yet.

Okay! I've converted a different page to give a more 'real-life' example of how it could look like. This page: https://deploy-preview-138--reactjs.netlify.com/docs/state-and-lifecycle.html.
All CodePen examples are now linked to a single file in the repo, these files are automatically synced with both the documentation and CodeSandbox. The last example is interesting, because it's referring a single file from a bigger project. If you reference index.js directly, it will use that directory as src folder. This means that you can show a single file of a bigger project, with the existing imports. This fits the last example more, because you want to show the 3 Clocks instead of a whole file.
I also reduced the embed size.

@bvaughn proposed the solution for the react-live/babel bundle size issue in https://github.com/reactjs/reactjs.org/issues/122#issuecomment-336922176:

I like the idea of deferring cost until a user chooses to interact with an example (eg by clicking an "try it" link).

^ that's actually the same solution you're using in this PR, right? So we'd just need to swap out the iframe on CSB for react-live

react-live doesn't have line highlights yet.

Yes, hence why I asked if you wanted to collab on upgrading it :)

@CompuIves just checked out your counters example and all of the embeds seem to be completely broken on my machine; not sure if related to the service worker issue @bvaughn hit earlier in this thread. Here's a GIF of it:

^ lmk if there's anything I can do to help debug on my end

I added a force refresh for the first 3 examples, because the setIntervals were complaining.

^ that's actually the same solution you're using in this PR, right? So we'd just need to swap out the CSB iframe with react-live

Hmm, yep that could work!

not sure if related to the service worker issue @bvaughn hit earlier

Yap it is 😄 . I finally know exactly what it is! So our packager generates 2 different files: dll.js and manifest.json to map the modules to the code. We recently refreshed the cache, which in itself is no problem. But some users only cached the manifest.json and not the dll.js, because dll.js is bigger. Because of this the wrong mapping was assumed and you get the issue you see there.
I'm deploying the first part of the fix now which should fix it for everyone. The next part will be deployed this evening, which will fix it for future cache refreshes. We're going full on with the new packager regardless this week, which doesn't have this issue at all.

Sweet! Okay perfect, sounds like we're on the same page reg react-live — wanna spin up a branch where we could collab on it? Perhaps it would make sense to fork off of this one, since we'll likely want to reuse parts of your Gatsby plugin?

I first want to know what @bvaughn thinks of this solution. I've already put a lot of time in making this solution perfect with building the remark plugin, adding editorsize, new hidenavigation and forcerefresh functionality, adding line highlights, upgrading our git-extractor to handle direct file urls/subprojects, and improving our embed size to be much smaller.
I've also already explained my thoughts on why this could be eg. a good gateway (https://github.com/reactjs/reactjs.org/issues/122#issuecomment-336764140), so I'm still in favor of this solution.

Ah gotchya — I just asked @bvaughn in https://github.com/reactjs/reactjs.org/issues/122#issuecomment-337381981 about this + other remaining q's, so I'm hoping his response there will help clear things up and enable us all to work collaboratively 👍

I've already put a lot of time in making this solution perfect

I think we've all put a great deal of time into creating our PR's, debating their merits, and helping figure out the right solution for the React team's needs :)

Hm. Fresh install (rm -rf .cache && rm -rf node_modules && yarn install && yarn dev) fails with:

Edit Looks like it failed because my local Git repo was detached (b'c I checked out CompuIves/codesandbox).

Really good feedback, thanks! I'll do some thinking on this tonight 😄

Happy to chat about this on Twitter or Slack if you'd like to run ideas by someone Ives.

Closing this PR for now in favor of a more incremental solutions (#245). Let's keep the conversation going here though, either on GitHub or on Twitter directly. I think the ideas shown here are exciting.


improve service section

🚀 Pull Request
Description
improve the service section  and content
(issue)
#145  , level3 , gssoc extd , enhancement

Could you please add the "Hacktoberfest-accepted" label .This will ensure my contributions are counted towards Hacktoberfest.

Type of Change

make navbar of service Responsive of active link
form for booking mui ( pop ups)
improve the contents such as
pink cab
normal city travels
special occasions
hourly rentals
app specification
24/7
footer with link

stack

HTML,CSS,JS,MUI,animations,verification for mui
used gif , img , icon

screenshots

@Web-Dev-Learner This is having some conflicts, resolve and then recreate the PR

I noticed that GitHub indicates that the conflicts are too large to resolve using the web editor. Here’s what I’ve done so far:

I attempted to resolve the conflicts manually in Visual Studio Code.
It appears that there are no conflicts, and the branches are already aligned.

@Web-Dev-Learner As the issue still persists I am unable to merge it also as it is not possible to do it in web editor I won't be able to help try to pull the latest code and redo the changes


Tutorial out-dated!

Hi, I tried to follow the tutorial. I am a beginner and very confused by all the error messages I got.
I use node 10.6.0 and npm 6.1.0
While I was trying to figure out why during testing the require lib is not found I found out that the
react-addons-test-utils are not maintained any more and moved to react-dom/test-utils (see https://reactjs.org/docs/test-utils.html).
So to let this tutorial work you should update all dependencies and dev dependencies.
Additionally I want to recommend to add a node and npm/yarn version for which the tutorial works.

I'll see if I can PR with updates this weekend.

same issue.

Probably because they are using LTS version for the moment. Working on Node v8.9.3 and npm v6.4.1.
Node 10.X.X will be an LTS version in October.


Wrap client exception in an AggregateException

GetClientException is used to wrap the input exceptions in certain cases.  In those cases where it doesn't and the caller throws the exception, the stacktrace gets truncated at the throw-site.  This change is to make sure the input exceptions are always wrapped, so that we preserve the original stacktrace.

Hi @lchew7.  There hasn't been recent engagement on this PR.  Would you please be so kind as to let us know if this is still an active work stream or if the PR should be closed out?

Hi @lchew7.  There hasn't been recent engagement on this PR.  Would you please be so kind as to let us know if this is still an active work stream or if the PR should be closed out?

Yeah, I'd still like to make this change.  Let me try and get a reviewer.

Yeah, I'd still like to make this change.  Let me try and get a reviewer.

Hi @lchew7.  There hasn't been recent engagement on this PR.  If this is still an active work stream, please let us know by removing the no-recent-activity label.  Otherwise, we'll close this out in 7 days.

Since there hasn't been recent engagement, this is being closed out.  Feel free to reopen if you'd like to continue working on these changes.  Please be sure to remove the no-recent-activity label otherwise, this will be closed again in the next cleanup pass.


Feature/researchcontroller

Pull Request Test Coverage Report for Build 920275027

25 of 25 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 99.476%

Totals

Change from base Build 916490897:
0.01%

Covered Lines:
1366

Relevant Lines:
1373

💛  - Coveralls


sessions get dropped seconds after page loads; cors error prevents sign_in from working

What happened?
I load the non-public page https://bigasterisk.com/m/vmui/ and quickly click a button that does a fetch request. This succeeds. Then I count to 10, click it again, and it fails. 100% repeatable on multiple apps. Logs below.
What did you expect to happen?
I expected the session to not be lost so quickly, but if by chance it does expire, I expect the sign_in flow to work transparently. And if that doesn't work, I'd like a more actionable error. I am still confused by these in particular:

"record not found" (it was found 10 sec ago! Did it get purged? Never written to postgres? ...?)
"internal/urlutil: malformed unix timestamp field" (who made the timestamp- was it pomerium? chrome?)

BTW both those lines have no 'service' field, which makes them harder to put in context.
What's your environment like?
k8s, near-default pomerium ingress from pomerium/ingress-controller:sha-dd49d67
config patches here
global Pomerium spec here  (tldr it's google oidc).
Using postgres for storage.
What did you see in the logs?
The good fetch request:
{
  "level": "info",
  "type": "type.googleapis.com/session.Session",
  "query": "",
  "offset": 0,
  "limit": 1,
  "filter": {
    "$or": [
      {
        "id": "443c3dc3-###-40ea4e117f9e"
      },
      {
        "$index": "443c3dc3-###-40ea4e117f9e"
      }
    ]
  },
  "time": "2023-06-17T06:28:19Z",
  "message": "query"
}
{
  "level": "info",
  "service": "authorize",
  "request-id": "2df3eed0-8af8-4f55-8eb9-f62178dbe19e",
  "check-request-id": "2df3eed0-8af8-4f55-8eb9-f62178dbe19e",
  "method": "GET",
  "path": "/m/prometheus/api/v1/query_range",
  "host": "bigasterisk.com",
  "query": "",
  "ip": "<IP_ADDRESS>",
  "session-id": "443c3dc3-###-40ea4e117f9e",
  "allow": true,
  "allow-why-true": [
    "email-ok"
  ],
  "deny": false,
  "deny-why-false": [
    "valid-client-certificate-or-none-required"
  ],
  "user": "####",
  "email": "#####",
  "time": "2023-06-17T06:28:19Z",
  "message": "authorize check"
}
{
  "level": "info",
  "service": "envoy",
  "upstream-cluster": "default-victoriametrics-bigasterisk-com-m-3e2524366b1bdea6",
  "method": "GET",
  "authority": "bigasterisk.com",
  "path": "/m/prometheus/api/v1/query_range",
  "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
  "referer": "https://bigasterisk.com/m/vmui/",
  "forwarded-for": "<IP_ADDRESS>",
  "request-id": "2df3eed0-8af8-4f55-8eb9-f62178dbe19e",
  "duration": 12.8336,
  "size": 3732,
  "response-code": 200,
  "response-code-details": "via_upstream",
  "time": "2023-06-17T06:28:20Z",
  "message": "http-request"
}

The broken fetch request:
{
  "level": "info",
  "type": "type.googleapis.com/session.Session",
  "query": "",
  "offset": 0,
  "limit": 1,
  "filter": {
    "$or": [
      {
        "id": "443c3dc3-###-40ea4e117f9e"
      },
      {
        "$index": "443c3dc3-###-40ea4e117f9e"
      }
    ]
  },
  "time": "2023-06-17T06:29:24Z",
  "message": "query"
}
{
  "level": "info",
  "type": "type.googleapis.com/user.ServiceAccount",
  "query": "",
  "offset": 0,
  "limit": 1,
  "filter": {
    "$or": [
      {
        "id": "443c3dc3-###-40ea4e117f9e"
      },
      {
        "$index": "443c3dc3-###-40ea4e117f9e"
      }
    ]
  },
  "time": "2023-06-17T06:29:24Z",
  "message": "query"
}
{
  "level": "warn",
  "error": "record not found",
  "time": "2023-06-17T06:29:24Z",
  "message": "clearing session due to missing session or service account"
}
{
  "level": "info",
  "type": "type.googleapis.com/user.ServiceAccount",
  "query": "",
  "offset": 0,
  "limit": 1,
  "filter": {
    "$or": [
      {
        "id": ""
      },
      {
        "$index": ""
      }
    ]
  },
  "time": "2023-06-17T06:29:24Z",
  "message": "query"
}
{
  "level": "info",
  "type": "type.googleapis.com/session.Session",
  "query": "",
  "offset": 0,
  "limit": 1,
  "filter": {
    "$or": [
      {
        "id": ""
      },
      {
        "$index": ""
      }
    ]
  },
  "time": "2023-06-17T06:29:24Z",
  "message": "query"
}
{
  "level": "info",
  "service": "authorize",
  "request-id": "4a1fc7dd-a987-4476-b4a9-19a88af6f7f2",
  "check-request-id": "4a1fc7dd-a987-4476-b4a9-19a88af6f7f2",
  "method": "GET",
  "path": "/.well-known/pomerium/hpke-public-key",
  "host": "localhost:8443",
  "query": "",
  "ip": "::1",
  "allow": true,
  "allow-why-true": [
    "pomerium-route"
  ],
  "deny": false,
  "deny-why-false": [],
  "user": "",
  "email": "",
  "time": "2023-06-17T06:29:24Z",
  "message": "authorize check"
}
{
  "level": "info",
  "service": "authorize",
  "request-id": "f2b460f5-019d-49c8-a06b-c517bd773337",
  "check-request-id": "f2b460f5-019d-49c8-a06b-c517bd773337",
  "method": "GET",
  "path": "/m/prometheus/api/v1/query_range",
  "host": "bigasterisk.com",
  "query": "",
  "ip": "<IP_ADDRESS>",
  "allow": false,
  "allow-why-false": [
    "user-unauthenticated"
  ],
  "deny": false,
  "deny-why-false": [
    "valid-client-certificate-or-none-required"
  ],
  "user": "",
  "email": "",
  "time": "2023-06-17T06:29:24Z",
  "message": "authorize check"
}
{
  "level": "info",
  "service": "authorize",
  "request-id": "21b96fdc-fbd2-4459-b4ba-9b65341f841a",
  "check-request-id": "21b96fdc-fbd2-4459-b4ba-9b65341f841a",
  "method": "GET",
  "path": "/.pomerium/sign_in",
  "host": "authenticate.bigasterisk.com",
  "query": "",
  "ip": "<IP_ADDRESS>",
  "allow": true,
  "allow-why-true": [
    "pomerium-route"
  ],
  "deny": false,
  "deny-why-false": [],
  "user": "",
  "email": "",
  "time": "2023-06-17T06:29:24Z",
  "message": "authorize check"
}
{
  "level": "info",
  "ip": "<IP_ADDRESS>",
  "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
  "referer": "https://bigasterisk.com/",
  "request-id": "21b96fdc-fbd2-4459-b4ba-9b65341f841a",
  "error": "internal/urlutil: malformed unix timestamp field",
  "time": "2023-06-17T06:29:24Z",
  "message": "authenticate: origin blocked"
}
{
  "level": "info",
  "ip": "<IP_ADDRESS>",
  "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
  "referer": "https://bigasterisk.com/",
  "request-id": "21b96fdc-fbd2-4459-b4ba-9b65341f841a",
  "error": "Bad Request: internal/sessions: session is not found",
  "idp_id": "Hw5Jnp#######",
  "time": "2023-06-17T06:29:24Z",
  "message": "authenticate: session load error"
}
{
  "level": "info",
  "service": "envoy",
  "upstream-cluster": "",
  "method": "GET",
  "authority": "bigasterisk.com",
  "path": "/m/prometheus/api/v1/query_range",
  "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
  "referer": "https://bigasterisk.com/m/vmui/",
  "forwarded-for": "<IP_ADDRESS>",
  "request-id": "f2b460f5-019d-49c8-a06b-c517bd773337",
  "duration": 15.752359,
  "size": 1438,
  "response-code": 302,
  "response-code-details": "ext_authz_denied",
  "time": "2023-06-17T06:29:25Z",
  "message": "http-request"
}
{
  "level": "info",
  "service": "envoy",
  "upstream-cluster": "pomerium-control-plane-http",
  "method": "GET",
  "authority": "authenticate.bigasterisk.com",
  "path": "/.pomerium/sign_in",
  "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
  "referer": "https://bigasterisk.com/",
  "forwarded-for": "<IP_ADDRESS>",
  "request-id": "21b96fdc-fbd2-4459-b4ba-9b65341f841a",
  "duration": 10.677448,
  "size": 908,
  "response-code": 302,
  "response-code-details": "via_upstream",
  "time": "2023-06-17T06:29:25Z",
  "message": "http-request"
}
{
  "level": "info",
  "service": "envoy",
  "upstream-cluster": "pomerium-control-plane-http",
  "method": "GET",
  "authority": "localhost:8443",
  "path": "/.well-known/pomerium/hpke-public-key",
  "user-agent": "Go-http-client/2.0",
  "referer": "",
  "forwarded-for": "<IP_ADDRESS>",
  "request-id": "4a1fc7dd-a987-4476-b4a9-19a88af6f7f2",
  "duration": 2.690773,
  "size": 0,
  "response-code": 304,
  "response-code-details": "via_upstream",
  "time": "2023-06-17T06:29:25Z",
  "message": "http-request"
}

Chrome console, on the bad request:
Access to fetch at 'https://authenticate.bigasterisk.com/.pomerium/sign_in?k=######' (redirected from 'https://bigasterisk.com/m/prometheus/api/v1/query_range?query=house_power_w&start=1686972564.235&end=1686983364.235&step=15s') from origin 'https://bigasterisk.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
main.ff1e4560.js:2
GET https://authenticate.bigasterisk.com/.pomerium/sign_in?k=###### net::ERR_FAILED 302
Fetch failed loading: GET "https://authenticate.bigasterisk.com/.pomerium/sign_in?k=######".

Here's the pomerium log for the page load, which always succeeds for me. Apparently I'm often doing 3 redirects at page load, which surely doesn't help performance. If I press refresh fast enough, there's no redirect.
https://bigasterisk.com/post/pomerium-log1.txt

You should check your Postgres user whether it has rights to update the database.
What we are witnessing is Pomerium authenticating you, providing you with session that is immediately cached in memory that allows you to proceed with your login, while database persistence happens in parallel; first few requests manage to pass thru because the cache is still valid.
Normally, there would be the following log line that would confirm the session object is persisted in the database
{"level":"info","record-type":"type.googleapis.com/session.Session","record-id":"0695b148-397f-4ccc-9b27-73be447efc6e","time":"2023-06-19T11:37:57-04:00","message":"put"}

I do not see such logs in your logs. What happens is that after some (short) time, cache expires and database doesn't have the session, forcing you go thru authenticate endpoint to acquire a new one once again. This process kinda allows you to work in the browser, but as you correctly pointed, CORS issues won't allow this to happen for the fetch requests.
We need understand what is exactly going on with your database. Please advise on your database flavour and version.
Please try to connect to your database and run
SELECT * from pomerium.records

you should see a record with type == type.googleapis.com/session.Session corresponding to your session. Most likely it won't be there.
Please check whether the database role has all the required permissions to select, update and create tables.
You may also temporarily remove the storage from configuration, so that it would only use in-memory storage. Most likely it'll resolve the issue, proving the root cause is something with database connection and/or database user permissions.

Removing storage does seem to fix the quick timeout.
OOC why doesn't authenticate.bigasterisk.com return Access-Control-Allow-Origin: https://bigasterisk.com in these cases?
My postgres config is just this default:
 - name: pomerium-db
          image: postgres:14.2-alpine3.15
          env:
            - { name: POSTGRES_PASSWORD, value: admin }
            - { name: POSTGRES_DB, value: pomerium }
          ports:
            - containerPort: 5432
          volumeMounts:
            - name: pomerium-db-data
              mountPath: /var/lib/postgresql/data

then this connection secret:
apiVersion: v1
kind: Secret
metadata:
  namespace: pomerium
  name: postgres-connection-key
type: Opaque
stringData:
  connection: postgresql://pom:pom@pomerium-db/pomerium

It seems to work:
k exec -it -n pomerium deploy/pomerium-db -- psql --dbname=pomerium --username=pom -W
Password: pom
psql (14.2)
Type "help" for help.

pomerium=> select count(*) from pomerium.records;
 count
-------
    10
(1 row)

Grants look ok to me:
pomerium=> SELECT * FROM information_schema.role_table_grants where table_name='records';
 grantor | grantee | table_catalog | table_schema | table_name | privilege_type | is_grantable | with_hierarchy
---------+---------+---------------+--------------+------------+----------------+--------------+----------------
 pom     | pom     | pomerium      | pomerium     | records    | INSERT         | YES          | NO
 pom     | pom     | pomerium      | pomerium     | records    | SELECT         | YES          | YES
 pom     | pom     | pomerium      | pomerium     | records    | UPDATE         | YES          | NO
 pom     | pom     | pomerium      | pomerium     | records    | DELETE         | YES          | NO
 pom     | pom     | pomerium      | pomerium     | records    | TRUNCATE       | YES          | NO
 pom     | pom     | pomerium      | pomerium     | records    | REFERENCES     | YES          | NO
 pom     | pom     | pomerium      | pomerium     | records    | TRIGGER        | YES          | NO
(7 rows)

Dumping all the records columns is a mess, but I can see current dates like this:
pomerium=> select type,id,version,modified_at from pomerium.records;
                     type                      |                      id                      | version |          modified_at
-----------------------------------------------+----------------------------------------------+---------+-------------------------------
 type.googleapis.com/user.User                 | ...                        |    5361 | 2023-04-15 17:27:56.843461+00
 type.googleapis.com/pomerium.config.Config    | pomerium-crd                                 |   28440 | 2023-06-09 02:03:44.367036+00
 type.googleapis.com/pomerium.events.LastError | identity_manager_last_user_refresh_errors    |    8466 | 2023-04-19 20:23:18.918342+00
 type.googleapis.com/pomerium.config.Config    | ingress-controller                           |   31301 | 2023-06-19 15:46:48.402831+00
 type.googleapis.com/user.User                 | ...                        |   19996 | 2023-05-08 22:36:00.971556+00
 type.googleapis.com/user.User                 | ...                        |   25963 | 2023-05-28 04:26:37.422393+00
 type.googleapis.com/pomerium.events.LastError | identity_manager_last_session_refresh_errors |   31333 | 2023-06-19 22:40:27.633805+00
 type.googleapis.com/user.User                 | ...                        |   31348 | 2023-06-20 00:18:17.812008+00
 type.googleapis.com/session.Session           | 9ddcc2cf-5955-4ab9-bb13-67142f4b0870         |   31349 | 2023-06-20 00:19:57.621045+00
 type.googleapis.com/user.User                 | ...                        |   27207 | 2023-06-02 22:34:35.890335+00
(10 rows)

My read of all this is that some db  writes are working, but some reads aren't?

could you please check that all components have sufficient resources (database, pomerium)?

I was experiencing OOM on the pomerium deployment, so I have its limit turned up to 5GB (!). The mem usage swings around pretty wildly, but i've been trying various experiments, so this alone isn't the problem:

The postgres container has no limit, and its host and disk are ok. Though it's presumably not being used at the moment, and I still have sessions timing out too fast.
Let's leave postgres out and try to get one pomerium in one pod to hold a session in memory. Currently I'm getting the same failures as before:
pomlog | egrep "error|message|details"

(do fetch request)

  "message": "query"
  "error": "record not found",
  "message": "clearing session due to missing session or service account"
  "message": "query"
  "message": "query"
  "message": "authorize check"
  "response-code-details": "via_upstream",
  "message": "http-request"
  "error": "unable to write OCSP staple file for [bigasterisk.com]: mkdir /.local: read-only file system"
  ...and every other domain...
  "message": "query"
  "message": "query"
  "error": "record not found",
  "message": "clearing session due to missing session or service account"
  "message": "query"
  "message": "query"
  "message": "authorize check"
  "message": "authorize check"
  "message": "authorize check"
  "error": "internal/urlutil: malformed unix timestamp field",
  "message": "authenticate: origin blocked"
  "error": "Bad Request: internal/sessions: session is not found",
  "message": "authenticate: session load error"

V0.22.x has significant reduction in memory usage.
github.com/pomerium/ingress-controller/config/default?ref=v0.22.1

I moved to a local build of 0.22.2, hoping to be able to add some logging around sessions. I can confirm the 0.22.2 mem usage improvement: instead of 800MB, it seems to use 300MB.
However, I need to localize more code than ingress-controller to be able to edit the session code, so I have no new insights yet. Also, running 1 instance sans DB seemed to help session lifetime a bit, but I still experience the original symptom all day long.
 Is the store timing them out too fast, or am I accidentally getting a new session id when I do my fetch() request?
Also, what are log lines 4-5? What's the point of getting  a session with id==""?

please try to look thru your error logs. I'm surprised we do not see any kind of database errors or something. maybe they're shifted in time

There shouldn't be db errors since I'm using default (mem) storage for now.
But, I can't even get pom to run now because I can't untangle the startup sequence. This only worked with lots of thrashing around, before.
 This only worked with lots of thrashing around, before.

I'm not sure I understand what do you mean.
Please join our support slack maybe we could debug your issue interactively.

Here's a specific code issue related to the log errors I'm getting. Please look at https://github.com/pomerium/pomerium/blob/ec495bb682bee1479b0766a6840b59da11c7b2dc/internal/urlutil/signed.go

65 params.Get returns an issued value (presumably from 36) or ""
112 ParseInt errors on ""
105 this would return a nil value if the url said issued=0 (I don't know if that case can happen)
79 behavior varies if issues is nil or not

It's surprising that "" and "0" are handled so differently. If that's correct, it deserves a comment.
If no one is making urls with issued=0, then there's unused code. Meanwhile, I'm definitely getting issued="" which spews ErrNumericDateMalformed in my logs. At minimum, the error should be something like "no 'issued' param found".

Bisected IC to these versions:
      # # committed 2023-05-01. Definitely broken
      image: docker.io/pomerium/ingress-controller:sha-64e51a6

      # # committed 2023-04-27 Likely ok.
      # image: docker.io/pomerium/ingress-controller:sha-45e6811

Of course it's just a version bump from pomerium v0.20.1-0.20230426163217-498bc82e81de to v0.22.0 :(

Upgraded to docker.io/pomerium/ingress-controller:sha-f549329 (2023-11-16) and haven't been able to repro so far.


HWKAPM-591 Remove unused columns from trace instance table

@ammendonca Hi Alex - could you do a quick review of this. The columns are used for 'completion time' objects that represent the end to end traces, which is why they have always had blank values - only realised now that I'm doing final testing for the release :)

LGTM. Inline styles should be globally removed from it, but that's something we can work on later.

@ammendonca Ok thanks.


[feature] save which window is focused

save in db a boolean active or not
use it in search api
add filter to the UI

for OCR at least
i'm not sure we have a good way yet to track which window is focused, to experiment

/bounty 80

How should active window be defined?
Also, I use a lot of different windows so it may be useful to select windows that were active during the time period as well.

/attempt #683

I'd use this to determine which window is active: https://github.com/sindresorhus/get-windows
In my opinion, if you only query active window's context you won't lose much, because most probably at some point you will make all window you use active so screenpipe can get data from them. On the other hand, right now, I have 28 open windows so I can't search or process with AI anything because it's just too much data.

/attempt #683
based on my comment above I'd get the active window, save to db and retrieve through API/UI


stdexec version to use?

I tried using stdexec from nvhpc-23.09.rc4 and HEAD, but both produce the same build error:
vscode ➜ /workspaces/cxx-init/senders-io (main) $ cmake --build build/ --parallel
[  2%] Building CXX object CMakeFiles/sio.dir/source/sio/const_buffer_span.cpp.o
[  8%] Building CXX object CMakeFiles/sio.dir/source/sio/io_uring/file_handle.cpp.o
[  8%] Building CXX object CMakeFiles/sio.dir/source/sio/mutable_buffer_span.cpp.o
[ 11%] Building CXX object CMakeFiles/sio.dir/source/sio/memory_pool.cpp.o
In file included from /workspaces/cxx-init/senders-io/source/sio/memory_pool.cpp:1:
/workspaces/cxx-init/senders-io/source/sio/./memory_pool.hpp:197:17: error: no matching function for call to object of type 'const __connect::connect_t'
  197 |       auto op = stdexec::connect(self, rcvr{})

Is there a specific commit that needs to be used?

Indeed. You need to use a specific branch of stdexec that is https://github.com/villevoutilainen/wg21_p2300_std_execution/tree/member-only-customization-points . This branch is an implementation of Villes paper https://wg21.link/p2855
I hoped that the pull request https://github.com/NVIDIA/stdexec/pull/788 would have landed earlier. But it turned out to have a dependency on late customization that Eric currently works on https://wg21.link/p2999
I will try to reflect that in the Readme today

Thank you, that worked. One more minor issue I hit is incompatibility with catch2 installed by vcpkg.
The catch.hpp header is installed directly to the include/ folder:
vscode ➜ /workspaces/cxx-init/senders-io (main) $ find ${VCPKG_ROOT} -name "catch.hpp"
/opt/vcpkg-2023.08.09/installed/x64-linux/include/catch.hpp

Just needed to fix the include:
diff --git a/tests/net/test_address.cpp b/tests/net/test_address.cpp
index e44ce0b..32349f3 100644
--- a/tests/net/test_address.cpp
+++ b/tests/net/test_address.cpp
@@ -21,7 +21,7 @@
 #include <vector>
 #include <array>

-#include <catch2/catch.hpp>
+#include <catch.hpp>

 #include "sio/ip/address.hpp"

And the tests failed to link:
[28/30] Linking CXX executable tests/test_sio
FAILED: tests/test_sio
...
mold: error: undefined symbol: main
>>> referenced by /lib/x86_64-linux-gnu/Scrt1.o:(.text)
>>>               /lib/x86_64-linux-gnu/Scrt1.o:(_start)
c++: error: linker command failed with exit code 1 (use -v to see invocation)

This required changing the catch2 cmake target:
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 01b70a2..73297b9 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -40,7 +40,7 @@ add_executable(test_sio
   net/test_socket_handle.cpp
 )
 target_include_directories(test_sio PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(test_sio PRIVATE sio::sio Catch2::Catch2)
+target_link_libraries(test_sio PRIVATE sio::sio Catch2::Catch2WithMain)

 include(CTest)
 add_test(NAME test_sio COMMAND test_sio)

I'm probably using a different version of catch2. Thank you for fixing this I will investigate that


replace generate_LAMMPS_structure function and add more tests

Hey @abelcarreras another PR for you!
I'm currently running some computations, using both LAMMPS and GULP. For single point energy calculations, with the same structure and potential, obviously the energies should be equal. However, I found some large differences when inputting structures with non-standard cell vectors, implying that the generate_LAMMPS_structure function was not creating the correct input file.
I've adapted https://github.com/andeplane/cif2cell-lammps/ESPInterfaces/LAMMPSFile, to create a new function, and now all my structures return approximately equal energies for both LAMMPS and GULP.
I've also added some tests for this function and for lammps.force calculations, and a few other minor fixes.

The tests are all passing https://travis-ci.org/abelcarreras/aiida-lammps

Great!


IfError function code coverage

Draft PR to start traction to the IfError function.
Question to reviews: some other functions need to be executed with AllowSideEffect activated. Is it ok to create new txt files for these cases? e.g. If_AllowSideEffect, IfError_AllowSideEffect

:heavy_check_mark: No Binary Compatibility issues for Microsoft.PowerFx.Connectors.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.PowerFx.Core.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.PowerFx.Interpreter.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.PowerFx.LanguageServerProtocol.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.PowerFx.Transport.Attributes.dll


managesieve: init at 0.6

Motivation for this change
Add managesieve python library and sieveshell script.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @htgoebel

@GrahamcOfBorg eval

@GrahamcOfBorg build python27Packages.managesieve sieveshell

oops, looks like I forgot to push the button, thanks for staying through all the revisions :)

Congratulations and Thanks. AFAIK NixOs is the first distribution to integrate my managesieve.


Fix/052 rc1 octomerge1

Merges #6372 #6379 #6384 #6378 #6380 as a single patch for testing purposes.

Buildfarm ID: numba_smoketest_cpu_79.

Buildfarm ID: numba_smoketest_cpu_79.

Failed. TestVectorization asserts are 64bit x86 only.


Add GitWorkflow

switch to GitHub actions
add Laravel 9 support

Hi @klimov-paul Thanks! Did you try it? The filesystem drivers has changed so it is possible it will "crash". Here is an ability to test it via integration tests https://github.com/pionl/laravel-chunk-upload-example

No, I did not yet.

Kk il try to find some time this weekend and test your PR. Thank you for the templates / GitWorflows!


fix typo in "Building registries" 1st code block

You may disregard these recommendations if you used the Edit on GitHub button from dvc.org to improve a doc in place.

❗ Please read the guidelines in the Contributing to the Documentation list if you make any substantial changes to the documentation or JS engine.
🐛 Please make sure to mention Fix #issue (if applicable) in the description of the PR. This causes GitHub to close it automatically when the PR is merged.
Please chose to allow us to edit your branch when creating the PR.
Thank you for the contribution - we'll try to review it as soon as possible. 🙏

Thanks for noticing @tmfarrell !


Restyle the Kubernetes manifests structure

I would rename the on top of Kubenetes deploy solutions' directories and I would refactor the directories structure itself because in my opinion the solutions are not properly integrations but instead unofficial deployment methods for Falco (for example anchore-falco could be considerated properly an integration with Falco).
I don't know if we'd want keep this PR within the rename of the repository discussion, but I think that this PR can proceed autonomously since it could end up being integrated inside the /contrib directory.
WDYT? :)

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign maxgio92
You can assign the PR to them by writing /assign @maxgio92 in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 399d48377c594ab60041072f6802eb34682458d1

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


using shadowsocks proxy，can‘t connect to the bitmex

using shadowsocks proxy，can‘t connect to the bitmex

bitmex-rs doesn't care about any proxy settings like HTTP_PROXY env. If you'd like to have that feature, it would be better to set your proxy on the network interface level, e.g. utun.

Ok, I think the proxy feature may also be useful for US developers. Please checkout the proxy example.

Close the issue due to inactivity.


BPA fails to load remote URL behind proxy

Tabular Editor uses the system proxy for daxformatter.com - when I add a remote URL into BPA however it's not using the system proxy, but gives an error.
Would it be possible to have BPA also use the system proxy?

Fixed in 2.9.3


Sui doc content issue or request

we cant find the options for testing in the app after launce of wave 2 on laptop but those options visible in the phone

nice

Duplicate of #7866


Add support for OPENSEARCH_INITIAL_ADMIN_PASSWORD that is required by OpenSearch 2.12.0 or later

Description
Add support for OPENSEARCH_INITIAL_ADMIN_PASSWORD that is required by OpenSearch 2.12.0 or later
Issues Resolved
N/A
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@peterzhuamazon my apologies, mind please reapproving? fixed formatting, thank you!


local pv GA doc updates

/assign @saad-ali

/hold
until https://github.com/kubernetes/kubernetes/pull/74769 is merged

It's ga in 1.14.  if we add the stable tag here then when do we remove it from the docs?

It's ga in 1.14. if we add the stable tag here then when do we remove it from the docs?

I don't think the project has a clear position on that. I haven't seen guidance on this.
We could leave that to a future tidy up (possibly with tidying done by robot).
Maybe leave it in place until the major version changes.

cc @kubernetes/sig-docs-en-reviews for guidance. Is explicitly having a feature-state stable tag what we want to do consistently going forward?  Doing a quick-search, I only see one feature in 1.14 that is using stable feature-state, and many others from 1.10, 1.11 that have not been cleaned up...

/hold cancel

@msau42 👋

Is explicitly having a feature-state stable tag what we want to do consistently going forward?

Yes--I think that makes the most sense. The adoption process may be uneven, especially given that it's late in the release cycle for 1.14, but I'd like to adopt it explicitly going forward. I'll raise it at our next SIG meeting.
/cc @jimangel @mistyhacks for visibility

Thanks for the clarification, added

@msau42 does it make sense to add the stable label to content/en/docs/concepts/storage/storage-classes.md?
Can I get a technical lgtm?
Then this is ready to merge.

From technical stand point it looks good.
/lgtm

Previews:
Storage classes
Volumes
Feature Gates
/approve


ThreadX with Modules support for TX_LOW_POWER support unclear

tx_thread_schedule.S is different when using ThreadX modules compared to ThreadX. The threadx utilities lib supports example tx_low_power_enter and tx_low_power_exit routines. However, while declared in both tx_thread_schedule.S with ThreadX and ThreadX Modules, only ThreadX calls tx_low_power_enter/exit.
#ifdef TX_LOW_POWER
.global tx_low_power_enter
.global tx_low_power_exit
#endif
is defined in tx_thread_schedule.S for ports and ports_module however it is only called with BL using ports and not ports_module. Is TX_LOW_POWER supported with threadx modules? Unclear on why it would be defined w/ .global and never called in the tx_thread_schedule.S only for ports_modules (in particular gnu m4)
Does TX_LOW_POWER etc in https://github.com/azure-rtos/threadx/blob/master/utility/low_power/low_power.md apply to threadx modules?
How does low power work with threadx modules?
Why declare it with the scheduler for threadx modules but not call it in tx_threadx_schedule.S ?
Is there a plan to support?

Yes, the low power code will work with Modules. We simply haven't added the tx_low_power calls to the scheduler in Modules yet. I've added it to my list and we should have it available in the next release.

Good news. Is there an approximate timeline for that next release?

The next release should be the end of October. If you intend to use Modules and low power in your application and need it sooner than that, please contact<EMAIL_ADDRESS>


migrate domain to projects.beta.nyc

keep pointing projects.betanyc.us to this repo

Looks sorted http://projects.betanyc.us/#!/, suggest closing.

ported. closing


[Fix-9984] Fix db-init-job failed when deploy on k8s by helm

Purpose of the pull request
This pull request fix  db-init-job failed when to deploy on k8s by helm.
When you helm install dolphinscheduler on k8s and occured this bug. The detail can see #9963.
And the reason why is there are three class SpringBootApplication CreateDolphinScheduler InitDolphinScheduler and UpgradeDolphinScheduler in tools-modules. And they are in the same pkg. When you run any class SpringBootApplication will auto-scan all their runner classes by @Component.  The SQL file will running twice. And the table t_ds_process_instance can't dropped because of foreign_key.
cannot drop table t_ds_process_instance because other objects depend on it
Detail: constraint foreign_key_instance_id on table t_ds_task_instance depends on table t_ds_process_instance

So there is a problem.
The solution is to configure to only scan itself and run only runner itself.

Brief change log

Change dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/datasource/CreateDolphinScheduler.java
Change dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/datasource/InitDolphinScheduler.java
Change dolphinscheduler-tools/src/main/java/org/apache/dolphinscheduler/tools/datasource/UpgradeDolphinScheduler.java

Verify this pull request

I have test local

close #9963 part of #9984

Codecov Report

Merging #9994 (8f4e6d7) into dev (12a4b01) will increase coverage by 0.09%.
The diff coverage is 0.00%.

:exclamation: Current head 8f4e6d7 differs from pull request most recent head 620bc79. Consider uploading reports for the commit 620bc79 to get more accurate results

@@             Coverage Diff              @@
##                dev    #9994      +/-   ##
============================================
+ Coverage     40.68%   40.78%   +0.09%
- Complexity     4579     4602      +23
============================================
  Files           834      834
  Lines         33832    33856      +24
  Branches       3745     3752       +7
============================================
+ Hits          13765    13807      +42
+ Misses        18747    18730      -17
+ Partials       1320     1319       -1

Impacted Files
Coverage Δ

...er/server/master/runner/WorkflowExecuteThread.java
8.04% <0.00%> (-0.21%)
:arrow_down:

...nscheduler/service/process/ProcessServiceImpl.java
30.85% <0.00%> (ø)

...er/master/dispatch/host/assign/RandomSelector.java
77.77% <0.00%> (-5.56%)
:arrow_down:

...org/apache/dolphinscheduler/remote/utils/Host.java
37.77% <0.00%> (-2.23%)
:arrow_down:

...e/dolphinscheduler/remote/NettyRemotingClient.java
52.11% <0.00%> (-1.41%)
:arrow_down:

...ache/dolphinscheduler/dao/entity/K8sNamespace.java
76.66% <0.00%> (+76.66%)
:arrow_up:

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 12a4b01...620bc79. Read the comment docs.

@kezhenxu94 Yes, sure, I'll close this one


Broken npm package ?

Import
As of version 1.0.21, the documented import syntax leads to an error:
import { longestCommonSubstring } from 'string-algorithms';

The following syntax does, however, work:
import { longestCommonSubstring } from 'string-algorithms/src';

Package structure
Examination of the package structure as found in node_modules/ reveals the following differences between 1.0.20 (left) and 1.0.29 (right):

The absence of the lib/ directory in 1.0.29 seems to contradict the following configuration in package.json
Tar exploration
As per this answer, a direct download of the tar from npm confirms the absence of the lib/ folder, which seems to rule out any issue with npm install

A bit more on this, as a comment.
I have looked into the git history since 1.0.20, and couldn't find anything looking remotely like a suspect in this issue. Since js packaging standards still resist my full understanding, I'm afraid I won't be able to help much on this in the near future.
Lastly, a note on something that I have been dreaming of for our own CI pipelines: the practice of running tests on the actual package that is going to end up on npm. In case that's of any interest to you.
Cheers

The module is broken.
package.json says main entrypoint is lib/index.js, but the published tarball does not have lib directory.

Yikes. Thanks @ArnaudPel and @raine! Sorry for the long delay -- I use the same GitHub account for work, but for some reason I'm completely missing notifications about activity on my personal repos.

@ArnaudPel, @raine, the issue should be resolved with version 1.0.31. My NPM integration in Travis CI had fallen behind, so commits weren't getting published. I think I probably ran a manual npm publish for 1.0.21 after realizing the package didn't update in npm.


Reverse iterator

Coverage increased (+0.4%) to 13.473% when pulling 7feee2eefff1cdfe62f4bb7ebcdde766c975e661 on reverse-iterator into 095a41b3eac5817f293c8b58a182470b9a615557 on master.


Is there any quantization tools

Is there any quantization tools for me, if I have a pretrained model with FP32, to quantize my model to a INT8 model ?

PaddleSlim


[resolves #264] Explicitly define and enforce set of publicly exposed pa...

...ckages

Refer to this link for build results (access rights to CI server needed):
https://fabric8-ci.fusesource.com/job/wildfly-camel-pullreq/164/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://fabric8-ci.fusesource.com/job/wildfly-camel-pullreq/165/
Test FAILed.


Issue with labels

When labels are different from the default one : AD/CN, TSV files can't be found.

Hello!
Just to be a bit more specific, does this problem arises when using tsvtools or train commands?
Do you have the error log?
Do you have the same error if you specify manually the names of the TSV files that must be loaded with the option --diagnoses?

I think the main problem is that currently the default option for TSV files detection is hard-coded to ["AD", "CN"] in resources/config/train_config.toml.
Then if you don't precise anything it looks for TSV files named AD.tsv and CN.tsv...
This should actually be changed by refactoring the behaviour of tsvtools to be more general.

This problem arises using the train command when manually specifying labels name with --diagnoses option.
The error log is :
Traceback (most recent call last):
File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/bin/clinicadl", line 33, in
sys.exit(load_entry_point('clinicadl', 'console_scripts', 'clinicadl')())
File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/click/core.py", line 1128, in call
return self.main(*args, **kwargs)  File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/click/core.py", line 1053, in main    rv = self.invoke(ctx)
File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/click/core.py", line 1659, in invoke    return _process_result(sub_ctx.command.invoke(sub_ctx))  File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/click/core.py", line 1395, in invoke
return ctx.invoke(self.callback, **ctx.params)  File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/click/core.py", line 754, in invoke    return __callback(*args, **kwargs)
File "/export/home/cse180022/gitlab_sophie/clinicadl/clinicadl/train/train_cli.py", line 373, in cli    train(output_maps_directory, train_dict, train_dict.pop("folds"))  File "/export/home/cse180022/gitlab_sophie/clinicadl/clinicadl/train/launch.py", line 7, in train
maps_manager = MapsManager(maps_dir, train_dict, verbose="info")  File "/export/home/cse180022/gitlab_sophie/clinicadl/clinicadl/utils/maps_manager/maps_manager.py", line 75, in init    self._check_args(parameters)
File "/export/home/cse180022/gitlab_sophie/clinicadl/clinicadl/utils/maps_manager/maps_manager.py", line 1111, in _check_args    train_df = split_manager[0]["train"]  File "/export/home/cse180022/gitlab_sophie/clinicadl/clinicadl/utils/split_manager/split_manager.py", line 92, in getitem
train_df, valid_df = self.concatenate_diagnoses(item)  File "/export/home/cse180022/gitlab_sophie/clinicadl/clinicadl/utils/split_manager/split_manager.py", line 127, in concatenate_diagnoses    train_diagnosis_df = pd.read_csv(train_diagnosis_path, sep="\t")
File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/pandas/util/_decorators.py", line 311, in wrapper    return func(*args, **kwargs)  File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/pandas/io/parsers/readers.py", line 586, in read_csv
return _read(filepath_or_buffer, kwds)  File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/pandas/io/parsers/readers.py", line 482, in _read    parser = TextFileReader(filepath_or_buffer, **kwds)  File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/pandas/io/parsers/readers.py", line 811, in init    self._engine = self._make_engine(self.engine)
File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/pandas/io/parsers/readers.py", line 1040, in _make_engine    return mapping[engine](self.f, **self.options)  # type: ignore[call-arg]  File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/pandas/io/parsers/c_parser_wrapper.py", line 51, in init    self._open_handles(src, kwds)
File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/pandas/io/parsers/base_parser.py", line 229, in _open_handles    errors=kwds.get("encoding_errors", "strict"),
File "/export/home/cse180022/.user_conda/miniconda/envs/clinicadlDev_sophie/lib/python3.7/site-packages/pandas/io/common.py", line 707, in get_handle
newline="",
FileNotFoundError: [Errno 2] No such file or directory: '/export/home/cse180022/apprimage_sophie/image_preprocessing_data/tier_2_vs_1/tsv_files/train_splits-5/split-0/[tier_1,tier_2].tsv'

Ok!
Can you write the command you launched also?
I think you have to put one flag per TSV file you want to load: -d tier_1 -d tier_2 and not -d tier_1 tier_2.

The command launched :
clinicadl train classification /export/home/cse180022/apprimage_sophie/image_preprocessing_data/caps/  /export/home/cse180022/apprimage_sophie/image_preprocessing_data/caps/tensor_extraction/extract_1637332230.json /export/home/cse180022/apprimage_sophie/image_preprocessing_data/tier_2_vs_1/tsv_files/ /export/home/cse180022/apprimage_sophie/image_preprocessing_data/tier_2_vs_1/output_results_new_ --architecture Conv5_FC3 --n_splits 5 --diagnoses ["tier_1","tier_2"] --epochs 50

ok!
The problem comes from the way the --diagnoses flag is used.
Actually to give several arguments you have to put --diagnoses tsv1 --diagnoses tsv2 ... --diagnoses tsvX
Instead of writing --diagnoses you can also use the abbreviation -d.
Another to ensure that several arguments are correctly used is to write them in a TOML file.

Seems to be solved and the general discussion is addressed in #311 .


laser_scanner: fix off-by-one in angle_increment calculation

This may fix the issues experienced by @ashchennikov in #57.
Some quick tests (fov: 5 degrees and fov: 90 degrees) show this to work:

(scans of the little pickets in front of the isles of the gas station with FOV: 90 degrees ([-45; 45]). Note: perspective is not identical, the laser scanner is mounted in front of the vehicle)
If you're still interested @ashchennikov, please give this a test.
I'll merge this next week, unless I find something is still wrong and/or someone reports an(other) issue with it.

@gavanderhoorn I may be doing something wrong, but don't really see any difference on my setup. How have you configured the scan in mod_config.lua?


Update package-lock.json

I think the dependency chain has probably changed since submitting this, so I'll go ahead and close and push an updated package-lock. Thanks!


The 'Cancel' button is empty on 'Generate Shared Access Signature' dialog

Storage Explorer Version: 1.9.0
Branch: master
Build: 20190813.12
Platform/OS: Linux Ubuntu 19.04/Windows 10/macOS High Sierra
Architecture: ia32/x64
Regression From: Previous release 1.9.0
Steps to reproduce:

Right click a sotrage account -> Select 'Get Shared Access Signature...'.
Observer the prompt dialog.

Expect Experience:
The 'Cancel' button is not empty.
Actual Experience:
The 'Cancel' button is empty.

More info:

This issue also reproduces on 'Create New Directory' dialog
This issue also reproduces 'Add/Edit Entity' dialog
This issue also reproduces 'Rename Directory'/'Rename Blob Container'/'Rename File Share'/'Rename Table' dialogs
This issue also reproduces 'Upload' dialog
This issue also reproduce on Blob/File Properties dialog
This issue also reproduces on 'Manage Access Policies' dialog
This issue also reproduces on 'Column Options'/'Select Columns' dialog
This issue also reproduces on 'Configure Soft Delete Policy' dialog
This issue also reproduces on 'Proxy Settings' dialog
This issue also reproduces on  'Execute Store Procedure' dialog
This issue also reproduces on  'New Vertex' dialog
This issue also reproduces on 'Create Collection' dialog for one datebase under one Cosmos DB account.

This issue doesn't reproduce on build master/20190815.2. So we close it.


Consideration of partial matching NACM rules corrected.

Precondition:

A RADIUS server with the corresponding shared-secret has been configured.
The following NACM rules have been configured:

    <nacm:nacm xmlns:nacm="urn:ietf:params:xml:ns:yang:ietf-netconf-acm" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
        <nacm:rule-list>
            <nacm:name>EXAMPLE</nacm:name>
            <nacm:group>EXAMPLE</nacm:group>
            <nacm:rule>
                <nacm:name>denyRadiusSecret</nacm:name>
                <nacm:action>deny</nacm:action>
                <nacm:path xmlns:sys="urn:ietf:params:xml:ns:yang:ietf-system">/sys:system/sys:radius/sys:server/sys:udp/sys:shared-secret</nacm:path>
            </nacm:rule>
            <nacm:rule>
                <nacm:name>denyRadiusSecret</nacm:name>
                <nacm:access-operations>read</nacm:access-operations>
                <nacm:action>permit</nacm:action>
                <nacm:path xmlns:sys="urn:ietf:params:xml:ns:yang:ietf-system">/sys:system/sys:radius/sys:server/*</nacm:path>
            </nacm:rule>
            <nacm:rule>
                <nacm:name>allowRead</nacm:name>
                <nacm:access-operations>*</nacm:access-operations>
                <nacm:action>permit</nacm:action>
                <nacm:module-name>*</nacm:module-name>
            </nacm:rule>
        </nacm:rule-list>
    </nacm:nacm>

Expectation:
The result of a get-config shall not contain the shared-secret.
Observation:
The shared-secret is contained in the RPC reply.
Cause:
This behavior is because the "allowRead" rule finally grants access and the variable partial_access is initialized
using the wrong value.
Additoinally, the PARTIAL_... conditions are not considered correctly within the function "ncac_allowed_node()".
So, a set of rules may result in both conditions PARTIAL_DENY and PARTIAL_PERMIT for one node.
Also the evaluation of partial_access should always take place.
Correction:
I have used bits for encoding the PARTIAL... conditions, changed the evaluation of partial_access at the
end of the function and moved this code behind the label "cleanup".

Okay, I think you are right and thanks for providing a fix.


[Bug]

Describe the Bug
https://www.cornerstonejs.org/live-examples/multivolumecanvastoworld

Steps to Reproduce
mouse move
The current behavior
Method error
The expected behavior
.
OS
window 11
Node version
19.0.0
Browser
chrome 130.0.6723.116

volume.scalarData inexistence


Getting an "Uncaught TypeError: Converting circular structure to JSON"

I am working with a deeply nested JSON object, and I am getting an "Uncaught TypeError: Converting circular structure to JSON" error when I try to examine my component in devtools.
I know that there is not much in this report to go on, so what could I provide to help troubleshoot?

What does the error stack look like?

Here you go...
Uncaught TypeError: Converting circular structure to JSON
Save.stringify @ extensions::SafeBuiltins:82
PortImpl.postMessage @ extensions::messaging:53
target.(anonymous function) @ extensions::SafeBuiltins:19
publicClass.(anonymous function) @ extensions::utils:94
sendMessageToDevtools @ proxy.js:73

Pretty sure you've got an object inside itself somewhere in your data. Should vue-devtools handle this case?

So I have an instance of leaflet map inside the vue instance & a string (API token for leaflet). I'm pretty sure that is all.

Just came across this issue, in my case I have an object (es6 class) that gets the $vm in it's constructor, and then the object is set in the vm's $data array and that causes a circular reference that can't be converted to JSON.

I am having the same issue using Mapbox (built on Leaflet). Makes me wonder if that is no coincidence. This could be an issue with how the Leaflet object is structured.

I personally restructured my code, and didn't have any more issues after that. Basically I have a class that gets $vm through the constructor, but I don't set that object as a $data attribute to avoid circular references.

In my case this happened when I somehow make a object reference between child component's data and whatever passed via props. This IS an anti-pattern, but I did this because the object passed via prop may be missing some the required default values for a specific sub-component to be properly rendered, yet I wanted the two-way reactivity, so doing this kind of thing
// ... in sub-component declaration
data: function() {
    return Object.assign(this.someProp, {
        someDefaultValue: []
    }, this.someProp); // filthy, I know
}

In the end I settled to

No more direct referencing; rather create a copy of prop, then shim with default values
Updating parent data store through $dispatch and $on when there's a change.

Looks like I can give default prop values in a simpler way. Totally missed that!
http://vuejs.org/api/#props

Having the same issue with google maps

I too am having the same problem with google maps

Vue Devtools should definitely handle circular references gracefully.
When Vue Devtools is generating the data/property value tree, it should check to see if an object is the same object as any of its parents, and instead of going deeper, show "«circular reference»".

@Glutnix where in the code does that occur? Sounds like something this group could fix for @yyx990803

I don't know, I haven't consulted the source code. I just described how you prevent circular references.

fixed via 2a626a3

Thank you Evan!

I still have this issue in vue 2.0-rc.6 with leaflet

@codeofsumit try circular-json:
const CircularJSON = require('circular-json');

let json = CircularJSON.stringify(yourObject);

I'm working with Typescript + Vue project, had this error when working with openlayers.
The fix for me was to : Mounted() { } in my .ts file.
Ref: https://forum.vuejs.org/t/reference-an-inner-div-inside-of-template/19903/2