data abstraction in c#

Article checklist
ATTENTION: In your PR - add the ISSUE (topic form) # that this PR corresponds to. You can do this by also adding a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
If you have not already please go over our Resources Page for more tips and tricks on how to improve our overall technical writing.
Preliminary Checks - Formatting and Structure

[x] Does your article follow any of the suggested structure formats? - see example formats
[x] Is your article properly formatted in Markdown? - see Github Markdown guide
[x] Have you used the correct folder and file structure? - see Contribution Guidelines
[x] Is your article over 750 words? - Tool: Wordcounter.net
[x] Have you used our preferred heading structure? - H3 (###) and up
[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.
[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.
[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images
[ ] In your PR - add a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.

Grammar & plagiarism checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid -  Grammarly
[x] Please place your article through a 3rd party plagiarism checker? We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[x] Have you checked your article for readability? - Tool: Hemmingway
[ ] Have you added sources for quotes and images that aren't yours?

Technical checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide

Contribution guidelines
For first-time contributors and for more details, see Contributing Guidelines
This fixes #2648

@Dick7603
Good afternoon and thank you for submitting your article for publishing.
Your article has been entered into our queue and should be reviewed (and published pending any changes) as soon as a peer reviewer is finished with the ones in the queue before it. 🚀
Thank you.

hello @kayere I wish to enquire about the progress of my article.

plagiarism check done

Noted
On Wed, Jul 28, 2021, 4:37 PM Peter Kayere @.***> wrote:

@.**** commented on this pull request.
Hello @Dick7603 https://github.com/Dick7603, welcome to section's
engineering education program. Sorry for the delayed review. This is a
great article. I have made some changes for flow and format. Please go
through them so that you can apply them in your future articles.
Lastly, please edit you conclusion. It does not seem appealing at the
moment. You can write a summary of what the article covers and how that can
help the reader in a real-life scenario. Ping me when you are done so that
we can proceed to final review.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/section-engineering-education/engineering-education/pull/2915#pullrequestreview-717009943,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AURCHEA2CU4JMC526QMX7BTT2ABYJANCNFSM5AIXM2BA
.

hello @kayere I have done the requested changes.
Please check my last commit. Thank you

Congrats on your first article and welcome to Section EngEd🎉 @Dick7603
Thank you for the review @kayere


Error: reconstructBody command returned non-zero exit status -9

I run it on docker and encounter the error below. Thanks

Main iteration : 2
SliceToVolumeRegistration
EvaluateRegistration

excluded :

mean registration ncc: 0.996
CreateSliceMasks

parameters : d = 150, l = 0.0135 a = 1
InitializeEMValues
CoeffInit
GaussianReconstruction
SimulateSlices
InitializeRobustStatistics
EStep
CStep
..........................................................

Reconstruction iteration : 0
Superresolution
Error: reconstructBody command returned non-zero exit status -9

this is the memory related error
what is the RAM on your machine?
do you run it with "-remote" option
you can try to extend SWAP
Thanks,
Alena

Thanks Alena, the RAM of my machine is 8GB and I successfully run it if I downsample the image. Thanks for your help.


[atom-reason] highlight as; jsx improvements

This PR fixes a bug with as in type expressions and improves highlighting for JSX. @jordwalke @chenglou
Based on the discussion on discord, I investigated some alternatives for highlighting the JSX. There is a react plugin that shows highlighting using the "atom dark" theme where the tag delimiters and the tag name have the same colors. However, this is because the colors for those tokens for that theme happen to coincide. For other themes it can look differently.
I put together a comparison of some of the more common themes to show how JSX is highlighted with that plugin:

So what I've done is gone through and changed the highlighting for this plugin to use the usual theme tag highlighting scopes for lowercase names as well as the tag delimiters. For module paths, the module prefix is still highlighted as a module but if the last path component is a lowercase identifier, it is highlighted with the scope for tag names.
 For one, with the default "dark one theme", if the module path prefixes use the theme tag scope, the paths will consist of light red next to dark red, which is something I've tried to minimize with the most recent changes @chenglou requested. I also think it's generally a good idea to try and maintain the invariant that syntactic entities have (for the most part) the same color consistently throughout the document.
But also for practical purposes, for a few themes it ends up looking worse than others to use the same scope for the tag name and the delimiters. For the "Dracula" theme (the one I personally use the most), for instance, it would either be the keyword pink (for lowercase) or the italic, underlined green (for module names), both of which look kind of bad for large blocks.
Currently I'm trying to get pretty good results across Dracula, Monokai, Dark+ [on vscode], Dark One, and Oceanic Next. So it's also a bit tricky to make adjustments to help one theme (e.g., Dracula, as above) without negatively impact the others too much.
But one other change I made is to lighten the background for JSX in the Dark One and a few others that have a similar scope. It's a bit subtle but maybe it helps a little bit.
We could try to improve things further still and maybe look at using some custom styles in the plugin itself but in the meantime this should be a little better.
Here are some previews:
Atom Dark

Dark One

Oceanic Next

Base16 Tomorrow Night

I am happy to remove the lightening of the background for JSX blocks on themes that support it if people find the effect to jarring.

Awesome thank you!


Screen flickering

Issue Type: Performance Issue
I am running VSCode in my Asus laptop and the screen keeps flickering all the time. It starts a few seconds after I open the software. I am using 2 screens and this issue never happened before with any other software. If I click the screen and start writing the code it kind of go back to normal but it goes weird again after a few seconds. If I don't click the screens it gets worse with time. I have a GeForce Nvidia1650 4Gb, 16gb RAM, Intel i5 9300H. Any solutions for this issue?
VS Code version: Code 1.52.1 (ea3859d4ba2f3e577a159bc91e3074c5d85c0523, 2020-12-16T16:34:46.910Z)
OS version: Windows_NT x64 10.0.19042

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz (8 x 2400)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.86GB (9.98GB free)

Process Argv
--crash-reporter-id 7df45c82-55ef-4f26-a3aa-910cf121d4d5

Screen Reader
no

VM
0%

Process Info
CPU %	Mem MB	   PID	Process
    1	    73	 14504	code main
    0	    36	   864	   utility
    0	   161	  1680	   window (index.php - Lesson-01 - Visual Studio Code)
    0	   173	  5832	     extensionHost
    0	    12	 10512	     watcherService
    0	    11	 11212	       console-window-host (Windows internal process)
    0	    67	 15684	     searchService
    0	    22	  3352	   crashpad-handler
    0	    77	  9308	   window (Issue Reporter)
    0	    84	 10700	   shared-process
    0	   115	 16144	   gpu-process

Workspace Info
|  Window (index.php - Lesson-01 - Visual Studio Code)
|    Folder (Lesson-01): 1 files
|      File types: php(1)
|      Conf files:;

Extensions (4)

Extension
Author (truncated)
Version

vsliveshare
ms-
1.0.3484

vsliveshare-audio
ms-
0.1.91

vsliveshare-pack
ms-
0.4.0

LiveServer
rit
5.6.1

A/B Experiments
vsliv368:30146709
vsreu685:30147344
openlogontheside:30221877
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30211401
wsl2prompt:30224612
vstry244cf:30244300
pythonvsdeb440cf:30242243
unusedpromptcf:30224611
folderexplorercf:30224615
openfilemenucf:30224648
pythonvsded773cf:30236630
pythonvspyt859:30241729

Looks like duplicate of #93356
I guess that if issue was closed in November as upstream then it might be fixed in Electron 11 which is in Insiders build https://code.visualstudio.com/insiders/
Could you check if it is still reproducible in Insiders builds?
Workaround: start VS Code with code --disable-gpu or more permanent flag https://code.visualstudio.com/updates/v1_40#_disable-gpu-acceleration

Looks like duplicate of #93356
I guess that if issue was closed in November as upstream then it might be fixed in Electron 11 which is in Insiders build https://code.visualstudio.com/insiders/
Could you check if it is still reproducible in Insiders builds?
Workaround: start VS Code with code --disable-gpu or more permanent flag https://code.visualstudio.com/updates/v1_40#_disable-gpu-acceleration


While using a tumbex URL not everything is downloaded.

When using a tumbex url not everything is downloaded. The cause of this is simple. Flagged posts are deleted by tumblr though the correct term should be "hidden" as said flagged post are still visible on tumbex and the image still exist on tumblr cdn's . This is my theory.
So when the application converts the tumbex url to a tumblr url, said "hidden" posts are not downloaded as they don't show up on the tumblr blog.
As it stands, the tumbex feature ,which was added because someone requested it so he or she could scrape those nsfw posts is not working and therefor pointless in it's current state. ( I think)
A solution would be to scrape tumbex directly instead of converting it to tumblr.

No example, no fix. Sorry. I don't have the time to search for an issue you might have seen without the steps to reproduce it.
I'm sure TumblThree even loads blogs Tumbex doesnt even display (404). Here, have two examples (NSFW):
https://www.tumbex.com/sexyperfectbodies.tumblr/posts
https://www.tumbex.com/h0t0rw0t.tumblr/posts
And if you read the other issue, I'm even saying there how Tumbex is apparently accessing the images, and how TumblThree does the same (depending on the chosen scraping implementation).
Thus, unless you are showing me a concrete example, I'll not do anything.

[..] This is my theory.
[..]
therefor pointless in it's current state. ( I think)
[..]
A solution would be to scrape tumbex directly instead of converting it to tumblr.

Well, if you want that, feel free to submit the code.
To be honest, I'm really tired oh this kind of ($/"= posts. That's why this project is essentially dying. People are coming here, complaining, not even showing examples on how to reproduce those said errors, telling me how they would do everything better, yet are they even willing to actually contribute real code.

And for the record: I'm not even saying TumblThree is perfect, far from it! I'd even guess that Tumbex might show images TumblThree currently doesn't download just because of the big cluster f... which Tumblr is.

And here we have an example of a developer who does not know how to properly respond to a user filing a github issue. If you want a reason as to why this project is dying (as you claim it is), here's probably why.
If you don't want people filing issues on your project, then don't put your project on Github. Good luck with it.

Well, if you want that, feel free to submit the code.

I'm a user , not a dev. If I was a dev, I wouldn't be using this program now would I?

This is all so sad, sorry. Did I say that people should not open issues here? No! To all the rest, I'll simply not answer.
Good bye! Have a nice day.

And here we have an example of a developer who does not know how to properly respond to a user filing a github issue. If you want a reason as to why this project is dying (as you claim it is), here's probably why.

Would it not have been better to thank the author for making such a great program?


Support for .Net Standard20

Updated all projects other than the unit test project to .Net Standard 2.0. Note this breaks compatibility with .Net Framework <4.7.
Updated the unit test project to .Net Framework 4.7.1 since UT cannot be done from a netstandard project. All UT is passing.
Had to remove two methods form EmitHelper, please review. Work left: Update version number and release nuget package. Can you help with this?

@benskid thanks for this. Would you mind I add you as a collaborator on NuGet so that you can build and publish an update version?

The changes LGTM btw.

@benskid thanks for this. Would you mind I add you as a collaborator on NuGet so that you can build and publish an update version?

Sure, that'd be fine.

Thanks, what is your nuget email?

<EMAIL_ADDRESS>On Wed, May 13, 2020 at 4:24 PM Buu Nguyen<EMAIL_ADDRESS>wrote:

Thanks, what is your nuget email?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/buunguyen/fasterflect/pull/11#issuecomment-628225955,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABIV2ZTNPZAML2CGSWOGPYLRRL6XJANCNFSM4M65KWEA
.

Is your NuGet username benskid?
After you build the package and before publishing, would appreciate if you send the PR with all the changes so that the repo is sync'ed.
Please bump up the major version since this is a breaking change.
Thanks again for working on this.

My Nuget username is bernarddijk. Changes are in the commit above.

Thanks. I've just added your account to Nuget.

Also added you as collaborator of this repository.

I've just added your account to Nuget.

Not that I can tell; I tried uploading the updated package but was unable. Can you double check?

I think you have to accept the invitation. There should be an email sent to the address associated with your Nuget.


Undocumented changes to top-level afterAll call execution

Describe the bug
Updating to 0.31.0 broke a test in which we had an (admittedly unnecessary) top-level call to afterAll (before any describe calls).
In 0.30.1, this function was being executed after all the tests in the file. In 0.31.0, the function is instead executed before all the tests in the file.
It's not clear to me what the correct behavior should be here, since calling afterAll in this way isn't standard, but if this is an intentional change, it should be called out in the changelog.
Reproduction
Working in 0.30.1: https://stackblitz.com/edit/vitest-dev-vitest-muaygk?file=test/basic.test.ts
Broken in 0.31.0: https://stackblitz.com/edit/vitest-dev-vitest-qrvcip?file=test/basic.test.ts
System Info
% npx envinfo --system --npmPackages '{vitest,@vitest/*,vite,@vitejs/*}' --binaries --browsers

  System:
    OS: macOS 13.2.1
    CPU: (12) arm64 Apple M2 Max
    Memory: 56.00 MB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.12.1 - ~/.n/bin/node
    Yarn: 3.4.1 - ~/katoa/node_modules/.bin/yarn
    npm: 8.19.2 - ~/.n/bin/npm
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 113.0.5672.92
    Safari: 16.

Used Package Manager
yarn
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

It has nothing to do with afterAll. Your mock is not working because vi.mock AND vi.unmock are both hoisted. Use vi.doUnmock if you need to call it inside a hook.
Not sure why it was working before, but it looks like it was a bug.

Oh I see, thanks for explaining!
Might want to call this out in the release notes as a Bug fix then, if only to make it clear that this behavior has changed with the update.


Simple customization for loading view

Added two optional parameters for ADB2CEmbedWebView to allow customization:

loadingReplacement - to replace default loading indicator widgets
webViewBackgroundColor - to change default webView background color

Giving possibility of customization like this will allow fitting loading view in app specific style.

@microsoft-github-policy-service agree


Documentation uses the word "mandated" for requirement levels other than MUST

The term "mandated" implies a requirement level of MUST. The API linter documentation is misleading in this regard, as it uses that term even when the requirement level is SHOULD.
Example: core::0134::request-mask-required

This rule enforces that all Update standard methods have a field in the request message for the field mask, as mandated in AIP-134.

However in the AIP in question:

The method should support partial resource update

and

If partial resource update is supported, a field mask must be included.

The must here is conditional on the should above, meaning this is not actually mandated by the AIP.

That's fair feedback.
Would you see the rule documentation verbiage softened e.g. as recommended in AIP-134? If so, please feel free to send a PR to update the rule doc.

The method should support partial resource update

This is a separate discussion, but having a PATCH that only supports full replace isn't a PATHC, it's a PUT without the POST-semantics if missing. So I'm wondering why we'd want to qualify inclusion of update_mask on Standard Update at all. This is probably a separate issue though. Did you have an example of a Standard Update that doesn't support partial updates? thanks!

Did you have an example of a Standard Update that doesn't support partial updates? thanks!

This is very easy to consider in theory. Until/unless you add any new fields, there's no need to bother implementing partial update support (especially if you require etags). It can always be added later, meaning adding any new mutable field to the resource would require adding an update_mask field for backwards compatibility.

Note that there's not always much value in supporting update masks. For example, if the only mutable field on your resource is an unordered list. Furthermore, protobuf libraries for FieldMask don't support all of AIP-161 (e.g. wildcards and maps). This further reduces the cases where update masks are useful.

I see and you're right in a lot of ways, thanks for taking the time to respond. Fixing the rule docs!


Add dataset status and move/delete/archive information

Update the dataset table to include:

status (-1: Invalid (e.g., copy data failed during creation), 1: Valid, 2: Archived, 3: deleted)
archive_date (When archived)
archive_path (Where archived to)
delete_date (when deleted)
delete_uid (who deleted)
move_date (when last move)

Any more?

I don't think these attributes (invalid, valid, archived, deleted) are exactly mutually exclusive.  We might want to treat the status field as a bit mask up.  Possible attributes of the dataset are
invalid  (registration failed; there may be a file or files on disk but they are useless)
valid     (successful registration and file(s) exist on disk)
backed up  (successful registration and file(s) backed up)
deleted  (no files on disk)
or maybe carry this a bit further and subdivide "valid"  into orthogonal attributes "valid" (registration successful) and "live" (usable files exist on disk).
To be further discussed.

Have updated the dataset status field to be a bitmask. So now any combination of valid, deleted, archived are available with a single digit.
Have also added a CI test for the functions.

Some questions:
Do we want a move_uid?
Does "deleted" imply "not valid"?   What about "moved"?
Maybe we wait until these things are fully implemented before worrying too much about the exact form of these fields.
But in any case I think we should wait until the "reformat register" PR is approved (and merged with to version placeholder branch) before merging in this one.


LICENSE file

Hello,
Would you mind adding a LICENSE file to the package? Thanks :)

@sokra would it be possible to process this? There is also a PR with license file.
Would it be possible to release new patch version with license file in it?


Question about the file "patients.json"

Thank you for your excellent work. Not only in the overall paper, but in the open-source project.
I have some questions about the "patient.json" file and would like to ask for your guidance, thank you so much!
About all, I don't know how to get the reformed text medical record, whether it was generated by GPT-4 or written by doctor?  Besides, if it is convenient for you, I would like to know the way you obtain the "profile" in the data. It seems to be applying a prompt to generate.

Yes. Profile is generated by GPT-4 based on "一般资料"， “主诉”，"现病史", "既往史"

I get it. Thank you so much


Add Block wrapper - python

Blocked by https://github.com/iotaledger/iota-sdk/issues/873 and https://github.com/iotaledger/iota-sdk/issues/869
https://github.com/iotaledger/tips-draft/blob/tip46/tips/TIP-0046/tip-0046.md#block-wrapper

Closed by https://github.com/iotaledger/iota-sdk/pull/1346


"Invalid publication 'mavenShadowArtifacts' does not exist" error from publishToMavenLocal task

I found your project from the issue https://github.com/eclipse/transformer/issues/146, and am trying to incorporate it into an existing project where only one artifact needs to be shadowed in this way. It is possible that this project is overkill for this work, but it seemed like a good way to get started with the tool.
The project is structured much like the shadowMulti example, and I am able to also reproduce the issue there. I think that the tasks are not correctly wired up to tell gradle to ensure that all outputs are fresh and ready to go each build.
Steps to reproduce:

Check out the jakarta-transformer-plugin, and cd into src/testkit/resources/shadowMulti, or make a copy of that directory
Modify real-jakarta/build.gradle to list jakarta-transformer 0.9.6
Set up gradlew, using gradle 6.8, same as the jakarta-transformer-plugin project itself for consistency
Invoke ./gradlew publishToMavenLocal to get the real-jakarta project (and real itself) in local maven for use in other maven/gradle projects, to confirm that the shaded behavior is correct

Expected results:
Successful build, and both real and real-jakarta are deployed to ~/.m2/repository.
Actual results:
Build fails:
$ ./gradlew pTML
> Task :real-jakarta:publishMavenShadowArtifactsPublicationToMavenLocal FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':real-jakarta:publishMavenShadowArtifactsPublicationToMavenLocal'.
> Failed to publish publication 'mavenShadowArtifacts' to repository 'mavenLocal'
   > Invalid publication 'mavenShadowArtifacts': artifact file does not exist: '/home/colin/workspace/jakarta-transformer-plugin/src/testKit/resources/shadowMulti/real-jakarta/build/libs/real-jakarta-1.0.0.jar'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
11 actionable tasks: 11 executed

Only real is published:
$ find ~/.m2/repository/org/hibernate/build/gradle/jakarta/
/home/colin/.m2/repository/org/hibernate/build/gradle/jakarta/
/home/colin/.m2/repository/org/hibernate/build/gradle/jakarta/real
/home/colin/.m2/repository/org/hibernate/build/gradle/jakarta/real/maven-metadata-local.xml
/home/colin/.m2/repository/org/hibernate/build/gradle/jakarta/real/1.0.0
/home/colin/.m2/repository/org/hibernate/build/gradle/jakarta/real/1.0.0/real-1.0.0-sources.jar
/home/colin/.m2/repository/org/hibernate/build/gradle/jakarta/real/1.0.0/real-1.0.0.jar
/home/colin/.m2/repository/org/hibernate/build/gradle/jakarta/real/1.0.0/real-1.0.0-javadoc.jar
/home/colin/.m2/repository/org/hibernate/build/gradle/jakarta/real/1.0.0/real-1.0.0.pom
/home/colin/.m2/repository/org/hibernate/build/gradle/jakarta/real/1.0.0/real-1.0.0.module

A workaround seems to be possible - you can run the shadow task first, and then after that publishToMavenLocal will be able to find the outputs it expects. The group task shadow itself is required, or invoking each of the expected jar/javadoc/source tasks
My suspicion as a relative gradle newbie is that tasks are not correctly hooked up, inputs to outputs, or I am entirely misunderstanding how this plugin is intended to be used, and that for an existing project where publishToMavenLocal is not expected to work out of the box, or projects are expected to be built. I have a draft of a patch that I'm iterating on to resolve this, but it does break a few tests - but most of those seem to be valid changes, where perhaps task should be skipped as already up to date, etc - I'll tidy it up and link it, unless you have thoughts about how I am using this wrong.

Sorry, I do not support this anymore.  We decided to move Hibernate from Java Persistence to Jakarta Persistence at the source level so I no longer need this shadow/dynamic approach.
That said, these were the tasks I ended up using to do the conversion for Hibernate - https://github.com/hibernate/hibernate-orm/tree/wip/6.0/hibernate-orm-build/src/main/java/org/hibernate/orm/jakarta
They work well at the source level.  You can chose how you want to handle the output from there.
IMO Gradle makes it too difficult to really implement a Java "project" that does not apply the java / java-library plugin.  I have asked quite a few questions on the Gradle forum if you are interested in the background.  So I gave up.


[Q] Rust bindings

Has anyone attempted to create rust bindings (via bindgen or cxx)? I wanted to ask before attempting to do this. Thanks.

Hi @SteveMcFarlin
I am not aware of any Rust bindings for TSDuck, at least not publicly.
Currently, in addition to the native complete C++ interface, TSDuck has Java and Python bindings only, for a subset of high-level features. There was a proposed JavaScript binding but the build integration was unfortunately never completed by the contributors.
The main requirement for valuable bindings in another language is object-oriented capabilities. TSDuck as a strictly object-oriented design, internally and in the user API. TSDuck defines abstract classes (or interfaces in Java parlance) and uses them to dispatch demuxing, events, logging, plugin interface, etc. The application implements subclasses through which it is notified of everything.
The Java and Python bindings define the corresponding classes so that an application in these languages can subclass them and get notified. The sample subdirectory in the TSDuck source tree contains Java and Python small applications which intentionally have the same structure to illustrate the similarities.
I am not knowledgeable enough in Rust to evaluate the feasibility of equivalent bindings. From what I have read on Rust, the language has no class or inheritance features (feel free to correct me if I am wrong). It only has traits. Even though the two concepts are vaguely related, inheritance and traits are very different. C++ has both and they are used for distinct purposes. Similarly, Java and Ada have generics and inheritance for distinct purposes.
Therefore, designing valuable Rust bindings for TSDuck would require an experienced Rust expert to adapt the API concepts. Maybe it is possible, I don't know. It you are volunteer, I would be glad to help. Just let me know.
Of course, for a dedicated usage, it is still possible to write specialized C++ functions and interface them with Rust. It can help for a dedicated Rust project but this can hardly be defined as Rust bindings for TSDuck.

I took a look into autocxx, and also browsed the core of TSDuck. I honestly think your last point is the path forward for usage of TSDuck in a Rust application.
Yes you are correct that rust has no notion of a class as most OO languages implement (Essentially C structs is all). While trait objects do implement V-Tables, it is far from a 1-1 mapping to a C++ class. At this point I think it may be possible to implement the API bindings in Rust, but would probably not be overall useful and quite possibly a pain to work with.
Thank you for the response, and for writing and maintaining such a great library.


expandcmd() expands $* to 'nonomatch'

Steps to reproduce
I used expandcmd() on one of my &makeprg that contains a $*. It seems like Vim replaces each occurrence of $* with nonomatch.

Run vim --clean -c 'echomsg expandcmd("$*")'
Result: nonomatch

Expected behaviour
I don't know what the best approach would be. But 'nonomatch' seems odd.
Maybe one of the following makes more sense:

Replace each occurrence of $* with an empty string, just like any non-existent environment variable is replaced with an empty string.
Add an optional argument to expandcmd({string} [, {args}]) and replace each occurrence of $* in {string} by {args}. This is equivalent to the original purpose of $* on the command line.

Operating system
Gentoo Linux
Version of Vim
8.2.3613
Logs and stack traces
No response

Hm, interesting. This comes from your shell, try running the command using :set verbose=5 and you'll see that vim expands those variables by the shell. The command run is (for zsh): set nonomatch; print -N "$*". Unfortunately, the set commands also set the positional parameters, so the $* will be expanded to the nonomatch by your shell.
I think the idea is, to prevent an error if the shell pattern does not match any file in the current directory. The nonomatch seems to be necessary for csh like shells, bash doesn't really understand it and therefore assigns this to the positional parameter. For zsh, one could use  set -o  not sure for other shells, bash specifically doesn't seem to have a way to set this option without affecting the positional parameters.
See also https://github.com/vim/vim/blob/master/src/os_unix.c#L6668-L6675

not sure, possibly this patch could be used? Note, this will not expand '$*', but leave it as is.
diff --git a/src/os_unix.c b/src/os_unix.c
index 0b2b5725e..0ed02f680 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -6691,10 +6691,18 @@ mch_expand_wildcards(
     }
     else
     {
-       if (flags & EW_NOTFOUND)
-           STRCPY(command, "set nonomatch; ");
+       if (shell_style == STYLE_GLOB)
+       {
+           // Assume the nonomatch option is valid only for csh
+           // like shells, otherwise, this may set the
+           // positional parameters for the shell, e.g. $*
+           if (flags & EW_NOTFOUND)
+               STRCPY(command, "set nonomatch; ");
+           else
+               STRCPY(command, "unset nonomatch; ");
+       }
        else
-           STRCPY(command, "unset nonomatch; ");
+           STRCPY(command, "");
        if (shell_style == STYLE_GLOB)
            STRCAT(command, "glob >");
        else if (shell_style == STYLE_PRINT)

BTW: quoting from http://litux.nl/Books/books/www.leothreads.com/e-book/oreillybookself/unix/upt/ch06_09.htm

Set nonomatch when you want the C shell to treat nonmatching wildcards like the Bourne shell does . (15.4)

which references: http://litux.nl/Books/books/www.leothreads.com/e-book/oreillybookself/unix/upt/ch15_04.htm
This makes it sounds, as if the nonomatch should only be used for C-like shells.

The fix makes sense.  Can you make a PR for it?

of course!


How do I load .pyhtml templates?

This may sound like a silly question - and it probably is, because I should have been able to get this to work by now.
I want/need to include a .pyhtml file in the application I am making.
I looked in the source code, and the PyHTML extension should automatically send and render the template when I go to a page with the name of my PyHTML and .pyhtml in the end, correct?
So, if I have a file named "page.pyhtml", I should simply be able to visit /page.pyhtml?
Because, that gives me a 404 error.
I have initialized the PyHTML addon and I have enabled debugging, but I did not get any output from the debugger.

Hello @William04A,
For your first question, yes, it's right, you can try that in the demo.
If you have the 404 not found error, it's because the server doesn't found the pyhtml file on physical path.
Can you try the demo and check if the ...../test.pyhtml works please?
(files must be in www folder by default).

I didn't realize the www folder... of course! But, I put two files in that folder:
-page.pyhtml
and
-test.html
<IP_ADDRESS>/test.html - Returns 200
<IP_ADDRESS>/page.pyhtml - Returns 404
So I think that the path is no longer the issue.

Hello,
Could you send me your code (main and page.pythml)?
It's maybe a root path problem.

I am using your server for a product and cannot, therefore, disclose any code.

Ok, I understand and I thank you for that.
But just, could you try the demo on your platform and check the test.pyhtml page who must be works because if the module is loaded, I don't understand why you got a not found error for the pyhtml file only...

I've been getting some similar (but different) difficulties while trying to use pyhtml templates.
When RootPath is set to 'www', using a pyhtml template as the NotFoundUrl causes any request without a route to return a 403 Forbidden error, rather than redirecting to the pyhtml file. Only attempting the route /www/ will return the redirect.
Using a pyhtml file in AddDefaultPage also seems to cause 403 Forbidden on requests without a route.
Here's my code (/www/index.pyhtml exists on the device):
from MicroWebSrv2 import *
mws2 = MicroWebSrv2()
mws2.SetEmbeddedConfig()
pyhtmlTemplateMod = MicroWebSrv2.LoadModule('PyhtmlTemplate')
pyhtmlTemplateMod.ShowDebug = True
mws2.RootPath = "www"
mws2.NotFoundURL = "index.pyhtml"
mws2.StartManaged()

Here's the results of requests:
<IP_ADDRESS>/ -> 403 Forbidden
<IP_ADDRESS>/www/ -> 307 Temporary Redirect (to <IP_ADDRESS>/index.pyhtml)
<IP_ADDRESS>/index.pyhtml -> 200 OK (loads properly)
If I try to use AddDefaultPage instead of NotFoundURL:
from MicroWebSrv2 import *
mws2 = MicroWebSrv2()
mws2.SetEmbeddedConfig()
pyhtmlTemplateMod = MicroWebSrv2.LoadModule('PyhtmlTemplate')
pyhtmlTemplateMod.ShowDebug = True
mws2.RootPath = "www"
mws2.AddDefaultPage('index.pyhtml')
mws2.StartManaged()

<IP_ADDRESS>/ -> 403 Forbidden
<IP_ADDRESS>/www/ -> 404 Not Found
<IP_ADDRESS>/index.pyhtml -> 200 OK (loads properly)
If I use an html file (test.html so as to not be caught by default configs) instead of a pyhtml file, then both NotFoundURL and AddDefaultPage work as expected where:
<IP_ADDRESS>/ -> 200 OK
<IP_ADDRESS>/www/ -> 307 temporary redirect (if using NotFoundURL, else 404)
<IP_ADDRESS>/test.html -> 200 OK

Hello @echolocation,
Ok your results are normal because modules (like pyhtml) are not called for a default page :

RootPath is the physical root path, so <IP_ADDRESS>/www doesn't exists and is redirected if NotFoundURL is present.
<IP_ADDRESS>/ is the root directory and 403 is returned if no html default page is present.
If you really want that '/' processes a .pythml file, you must to handle '/' route and return a redirect to the .pythml file yourself.
In effect, modules are processed before http routes and are not called for a specific file extension but when the request starts.

That explains a lot, thank you!
On Wed., Jan. 8, 2020, 7:34 p.m. J-Christophe Bos<EMAIL_ADDRESS>wrote:

Hello @echolocation https://github.com/echolocation,
Ok your results are normal because modules (like pyhtml) are not called
for a default page :

RootPath is the physical root path, so <IP_ADDRESS>/www doesn't
exists and is redirected if NotFoundURL is present.
<IP_ADDRESS>/ is the root directory and 403 is returned if no html
default page is present.
If you really want that '/' processes a .pythml file, you must to
handle '/' route and return a redirect to the .pythml file yourself.
In effect, modules are processed before http routes and are not called
for a specific file extension but when the request starts.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jczic/MicroWebSrv2/issues/22?email_source=notifications&email_token=ABWJIDBVGMAXICCR2LPK2CDQ4ZWJLA5CNFSM4KB4I7ZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIOPYVI#issuecomment-572324949,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABWJIDAFE374QSW57ALQJIDQ4ZWJLANCNFSM4KB4I7ZA
.

Ok, I understand and I thank you for that.
But just, could you try the demo on your platform and check the test.pyhtml page who must be works because if the module is loaded, I don't understand why you got a not found error for the pyhtml file only...

Absolutely, I am doing that and getting back ASAP.

Running the demo and visiting /test.pyhtml gives me a 304 Temporary Redirect to the index page. I assume that is not expected...?
Initializing filesystem as FatFS!

       ---------------------------
       - Python pkg MicroWebSrv2 -
       -      version 2.0.6      -
       -     by JC`zic & HC2     -
       ---------------------------

 + [@WebRoute] GET /test-redir
 + [@WebRoute] GET /test-post (TestPost1/2)
 + [@WebRoute] POST /test-post (TestPost2/2)

MWS2-INFO> Server listening on <IP_ADDRESS>:80.
MWS2-INFO> Starts the managed pool to wait for I/O events.
MWS2-DEBUG> From <IP_ADDRESS>:27557 GET /robots.txt >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27556 GET / >> [200] OK
MWS2-DEBUG> From <IP_ADDRESS>:27556 GET /style.css >> [200] OK
MWS2-DEBUG> From <IP_ADDRESS>:27556 GET /pdf.png >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27559 GET /favicon.ico >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27560 GET /test.pyhtml >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27561 GET /pdf.png >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27562 GET /favicon.ico >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27563 GET /test.pyhtml >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27564 GET /pdf.png >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27565 GET /favicon.ico >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27566 GET /test.pyhtml >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27567 GET /pdf.png >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27568 GET /favicon.ico >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27571 GET /test.pyhtml >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27572 GET /pdf.png >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27573 GET /favicon.ico >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27574 GET /test.pdf >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27575 GET /pdf.png >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27576 GET /favicon.ico >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27578 GET /test.pyhtml >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27577 GET /pdf.png >> [307] Temporary Redirect
MWS2-DEBUG> From <IP_ADDRESS>:27580 GET /favicon.ico >> [307] Temporary Redirect

The example seems to 307 everything for me...

Ok I see and I don't understand why the first /style.css returns OK.
Could you try to test files manually with the os.stat function like :
from os import stat
print(stat('/'))
print(stat('/www'))
print(stat('/www/style.css'))
print(stat('/www/pdf.png'))

There seems to be a problem reading the file size in the returned tuple.
Thank you for your help to solve it :)

(16384, 0, 0, 0, 0, 0, 0, 959558400, 959558400, 959558400)
>>> print(stat("www"))
(16384, 0, 0, 0, 0, 0, 0, 315532810, 315532810, 315532810)
>>> print(stat("www/style.css"))
(32768, 0, 0, 0, 0, 0, 574, 315532862, 315532862, 315532862)
>>> print(stat("www/pdf.png"))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 2] ENOENT
>>> print(stat("/www/pdf.png"))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 19] ENODEV```
I could not get to pdf.png for some reason, but it is under www/pdf.png on my device.

I am using a PyCom WiPy.

I am looking for some help trying to get the .pyhtml templates to load. I have read over everything I could find with no luck. With this configuration, it will 'download' the file to my machine '[200] OK' but won't render. What am I doing wrong?
I am trying to get the /testpy.pyhtml to load:
########################################
@WebRoute(GET, '/test')
def RequestTest(microWebSrv2, request) :
request.Response.ReturnOkJSON({
'ClientAddr' : request.UserAddress,
'Accept'     : request.Accept,
'UserAgent'  : request.UserAgent
})
@WebRoute(GET, '/testpy')
def OnRequest(microWebSrv2, request) :
request.Response.ReturnFile('/test.pyhtml')
pass
mws2 = MicroWebSrv2()
mws2.SetEmbeddedConfig()
pyhtmlTemplateMod = MicroWebSrv2.LoadModule('PyhtmlTemplate')
pyhtmlTemplateMod.ShowDebug = True
mws2.RootPath = "/"
#mws2.ConnQueueCapacity = 8
mws2._slotsCount = 4
#mws2.BufferSlotsCount = 10
mws2.BufferSlotSize = 1024
mws2.KeepAllocBufferSlots = True
mws2.MaxRequestContentLength = 16*1024
mws2.StartManaged()
Main program loop until keyboard interrupt,
try :
while True :
sleep(1)
except KeyboardInterrupt :
mws2.Stop()

Ok I got it figured out for anyone else that might come across this problem...
@WebRoute(GET, '/testpy')
def OnRequest(microWebSrv2, request) :
request.Response.ReturnRedirect('/test.pyhtml')
pass
mws2 = MicroWebSrv2()
mws2.SetEmbeddedConfig()
pyhtmlTemplateMod = MicroWebSrv2.LoadModule('PyhtmlTemplate')
pyhtmlTemplateMod.ShowDebug = True
mws2.RootPath = "/"
#mws2.ConnQueueCapacity = 8
mws2._slotsCount = 4
#mws2.BufferSlotsCount = 10
mws2.BufferSlotSize = 1024
mws2.KeepAllocBufferSlots = True
mws2.MaxRequestContentLength = 16*1024
mws2.StartManaged()
try :
while True :
sleep(1)
except KeyboardInterrupt :
mws2.Stop()

Hi @interconnectix, indeed, ReturnFile(...) returns a file as a response but not a page to process.
The .pyhtml files are processed automatically when they correspond directly to a route.
If you want to manually return a .pyhtml file yourself, you would have to directly call the function of the module that processes the file to transcribe it into content and then return that content.

Hi @jczic, what would you recommend then for code to call the function directly? I am currently using a redirect using routes.

And using the routes is the normal and easiest way :)
Only if you have special needs it can be useful to process the pyhtml content directly.


[BEAM-8339] Fix wrong temp_location in run_rc_validation.sh

We should use USER_GCS_BUCKET for all gcs variables. The existing one is removed in previous refactor. This change will fix Python Leaderboard with DataflowRunner pipeline.
+R: @yifanzou

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

PythonLint is unrelated.


Repeatedly throwing "Unfinished session detected" while task is running

Describe the bug
In the frontend I'm repeatedly and relatively frequently getting the modal dialog stating that an "unfinished session" has been "detected", offering me to load it or start a new session. Loading it replays every single chat message from the very beginning, which can  - depending on the task - take a while. Meanwhile the message pops up again. I do not want to start a new session. And I do not want to have to reload the existing session over and over again.
Setup and configuration
Current version:

commit 707ab7b3f84fb5664ff63da0b52e7b0d2e4df545

My config.toml and environment vars (be sure to redact API keys):
LLM_MODEL="gpt-4"
LLM_API_KEY="<secret>"
LLM_BASE_URL="https://api.openai.com/v1/"
LLM_EMBEDDING_MODEL="openai"
WORKSPACE_DIR="./workspace"

My model and agent (you can see these settings in the UI):

Model: openai/gpt-4
Agent:

Commands I ran to install and run OpenDevin:
make build
make setup-config
make run

Steps to Reproduce:
Simply start a long running task. After a while the dialog should pop up. Unless something else causes this behavior... I do not know yet.
Logs, error messages, and screenshots:
Additional Context

A new session is supposed to mean only to not load the messages history. "Do not continue where you left off".
So maybe it is the option you want?

Ah. It might have a timer, or more than one session, not sure. Maybe it helps to delete the cache folder in opendevin directory.

This should only happen on page load...is it possible the page is refreshing for some reason?

@rbren Maybe it's Chrome's energy saving mode that unloads a background tab until you open it again... I'll have to watch it.

I'll just note that I've definitely seen this message pop up more often than it should. I don't have specific repro steps available.
One weird flow though:

Refresh page
Tell it to start a new session
Refresh again
Get prompted again (should probably just be the fresh unstarted session?)
Say "resume"
You get back to the old original session

@HWiese1980 I believe this was solved. I'll close this, but please take a look at 0.4.0 and feel free to reopen to let us know if this still happens.
@rbren That scenario isn't happening anymore either. (On main, but I'm pretty sure the fixes were older than 0.4.0)


Wrong text

The page states:
-Identity
The Identity parameter specifies the DLP policy you want to remove.
The Get-DlpPolicy CmdLet does not remove DLP policies.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7affb903-e8d2-d47b-2028-342cf76136cc
Version Independent ID: b2b85792-5021-0b20-ae26-bf129d69acca
Content: Get-DlpPolicy (ExchangePowerShell)
Content Source: exchange/exchange-ps/exchange/Get-DlpPolicy.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@skrubbeltrang, fixed. In the future, you too can make fixes like this yourself; no need to open an Issue first. For instructions, go here.
Thanks for the feedback.
Closing


Potential conversion issues with numbers

I found some problems in LazyJSON when trying to see if it can interwork with Unmarshal.jl, trying to reconstruct Julia objects from JSON serialization of the objects.
Conversion to Float32 is not supported and conversion to Float64 does a non-standard ?conversion which causes the reconstructed values to differ for some Float64 values.
See below:
julia> using JSON, JSON2, JSON3, LazyJSON, Unmarshal

julia> val = -1.74632
-1.74632

julia> jstring = json(val)
"-1.74632"

julia> j1 = JSON.parse(jstring)
-1.74632

julia> j2 = JSON2.read(jstring)
-1.74632

julia> j3 = JSON3.read(jstring)
-1.74632

julia> jl = LazyJSON.parse(jstring)
-1.74632

julia> typeof(j1), typeof(j2), typeof(j3), typeof(jl)
(Float64, Float64, Float64, LazyJSON.Number{String})

julia> Float64(jl)
-1.7463199999999999

julia> j1 == j2 == j3
true

julia> j1 == j2 == j3 == jl
false

julia> Float32(jl) == Float32(val)
ERROR: MethodError: no method matching Float32(::LazyJSON.Number{String})
Closest candidates are:
  Float32(::Real, ::RoundingMode) where T<:AbstractFloat at rounding.jl:200
  Float32(::T) where T<:Number at boot.jl:718
  Float32(::Int8) at float.jl:60
  ...
Stacktrace:
 [1] top-level scope at REPL[5]:1

It seems that LazyJSON's conversion from  LazyJSON.Number{String} to Float64 is different from the other JSON packages.
I did a single line change to support Float32 conversion, which I will submit as a PR. Then the last line works.

We ran into this issue recently, and I want to report another two examples of the above:
julia> Float64(LazyJSON.parse("1.7272"))
1.7271999999999998

julia> Float64(LazyJSON.parse("1.727"))
1.7269999999999999

From what I can tell from reading the spec that's linked (https://tools.ietf.org/html/rfc7159#section-6), json is supposed to be able to represent any Float64 value losslessly from julia? Is that how I should read this?:

good interoperability can be
achieved by implementations that expect no more precision or range
than these provide, in the sense that implementations will
approximate JSON numbers within the expected precision

What would you think about changing the custom parse_number() implementation to instead of each of these functions:
https://github.com/JuliaCloud/LazyJSON.jl/blob/53c63f0169b3c5441172a2d6bedd3735e1b9e04a/src/Number.jl#L136-L150
be implemented via calls to Base.parse(T, s)?
Something like this?:
for T in (Int8, Int16, #= ..., =# Float64,)
    @eval Base.$T(n::JSON.Number)::$T = Base.parse($T, @view n.s[n.i:end])
end

This way we would ensure that we keep the parse equivalent to how Julia would parse it, and simplify the implementation?

After a bit more reading, I see now that you want a custom parse_number() implementation so that you can handle a number whose expected type you don't yet know in getvalue() and getflat():
https://github.com/JuliaCloud/LazyJSON.jl/blob/53c63f0169b3c5441172a2d6bedd3735e1b9e04a/src/LazyJSON.jl#L172
https://github.com/JuliaCloud/LazyJSON.jl/blob/53c63f0169b3c5441172a2d6bedd3735e1b9e04a/src/LazyJSON.jl#L212
But I think you could keep the current implementation of parse_number() (or maybe also simplify it) and only use it for identifying how many characters the number takes up (which is one of its current functions), but stop using it for conversion (via the eval definition suggestion above), since when converting the user provides the specified type, and in that case we can rely on julia's implementation, AND it's maybe better to repeat the parse with the output type in mind, since that would help support parsing to custom types (e.g. FixedPointDecimal), and might allow us to avoid certain rounding errors or something?
Anyway, I would appreciate your thoughts on this!
Thanks very much.


Add polygon Delegated Manager System deploy scripts

Deployment Processes
New/Updating Deployment Scripts
Before submitting a pull request for new scripts, make sure the following is done:

Execution doc is created and posted here: [Insert Link]

Submitting Deployed Addresses
Before submitting a pull request to check in new address, make sure the following is done:

Source diff should only include deployed address. Deployment script updates are checked in separately and deployment happens from master

:tada: This PR is included in version 1.0.0-t1.1 :tada:
The release is available on:

npm package (@test dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Motion scan effect has no parents

To solve this, I propose to order the motion scan effect under false positive and false negative detection.

But the detections are neither. They are just at a different position than you would expect given one timestamp for the entire point cloud.


flutter run on device with previously ran app installed crashes

Ever since 0.4.4 if you run a flutter app in a device, then disconnect the device, reconnect it (or even just pressing stop and then play in Android-Studio), and run again it crashes with a stacktrace and everything. The only solution, which is terribly unpractical, since this option is not available in Android Studio is to flutter clean and flutter packages get, and them run again, which takes a lot longer.
Crash output-------------------------------------------
Oops; flutter has exited unexpectedly.
Crash report written to /home/meego/code/hypnotic/glimpse/flutter_01.log;
please let us know at https://github.com/flutter/flutter/issues.
FAILURE: Build failed with an exception.

Where:
Script '/opt/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 435

What went wrong:
Execution failed for task ':app:flutterBuildDebug'.

Process 'command '/opt/flutter/bin/flutter'' finished with non-zero exit value 1

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Get more help at https://help.gradle.org

BUILD FAILED in 14s
Finished with error: Gradle build failed: 1
flutter_01.log ---------------------------------------------------------------
Flutter crash report; please file at https://github.com/flutter/flutter/issues.
command
flutter build bundle --suppress-analytics --target /~project/lib/main.dart --preview-dart-2 --filesystem-scheme org-dartlang-root --depfile /~project/build/app/intermediates/flutter/debug/snapshot_blob.bin.d --asset-dir /~project/build/app/intermediates/flutter/debug/flutter_assets
exception
FileSystemException: FileSystemException: Cannot open file, path = '/~project/assets/glimpse/build/app/intermediates/flutter/debug/flutter_assets/assets/glimpse/assets/ic_glimpse_colored.png' (OS Error: No such file or directory, errno = 2)
#0      _File.open.<anonymous closure> (dart:io/file_impl.dart:368)
#1      _rootRunUnary (dart:async/zone.dart:1134)
#2      _CustomZone.runUnary (dart:async/zone.dart:1031)
#3      _FutureListener.handleValue (dart:async/future_impl.dart:129)
#4      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:633)
#5      Future._propagateToListeners (dart:async/future_impl.dart:662)
#6      Future._completeWithValue (dart:async/future_impl.dart:477)
#7      Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:507)
#8      _rootRun (dart:async/zone.dart:1126)
#9      _CustomZone.run (dart:async/zone.dart:1023)
#10     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:949)
#11     _microtaskLoop (dart:async/schedule_microtask.dart:41)
#12     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#13     _runPendingImmediateCallback (dart:isolate-patch/dart:isolate/isolate_patch.dart:113)
#14     _RawReceivePortImpl._handleMessage (dart:isolate-patch/dart:isolate/isolate_patch.dart:166)

flutter doctor
[✓] Flutter (Channel beta, v0.5.1, on Linux, locale en_GB.UTF-8)
    • Flutter version 0.5.1 at /opt/flutter
    • Framework revision c7ea3ca377 (5 weeks ago), 2018-05-29 21:07:33 +0200
    • Engine revision 1ed25ca7b7
    • Dart version 2.0.0-dev.58.0.flutter-f981f09760

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /opt/android-sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-P, build-tools 27.0.3
    • ANDROID_HOME = /opt/android-sdk
    • Java binary at: /opt/android-studio/jre/bin/java
    • Java version openjdk version "1.8.0_152-release"
    • All Android licenses accepted.

[✓] Android Studio (version 3.1)
    • Android Studio at /opt/android-studio
    • Flutter plugin version 26.0.1
    • Dart plugin version 173.4700
    • Java version openjdk version "1.8.0_152-release"

[✓] Connected devices (1 available)
    • SM A320FL • 3300a37d998b14cb • android-arm • Android 6.0.1 (API 23)

• No issues found!

Created two new projects, since and didn't have this problem. could it be because of the project having been created with an older flutter? I really don't know why this happens, let me know if there's anything else I can do to help debug

Fixed it, for some obscure reason, the code folder was linked inside the assets, and that is what was causing the issue, once the link was deleted, it started working again.
I don't know what caused the code to be linked in the assets, but since it works without it, I will close this.
Thanks


Tests failing with<EMAIL_ADDRESS>

The tests are failing on travis when using<EMAIL_ADDRESS>although it works with 2.0.1 (except with Node@6).
https://travis-ci.org/senecajs/seneca-auth/builds/125576505

Travis log error: 'seneca is already decorated with the property', the property is: 'si.use(require('seneca-entity'))'. This error only occurs when using<EMAIL_ADDRESS>When using<EMAIL_ADDRESS>and Node@6 a possible leak is detected with module 'Reflect'

solved: https://github.com/senecajs/seneca-auth/pull/92


@container is messed up

Environment

## System:
 - OS: Windows 10 10.0.19045
 - CPU: (20) x64 12th Gen Intel(R) Core(TM) i9-12900H
 - Memory: 13.41 GB / 31.68 GB
## Binaries:
 - Node: 18.12.1 - C:\Program Files\nodejs\node.EXE
 - Yarn: 1.22.19 - C:\Program Files\nodejs\yarn.CMD
 - npm: 9.2.0 - C:\Program Files\nodejs\npm.CMD
## npmPackages:
 - styled-components: ^5.3.6 => 5.3.6

Reproduction
Let's try a few syntaxes:
const Div = styled.div`
  container-type: inline-size;
  container-name: div-container;

  @container waste-stream-chooser (max-width: 1000px) {
    background: hotpink;
  }
`;

Or:
const Div = styled.div`
  container-type: inline-size;
  container-name: div-container;

  @container waste-stream-chooser (max-width: 1000px) {
    & {
      background: hotpink;
    }
  }
`;

Or:
const Div = styled.div`
  container-type: inline-size;
  container-name: div-container;

  @container waste-stream-chooser (max-width: 1000px) {
    .another {
      background: hotpink;
    }
  }
`;

Steps to reproduce
Use the above component in an application. Doesn't matter what or where.
Expected Behavior
It generates correct CSS and doesn't mess up the @container block.
Actual Behavior
It generates incorrect CSS, which causes the container query to completely break.
In order of the above examples, it generated the following incorrect output:
.kNXntJ {
 container-type:inline-size;
 container-name:div-container;
}
@container div-container (max-width:1000px) {
 background:hotpink;
}
/*|*/
}

First example. The last two lines, that weird comment and an additional }, are generated only when @container is used. Also the contents of the container query fail to be wrapped by a .kNXntJ { ... } block, as it would in a @media query which works fine.
.kNXntJ {
 container-type:inline-size;
 container-name:div-container;
}
@container div-container (max-width:1000px) {
 background:hotpink;
}
/*|*/
}

For the second example, identical output. The fact that I put a & { ... } in an attempt to wrap the contents of the contianer query with the correct classname, is totally ignored and omitted for some reason.
.kNXntJ {
 container-type:inline-size;
 container-name:div-container;
}
@container div-container (max-width:1000px) .another {
 background:hotpink;
}
/*|*/
}

For the third example, the opening { is lost, breaking its syntax yet again.
I would propose to make container queries just do exactly what media queries do currently. Just make it absolutely 100% identical to how @media functions in terms of SC, at least for now, so that at least it doesn't break syntax. Not breaking syntax seems like the first priority. Fancy magic can wait, if needed.
Please note, I have noticed this is being worked on in the next version, or in some kind of prerelease version. That's fine. This is simply about the bug that breaks syntax. Like I said, fancy magic to support container queries in a really nice and convenient fancy styled-components kind of way, is fine to wait for the next version. Right now what's important is to not break syntax.

Bummer. I was hoping it would be backported, since generating incorrect CSS seems like a pretty severe problem. I would hope that when SC doesn't understand a piece of syntax, the worst it should be allowed to do, is to leave it be. This would also be incorrect, but not quite as incorrect (i.e. still parsable by the browser) as what's currently happening.

Unfortunately it’s not possible to backport since stylis v4 introduced a new plugin system and we offer plugin support. Bummer, I know.
It should be a simple upgrade to v6 beta though

Version 6 was released today, but support has not been delivered, are there any plans to implement this feature?

It's supported


Ruby version support?

Would it be time to update the CI matrix to in-support Ruby versions?
(Current status: Ruby 2.5 is EOL.)

bold claim: people running on Ruby <= 2.4 still use AMS instead of Blueprinter since Blueprinter isn't around since that long.
I.e. we could drop:

2.2
2.3
2.4

and add:

2.6
2.7
3.0

Also, if we perform the benchmark for each Ruby version, we can greatly simplify the CI script by using a test matrix (see the docs: https://circleci.com/blog/circleci-matrix-jobs/).

This is being addressed in #307.  We are switching to GitHub Actions and moving to maintained ruby versions.  2.7 will be handled separately for known legacy application.

New 0.26.0 version has been released that is 2.7+


Defined default values for gateway_enabled & subnet_id

Defined default values for gateway_enabled & subnet_id

Closing this PR as we raised another PR which covers even this fix.


Release 59

Coverage remained the same at 32.032% when pulling fef610c390580cb443d115555fe8058a23b67af9 on current into 74e54c24bf4cd1d36de06e51e5b43f6227af8dbb on master.


Refine the log according to RFC

Development Task
According to https://github.com/pingcap/tidb/blob/master/docs/design/2020-05-08-standardize-error-codes-and-messages.md, we need to refine our error/fatal level log, but we still need to follow https://github.com/tikv/rfcs/blob/master/text/2018-12-19-unified-log-format.md.
Here are some packages we need to refine:

[ ] client
[ ] apiutil
[ ] adapter
[ ] etcdutil
[ ] metricutil
[ ] server
[ ] cluster
[ ] placement
[ ] schedulers
[ ] tso

@lhy1024 pick schedulers

@JmPotato pick up tso

@howardlau1999 deals with cluster

@Yisaer pickup etcdutil and metricutil

@ZenoTan pick up server


Issue #78 solved

Changed chrome-search-extention in the first line of How to Contribute section to Fearch.

@vishvanath45 Thansk for the PR 😄
I guess you didnt update repo before making the change and as a result commit from iamrishab07 is also showing.
Do a git rebase -i HEAD ^^ and keep only your commit. Remove the commit from iamrishab07 and do a git push -f

Also please have a look at CONTRIBUTING.md on how to make a commit message.

@vishvanath45 nice rebase :P you still need to follow the commit structure shortlog is the commit message where u specify in short what change you made. It should be very short. Commit body is where u explain in detail. And in the body we put the Fixes issue tag

@vishvanath45 i approve this PR you can go ahead and write your proposal @PaliwalSparsh will merge it whenever he's free :D

@vishvanath45 Thanks great work. Looking forward for your proposal.


[Bug] ACL policy for SSH not working after update to v23.0 beta1

Is this a support request?

[X] This is not a support request

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
SSH not working after updated to beta1 and changed config for it:

Expected Behavior
wokring in versions befor
Steps To Reproduce
...
Environment
- OS: Ubuntu
- Headscale version: 23.0 beta1
- Tailscale version:

Runtime environment

[X] Headscale is behind a (reverse) proxy
[X] Headscale runs in a container

Anything else?
No response

adding text:
{
  "groups": {
    "group:admin": ["masterwishx"],
    "group:family": ["user1", "user2", "user3"]
  },

  "tagOwners": {
    "tag:cloud-server": ["group:admin"],
    "tag:home-pc": ["group:admin", "group:family"],
    "tag:home-pc-vm": ["group:admin"],
    "tag:home-server": ["group:admin"],
    "tag:home-server-vm": ["group:admin"],
    "tag:home-mobile": ["group:admin", "group:family"],
    "tag:home-mobile-vm": ["group:admin", "group:family"]
  },

  "acls": [
    {
      // admin have access to all servers
      "action": "accept",
      "src": ["group:admin"],
      "dst": ["*:*"]
    },

    {
      // family have access to all home pcs,Speedtest Tracker
      "action": "accept",
      "src": ["group:family"],
      "dst": ["tag:home-pc:*", "tag:home-server:9443", "tag:home-server:8180"]
    }

    // We still have to allow internal users communications since nothing guarantees that each user have
    // their own users.
    //{ "action": "accept", "src": ["admin"], "dst": ["admin:*"] },
    //{ "action": "accept", "src": ["family"], "dst": ["family:*"] }
  ],

  "ssh": [
    {
      "action": "accept",
      //"src": ["tag:cloud-server", "tag:home-server", "tag:home-pc"],
      "src": ["group:admin"],
      "dst": ["tag:cloud-server", "tag:home-server"],
      "users": ["root", "ubuntu", "abc"]
    }
  ]
}

@masterwishx could you run
tailscale debug netmap on one of the ssh dst hosts?

@masterwishx could you run
tailscale debug netmap on one of the ssh dst hosts?

Sure, will here...

i think like was no acl file was located when tryed beta1

When goes back to alpha12 have on same machine:

I too having issues with acl’s. In alpha12 nodes that don’t have access to other nodes, now can access other nodes in beta1, when using file mode.
Appears file mode does not work. I switched to database mode then headscale policy set -f [path to acl file]
Then headscale policy get, and can see all acls.
Now restricted nodes based on acl can’t communicate to other nodes as configured.

@pallabpain

@kradalby Sure. I'll take a look at this. From what @seanob86 reported, I can probably investigate the part when ACL is loaded from a file and whether I messed it up during the re-write. 😅

I also encountered an issue after upgrading to beta1.
My config contains:
acl_policy_path: "/etc/headscale/acls.hujson"
policy:
  mode: file
  path: "/etc/headscale/acls.hujson"

Without acl_policy_path, ACLs do not work at all. headscale policy get returns no ACLs in that case.
When using the deprecated acl_policy_path, everything works and headscale policy get returns the ACLs accordingly.
As previously mentioned, it seems ACLs are not loaded correctly when using the new file mode.

I also encountered an issue after upgrading to beta1.
My config contains:
acl_policy_path: "/etc/headscale/acls.hujson"
policy:
  mode: file
  path: "/etc/headscale/acls.hujson"

Without acl_policy_path, ACLs do not work at all. headscale policy get returns no ACLs in that case. When using the deprecated acl_policy_path, everything works and headscale policy get returns the ACLs accordingly. As previously mentioned, it seems ACLs are not loaded correctly when using the new file mode.

That's what I wrote in discord

@kradalby @pallabpain
can confirm after added : acl_policy_path: "/etc/headscale/acls.json" all working fine

I confirm having this bug too. I suggest removing the "for SSH" part in the title as the issue affects all ACLs.

I know this is 99% certain that it is related to the ACL changes, but could you help test if the DNS breakage had an impact?
I think #2034 addresses DNS issues, would it be possible for you to help me test it? would be great to avoid another bad release like beta1.
Binary is available here: https://github.com/juanfont/headscale/actions/runs/10195837541?pr=2034

I know this is 99% certain that it is related to the ACL changes, but could you help test if the DNS breakage had an impact?
I think #2034 addresses DNS issues, would it be possible for you to help me test it? would be great to avoid another bad release like beta1.
Binary is available here: https://github.com/juanfont/headscale/actions/runs/10195837541?pr=2034

Sure I can check it tomorrow, what is link for docker? :pr2034

Also I don't have any dns issues for now with beta1, but also installed and using Adguard home as container in host network and using it in config as dns, enabled also tailscale dns on same host becose otherwise magic DNS not working in this machine

Sure I can check it tomorrow, what is link for docker? :pr2034

We do not build docker containers for prs/branches sadly, so you will have to build it.

Sure I can check it tomorrow, what is link for docker? :pr2034

We do not build docker containers for prs/branches sadly, so you will have to build it.

OK, got it. Did you asked from me to check?

can confirm after added : acl_policy_path: "/etc/headscale/acls.json" all working fine

I think I've found the error, Cobra, the framework we use for reading the config file has a lot of sharp edges for aliases from old to new configs, so I will make the acl_policy_path a hard error and only read the new one.
Sorry for the inconvenience!

can confirm after added : acl_policy_path: "/etc/headscale/acls.json" all working fine

I think I've found the error, Cobra, the framework we use for reading the config file has a lot of sharp edges for aliases from old to new configs, so I will make the acl_policy_path a hard error and only read the new one.
Sorry for the inconvenience!

It's OK, I'm really sorry for was unable to help becose of docker build...

can confirm after added : acl_policy_path: "/etc/headscale/acls.json" all working fine

I think I've found the error, Cobra, the framework we use for reading the config file has a lot of sharp edges for aliases from old to new configs, so I will make the acl_policy_path a hard error and only read the new one.
Sorry for the inconvenience!

@kradalby Yes, that was my hunch as well. Apologies for not being able to take a look at the issue.
Per this comment, the db mode works fine and only file mode was unable to get the file path.
Thanks for addressing the issue. :)

also had this issue, why is YAML no longer supported for ACLs? it's so much easier to edit in something like nano/vim

also had this issue, why is YAML no longer supported for ACLs? it's so much easier to edit in something like nano/vim

We are reducing the maintenance cost for developers, sorry for the inconvenience, but we will only support one format (hujson) forward.

also had this issue, why is YAML no longer supported for ACLs? it's so much easier to edit in something like nano/vim

We are reducing the maintenance cost for developers, sorry for the inconvenience, but we will only support one format (hujson) forward.

Can't you just add like 2-3 lines of code, if the files ends with  .yaml then convert it over to JSON first? I'm down to submit a patch because yaml genuinely makes this so much easier to manage on a server over SSH, editing JSON over SSH is just painful.


Have flag that just returns the response with no other extra data

Create a flag similar to response-code-only that will only return the body.

--response-only is the new flag.


Migrate 1.0 Runtime and SDK

Migrate the existing functionality from CodeFactory to CodeFactory for Windows.

Completed first pre release SDK deployed to nuget. Runtime installer vsix still in internal and partner testing.
https://www.nuget.org/packages/CodeFactory.WinVs.SDK/2.23149.1-PreRelease


Framework / SDK Version / Tools confusion

I presume this is all down to the version hell that has descended upon all .Net developers attempting to use core, but I can't get a generated Aurelia project to run.
I don't have VS2017 installed so picked the "project.json" option. This generated a global.json which pointed to SDK version 1.0.0-preview2-1-003177. On opening the project in VS2015, it complained that version was wrong. I manually changed global.json to point to 1.0.0-preview2-003131 and VS2015 stopped complaining, but the app did not run.
So I went to  to get the latest VS2015 version of the tools. This did not update my SDK so (after reverting global.json) I still got the same errors.
I see that on this page  that there is a 1.1 version that sort of matches "1.0.0-preview2-1-003177." So is "1.1 with SDK Preview 2.1 build 3177" what I should have installed, even though it is 1.1 not 1.0.0? I thought 1.1 was only for VS2017 installs.
I can't run from the command line either as dotnet.exe is picking up the references to 1.1.0 in the "project.json" file and is insisting I install "framework version" 1.1.0 instead of 1.0.1.
Arrrgh!

Sorry, you're right. Having different version numbers and release schedules for tooling versus libraries, even though they depend on each other, is such a headache. I will be very glad when this phase is over, which it should be soon since the RTM tooling is almost here.
Anyway, what you need - if you're doing a project.json-based project - is:

.NET Core 1.1 SDK (yes, that is 1.0.0-preview2-1-003177). To find this download, you have to be on the "Current" tab on this page. This includes its own correct version of the .NET Core runtime, so you don't need to install that separately.
(Optional) If you want to use VS2015 with it, also install Visual Studio 2015 Tools (Preview 2), downloadable from the same page. There's only one version of the VS2015 tools - it's the same download, no matter whether you're using the "LTS" or "Current" SDK.

Theoretically you should not have to uninstall any other versions of .NET Core SDK/runtime, since they should all co-exist happily. But that's only theoretically, so if your machine has by now got into a bad state, you might want to start by wiping them all out.
If, on the other hand, you wanted to use VS2017RC, then you don't need to install any of this stuff, because VS2017RC includes its own correct versions of it all. But be sure to be on the latest version of VS2017RC (currently, that's build 26127).
Hope that helps.

Lovely! Installing the correct SDK was the only bit I was missing.
Just a comment... a matrix of which features are supported by each framework/skeleton would be really handy. I prefer Aurelia technically, but the perceived higher levels of support and help from projects like yours for Angular 2 might make it seem a more safe/pragmatic choice.


Linux support

No idea if this is even possible seeing as there are multiple different file managers.
Suggestion welcome though :)

what about pwd (http://linux.about.com/library/cmd/blcmdl1_pwd.htm)

@rawgni That prints the current directory for the shell, not the file manager.

any updates?

@webkitten https://twitter.com/slicknet/status/782274190451671040


State not Updating Properly after Page Refresh?

What's up Tyler. This issue may be due to my limited understanding exactly how react-redux should work, but here's what's happening:

Create recording.
UI gets updated.
End recording.
UI gets updated to be removed.

This is the proper behavior for our extension. When I do this:

Create recording.
UI gets updated.
Refresh page.
UI comes back to proper state.
End recording.
UI is not removed.

The UI is not removed and in fact a nested component that shouldn't be getting rendered does and its mapStateToProps function is getting called (which is throwing an error). I made a recording showcasing the bug with our tool:
https://www.opentest.co/share/d07eab70645c11e69680a3b55516ed77
Not sure what could be the cause, but I'm game to look into this today since this is kinda a high priority for us to fix.

Hey, @vhmth. Sorry for being MIA the last couple days. I've been traveling.
I'll try to take a look at this as soon as I get a free moment.

No worries at all @tshaddix. Was wondering if you had any idea what might be going on off the top of your head so I could look into it too. Will let ya know if I find anything.

So gave this a bit more thought - perhaps it's the order the listeners are fired in Store.js:
this.listeners.forEach(function (l) {
  return l();
});

Here's my theory:
On first page load, I have a ContentApp component which determines whether or not to render the nested recorder. The nested recorder isn't rendered immediately when there isn't a recording going on, so it and its children do not have listeners attached to the store via connect.
When you refresh the page however or start the app in a state where the nested components are rendered, those nested component subscribe calls somehow get ahead of the listener for the top-level component which is why their mapStateToProps function is called before the top-level component is able to remove those components.
Not sure how this would even be possible looking at the code, but I'm gonna see if I can figure it out.

Just added a console.log in the subscribe method of the Store object and can confirm that a nested component's listener is indeed at the head of the array. So I believe its mapStateToProps will get called before other components. Diving deeper.

Dove into react-redux a bit and can see that trySubscribe which does the actual subscription to the store is pretty dumb (as in simple). It simply tries to subscribe at componentDidMount. I'm going to console.log at each mapStateToProps in my component hierarchy and compare them before and after a page refresh.

So I've logged the component in each mapStateToProps function. For context, the hierarchy of the components is as follows:
[<ContentApp>] -> [<PersonalRecorder>] -> [<BubbleMenu> | <Camera>] -> [<BubbleMenuXItem>]
It looks like the calls are getting called in the same order from a fresh load vs. after a refresh:
Fresh Load

Load after Refresh

Ending a recording also looks the same except it seems like <Camera> gets called  again after <PersonalRecorder> which is strange. This is also where I'm seeing the error being thrown in mapStateToProps since that component shouldn't be rendered at that moment and I'm expecting the shape of the state to be different in it:
End Recording with No Refresh

End Recording with Refresh

@vhmth Thanks for all the detailed documentation. I'm still having a bit of trouble following along as I don't have the source to tinker with. Looking forward to hearing your findings.

Yeah not 100% sure what's going on yet. The general gist is:

Create sample chrome app that toggles some UI component when the browser action is clicked.
Make sure the UI component has nested container components created via connect.
Toggle to render UI.
Refresh.
Toggle to remove UI.
Observe that the the nested components are getting updated with the new state even though they're supposed to be removed.

I was looking through the code here as well as createStore in Redux and noticed that you are setting up your own plain store for the content script Store objects.
Is there any reason you went with that approach vs. creating an internal redux store via createStore and adding some middleware to it that handles the proxying to/from the background script? Trying to figure out what pitfalls we may run into by delegating most of the core store logic to createStore from Redux and conforming to what their middleware API may be.

Update:
This works even if I have a singly-nested component. Will try to make a standalone repo that showcases what's going on so you can take a look too @tshaddix.

Hey @tshaddix I've created a very simple repo that showcases how to reproduce the bug. If you check the README, there is a video link there with how to get up and running and exactly what to look for:
https://github.com/vhmth/react-chrome-redux-bugs

@vhmth Cool thanks for doing this!
To answer your question:

Is there any reason you went with that approach vs. creating an internal redux store via createStore and adding some middleware to it that handles the proxying to/from the background script?

I tried to keep the components as simple and single-purpose as possible. Redux stores do a lot of excellent things with reducers and middleware to build a final state, but we don't need any of that on the UI Component side. We already have the final state from the background store, so why use a full Redux store when you just need a basic Proxy to fulfill the same API?
That was my logic at the time, anyways :)

No worries - that makes sense. That's how I'd build it too. :-) Was just curious if there were other reasons.
So I console.log'd in mapStateToProps for each component in the sample app and it seems like after a page refresh the mapStateToProps of the subcomponent gets called before its parent. Very strange. That's definitely the issue here - trying to figure out why/how that's happening from react-redux's point of view. Since the store here is very simple, maybe it's a quirk that we're not catching/hasn't been documented?

Yep I just ran it on my end and was able to reproduce the bug.
I've never run into this myself mostly because I stick to the smart/dumb component philosophy, which limits the amount of connect() calls you can have in parent-child relationships (only container components should have connect calls).
Regardless, that doesn't solve this bug. I'm not convinced this is a react-chrome-redux bug as the ProxyStore implements the exact same API as a redux store. A redux store does not pick and choose what parts of the state it's going to present last time I checked. It just dumps the entire state to all listeners. How that information actually gets distributed is up to react-redux.
I checked to make sure there was nothing weird about the order in-which a redux store fires subscribe listeners. It looks like we do it the same way (in order).

I think I mechanistically understand what's happening.
react-redux's connect component will try to subscribe to the store at componentDidMount. Since componentDidMount gets called from children up the component hierarchy to their parents, nested connect components will get state updates before their parents since they subscribe to the store first. This only happens after a refresh in this case because, without the refresh, the sub component isn't initially rendered in my demo app (and the Opentest app).

That's dead-on to what I'm seeing in the example repo you have. What's next?

Likely opening an issue/doing some research in react-redux.

@vhmth Good to hear! Not trying to sell you on one philosophy or another! There are definitely people who argue against the container/presentation component philosophy.

Hahaha check this out: https://github.com/reactjs/react-redux/pull/320

PR opened up against react-redux: https://github.com/reactjs/react-redux/pull/465

@vhmth Thanks for following up on this!

Sure thing! Looks like they're probably gonna accept it. They were asking for me to write some tests so I just squared that away.

@tshaddix my changes have landed in react-redux's beta. We've been testing this beta on our staging extension and will be testing with our beta extension later today. Looks like the next version of react-redux will not break with this library. Just thought I'd keep you posted.


Added test for reproduction of rolling failure

This happens when write/read operations are done concurrently and the queue buffer file is rolled

see #41


Connection Failed

some docker connections are failed

docker-metasploit,Arch Linux Penetration Tester

I've addressed both of these issues on #37 and submitted the appropriate pull requests to this repo

Heads up @hksanduo my PR to fix the docker-metasploit thing just get accepted so it should work now if this is still an issue for you. Arch Linux Penetration Tester pull request is still open but you can also get the docker image from my pull request if you want

some docker connections are failed

Fixed


Failed to push to gh-pages

Summary / 概要
This is what it shows up on the workflow.
Steps to reproduce / 再現方法
Expected behavior / 期待される挙動
Actual behavior / 実際の挙動
ERROR:onlinejudge_verify.main:GH_PAT is not available. You cannot upload the generated documents to GitHub Pages.
INFO:onlinejudge_verify.verify:all tests succeeded

Other notes / その他

Will you try to create a pull request?

no

Couldn't reproduce. Closing


Fix dependency version problem in setup.py

When trying to install this package I got an error informing me that google-assistant-library 1.1.0 has requirement google-auth<2,>=1.0.1, but you'll have google-auth 2.3.0 which is incompatible. Removing the top-level dependency on the google-auth package lets google-assistant-library's transitive deps bring in a working version of google-auth.
cf. https://github.com/google/aiyprojects-raspbian/issues/746

@googlebot I signed it!

@googlebot I signed it!

@googlebot I signed it!

Hi


Remove old dependency "Workspace.hpp"

Upstream removed src/helpers/Workspace.hpp so I removed it here too, plugin still works fine without it if build against the git version

This fixes building through hyprpm from hyprland 0.37.1

Fixed by merging #52


Zei/add maintenance mode/2089

Description
adding chef-server-ctl maintenance sub command for controlling chef server for maintenance activities.
As part of this the following features are added

chef-server-ctl maintenance on/off will turn on or off the maintenance mode. In this mode the APIs will not work.
-a [ip address] and -r [ip address] will add and remove the ip address from the white list. The APIs hit from the white listed ips will not be blocked during maintenance mode.
By default <IP_ADDRESS> ip is white listed

Issues Resolved
resolves #2089
Check List

[ ] New functionality includes tests
[ ] All buildkite tests pass
[ ] Full omnibus build and tests in buildkite pass
[ ] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco
[ ] PR title is a worthy inclusion in the CHANGELOG

Testing Report -

Verified chef-server-ctl maintenance on/off -> Passed
Verified -a [ip address] and -r [ip address] -> Passed
Verified chef-manage, working fine [Added <IP_ADDRESS> to active list by default] -> Passed
Question - I was trying to get all whitelisted IP's, Please let me know to check all the whitelisted IP's ?
@vinay-satish @PrajaktaPurohit @lbakerchef

Pipeline Information -
Adhoc - https://buildkite.com/chef/chef-chef-server-master-omnibus-adhoc/builds/2387

Testing report:
Loaded a build of this branch in local vm.  Maintenance mode appeared to work, except in the case of adding a domain name (a string) vs an ip address (numbers).
root@api:~# chef-server-ctl maintenance on
- Enabling maintenance mode
root@api:~# chef-server-ctl test
Configuring logging...
Creating platform...
Configured server URL: https://api.chef-server.dev
Configured base resource URL: https://api.chef-server.dev
Creating org pedant_testorg_api_622
Failed attempting to contact https://api.chef-server.dev (0/5)
Failed attempting to contact https://api.chef-server.dev (1/5)
Failed attempting to contact https://api.chef-server.dev (2/5)
Failed attempting to contact https://api.chef-server.dev (3/5)
Failed attempting to contact https://api.chef-server.dev (4/5)
bundler: failed to load command: ./bin/oc-chef-pedant (./bin/oc-chef-pedant)
RuntimeError: Failed attempting to contact https://api.chef-server.dev 5 times
  /opt/opscode/embedded/service/oc-chef-pedant/lib/pedant/platform.rb:364:in `create_org'
  /opt/opscode/embedded/service/oc-chef-pedant/lib/pedant/platform.rb:147:in `org_from_config'
  /opt/opscode/embedded/service/oc-chef-pedant/lib/pedant/platform.rb:48:in `initialize'
  /opt/opscode/embedded/service/oc-chef-pedant/lib/pedant.rb:91:in `new'
  /opt/opscode/embedded/service/oc-chef-pedant/lib/pedant.rb:91:in `create_platform'
  /opt/opscode/embedded/service/oc-chef-pedant/lib/pedant.rb:67:in `setup'
  /opt/opscode/embedded/service/oc-chef-pedant/bin/oc-chef-pedant:10:in `<top (required)>'
root@api:~# chef-server-ctl maintenance off
- Disabling maintenance mode
root@api:~# chef-server-ctl test
Configuring logging...
Creating platform...
Configured server URL: https://api.chef-server.dev
Configured base resource URL: https://api.chef-server.dev
Creating org pedant_testorg_api_636
Validating Org Creation
Run options: include {:focus=>true, :smoke=>true}

All examples were filtered out; ignoring {:focus=>true, :smoke=>true}
...^C
root@api:~# chef-server-ctl maintenance -a api.chef-server.dev
The IP address is invalid, please enter valid IP address
root@api:~# ping api.chef-server.dev
PING api (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from api (<IP_ADDRESS>): icmp_seq=1 ttl=64 time=0.011 ms
64 bytes from api (<IP_ADDRESS>): icmp_seq=2 ttl=64 time=0.038 ms
^C
--- api ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1025ms
rtt min/avg/max/mdev = 0.011/0.024/0.038/0.014 ms
root@api:~# chef-server-ctl maintenance -a api.chef-server.dev
The IP address is invalid, please enter valid IP address
root@api:~# chef-server-ctl maintenance -a <IP_ADDRESS>
- Adding <IP_ADDRESS> to allowed list.
root@api:~#
root@api:~# chef-server-ctl maintenance -a api.chef-server.dev
The IP address is invalid, please enter valid IP address
root@api:~# chef-server-ctl maintenance -a <IP_ADDRESS>
- Adding <IP_ADDRESS> to allowed list.
root@api:~# ping api.chef-server.dev
PING api (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from api (<IP_ADDRESS>): icmp_seq=1 ttl=64 time=0.015 ms
64 bytes from api (<IP_ADDRESS>): icmp_seq=2 ttl=64 time=0.024 ms
^C
--- api ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1004ms
rtt min/avg/max/mdev = 0.015/0.019/0.024/0.006 ms
root@api:~# chef-server-ctl maintenance on
- Enabling maintenance mode
root@api:~# chef-server-ctl test
Configuring logging...
Creating platform...
Configured server URL: https://api.chef-server.dev
Configured base resource URL: https://api.chef-server.dev
Creating org pedant_testorg_api_690
Validating Org Creation
Run options: include {:focus=>true, :smoke=>true}

All examples were filtered out; ignoring {:focus=>true, :smoke=>true}
.................................

Finished in 0.66093 seconds (files took 1.22 seconds to load)
33 examples, 0 failures

$ chef-server-ctl maintenance -a api.chef-server.dev
The IP address is invalid, please enter valid IP address

Would it be possible to make this work?

Even if we add this feature, we wont be able to block it, because ngx.var.remote_addr niginx lua variable will give the ip address. If this is required, then we need to resolve this to the ip address and then store it in redis.

Results of testing updated code.

Testing Report -

Verified chef-server-ctl maintenance on/off -> Passed
Verified -a [ip address] and -r [ip address] -> Passed
Verified chef-manage, working fine [Added <IP_ADDRESS> to active list by default] -> Passed
Question - I was trying to get all allowlist IP's, Please let me know to check all the allowlist IP's ?

Please find the verification results
Testing Report -

Verified chef-server-ctl maintenance on/off -> Passed
Verified -a [ip address] and -r [ip address] -> Passed
Verified chef-manage, working fine [Added <IP_ADDRESS> to active list by default] -> Passed
Verified allowlist IP's -> Passed

CC - @PrajaktaPurohit @lbakerchef

We should update docs at https://github.com/chef/chef-server/blob/master/docs-chef-io/content/server/ctl_chef_server.md to include the new command.

https://github.com/chef/chef-server/pull/2337 is the PR I was thinking of. It's not directly related.
In any case, I do think that we should not remove any of those headers in this PR.

I posted the wrong PR link above, let's try that again... https://github.com/chef/chef-server/pull/721


Missing LICENSE file

It seems that there used to be a LICENSE file in this project but it was removed in this commit:
5b8cbbe42fa7b7967d0037de69b246b2ab7fc7e9
Was that on purpose? Would you mind readding one?

bumping this up. It was such a nice MIT license!


NTR: Factor VII - TF complex (EBI-9026112)

Dear Editors,
I would like to request a new protein complex term: Factor VII - TF complex (EBI-9026112).
Re: Figure 6, PMID-24998411.
Based on Figure 6 and methods described in this paper I would like to create cellular component annotations to this complex for Factors F3 (P13726) and F7 (P08709).
Thank you,
Barbara
Thank you,
Barbara
GOC:BHF, GOC:BHF_miRNA and GOC:bc
@RLovering
@rachhuntley

Definition and parentage please.  Thanks.

See also Complex Portal EBI-9026112:
http://www.ebi.ac.uk/intact/complex/details/EBI-9026112
I didn't request the GO CC term at the time as we were waiting for clarification on the pruning of complexes in GO (which doesn't seem to go ahead in the radical way originally proposed).
Please add the MFs and BPs form the complex annotation as capable_of(_part_of).
Thanks,
Birgit

I was a bit surprised to see this request coming through as I thought we wouldn't be duplicating complexes between GO and CP anymore, as it seems really redundant. Maybe worth discussing (again) during an editor call? @dosumis

Well, the problem was that unless we use the GO CC term software packages overlook the complex terms as they don't 'see' the CP ACs. Val had some examples. In practice it means the analysis doesn't group the proteins together as present in the same complex unless you have them annotated to the same GO term.

I don't think that's how the discussion ended :) I'm still under the impression that the 'generic' complexes will be in GO but not species specific variants......

I agree with Val, that's what I thought, and the TF is generic. I was about to add a new generic leaf term via TG FF as it has no defined function to make such a parent but groups several complexes.

In response to Tanya's question:
The Factor VII - TF complex (EBI-9026112) has the molecular function 'GO:0008236	serine-type peptidase activity', therefore, I would suggest creating a parent term 'serine peptidase complex'. E.g. 'GO:0097180 serine protease inhibitor complex' exists, so 'serine peptidase complex' would become its sibling. Without adding in this parent to the ontology, I think 'Factor VII - TF complex' would have to be a child of 'GO:0043234 protein complex'.
The GO definition for this complex could be: 	'A heterodimeric protein complex that contains coagulation Factors F3 and F7;  the complex activates factors IX or X by specific limited proteolysis.'
But if it's decided that we do not want complexes as specific, then maybe just the grouping term 'serine peptidase complex' could be created, as at the moment the most specific cellular component, to which we can annotate Factors F3 (P13726) and F7 (P08709), is 'GO:0043234 protein complex'.

I can create the functional parent in TG template. I should have done that for the TF complex in the CP already, not sure actually why I didn't...

Brilliant, thank you. Could you please let me know what the complex ID is once you've created it?

Barbara, I have created
ID: GO:1905286 Label: serine-type peptidase complex
It should trickle through the release system in a couple of days.
I can also make the TF complex (in TG free form) if we agree to go back to that level.
Birgit

Shall we leave this issue open or can you @BarbaraCzub use the term that Birgit created for annotation?
[Term]
id: GO:1905286
name: serine-type peptidase complex
namespace: cellular_component
def: "A protein complex which is capable of serine-type peptidase activity." [GO_REF:0000088, GOC:bhm, GOC:TermGenie, PMID:18640965]
comment: An example of this is F7 in human (P08709) in PMID:18640965 (inferred from direct assay).
synonym: "Factor VII - TF complex" NARROW []
intersection_of: GO:0043234 ! protein complex
intersection_of: capable_of GO:0008236 ! serine-type peptidase activity
created_by: bhm
creation_date: 2016-06-21T14:20:20Z

Thank you, Birgit, for creating this term.
Tanya, I am happy to use this new term, if it is preferable not to create terms, which are more specific.

Barbara - great! I will close this issue and should the decision to add the more specific term be made, we can add it in the future.