Bootstrap takes 60 seconds to run even when nothing has changed

STR:

Install nodejs 8.1.0 and yarn v0.24.6 under Ubuntu 16.04.
git clone https://github.com/mozilla-neutrino/neutrino-dev
cd neutrino-dev && git checkout 13adea32550de2f1eae9ae79f2980f8a2f6b5e82
yarn install (this installs oao v0.8.0)
yarn bootstrap (which runs oao bootstrap from the local node_modules)
yarn bootstrap

Expected:
The second time bootstrap is run, the duration is significantly less than the first, ideally <5-10s.
Actual:
The first bootstrap took 125 seconds (see https://emorley.pastebin.mozilla.org/9024429), the second still took 63 seconds (see https://emorley.pastebin.mozilla.org/9024430), even though it had nothing to do.
This also affects us on Travis, since it means caching the sub-package's node_modules gives little time saving (and in fact quite a disadvantage, given travis-ci/travis-ci#7898) - see mozilla-neutrino/neutrino-dev#248.
Do you have any ideas as to what might be causing this?
Many thanks!

Thanks for your report!
I'm not sure what's causing the long intervals in your case. I'm on OS X and oao bootstrap runs really fast on the monorepos I used it on (admittedly a bit smaller than Neutrino). Maybe yarn is not so optimised for Ubuntu? (it certainly isn't for Windows, for example).
Could you please check whether it's Phase 1 or Phase 2 of the second oao bootstrap that is the main contributor to delay?
While it won't help you speeding up CI times, you may want to use oao add/remove/upgrade to update subpackage dependencies, instead of a full oao bootstrap.

Hi, thank you for the quick reply!

I'm on OS X and oao bootstrap runs really fast on the monorepos I used it on (admittedly a bit smaller than Neutrino)

How long do the first/second bootstraps take for Neutrino on your machine, using the STR from above? (So we can rule out platform as an issue)

Could you please check whether it's Phase 1 or Phase 2 of the second oao bootstrap that is the main contributor to delay?

From the timestamps in the pastebin linked above, it looks like phase 1 is taking 48 seconds and phase 2 is 14 seconds.
Of note for phase 1:

adding up the total time reported by yarn in the sections of form "Done in 3.12s.", the yarn runtime is 28 seconds, meaning the oao overhead for phase 1 is 20 seconds, which seems quite high.
the 28 seconds spent in yarn could also likely be reduced, since the log output from yarn for each package never says "success Already up-to-date.", implying that perhaps phase 2 from the prior invocation has invalidated yarns integrity hash. Would reversing the order of phase 1 and 2 help prevent this?

I confirm that I can reproduce your findings on OS X:

First yarn bootstrap: 1:39 (pass 1) + 0:16 (pass 2) = 1:55
Second yarn bootstrap: 0:34 (pass 1) + 0:15 (pass 2) = 0:49
[a third time took 0:38, including ~0:15 again for pass 2]

I did another test replacing all executions of yarn xxx (yarn install and yarn link in this case, to be precise) with echo Hi. Total time? < 2 s. Hence, the overhead is not located in oao, or even in shelljs (which I use to execute commands), but in yarn itself.
Now, I could address some parallelisations, both for Pass 1 and Pass 2, but it may take a little while (a month at most, I guess). Right now I don't have much time… I'll keep you posted!

Thank you for looking into this more.

I did another test replacing all executions of yarn xxx (yarn install and yarn link in this case, to be precise) with echo Hi. Total time? < 2 s. Hence, the overhead is not located in oao, or even in shelljs (which I use to execute commands), but in yarn itself.

Unless the yarn "done in X seconds" output is incorrect, I'm struggling to see where else the time is being spent. The test using echo won't have exposed any issues with the stdout/stderr processing performed here for example:
https://github.com/guigrpa/oao/blob/3098ab0586a2ceac6da90612b5765849b433c378/src/utils/shell.js#L67-L74
Perhaps replacing yarn install/link with time yarn install/link might help confirm whether yarn's self-declared duration is accurate. In addition, it may be worth trying a run with the child.{stdout,stderr}.pipe(...) commented out.

Profiling using 0x generated this flamegraph:
flamegraph.html.gz
At first glance I see storyboard taking 23% of the profile, inquirer 14% and oao/lib/utils/gitjs 12%.

Indeed, yarn's reported time seems to err on the low side:
neutrino-dev $ yarn
yarn install v0.24.5
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.65s.

neutrino-dev $ time yarn
yarn install v0.24.5
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.63s.

real	0m0.821s
user	0m0.832s
sys	0m0.092s

If all goes well, yarn links will all run in parallel in the upcoming release. Hopefully this will have a noticeable impact on your build times. I've seen quite an improvement when building my Storyboard monorepo.

yarn installs will also run in parallel, except if you explicitly disable it with a --no-parallel flag.

Just released v0.8.3:

yarn link now runs always in parallel
yarn install now runs in parallel by default (disable it with oao bootstrap --no-parallel)

Perf comparison:

Neutrino 1st install: from 120 s to 30 s
Neutrino 2nd install: from 36-45 s to 10 s
Storyboard 2nd install: from 22 s to 5 s

cc @eliperelman

Wow! 👏
I'll give this a shot asap!

@eliperelman Btw, I'm also seeing the error reported by @edmorley in https://github.com/mozilla-neutrino/neutrino-dev/issues/251, so it shouldn't be Lerna's fault.

@guigrpa didn't oao used to symlink peerDependencies if they were part of packages?

Ah I see now, for some reason when I ran oao bootstrap, all the peerDependencies were removed from my packages' package.jsons.

If there is a failure during the bootstrap process, the package.jsons aren't reverted and end up being replaced with versions that exclude the local peerDependency.

@guigrpa also, if I remove everything:
rm -rf node_modules yarn.lock packages/*/node_modules packages/*/yarn.lock

I constantly fail the bootstrap process, most likely because of some concurrency issue trying to install the same package multiple times with possibly different hashes. These could be related:
https://github.com/yarnpkg/yarn/issues/2629
https://github.com/yarnpkg/yarn/issues/1058
https://github.com/yarnpkg/yarn/issues/1916

Do you believe it is an issue with yarn then?
(If it can be of any help, you can temporarily disable parallelism in the yarn installs by running oao bootstrap --no-parallel — it will still get you some perf improvements due to parallel yarn links)

In any case, I will investigate why package.jsons are not reverted if an error occurs. In principle, this was handled by the code.

My guess is the problems were caused by too much concurrency and yarn wasn't able to handle it and caused some conflicts. You might be able to replicate by checking out neutrino and removing all node_modules and yarn.locks.

Yes, I've had no problem reproducing it. It happens systematically on Neutrino. Strangely enough, it doesn't happen on Storyboard, which has around 14 subpackages and lots of cross-dependencies.
Regarding the fact that oao didn't recover the original package.jsons, I've found the problem. When one of the branches of the parallel bootstrap failed, the program terminated too soon. I have released a patch (v0.8.4) that waits for all pending promises to resolve before throwing the error.

Have you had a look at yarn's issues with concurrency? Do you think they're widespread? Would you recommend switching parallel bootstrap off (except for yarn links, which have no issues) by default?

Oh, FYI, I had a similar issue **and the reason is that I had "postinstall": "oao bootstrap".
It was basically cyclical.  What I learned was:

oao should be global, not local.
The root should not run oao bootstrap at all.

@edmorley @eliperelman oao now has support for Yarn Workspaces; you can try it out in oao@next (0.10.0 prereleases). oao detects the workspaces property in the monorepo package.json file and automatically uses this feature of Yarn. In this mode:

oao bootstrap just does yarn install
oao add|remove|upgrade goes into the particular subpackage folder and runs the corresponding yarn add|remove|upgrade command

Note that workspaces are still experimental in yarn (0.28+) and  behind a flag (yarn config set workspaces-experimental true). They also may have some limitations wrt. the non-workspace-based behaviour of yarn, so you may want to experiment to see what works better for you.
In principle, this would solve both the performance issue (no overhead wrt. bare-bones yarn) and the concurrency issue described above, so I'm closing this issue. Please send your feedback on the new oao feature!


Bugfix/recover from permission denied on noexec

This PR includes the changes described in this issue ticket.

Thank you. I wonder if we could simplify a bit.. Does following print false on your system?
File f = File.createTempFile("prefix", "suffix"); f.deleteOnExit();
System.out.println(f.setExecutable(true));

To me that prints true. For you?
I'm not sure why you ask it, but I have an idea, so here is the thing. File.setExecutable() will only set the executable bit to true. It doesn't care about the underlying mount. Similarly File.canExecute() will only check this bit and not the mount. You can easily have executable files, but still you will have a permission denied.
When I was investigating, I granted 777 first on the file, then on the whole directory structure (after having commented out the f.deleteOnExit()), still I had permission denied. That's how slowly I found that the problem is with noexec.
Which parts would you like to see simplified?

For getting the mount properties that was the best idea I got either from colleagues or from stackoverflow. But now I do think about writing a small library to query mounts. Still underneath there will be a process - just like now-, but that's not for this month I think.

I'd like to have a simple test for this at the beginning and if it fails, switch the temp location. If setExecutable() isn't sufficient, we could just attempt the execution. But it's ugly to do that each time (and unnecessary on most platforms)
I also don't like adding all this complexity for a corner case. Perhaps better to have a temp folder override?

My change comes into place if and only if there was an IOException during execution. No action at all otherwise. Even then, the file'd be copied to a new place and would be executed if and only if /tmp was mounted as noexec.
If you have a look at LinuxProtocRecoverer.attemptToRecover(), before doing anything it tests basic things from the easiest (exception cause) to the most difficult (mount options) to take advantage of short circuiting.
If those three things don't apply we don't do anything - no unnecessary work.
To make it cleaner we could check at least the platform from the catch block of Protoc.runProtoc() - as well.

Let me have a closer look. I mean, I don't think we need all those checks. If execution fails in one location for whatever reason, we switch to alternative

Turns out temp dir location can be changed, system property java.io.tmpdir. How about that?
$ java -Djava.io.tmpdir=. -jar target/protoc-jar-<IP_ADDRESS>-SNAPSHOT.jar
protoc-jar: protoc version: 330, detected platform: windows 8/amd64
protoc-jar: executing: [C:\github\protoc-jar\.\protocjar7783982935981426806\bin\protoc.exe]
Missing input file.

I'm fine with your branch, I just made a small pull request in order to remove some unnecessary clatter and to restrict the effects on user.home of a disaster.

Thanks. But pls see my comment re protoc-jar-maven-plugin, it requires changes too, extraction and execution are separate
https://github.com/os72/protoc-jar-maven-plugin/issues/39


ci: Add check to ensure CHANGELOG is updated

I missed CHANGELOG updates in a couple of recent PRs, so figured a CI
check may be a helpful reminder.
Not every PR needs a CHANGELOG, so skips are supported via a
customizable label, which I've set to skip-changelog.

Third party PR authors don’t have the ability to set labels. Consider something like this (adjusted for this project) instead:
https://github.com/abhinav/git-spice/blob/main/.github/workflows/changelog-check.yml
PR message can also opt out.

Example failure:
https://github.com/bracesdev/errtrace/actions/runs/11767050589/job/32775318825?pr=114

Tested in #114, and found that the PR body + label do work, though there is a limitation with the PR body check. It uses the PR body at the time of the trigger, so re-running a failed check with a new body doesn't fix the issue. Adding/removing a label retriggers the job with the new body/labels, so it's a simple-enough workaround.
I added the label trigger so adding/removing the "skip changelog" label will re-run the check with the latest labels, but this has the unfortunate side-effect of re-running all checks. We may be able to split up the checks into separate workflows if that becomes an issue, but our CI times are fast enough that I don't think it's worth it right now.


GUAC-1104: Validate changes to parent groups

How about deleting? Do I need UPDATE on the parent to delete the child?

Yup. To add or remove a child from a group by any means, you need UPDATE on that group.

Sounds good!


 The PR at #43 resolves this, codewise, but it needs a repo admin to set up the GitHub-Travis link.
It's a trivial task... 5m at best.


fresh dump denormalizes the database

This works great for what it does, however it would be nice to set a normalize/denormalize param at run-time to retain any of the unique ID's that complete relational links.

If I understand what you're asking for, you only need to set the :exclude parameter to an empty list when you dump. That will output IDs and mod dates, preserving associations.

that makes sense.  Didn't realize i could set it to an empty array for this.
Thanks!


add_compile_definitions does not "propagate upwards" as supposed to when using west

Describe the bug
I have this simple project
CMakeLists.txt
add_subdirectory(foo)
target_sources(app PRIVATE main.c)

foo/CMakeLists.txt
add_compile_definitions(FOO=42)

The expected behavior is that main.c is compiled with -DFOO=42. However, this is not the case. For some reason the compile definitions does not propagate "upwards" as they are supposed to do. If I instead do
CMakeLists.txt
add_compile_definitions(FOO=42)
target_sources(app PRIVATE main.c)

Then everything works as expected. Any suggestions here?

Invalid issue caused by using the wrong cmake command. include() should be used here which will share the same scope as the parent, add_subdirectory() will create a child scope inheriting the parent's variables as duplicates, but they are separate. Updating them from the child will not propagate them back to the parent.

Thank you, you are right. Sorry for confusion


Add README note on testing with jest

Thanks for all the work on this!
From https://github.com/luggit/react-native-config/issues/24#issuecomment-309836788, seems like a few folks found it useful.

thank you!


Add Info Support meetup

Hi @amolenk . Welcome to the Global Azure 23. Looks good. Assuming you are not going to use Sessionize ( I noticed you have already the 3 sessions listed in your event website), then we can close this PR. Thank you.


Adding SimpleInterval(Locatable) constructor

Adding validation to the SimpleInterval(String) constructor
Making GenomeLoc implement Locatable
Replacing all instances of SimpleInterval( locatable.getContig(), locatable.getStart(), locatable.getEnd()) with the new constructor
fixes #438  and #436

Coverage increased (+0.02%) to 70.71% when pulling 53f53f1902ec7d8d63b2e56bbe855eed53e5cbd8 on lb_simple_interval_constructor into a75b706c98c542ded89a771b93b1c3df78ba7f6a on master.

Coverage increased (+0.01%) to 70.71% when pulling 53f53f1902ec7d8d63b2e56bbe855eed53e5cbd8 on lb_simple_interval_constructor into a75b706c98c542ded89a771b93b1c3df78ba7f6a on master.

@vruano Could you take a look at this when you get a chance?

Done with the review. Address comments and feel free to merge when test pass.
Back to @lbergelson

closed #441
closed #438


The project site is down

Sorry about that, the project site is currently under construction. But we can provide a download link if you send an email to<EMAIL_ADDRESS>and provide the following information:
Name: XXX
Affiliation: XXX
Affiliation email (e.g., .edu): XXX


Issue2241 minus flow and barbs

This PR implements the Variables tab for all renderers except for Barbs, Flow, and WireFrame.  These excluded renderers require a variable dimensionality dropdown that is currently buggy.  The other renderers test well and this is a good point to submit a review.
Some notes:

Many of the new classes are undocumented.  I'm waiting to do in case things change.

I've added new functions to the RendererEventRouter that determine support for 2d/3d variables.  This was previously done with flags in the VariablesWidget.  This was done in the RenderEventRouter instead of RenderParams due to RenderParams not yet being initialized when the GUI requests 2d/3d variable support.

New PWidget and HLI classes have been added to a file called PVariableWidgets.* instead of their own individual files.

PVariablesGroup - A new class that is a derivation from PGroup that lets us add tabs to our event routers in the same fashion as we've done within our EventRouters in the past.  This may become unnecessary as we migrate all of our tabs to PWidgets.

The logic for the SliceRenderer's sampling rate has been moved from SliceSubtabs to the SliceEventRouter.

PGroup now needs to call the addStretch() upon construction to size it self appropriately.  This effectively adds a QSpacerItem to the layout.  Widgets that are subsequently added via addWidget() will be placed below the spacer, instead of on top of it.  Consolodating widgets to the top of the control panel is preferable, so insertWidget() is used to do this.  Without calling addStretch(), the 'Variable Selection" and "Data Fidelity" groups will expand to fill the entire control panel

@clyne In regard to documentation - I'd like to reserve this until later, in case we find that the classes need to be changed.
@stasj - Sure.  In the ptest branch, when the Flow renderer is set to 2D, we render 5 pathlines above each seedpoint, shown in the image below.  However, the dim selector is interacting with the Box class in this instance.  We are intending to use the dimensionality of certain variables instead.
It gets tricky when we want to determine which "certain variable" we should be using to determine dimensionality.  I spent some time on this in the branch issue2241_dimSelector.  The PDimensionSelector works for the Flow renderer in this branch, but not the wireframe or barb renderer.
Where I left off, I was getting the sense that we had to dynamic_cast the PDimensionSelector's RenderParams to find out what variable we should query in the _updateGUI() function.  At that point, I felt this PR was large enough to submit for review, and that we could discuss the PDimensionSelector next.

@sgpearse I checked out the ptest branch and the Barb, Flow, and Wireframe renderers all work correctly (well the flow renderer doesn't but that is because of a bug in the flow renderer which exists on master; the variable selector works correctly though).

@StasJ please provide review comments regarding class design concerns. We will address dimensionality selector bug after we ok the class design for variable selectors

@stasj and @clyne,
I took a look at why PGroups are able to correctly display in our Appearance tabs.  The reason is that the Appearance tabs are still operating on UI file based GUI's.
These UI files have spacers in them, which is effectively the same as calling the addStretch() function.
If we don't do this in PGroup, all of our tabs will expand to take up the unused vertical space in our control panel.

@StasJ and @clyne,
I took a look at why PGroups are able to correctly display in our Appearance tabs. The reason is that the Appearance tabs are still operating on UI file based GUI's.
These UI files have spacers in them, which is effectively the same as calling the addStretch() function.
If we don't do this in PGroup, all of our tabs will expand to take up the unused vertical space in our control panel.

I don't have a deep enough understanding of the issue to comment. @stasj what are your thoughts?

@StasJ and @clyne,
I took a look at why PGroups are able to correctly display in our Appearance tabs. The reason is that the Appearance tabs are still operating on UI file based GUI's.
These UI files have spacers in them, which is effectively the same as calling the addStretch() function.
If we don't do this in PGroup, all of our tabs will expand to take up the unused vertical space in our control panel.

I don't have a deep enough understanding of the issue to comment. @StasJ what are your thoughts?

@sgpearse It appears that spacers are being automatically added to all PGroups to support the case where a PGroup is used to replace a subtab. This may not be desired in most use cases in which it is not the top level subtab widget. To address this, we can instead have a PSubtab class which has the properly configured layout to act as a subtab (or rather inherits from a VSubtab which does so). Another option is to create a PSpacer which can be added to the end of a PGroup as necessary. Either way since PVariablesGroup is no longer a part of this PR, the solution can be addressed in a later PR.

I've #ifdef'd commented code, and removed the addStretch() function from PGroup.
I have some followup questions that don't need an immediate response.

This may not be desired in most use cases in which it is not the top level subtab widget.

I'm trying to think of an example where it's not desirable.  Can you share one?
The Python editor, Statistics, and Plot utilities don't use subtabs, but will also want to push their rows to the top of a given PGroup.  I don't believe we will ever want to distribute a PGroup's rows evenly within its vertical area.

To address this, we can instead have a PSubtab class which has the properly configured layout to act as a subtab (or rather inherits from a VSubtab which does so).

I believe this introduces the diamond problem.  PSubtab would inherit from VSubtab and PWidget, which both inherit from QWidget.


Create ReverseLinkedListRecursive.cpp

Solution for reversing a linked list but following a recursive approach. Please review it @afrozchakure

Hey @DiligentCoder-20022001 , I think you should add a few more solutions, then raise a pull request. Opening a pull request for a single solution will not be efficient enough.
I'm assuming you are already working on a few more. It would be easier for me to merge the whole solution set together rather than a single file.
I'll merge this one for now. You can start implementing the above from next time. :+1:


[WIP] Consolidate Providers with DI

This PR fixes #433 , a long-standing issue that I've been meaning to tackle for a while. Instead of using shared, global state (through fulfillmentNav(), a global-ish function), this uses DI to inject network access into objects.

This PR also removes some old TODOs and does a bit of cleanup around weak references to self that didn't really need to be weak.
I also tried to use the type system a bit to differentiate between regular network access and authenticated network access. Ideally, these would be stored in two separate MoyaTarget enums, grouped by whether or not they required authorization. It only gets hairy because the XApp token would either need to exist on both (or we assume that the XApp token never needs to be refreshed by a network call that needs authorization, a very unlikely situation). Going to take another look tomorrow.
Still to be done:

[x] Two enums.
[x] More manual testing
[ ] Updated unit tests
[ ] I'd like to get rid of the fulfillmentNav() altogether, since it's only being used to pass around the bidDetails, which can be similarly DI'd. But that's a lot lower priority, so maybe next time :wave:

Current testing status:
Registration

By itself :(
By itself with existing user :(
While bidding 🎉

Bidding

Via phone number  🎉
Via bidder number 🎉
Via Artsy creds :(
Increasing bid 🎉
From the details page 🎉

Mammoth PR! But disentangling FulfillmentController is a big win. I'm a big fan of the principle of passing dependencies into a module in the absolute simplest possible form. To the extent that it's possible to depend only on types that are some closure of primitives, collections, structs, and (maybe) async containers, it pays off big time in maintainability and minimizing error surface.

I really like this idea:

But I need to get CI green first >.<

Here's the full version of the code snippet @ashfurrow pasted above:
extension ObservableType where E == Response {
  func mapObject<T: Decodable>() -> Observable<T> {
    return flatMap { response -> Observable<T> in
      return just(try T.decode(response.mapJSON()))
    }
  }

  func mapObject<T: Decodable>() -> Observable<[T]> {
    return flatMap { response -> Observable<[T]> in
      return just(try [T].decode(response.mapJSON()))
    }
  }
}

let disposeBag = DisposeBag()
let RedditAPI = RxMoyaProvider<Reddit>()

// Reddit is the TargetType
// RedditAPI is the global provider instance

extension Reddit {
  func asObservable<T: Decodable>(type: T.Type, provider: RxMoyaProvider<Reddit> = RedditAPI) -> Observable<T> {
    return provider.request(self).mapObject() as Observable<T>
  }
}

func blah() {
  disposeBag.addDisposable(
    Reddit.SubredditInfo("starwars").asObservable(Subreddit).subscribe {
      switch $0 {
        case .Next(let subreddit): print(subreddit.title)
        case .Error(let error): print(error)
        default: break
      }
    }
  )
}

Cool, this is good to go :+1:
I'm updating to the 2.0 stable release of RxSwift; it's non-trivial so I'm going to submit a separate PR once this one is merged.

The updates are done on another branch. See the diff at https://github.com/artsy/eidolon/compare/consolidate...updates . It updates to new RxSwift stuff and uses Moya's new error-handling mechanism to be more precise about "the bid request you submitted was invalid because the amount was too low, even if it was valid when you started to place your bid" problem.

This feels alright to me. However, in order to review this I had to: remember how Eidolon works, try think functionally, study how RxSwift works
So it'd be good to have @acjay also give a :+1:

This looks like a big step forward! :+1:

Cool, thanks! Comfortable hitting the 'merge' button?


[MM-62303] workflows/perf: add new workflow to be triggered by a label

Summary
This PR is to start a discussion around how we are going to publish performance metrics on PRs. Right now, as discussed we are triggering a workflow (right now it's only the test action).
We have 2 alternatives moving forward;
a. Trigger another workflow (or a simple REST API request) within the mobile app to publish metrics as a comment
b. Persist result in the runner and pass the output to another workflow (which will be creating the comment
I think we were agreed on the alternative a, I'd prefer the other option (b) but it's up to whichever be the best for your tast @enahum :)
Ticket Link
https://mattermost.atlassian.net/browse/MM-62303
Checklist

[ ] Added or updated unit tests (required for all new features)
[ ] Has UI changes
[ ] Includes text changes and localization file updates
[ ] Have tested against the 5 core themes to ensure consistency between them.
[ ] Have run E2E tests by adding label E2E iOS tests for PR.

Release Note
NONE

@enahum I created the blueprint for alternative B, we just need to get the output from the tests and parse it (if necessary) then workflow should create a comment accordingly.

@enahum I created the blueprint for alternative B, we just need to get the output from the tests and parse it (if necessary) then workflow should create a comment accordingly.

Well then if this is the case, you need to tell me how to output that to wherever it needs to as I have no clue at this point.
That is another reason I wanted to go with option A.
Feel free to add the necessary code to create the output you expect as well

Ah, At first I thought that you were in favor of plan B @enahum
Okay, so for plan B, we'll use the REST API. For creating a comment in the PR, you basically need to use this API: https://docs.github.com/en/rest/issues/comments?apiVersion=2022-11-28#create-an-issue-comment
The access token will be passed to the runner via ${{secrets.GITHUB_TOKEN}} (it's up to us to name it actually), then the other fields such as issue number, organization, repository will be passed to the runner as environment variables. We can do the same thing, naming will be up to us.
If this approach is simpler, we can do with https://github.com/mattermost/mattermost-mobile/pull/8426/commits/63cf90c6f438c3a4be0725c3de966f033d9320b4

Well then if this is the case, you need to tell me how to output that to wherever it needs to as I have no clue at this point.

Just to clarify this; It's not a certain place, you just set it here: https://github.com/mattermost/mattermost-mobile/blob/bcf1ae937e59370254a383389d4a1dd8881aa093/.github/workflows/perf.yml#L21

@rahimrahman you are going to have to take care of this one :)


Automated cherry pick of #5073

Cherry pick of #5073 on release-5.23.

#5073: MM-23366-Fix favourite channel tooltip position

/cc  @nevyangelova

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.

Trying to auto merge this PR.

Pull Request successfully merged
SHA: a739c937e607021990fc2f7b73e74f3b520c857b


running demo on CUTE80 with SATRN

I am running the demo on the Curved Text of CUTE80:
python tools/demo.py configs/small_satrn.py pretrained/small-SATRN/Small-SATRN.pth ../../data/CUTE80-Curved-Text/CUTE80
Do the images need to be pre-processed in some ways before being put into the directory? Like resized?
What are the constraints?
Currently, I using the raw images of CUTE80 like image001.jpg "Ronaldo 7" 650x440 pixels
and so far the decoding going over a few of the images is not close.
Any suggestions? Thanks.

Transforms are done in demo.py.  The demo will close until decoding all the images under the directory.

I reread the paper, and saw that the authors state: "Input images are resized to 32 x 100 both during training and testing following common practice."
Should we assume then that the pre-trained model small-SATRN was trained the same way?
I will try resizing the input images, unless that's already done in the demo code?

I stepped through the code and yes, the original images in CUTE80 (some like 3600 x 2800) get turned to gray, resized to 100 x 32 and normalized.

Yes, transforms are done in demo.py

Yes, the issue is that when I use my own separate set of images from CUTE80, the performance is not good. But when I ran with the code of yesterday, I would get acc ~ 0.85 or something like that using test.py.
Note that now, with the updated code, the results are not  good:
2020-07-29 08:25:49,122 - INFO - current dataset length is 288 in ./data/data_lmdb_release/evaluation/CUTE80
2020-07-29 08:25:49,123 - INFO - Load checkpoint from pretrained/small-SATRN/Small-SATRN.pth
2020-07-29 08:25:49,226 - INFO - Start testing
2020-07-29 08:25:49,226 - INFO - test info: {'sensitive': False, 'character': '0123456789abcdefghijklmnopqrstuvwxyz'}
2020-07-29 08:25:56,002 - INFO - Test, acc 0.1424, edit 0.23049960221608767

"acc" is for "accuracy"
but what is "edit" ?

reverting to a previous commit:
fix:converter
git checkout f4a30353132c018c21eec0f4c9a4e084254679c1
then the accuracy is back to what is was:
2020-07-29 09:03:01,760 - INFO - Test, acc 0.8467, edit 0.9275427916694391

Yes, the issue is that when I use my own separate set of images from CUTE80, the performance is not good. But when I ran with the code of yesterday, I would get acc ~ 0.85 using test.py.
Note that now, with the updated code, the results are not good when tested on CUTE80, it looks like the last commits reduced the accuracy:
vedastr$ python tools/test.py configs/small_satrn.py pretrained/small-SATRN/Small-SATRN.pth
2020-07-29 12:16:08,842 - INFO - Use GPU 0
2020-07-29 12:16:08,843 - INFO - Set cudnn deterministic False
2020-07-29 12:16:08,843 - INFO - Set cudnn benchmark True
2020-07-29 12:16:08,843 - INFO - Set seed 1111
2020-07-29 12:16:08,843 - INFO - Build model
2020-07-29 12:16:08,846 - INFO - GResNet init weights
2020-07-29 12:16:09,142 - INFO - TransformerEncoder init weights
2020-07-29 12:16:09,596 - INFO - TransformerDecoder init weights
2020-07-29 12:16:09,686 - INFO - TransformerHead init weights
2020-07-29 12:16:11,304 - INFO - current dataset length is 288 in ./data/data_lmdb_release/evaluation/CUTE80
2020-07-29 12:16:11,304 - INFO - Load checkpoint from pretrained/small-SATRN/Small-SATRN.pth
2020-07-29 12:16:11,420 - INFO - Start testing
2020-07-29 12:16:11,420 - INFO - test info: {'sensitive': False, 'character': '0123456789abcdefghijklmnopqrstuvwxyz'}
2020-07-29 12:16:18,444 - INFO - Test, acc 0.1424, edit 0.23049960221608767

"acc" is for "accuracy"
but what is "edit" ?

Edit is edit distance. You can reference here for edit distance.
Could you provide the commit id ?

This is caused by the test: transforms (label is not lower) in config file. I have fixed it.


Scope of Metadata Management (MM) and Third Party MM projects

I have been only casually following the metadata-related threads. For my education,

Is the metadata here fully extensible; e.g., I can process an substantial (but not limitless) amount of metadata that is domain-specific associated with the software component?  Or we talking about a narrower version of metadata, such as timestamps or last-user-update?
Are there any issues (as in Github "issues") discussing possible connections to metadata management / server projects in CNCF (or perhaps Apache, e.g., Apache Hop)?  The existing use cases do not appear to be extensible enough to cover flow of domain metadata.  As an example, consider the code/data lineage approach discussed here.

Description of issue or feature request:
Feature request, or discussion? I think.  Unclear how extensible is the current metadata semantics
Current behavior:
Unsure; appears to implement an OS / version control notion of metadata.
Expected behavior:
N/A

Hi Mark,
On Wed, Sep 1, 2021 at 11:55 AM Mark Underwood @.***>
wrote:

Is the metadata here fully extensible; e.g., I can process an
substantial (but not limitless) amount of metadata that is domain-specific
associated with the software component? Or we talking about a narrower
version of metadata, such as timestamps or last-user-update?

Yes, see the custom
https://theupdateframework.github.io/specification/v1.0.20/index.html#custom
targets metadata, which is used
https://uptane.github.io/deployment-considerations/customizations.html in
Uptane (a multi-repo variant of TUF used in automotive/cloud
dependency-resolver contexts) to associate arbitrary metadata with
artifacts.

Are there any issues (as in Github "issues") discussing possible
connections to metadata management / server projects in CNCF (or perhaps
Apache, e.g., Apache Hop)? The existing use cases do not appear to be
extensible enough to cover flow of domain metadata. As an example, consider
the code/data lineage approach discussed here
https://www.youtube.com/watch?v=qieBr3Qj1yA.

I don't have sufficient background to comment here, sorry.

The docs issue with "TargetFile.custom" is fixed in that it's at least mentioned in the docs.
I'll close this issue:

metadata is extensible in TUF and in python-tuf Metadata API
the full extensibility is not exposed via ngclient (as it's a simple API) but TargetFile.custom as a special case is
As I mentioned in the comment, large extensions likely make sense as targetfiles


Do not allow generated sample projects have the same name with mbconfig File

System Information (please complete the following information):

Model Builder Version (available in Manage Extensions dialog):
Visual Studio Version

Describe the bug

On which step of the process did you run into an issue:
Clear description of the problem:

To Reproduce
Steps to reproduce the behavior:

Go to  any  scenario
complete all the steps
3.Add we Api or console app projects with the same name of mbconfig file

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

We have two options

Disabled the UI to add project if we provide a name the same  mbconfig file.
Just sanitized the namespace if it is equal to the mbconfig

The bug has been fixed on the latest main build <IP_ADDRESS>6101


 Matched "Operator `Rx' with parameter `^(?:(?:\*|[^\"(),\/:;<=>?![\x5c\]{}]+)\/(?:\*|[^\"(),\/:;<=>?![\x5c\]{}]+))(?:\s*+;\s*+(?:(?:charset\s*+=\s*+(?:\"?(?:iso-8859-15?|windows-1252|utf-8)\b\"?))|(?:(?:c(?:h(?:a(?:r(?:s(?:e[^t\"(),\/:;<=> (700 characters omitted)' against variable `REQUEST_HEADERS:accept' (Value: `text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/si (19 characters omitted)' ) [file "/home/coreruleset/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf"] [line "1203"] [id "920600"] [rev ""] [msg "Illegal Accept header: charset parameter"] [data "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;"] [severity "2"] [ver "OWASP_CRS/4.0.0-rc1"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-protocol"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [hostname "x.x.x.x"] [uri "/"] [unique_id "166264746523.448934"] [ref "v506,119t:lowercase"]
ModSecurity: Access denied with code 502 (phase 1). Matched "Operator `Eq' with parameter `1' against variable `TX:EARLY_BLOCKING' (Value: `1' ) [file "/home/coreruleset/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "165"] [id "949111"] [rev ""] [msg "Inbound Anomaly Score Exceeded in phase 1 (Total Score: 5)"] [data ""] [severity "0"] [ver "OWASP_CRS/4.0.0-rc1"] [maturity "0"] [accuracy "0"] [tag "anomaly-evaluation"] [hostname "x.x.x.x"] [uri "/"] [unique_id "166264746523.448934"] [ref ""]

---YyOW4K6s---Z--

Your Environment

CRS version (e.g., v3.2.0): c435c7606b4869c8aa80f607817b5f4f0a6e4d6c
Paranoia level setting: L2
ModSecurity version (e.g., 2.9.3): 3.0.7 (modified)
Web Server and version (e.g., apache 2.4.41): OpenResty <IP_ADDRESS>
Operating System and version: Debian Bullseye
Application: DokuWiki

Confirmation

[x] I have removed any personal data (email addresses, IP addresses,
passwords, domain names) from any logs posted.

Hi @wfjsw ! Thanks for the report.
We have confirmed this FP. Turns out that the last semi-colon is the one breaking the RFC, hence breaking the rule. We will adapt the rule to support this case!


Feature request: Sort by date added

Spotify allows you to sort a playlist by the date each track was added to that playlist. It would be great if this was a feature of the Song Tagger GUI as well, since nearly all of my playlists are sorted this way on Spotify. That way, I could listen, in order, to new tracks I've added and tag them as I listen. (I know it's also possible to use Tagify or just drag tags onto the player built into the Song Tagger GUI, but I like the fact that the playlist viewer in the GUI lets you see all of the tags for each track since I can know at a glance what I've already tagged.) This shouldn't be too hard to implement, since you'd just need to request the added_at field from Spotify, create that field in your Track object, and add a column in the playlist viewer.

On second thought I suppose this would be a bit more challenging than I initially described, since "date added" isn't a field inherent to a track on its own but rather the relationship between a track and a playlist its in. (Perhaps, then, this field would need to be stored in the PlaylistTrack table.) It would still be awesome if we could get this feature, though. Maybe if I get a lot of free time I'll try implementing it myself and make a PR for it lol.


Point improvements

Adds new convenience functions, tests, and documentation, also improves
init() structure

I think this PR promotes misunderstanding the difference between a point and a vector. I understand C4's target audience is not necessarily math-savvy, but we should still help users have a better understanding of basic geometry. See http://math.stackexchange.com/questions/645672/what-is-the-difference-between-a-point-and-a-vector

Closing based on the following comment by @aleph7:
All of these compile with the current code:
let dxdy = C4Vector(10,10)
for _ in 1...10 {
    let p = origin + Double(i) * dxdy
}

let dxdy = C4Vector(10.0, 10.0)
var p = C4Point()
for _ in 1...10 {
    p += dxdy
}

let v = C4Vector(10,10)
var p = C4Point()
for _ in 1...10 {
    p += v
}

let dxdy = C4Vector(10,10)
var p = C4Point(10,10)
for _ in 1...10 {
    p += dxdy
}

--
We should focus on using C4Vector more throughout our examples.


[Docs] Add Facebook Comments with React-Static

Hello,
I'm trying to add facebook comments plugin with react-facebook but it seems that it doesn't work with react-static. Indeed, the script seems to not be required anymore when building the app.
Is there a way to add Facebook Commment plugin with react-static ?
Thanks,

The problem is probably that react-facebook is adding a script to the document, which is not supported like that. You could do one of two things:

Conditionally require it, by checking typeof document !== 'undefined' and then require('react-facebook'). The "else" branch should be a simple pass-through component.
Don't use react-facebook and use <Head /> (react-helmet) instead because that will work with SSR.

However, this is not a support forum for other libraries. I suggest you try getting more help on either Spectrum or StackOverflow. If you figure this out, we do appreciate a PR to update the documentation.


Display ActionButtom.Item to LEFT or RIGHT

It would be great to be able to specify displaying the ActionButton.Item(s) to the left or right of the ActionButton instead of just "up" or "down".

yeah if someone wants to build it, he can send a PR.

I will try find some time to make this a PR :-)

@vTrip any luck with this?

@henrypip haven't had a chance to get a proper pull request for this however I have got a working example on my project which I will use to create a proper PR at some point. (Sorry super busy)

That's great to hear, let me know if you have a timeline!

Any luck @vTrip 💡

@henrypip getting started on this. No timeline but appreciate the check in.

That wwould be a really great enhancement .

Is this still going on? I would love this, too =)

Any luck??


[BACKPORT][IMPROVEMENT][v1.2.4] Upgrade path improvement

https://github.com/longhorn/longhorn/issues/3087

Validation - PASSED

Create cluster with 3 control node + 30 worker nodes (v1.21.5+rke2r1)
Install Longhorn v1.2.3
Deploy statefulset using longhorn-tests/scalability_test with 7 replicas per node (210 pods-volumes)
Wait until the workloads are ready
Upgrade to Longhorn v1.2.4-rc1

longhorn-manager pods can be ready in about 5m19s


test: adds unit tests for Reconcile

What type of PR is this?

/kind feature
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, using fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when the PR gets merged):
Fixes https://github.com/kubernetes-sigs/secrets-store-sync-controller/issues/35
Fixes #44
Special notes for your reviewer:
TODOs:

[x] squashed commits
[ ] includes documentation
[x] adds unit tests

/label tide/merge-method-squash

@nilekhc: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:
Test name	Commit	Details	Required	Rerun command
pull-secrets-store-sync-controller-image-scan	701d0a7 link	false	/test pull-secrets-store-sync-controller-image-scan
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

This will be fixed with https://github.com/kubernetes-sigs/secrets-store-sync-controller/pull/30

/lgtm cancel
The unit tests are failing.

/retest-required

/lgtm cancel
The unit tests are failing.

@aramase test is now passing


Multiple errors when trying to ILLink/Trim a console app that uses Spectre.

Information

OS: Windows
Version: 0.44.0
Terminal: Windows Terminal

Describe the bug
When trying to use Spectre on a console app that targets .NET6, and trying to build a self-contained library, I get multiple ILLink errors, such as IL2070, IL2072, IL2067, IL2072, IL2026, and IL2087.
To Reproduce
Reference Spectre.Console 0.44.0 from a console app, use something from Spetre, and build with PublishTrimmed=True, PublishSingleFile=True, "--self-contained -r win-x64 -f net6.0". Multiple errors.
Expected behavior
Builds and works fine.
Additional context
/_/src/Spectre.Console/Cli/Internal/CommandBinder.cs(10,37): Trim analysis error IL2070: Spectre.Console.Cli.CommandBinder.Bind(CommandTree,Type,ITypeResolver): 'this' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicConstructors' in call to 'System.Type.GetConstructors()'. The parameter 'settingsType' of method 'Spectre.Console.Cli.CommandBinder.Bind(CommandTree,Type,ITypeResolver)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandConstructorBinder.cs(34,9): Trim analysis error IL2072: Spectre.Console.Cli.CommandConstructorBinder.CreateSettings(CommandValueLookup,ConstructorInfo,ITypeResolver): '#0' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicConstructors' in call to 'System.Activator.CreateInstance(Type,Object[])'. The return value of method 'System.Reflection.MemberInfo.DeclaringType.get' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Modelling/CommandParameter.cs(76,17): Trim analysis error IL2072: Spectre.Console.Cli.CommandParameter.Assign(CommandSettings,ITypeResolver,Object): '#0' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicParameterlessConstructor' in call to 'System.Activator.CreateInstance(Type)'. The return value of method 'Spectre.Console.Cli.PairDeconstructorAttribute.Type.get' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Modelling/CommandParameter.cs(123,17): Trim analysis error IL2072: Spectre.Console.Cli.CommandParameter.Assign(CommandSettings,ITypeResolver,Object): '#0' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicParameterlessConstructor' in call to 'System.Activator.CreateInstance(Type)'. The return value of method 'Spectre.Console.Cli.CommandParameter.ParameterType.get' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandPropertyBinder.cs(34,9): Trim analysis error IL2067: Spectre.Console.Cli.CommandPropertyBinder.CreateSettings(ITypeResolver,Type): '#0' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicParameterlessConstructor' in call to 'System.Activator.CreateInstance(Type)'. The parameter 'settingsType' of method 'Spectre.Console.Cli.CommandPropertyBinder.CreateSettings(ITypeResolver,Type)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandValueBinder.cs(97,13): Trim analysis error IL2072: Spectre.Console.Cli.CommandValueBinder.GetFlag(CommandParameter,Object): '#0' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicParameterlessConstructor' in call to 'System.Activator.CreateInstance(Type)'. The return value of method 'Spectre.Console.Cli.CommandParameter.ParameterType.get' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandValueBinder.cs(48,13): Trim analysis error IL2072: Spectre.Console.Cli.CommandValueBinder.GetLookup(CommandParameter,ITypeResolver,Object): '#0' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicParameterlessConstructor' in call to 'System.Activator.CreateInstance(Type)'. The return value of method 'Spectre.Console.Cli.PairDeconstructorAttribute.Type.get' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandValueResolver.cs(133,17): Trim analysis error IL2026: Spectre.Console.Cli.CommandValueResolver.GetConverter(CommandValueLookup,CommandValueBinder,ITypeResolver,CommandParameter): Using member 'System.ComponentModel.TypeDescriptor.GetConverter(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. Generic TypeConverters may require the generic types to be annotated. For example, NullableConverter requires the underlying type to be DynamicallyAccessedMembers All.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandValueResolver.cs(133,17): Trim analysis error IL2072: Spectre.Console.Cli.CommandValueResolver.GetConverter(CommandValueLookup,CommandValueBinder,ITypeResolver,CommandParameter): 'type' argument does not satisfy 'DynamicallyAccessedMemberTypes.All' in call to 'System.ComponentModel.TypeDescriptor.GetConverter(Type)'. The return value of method 'System.Type.GetElementType()' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandValueResolver.cs(153,17): Trim analysis error IL2072: Spectre.Console.Cli.CommandValueResolver.GetConverter(CommandValueLookup,CommandValueBinder,ITypeResolver,CommandParameter): 'type' argument does not satisfy 'DynamicallyAccessedMemberTypes.All' in call to 'System.ComponentModel.TypeDescriptor.GetConverter(Type)'. The return value of method 'Spectre.Console.Cli.IFlagValue.Type.get' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandValueResolver.cs(153,17): Trim analysis error IL2026: Spectre.Console.Cli.CommandValueResolver.GetConverter(CommandValueLookup,CommandValueBinder,ITypeResolver,CommandParameter): Using member 'System.ComponentModel.TypeDescriptor.GetConverter(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. Generic TypeConverters may require the generic types to be annotated. For example, NullableConverter requires the underlying type to be DynamicallyAccessedMembers All.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandValueResolver.cs(156,13): Trim analysis error IL2026: Spectre.Console.Cli.CommandValueResolver.GetConverter(CommandValueLookup,CommandValueBinder,ITypeResolver,CommandParameter): Using member 'System.ComponentModel.TypeDescriptor.GetConverter(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. Generic TypeConverters may require the generic types to be annotated. For example, NullableConverter requires the underlying type to be DynamicallyAccessedMembers All.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandValueResolver.cs(156,13): Trim analysis error IL2072: Spectre.Console.Cli.CommandValueResolver.GetConverter(CommandValueLookup,CommandValueBinder,ITypeResolver,CommandParameter): 'type' argument does not satisfy 'DynamicallyAccessedMemberTypes.All' in call to 'System.ComponentModel.TypeDescriptor.GetConverter(Type)'. The return value of method 'Spectre.Console.Cli.CommandParameter.ParameterType.get' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Binding/CommandValueResolver.cs(34,21): Trim analysis error IL2072: Spectre.Console.Cli.CommandValueResolver.GetParameterValues(CommandTree,ITypeResolver): '#0' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicParameterlessConstructor' in call to 'System.Activator.CreateInstance(Type)'. The return value of method 'Spectre.Console.Cli.CommandParameter.ParameterType.get' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Configuration/ConfigurationHelper.cs(21,40): Trim analysis error IL2070: Spectre.Console.Cli.ConfigurationHelper.GetGenericTypeArguments(Type,Type,Type[]&): 'this' argument does not satisfy 'DynamicallyAccessedMemberTypes.Interfaces' in call to 'System.Type.GetInterfaces()'. The parameter 'type' of method 'Spectre.Console.Cli.ConfigurationHelper.GetGenericTypeArguments(Type,Type,Type[]&)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/DefaultPairDeconstructor.cs(63,9): Trim analysis error IL2067: Spectre.Console.Cli.DefaultPairDeconstructor.GetConverter(Type): 'type' argument does not satisfy 'DynamicallyAccessedMemberTypes.All' in call to 'System.ComponentModel.TypeDescriptor.GetConverter(Type)'. The parameter 'type' of method 'Spectre.Console.Cli.DefaultPairDeconstructor.GetConverter(Type)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/DefaultPairDeconstructor.cs(63,9): Trim analysis error IL2026: Spectre.Console.Cli.DefaultPairDeconstructor.GetConverter(Type): Using member 'System.ComponentModel.TypeDescriptor.GetConverter(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. Generic TypeConverters may require the generic types to be annotated. For example, NullableConverter requires the underlying type to be DynamicallyAccessedMembers All.
/_/src/Spectre.Console/Cli/Internal/DefaultPairDeconstructor.cs(33,17): Trim analysis error IL2067: Spectre.Console.Cli.DefaultPairDeconstructor.Spectre.Console.Cli.IPairDeconstructor.Deconstruct(ITypeResolver,Type,Type,String): '#0' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicParameterlessConstructor' in call to 'System.Activator.CreateInstance(Type)'. The parameter 'valueType' of method 'Spectre.Console.Cli.DefaultPairDeconstructor.Spectre.Console.Cli.IPairDeconstructor.Deconstruct(ITypeResolver,Type,Type,String)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Widgets/Exceptions/ExceptionFormatter.cs(408,77): Trim analysis error IL2070: Spectre.Console.ExceptionFormatter.<TryResolveStateMachineMethod>g__GetDeclaredMethods|13_0(IReflect): 'this' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicMethods', 'DynamicallyAccessedMemberTypes.NonPublicMethods' in call to 'System.Reflection.IReflect.GetMethods(BindingFlags)'. The parameter 'type' of method 'Spectre.Console.ExceptionFormatter.<TryResolveStateMachineMethod>g__GetDeclaredMethods|13_0(IReflect)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Cli/Internal/Composition/Activators.cs(111,37): Trim analysis error IL2070: Spectre.Console.Cli.ReflectionActivator.GetGreediestConstructor(Type): 'this' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicConstructors' in call to 'System.Type.GetConstructors()'. The parameter 'type' of method 'Spectre.Console.Cli.ReflectionActivator.GetGreediestConstructor(Type)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Internal/TypeConverterHelper.cs(26,9): Trim analysis error IL2087: Spectre.Console.TypeConverterHelper.GetTypeConverter<T>(): 'type' argument does not satisfy 'DynamicallyAccessedMemberTypes.All' in call to 'System.ComponentModel.TypeDescriptor.GetConverter(Type)'. The generic parameter 'T' of 'Spectre.Console.TypeConverterHelper.GetTypeConverter<T>()' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Internal/TypeConverterHelper.cs(26,9): Trim analysis error IL2026: Spectre.Console.TypeConverterHelper.GetTypeConverter<T>(): Using member 'System.ComponentModel.TypeDescriptor.GetConverter(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. Generic TypeConverters may require the generic types to be annotated. For example, NullableConverter requires the underlying type to be DynamicallyAccessedMembers All.
/_/src/Spectre.Console/Cli/Internal/TypeResolverAdapter.cs(28,13): Trim analysis error IL2067: Spectre.Console.Cli.TypeResolverAdapter.Resolve(Type): '#0' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicParameterlessConstructor' in call to 'System.Activator.CreateInstance(Type)'. The parameter 'type' of method 'Spectre.Console.Cli.TypeResolverAdapter.Resolve(Type)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.

@azchohfi Not sure what the solution for this is tbh. Any pointers?

Oh, absolutely!
This is the documentation that helps a lot:
https://docs.microsoft.com/dotnet/core/deploying/trimming/trim-self-contained
I gave this a quick try yesterday (basically setting EnableTrimAnalyzer=True and bubbling up the annotations).
From my initial investigation, it seems like the biggest issue in SpectreConsole.Cli is that the CommandValueResolver.GetConverter method uses TypeDescriptor.GetConverter and Type.GetType. For Spectre.Console, the issue is at TypeConverterHelper.GetTypeConverter, which uses the same two methods.
The problem is that the solution is to bubble up the annotations until you reach the public methods, but that would require annotating pretty much everything.... Still, there is probably a better way to crack this (refactor/re-architecture), but it might be a major version bump, which I didn't want to start thinking without proper discussion with the community.

Btw, something like this can be used as a good test:
https://github.com/dotnet/command-line-api/blob/55dbf39074a7563e25e3409c9feb7afb8c8d2cc4/src/System.CommandLine.Tests/CompilationTests.cs

@azchohfi Thanks for the suggestion. This is something we should consider for the 1.0.0 release of Spectre.Console.Cli.
We've recently (in 0.45.0) moved the CLI parts out to its own NuGet package (Spectre.Console.Cli), so if you only need the console parts (Spectre.Console), you should be able to trim that now.

Oh, interesting. I'll try that!

This version is MUCH better, but still have the same issues as before on that assembly.
/_/src/Spectre.Console/Internal/TypeConverterHelper.cs(26,9): Trim analysis error IL2087: Spectre.Console.TypeConverterHelper.GetTypeConverter<T>(): 'type' argument does not satisfy 'DynamicallyAccessedMemberTypes.All' in call to 'System.ComponentModel.TypeDescriptor.GetConverter(Type)'. The generic parameter 'T' of 'Spectre.Console.TypeConverterHelper.GetTypeConverter<T>()' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
/_/src/Spectre.Console/Internal/TypeConverterHelper.cs(26,9): Trim analysis error IL2026: Spectre.Console.TypeConverterHelper.GetTypeConverter<T>(): Using member 'System.ComponentModel.TypeDescriptor.GetConverter(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. Generic TypeConverters may require the generic types to be annotated. For example, NullableConverter requires the underlying type to be DynamicallyAccessedMembers All.

The size difference between trimmed and untrimmed console application, for me at least is night and day (66k before trimming, 12k after trimming). It would be lovely if Spectre can work with assembly trimming.
For example if I have a command like this:
internal sealed partial class DownloadCommand : AsyncCommand<Settings>
{
    public sealed class Settings : CommandSettings

and configure it like so:
var app = new CommandApp<DownloadCommand>();

Then the application produces a trim warning, and when executed regardless breaks down like so:
Unhandled exception. Spectre.Console.Cli.CommandRuntimeException: Could not get settings type for command of type 'AssetExtractor.DownloadCommand'.
   at Spectre.Console.Cli.ConfiguredCommand.FromType[TCommand](String, Boolean ) in /_/src/Spectre.Console.Cli/Internal/Configuration/ConfiguredCommand.cs:line 53
   at Spectre.Console.Cli.Configurator.SetDefaultCommand[TDefaultCommand]() in /_/src/Spectre.Console.Cli/Internal/Configuration/Configurator.cs:line 31
   at Spectre.Console.Cli.CommandApp`1..ctor(ITypeRegistrar ) in /_/src/Spectre.Console.Cli/CommandAppOfT.cs:line 19
   at AssetExtractor.Program.Main(String[]) in C:\Users\gotos\source\repos\AssetExtractor\AssetExtractor\Program.cs:line 16
   at AssetExtractor.Program.<Main>(String[] )

I assume the problem is hidden somewhere much more deeper though.

While waiting for native support for Spectre trimming, it is possible to use <TrimMode>partial</TrimMode> in the project properties.

In order to use Microsofts ServiceCollection as a type registrar and the ServiceCollectionServiceExtensions for it, the ITypeRegistrar.Register method needs a [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] for the Type implementation parameter.
Otherwise it is an error when trimming is enabled.

@Gnbrkm41

...
I assume the problem is hidden somewhere much more deeper though.

You need to add the following attribute to your Progam.Main method for every command you have:
class Program {
	[DynamicDependency(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor | DynamicallyAccessedMemberTypes.PublicNestedTypes, typeof(YourCommand))]

	public static void Main(string[] args) {
		...


A subset of wake words can also wake up

When I used 'hey siri' ( it was just a test) as a wake word,
'hey','siri','hey siri' can wake up.
model file hey_siri.zip
Is there a trick to solve this problem？

That's a great question @wxqwinner, and is definitely something I've noticed as well when training models. While performance will vary depending on the exact wakeword and training process, I've had reasonable success by generating "adversarial" synthetic examples to use during training to help the model not predict a high score in these situations. For example:

generate examples of "hey" and "siri" by themselves, and include these as negative clips for training
generate other words and phrases that sound similar to the target wakeword (like "hey clearly" or "cheery") and include these in the negative clips as well

Note that this will make it harder for the model to learn to distinguish the words and can result in a slight decrease in recall of true positive clips in some cases, so as always careful testing with real-world data from target deployment environment is recommended.


Azure File Copy and WinRM cannot complete the operation

Hi,
As part of Azure release pipeline, I am trying to Copy MSI installer to a VM using "Azure File Copy" task and getting below error during this process:

The remote session query failed for syngis-train-01.northeurope.cloudapp.azure.com with the following error message: WinRM cannot complete the operation. Verify that the specified computer name is valid, that the computer is accessible over the network, and that a firewall exception for the WinRM service is enabled and allows access from this computer. By default, the WinRM firewall exception for public profiles limits access to remote computers within the same local subnet.

Please note that WinRM service is running and is configured for remote management and exception to firewall settings is also added to inbound rules:

Please note that first few steps (downloading MSI and uploading to temporary blob) are working fine - please refer attached log snapshot for details:

Given below is more detail:
Environment

Server - Azure Pipelines
Agent - Hosted 2017

Please help.

I was able to get it working... Please close this issue!

I have the same issue and I wonder how you got passed? @asimnzr #11158


Fix rendering issue #65 with Chart.js 1.1.1 and provide backward comp…

…atibility as requested by @carlcraig

Thanks for the contribution :+1:
I have created a new release v1.0.16 and published to npm.


Localization Issue

Hi
I am population calendar using dynamic data. My even is like that
{
end : "2017-06-04T11:00:00.000Z"
id : 10
start : "2017-06-04T10:00:00.000Z"
title : "final test(10:00-11:00)"
}
Setting localization
BigCalendar.setLocalizer(BigCalendar.momentLocalizer(moment));
The issue I am facing when I click on the event. I got event time like
15:00 - 16:00 but my actual time is 10:00 - 11:00
My current Timezone is GMT  + 5
How can I fix this issue.
Thanking you in anticipation

Have you tried to pass Date objects like in examples? https://github.com/intljusticemission/react-big-calendar/blob/master/examples/events.js

Hi Andresgutgon
Yeah the rest api which is sending data to component is creating date like mention in example
Following is the code of rest API
           var bookingDay = new Date(value.bookingDay);
            var startTime = value.start.split(":");
            var endTime = value.end.split(":");
            value.title = desc + "(" + value.start + "-" + value.end +")";
            value.start = new Date(bookingDay.getFullYear(),bookingDay.getMonth(),
                bookingDay.getDate(), startTime[0], startTime[1],0);
            value.end = new Date(bookingDay.getFullYear(),bookingDay.getMonth(),
                bookingDay.getDate(), endTime[0], endTime[1],0);

this is a timezone issue I beleive, you are responsible for mantaining the timezone you wish on your dates. you can search past issues as well for more info.


To support Xiaomi 9T Android 11

Updated 'diag_revealer' and java code to support Xiaomi 9T Android 11

Also, one other request for you. Can you write a unit test for the convertLteMibMessage method you added. An example of a unit test for those convert methods can be found here: https://github.com/christianrowlands/android-network-survey-rooted/blob/14f5d830aa94b4bf9a77bd1bc503d8030a3168bc/app/src/test/java/com/craxiom/networksurveyplus/QcdmTest.java#L247

@HartonoTw , just checking in to see if you had a few spare cycles to knock out that unit test. It is pretty easy to write, and I would do it for you, but I don't have the LTE MIB message bytes to use in the test.

Awesome, thanks @HartonoTw . Approved. You should be able to merge now.

Sorry, first time use GitHub, I don't know how to merge it.

No worries. I can merge it for you.

Thanks again for working on this!

Thanks again for working on this!

Thanks!


Same .cpp file needed for project with stdafx.h and another project that use pch.h

[Enter feedback here]
I have an older project that uses stdafx.h for pre-compiled headers and a newer project that uses pch.h. I want to reuse the same class (.cpp and .h files) for both. I attempted to use an #ifdef #else block. This would not compile failing on the #endif.
Please, provide explanation on how to handle this situation.

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

ID: 7710ea05-1307-eaaf-3ba0-86175eeaf184
Version Independent ID: 30568a08-383b-1676-dfb3-e1dc6f28f38c
Content: Fatal Error C1010
Content Source: docs/error-messages/compiler-errors-1/fatal-error-c1010.md
Product: visual-cpp
Technology: cpp-diagnostics
GitHub Login: @corob-msft
Microsoft Alias: corob

@dershver
I appreciate the trouble you're facing. While it sounds like a reasonable solution for your shared class code, based on how precompiled headers work, you can't wrap them in #ifdef blocks in a .cpp file. You've run afoul of this line in the error doc:

Make sure the pch.h or stdafx.h header file is included before any other code or preprocessor directives in your source files.

(Emphasis added.) Unfortunately, the #include "pch.h" (or #include "stdafx.h") line is a magic PCH boundary in source files. You can't have any preprocessor directives come before it, and that includes a useful #ifdef to switch between two versions. Hence the error.
I can think of a hacky way to get around the issue. For example, you could leave the #include "pch.h" (or #include "stdafx.h") line out of your class implementation in my_class.cpp, and then create a new file for each project called something like my_class_wrapper.cpp. Inside, those files would just consist of:
#include <stdafx.h>
#include "my_class.cpp"

or
#include <pch.h>
#include "my_class.cpp"

for the respective projects. Then you'd need to include the wrapper source file in the builds for each project, and exclude the regular implementation. (Alternatively: rename the shared implementation source file something like my_class.i to exclude it from the build.) I haven't tried this, but I expect it would work. There may be other more elegant solutions available if you search the web.

The workaround I implemented was to create a Preprocessor Definition
MY_PCH. In one project this is defined as
MY_PCH="stdafx.h" and in the  other MY_PCH="pch.h" .  In the .cpp files, I
had #include MY_PCH.
This didi work. Actually, I needed to share three different classes so
there were three .cpp files that I modified
in this manner.
                                   Paul Klahr

On Thu, Mar 4, 2021 at 5:29 PM Colin Robertson<EMAIL_ADDRESS>wrote:

@dershver https://github.com/dershver
I appreciate the trouble you're facing. While it sounds like a reasonable
solution for your shared class code, based on how precompiled headers work,
you can't wrap them in #ifdef blocks in a .cpp file. You've run afoul of
this line in the error doc:

Make sure the pch.h or stdafx.h header file is included before
any other code or preprocessor directives in your source files.

(Emphasis added.) Unfortunately, the #include "pch.h" (or #include
"stdafx.h") line is a magic PCH boundary in source files. You can't have
any preprocessor directives come before it, and that includes a useful
#ifdef to switch between two versions. Hence the error.
I can think of a hacky way to get around the issue. For example, you could
leave the #include "pch.h" (or #include "stdafx.h") line out of your
class implementation in my_class.cpp, and then create a new file for
each project called something like my_class_wrapper.cpp. Inside, those
files would just consist of:
#include <stdafx.h>
#include "my_class.cpp"
or
#include <pch.h>
#include "my_class.cpp"
for the respective projects. Then you'd need to include the wrapper source
file in the builds for each project, and exclude the regular
implementation. (Alternatively: rename the shared implementation source
file something like my_class.i to exclude it from the build.) I haven't
tried this, but I expect it would work. There may be other more elegant
solutions available if you search the web.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/cpp-docs/issues/3016#issuecomment-790990145,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANDKR3PMW2IRPMFAQ4MN5YTTCACVVANCNFSM4YUA426Q
.


update base image to use<EMAIL_ADDRESS>

Depends on https://github.com/gofractally/image-builders/pull/28

Updated to use merge commit id


Open Source License?

Awesome work! I would love to use the data you put together. Can you please add an MIT or Apache license to your repo?

Thank you. We have added MIT license.


add stacked histogram bins for torque category maps/widgets

Right now the timeseries widget shows a histogram of a count of the number of events at different time intervals. This is great for non-categorized data, but if one wanted to make a category torque map it'd be killer to have the histogram bins stacked like a stacked bar graph.

Having stacked counts/sums in the category and histogram widget would be killer. Something like this:

Lots more in this search result


ft: make redis configurable through env variables

This allows setting the Redis (sentinel) host and port through environmental variables.

@RachedBenMustapha  Correct me if I'm wrong but as far as I know, S3 connects to both redis-local (localCache) and redis-sentinel. Right now the docker-entrypoint.sh just lets you connect to only one by specifying REDIS_HOST.

This change is not backward-compatible, we don't rename existing parameters to new uses but instead introduce new ones for new uses.
What part of s3 exactly needs access to sentinel?

@RachedBenMustapha In Federation, when UTAPI is enabled it can use redis-sentinel (https://github.com/scality/Federation/blob/master/roles/run-s3/templates/config.json.j2#L52) or at least that is what it seems to be. I made a mistake, it should be ".utapi.redis" instead of ".redis".
The reason I created this PR because of the addition of the redis-sentinel chart (https://github.com/scality/Zenko/pull/102). But it appears that UTAPI will be a separate chart so perhaps this is outside of the scope for now. Let me know what you think and this PR can be closed if you wish.

I'd be for closing the PR since the need wasn't clearly defined and the proposed changes are not in line.


Consider using generate_release_notes

Consider using generate_release_notes as described in:
https://github.com/softprops/action-gh-release#-customizing
Apply it here:
https://github.com/pyansys/grantami-bomanalytics-openapi/blob/0109f659715739b7ae015ec20070c729d5ff0f93/.github/workflows/build_and_test_library.yml#L104-L107
Will be especially helpful for patch/minor releases.

I don't think we'll need to use this for this repo, since it only contains generated code. Now we have all the workflows sorted, the commits from humans will only be to update the yml definition file.
This is useful for openapi-common and grantami-bomanalytics though, I'll create tickets there.

Agreed, we will likely want to document what changes between yaml versions, but that will be a manual process.


Suggestion of gibberish text while typing

please complete the following information:

OS version: [e.g. Win 10, Mac Catalina]	Windows 10
Editor: [e.g. vscode, intelij, sublime]	vscode
Editor version:	1.59.0
Programming language: [e.g. js, ts, c++]	markdown/python(jupyter)
TabNine extension version: 3.4.22
Engine version (could be located within Tabnine Hub): 3.5.48-41

Issue Details:
A lot of time Tabnine suggest some random gibberish output which seems to have been trained on some random cryptographics or uuid based data and has no meaning whatsoever

Here is a screenshot of what I mean!
gz#5265

Are u trying it on a Jupyter Notebook with Markdown? Because I've seen such inputs multiple times!

@meghrathod

@meghrathod This must be a result of some context found in your notebook. I'd also recommend you use the jupyter notebook extension since completions for the VS Code notebooks are not officially supported.
gibberish? This must be a result of some context found in your notebook.
trained on some random uuid based data? no, we don't do that.


Embed the formatted starter kit scripts in the website

This embeds ALL the scripts from MBrace.StarterKit in a uniform way under the m-brace.net website.
For example: http://www.m-brace.net/azure/HandsOnTutorial/1-hello-world.html
We don't yet link to any of the scripts so this is not yet "live" for the world to see in any real sense.  The formatting is not ideal and we have to fix the scripts up with "hide" and (** ... *) markers if we want them to look good.

Now added links to the primary examples of the programming model
Self merging but please review

LGTM


Maya: model publish strips material if other than default

Describe the bug
We export maya models without shading, however currently if the model has any material other than maya default, it will be stripped completely and stay green without shading group assigned to it.
Expected behavior
We shouldn't touch the material in the current scene when exporting model
Screenshots

[cuID:1n9fanc]

Is this bug still present?
I couldn't reproduce it in a simple scene with a cube and assigning a shader.
Do you have a reproducable scene where this occurs?

Yep, just tried it and I can't reproduce it either.

I managed to reproduce it when material assign per face.
to clear the situation its not publish strips material its publish turn geo into green like its without material.
there is no problem with material assignment its just a viewport bug if you save scene and reopen geo look back to normal.
the bug only happens when assign material happens with context manager.

I managed to reproduce it when material assign per face.
to clear the situation its not publish strips material its publish turn geo into green like its without material.

This would be perfect. But unfortunately I still can't reproduce it. (tested in Maya 2022 & tested in Maya 2020)
Here's my test setup:
from maya import cmds
import avalon.api
import openpype.lib

def create(Creator, name, members):
    """Create creator for current asset with name + add members"""
    # note: the create method does not "return" the publish instance so for now
    # we use "useSelection" to add the members - since otherwise it's non trivial.
    options = {"useSelection": True}
    with avalon.maya.maintained_selection():
        cmds.select(members, replace=True, noExpand=True)
        container = avalon.api.create(Creator,
                                      name=name,
                                      asset=asset,
                                      options=options)

def create_shader(name, node_type="lambert"):
    material = cmds.shadingNode(node_type, name=name, asShader=True)
    sg = cmds.sets(name="%sSG" % name, empty=True, renderable=True, noSurfaceShader=True)
    cmds.connectAttr("%s.outColor" % material, "%s.surfaceShader" % sg)
    return material, sg

# Create a cube
cube = cmds.polyCube(name="cube_GEO", constructionHistory=False)[0]

# Assign part red
red_mtl, red_sg = create_shader("red_MTL")
cmds.setAttr(red_mtl + ".color", 1, 0, 0, type="double3")
cmds.sets(cube, forceElement=red_sg)

# Assign part blue
blue_mtl, blue_sg = create_shader("blue_MTL")
cmds.setAttr(blue_mtl + ".color", 0, 0, 1, type="double3")
cmds.sets(cube + ".f[0]", forceElement=blue_sg)

# Create modelMain instance to publish
Creator = openpype.lib.get_creator_by_name("CreateModel")
asset = avalon.api.Session["AVALON_ASSET"]
create(Creator, name="modelMain", members=[cube])

Create new file.
Run script.
Save work file.
Publish.

Everything still looks fine.
@karimmozilla how did you test it?

☝ Just to be sure - I commented my post above because I was actually able to reproduce it in Maya 2020.


pdf-chrome not running in docker container

Describe the bug
As currently set up, pdf derivatives usign Chrome headless do not work in a docker container, at least not in how the Dockerfile currently works.
A minor reason is that the --no-sandbox arg needs to be added to run as a root user. However, even running the google-chrome command itself with --no-sandbox raises an error. I assume it must be due to not having a full GUI ubuntu install or something. I'm not sure if it just wants more libraries or this is a bigger issue with running chrome headless in a container.
I'm seeing at least one similar stack overflow.
To Reproduce
Steps to reproduce the behavior:

Run a mailbag docker container
run mailbagit using the pdf-chrome derivatives arg
You can also just run a command, like:

google-chrome --headless --run-all-compositor-stages-before-draw --disable-gpu --print-to-pdf-no-header --no-sandbox --print-to-pdf=test.pdf https://library.albany.edu

Expected behavior
Should generate PDF derivatives like wkhtmltopdf does.
Environment (please complete the following information):
_ GUI or command line?: CLI

OS: Ubuntu 20.04 from Dockerfile

Stack trace:
root@54969d350e75:/data# google-chrome --headless --run-all-compositor-stages-before-draw --disable-gpu --print-to-pdf-no-header --no-sandbox --print-to-pdf=test.pdf https://library.albany.edu
[0506/143016.738554:ERROR:bus.cc(398)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
[0506/143016.739362:ERROR:bus.cc(398)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
[0506/143016.745919:WARNING:bluez_dbus_manager.cc(248)] Floss manager not present, cannot set Floss enable/disable.
[0506/143016.836095:WARNING:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process.
[0506/143017.244876:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.249526:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.254264:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.280239:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.286472:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.294034:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.298574:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.303774:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.311593:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.317093:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.331863:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.336769:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.343858:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.347758:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.351703:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.359802:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.367001:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.371542:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.376787:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.382851:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.390048:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.395749:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.409423:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.413832:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.418559:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.424117:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.429361:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.439542:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.444183:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.448974:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.454516:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.469244:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.474493:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.488041:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.493350:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.498074:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.503641:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.537827:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.543100:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.555714:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.563288:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.570967:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.575082:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.579138:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.582855:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143017.587801:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[0506/143018.562048:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
[0506/143018.562153:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
[0506/143018.587921:ERROR:headless_shell.cc(602)] Print to PDF failed

It may be working with libgtk-3-dev installed, but is still showing errors.

Confirmed it does work with libgtk-3-dev. Doesn't make the image much huge-er than it already is so that's an easy fix with setting --no-sandbox in a container.


More useful CSS setPropertyValue() needed

The example on https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/setProperty just randomly sets a border on a rule without knowing which rule it's hitting. While we want mimum use case examples, this is too minimum. Let's add a way to determine which property it's being added to, or at least direct someone to how that can be done.
I dont' know off the top of my head how to do that, hence creating a ticket instead of editing.

I've written a quick example that is more useful than the previous one:
https://wiki.developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/setProperty#Examples
Does that work, @estelle ?


[Bug]: The User doesn't able to deploy-the app even when he has all the Permissions

Is there an existing issue for this?

[X] I have searched the existing issues

Description
The User doesn't able to deploy-the app even when he has all the Permissions

Steps To Reproduce

Login as admin
create a new workspace
import a template
go to roles tab
Give all the access for the app
Assign it to user 1
login as user 1
go to edit mode
Now try to deploy the app

Public Sample App
No response
Issue video log
No response
Version
localhost

Closed and verified by QA


Would love to see TypeScript support

Title!

https://www.npmjs.com/package/patreon-ts

Is this lib abandoned?  Types are very badly needed.


Upgrade snake_yaml to fix CVE

Signed-off-by: Ryan Bogan<EMAIL_ADDRESS>
Description
Upgrades indirect snake_yaml dependency to fix https://advisories.aws.barahmand.com/advisory/CVE-2022-38752
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[X] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

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

Codecov Report

Merging #6036 (0f3b58c) into 1.3 (6d74ff2) will decrease coverage by 0.02%.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##                1.3    #6036      +/-   ##
============================================
- Coverage     77.90%   77.89%   -0.02%
+ Complexity    63445    63415      -30
============================================
  Files          4454     4454
  Lines        274944   274944
  Branches      41166    41166
============================================
- Hits         214203   214169      -34
- Misses        43836    43899      +63
+ Partials      16905    16876      -29

Impacted Files
Coverage Δ

...g/opensearch/index/analysis/CharFilterFactory.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...nsearch/indices/recovery/PeerRecoveryNotFound.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...nsearch/search/dfs/DfsPhaseExecutionException.java
0.00% <0.00%> (-66.67%)
:arrow_down:

...port/ResponseHandlerFailureTransportException.java
0.00% <0.00%> (-60.00%)
:arrow_down:

...ava/org/opensearch/action/NoSuchNodeException.java
0.00% <0.00%> (-50.00%)
:arrow_down:

...rch/index/engine/RefreshFailedEngineException.java
50.00% <0.00%> (-50.00%)
:arrow_down:

...h/index/engine/EngineCreationFailureException.java
50.00% <0.00%> (-50.00%)
:arrow_down:

...n/indices/upgrade/post/UpgradeSettingsRequest.java
30.00% <0.00%> (-45.00%)
:arrow_down:

...ava/org/opensearch/OpenSearchTimeoutException.java
50.00% <0.00%> (-25.00%)
:arrow_down:

...rg/opensearch/action/support/TransportActions.java
50.00% <0.00%> (-25.00%)
:arrow_down:

... and 475 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

related https://github.com/opensearch-project/OpenSearch/commit/ccc90c45398c21fde7769371a558533bbbb50544


Fixes NaNs in weighted_moments with all-zeros weights.

Fixes #51792

@mihaimaruseac
Friendly ping.

ANY reply?

@gbaned ?

Sorry, was OOO

Thanks @mihaimaruseac
It seems there were several tests that failed due to unrelated issues...
Should these be re-run?

Hi.
The failing tests are optional for merging the PR (as they're flaky, we have an internal version of them that behaves better and roadmap work to make external tests be similar).
This is now waiting on internal review and after that passes it should automerge.
Thank you for the PR

Reciprocal is not a linear operation.

Of course, reciprocal is not linear. We are not fixing it...
Weighted sum is linear though. I think most people would expect a zero when all weights are zeros, not a NaN.


Added Craft CMS logo.

Popular content management system.

Hi there, is there anything I need to fix up to get this merged?

This fixed #18

Fixes #30

Added Gopher in a6df8c5feb81efde698dc5f200c707c1527dd442
Thanks.


FIX: Skip version cache on read-only filesystems

Fixes #853.
Following nipreps/fmriprep#1830.

Hello @effigies, thank you for submitting the Pull Request!

In the file mriqc/cli/version.py:

Line 22:8: E999 IndentationError: unexpected indent
Line 22:9: E113 unexpected indentation
Line 23:9: E112 expected an indented block

To test for issues locally, pip install flake8 and then run flake8 niworkflows.

Travis failures are #863. Will not include fix in this PR.

@oesteban There are Bad Gateway errors in the CircleCI tests. URLs aren't exposed, so I don't know what service it's trying to access.
cc @rwblair in case you know and can restart a service.

Looks like its running its own version of the webapi locally:
https://github.com/poldracklab/mriqc/blob/5898396026817ce114bbc90bac0dd5d7c48618e0/.circleci/config.yml#L468
Guess I'll rerun job with ssh and inspect nginx logs to see what I can see.

Did we ever figure this out?

SSHing in, I see:
$ docker logs dockereve-master_eve_1
[2020-12-13 23:42:24 +0000] [1] [INFO] Starting gunicorn 20.0.4
[2020-12-13 23:42:24 +0000] [1] [INFO] Listening at: http://<IP_ADDRESS>:5000 (1)
[2020-12-13 23:42:24 +0000] [1] [INFO] Using worker: sync
[2020-12-13 23:42:24 +0000] [8] [INFO] Booting worker with pid: 8
[2020-12-13 23:42:24 +0000] [9] [INFO] Booting worker with pid: 9
[2020-12-13 23:42:25 +0000] [8] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
    mod = importlib.import_module(module)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/src/app/app.py", line 21, in <module>
    app.register_blueprint(swagger, url_prefix='/docs/api')
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 98, in wrapper_func
    return f(self, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1156, in register_blueprint
    if blueprint.name in self.blueprints:
AttributeError: module 'eve_swagger.swagger' has no attribute 'name'
[2020-12-13 23:42:25 +0000] [8] [INFO] Worker exiting (pid: 8)
[2020-12-13 23:42:25 +0000] [9] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
    mod = importlib.import_module(module)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/src/app/app.py", line 21, in <module>
    app.register_blueprint(swagger, url_prefix='/docs/api')
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 98, in wrapper_func
    return f(self, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1156, in register_blueprint
    if blueprint.name in self.blueprints:
AttributeError: module 'eve_swagger.swagger' has no attribute 'name'
[2020-12-13 23:42:25 +0000] [9] [INFO] Worker exiting (pid: 9)
[2020-12-13 23:42:25 +0000] [1] [INFO] Shutting down: Master
[2020-12-13 23:42:25 +0000] [1] [INFO] Reason: Worker failed to boot.

(Message repeats...)
Did some digging, and came up with https://github.com/poldracklab/mriqcwebapi/pull/47.
Testing that here.

IQM issue. @oesteban if you could have a look? Or anybody else qualified to look through Circle?

Could you rebase?

Tests passing and I got an in-principle approval a while back, so I'll go ahead and merge.
I would suggest a release soonish since a lot of these issues are long-standing, though we might also need to release mriqcwebapi. I don't know if there are deployment issues there?

note to myself -- slated for 0.15.3 or 0.16 whatever comes first, right? ;)

I don't know if there are deployment issues there?

You bet, but maybe the webapi wants to give us a nice surprise. @rwblair may actually know better than myself

0.15.3 is out already. I would suggest 0.16, just to mark that it took some work and upgraders may need to consider dependencies.

https://github.com/poldracklab/mriqc/ says latest release 0.15.2

There's a tag that didn't get an official release page. If you click in the releases, you'll see it.


[Question] I can make non-blocking scope?

Hi.
I want to let a main thread work during scoped multithreading like the following pseudo-code.
fn example() {
   let mut pool = Pool::new(4);
    let scope = pool.non_block_scoped(|scoped| { ... });
    do_something();
    scope.join_all();
}

Is it possible on your scoped-threadpool?

Not with that API. The pool.scoped() has to be a blocking function call for safety reasons, since a RAII guard could be leaked, which would cause memory unsafety.
You should be able to do other work in the outer closure though:
pool.scoped(|scope| {
    scope.execute(move || {
        // ...
    });
    do_something();
    scope.execute(move || {
        // ...
    });
});

Great!
I have never considered about it.
Thank you!