Code commenting

There is a very strict policy on code comments on this project.
However, a lot of the motivation for this, whilst good, is quite outdated in its ideas.
In the policy :-
https://github.com/stratisproject/StratisBitcoinFullNode/blob/master/Documentation/commenting-policy.md

Yes, it is true that you should always try to write the code as if you could not write any comment to it.

The above is something I think we can all agree on.
However, the motivation section mentions many things as facts, which aren't actually facts.
Eg.

Having a well defined code style helps with that.

This is debatable - a strict style like the one on this project actually has many areas that force noise and clutter into the code - e.g. forcing some summaries that repeat what the code already says.

But regardless how good your code is, you still need to add comments.

This is patently NOT a fact. You can have your cake and eat it and I believe you should try to, since code maintenance is more important than the first time it is written. Code is read many many more times than it is written - therefore the extra effort that is used for commenting, could be used to make the code even more expressive.
There are a huge number of developers who believe that comments are a "last resort" after you have completely failed to communicate the intent in code alone.
The main resource on this would be Robert C Martin and mainly in his book Clean Code.
This is not to say we should never have comments - that would be a mistake, there are plenty of reasons to capture something in text that cannot be captured in code alone - however to enforce that we ALWAYS have to comment and write summaries just leads to unnecessary duplication, comments that are out of sync with the code, comments that mislead rather than help the next developer.
However I think it is also fair to say that in some cases, they also help and save time. But I stand by that being a last resort and not a first course of action.

I think this rule indeed needs to be lose for some particular case:
When we have a class A and it has a summary comment we do not need to comment every instance of that class (unless dev want to for some reason). Currently we do so and it just leads to copying the summary comment over and over.

I'm happy to relax the requirement for fields that are used in other components commonly for the same thing and are injected in constructor via DI. Otherwise I believe we need comments everywhere (XMLDOC, not inline). Inline comments should be written if the code itself is not clear, I agree with that, no need to write inline comments if the code is clear.
XMLDOC - i.e. comments of properties, methods, interfaces, classes, parameters, returns, exceptions ... they add another layer of security - code and comment must match, otherwise we have a bug in code, comment, or both.
Each class should also have a big comment explaining its role from bigger picture point of view. And again, this is another layer for bug prevention - if big picture does not match the implementation, it is a bug.
Not only it is extra layer of protection, but it is also helpful for intellisense, which speeds up the coding.

So that is the 1st part of the argument, the 2nd one is about providing information to developers that directly uses the code. I will add this later.

I would like to remove the need to comment constructors and properties, properties are often just repeating comments, there is mostly not befit there and if a user needs documentation navigating to the property's class for it's comments is a click away.
I would also like to remove the need to comment on method parameters same argument applies to properties.
I find myself writing many times the comment like
        /// <param name="network">The blockchain network.</param>

I would be okay with relaxing the parameter's comments for such parameters that are used in many components in a same way.

So as for the providing information to developers. It is very handy and sometimes crucial to provide information to a fellow developer who is using the code either from external component or from within the component we are writing.
As we write the code now, the comments are the best place to put this information to. Should we ever start using whatever tools for formal validation or static analysis of the code, we may find ourselves moving such information from the comments to some special tags or attributes.
This information includes but is not limited to: locking contracts, parameter restrictions, contracts between parameters, exceptions thrown from the methods, discussion about time and space complexity, links to resources related to the code, et cetera
It is impractical to try to put all this information inside the names, although when possible, the most critical information should be included – such as the requirement of holding locks before calling a certain method is very nice to have on the method name.

I am a believer of writing code that is so readable that comments are not needed, however I am also a bit skeptic if the ability to achieve that.
I would love to see examples of code that is so readable that comments are not needed.
Will this be a different way of writing code? or just more focus on type/method names.
We see the new test specification code where method high level expresses a lot of intent in plain English I wonder if such similar approaches are the intent of readable code.

... they add another layer of security - code and comment must match, otherwise we have a bug in code, comment, or both.

Tests are a far better solution to this problem. Tests are the live documentation for the system that express how the system works. If there is no test, how did the code get written in the first place and accepted? putting that aside....  if you are changing a piece of code, it is your duty to write tests that prove it works. Ideally TDD, but let's save that one for another day.
So you say code and comment must match but you aren't allowed to have a redundant comment where the code is clear? - Those two statements appear to compete with each other.
Personally I am skeptical of all comments and will read the tests and the code to understand what it does - it sounds like you are also skeptical of the comment, otherwise why would you be comparing the comment and the code to see if there is a bug?  Do you trust the code or the comment? What do you do to resolve it? you look into it and you fix them to match - thus causing it to now be a redundant comment.
A quick google of "code comments add a layer of security to your code" returns no obviously relevant results.  If this was an industry accepted practice, wouldn't we have thousands of results?

This information includes but is not limited to: locking contracts, parameter restrictions, contracts between parameters, exceptions thrown from the methods, discussion about time and space complexity, links to resources related to the code, et cetera

Some of those things, yes occasionally very useful - time and space complexity, sure, why not, especially if we have chosen a surprising one in that context.  Links to resources, of course include these.
Parameter restrictions, better solved with things like Value objects rather than using/abusing primitives like int or string.

I would love to see examples of code that is so readable that comments are not needed.

@dangershony Here are some quick examples:-
Article by Jeff Atwood - https://blog.codinghorror.com/coding-without-comments/
The following is from Clean Code by Robert C. Martin
Which would you rather see? This:

// Check to see if the employee is eligible for full benefits
if (( employee.flags & HOURLY_FLAG) && (employee.age > 65))

Or this?

if (employee.IsEligibleForFullBenefits())

It takes only a few seconds of thought to explain most of your intent in code.

I would add to this that our coding policy rules say we need to add a summary to the private method too, which would completely ruin the elegance of having the private method. The summary would literally repeat the code inside and therefore break DRY at the very least.

Will this be a different way of writing code? or just more focus on type/method names.

Yes focus on names, but more than that -

Get obsessive about Single Responsibility Principle and other SOLID principles
Use methods at the same level of abstraction
Pronouncable names to aid with communication
Avoiding acronyms!!  Does sc mean side chain? or smart contract?
Not using similar variable names as another one near it just because you needed a second variable
Use names that reflect the system domain, the context, and the problems that must be solved
Use names with words that say what it really does
The optimal number of parameters of a method is zero, after one and two. Three should be avoided, but if you think it should be used, have a good justification - This includes constructor dependency injection
A parameter of a boolean, already says a method does more than one thing
Follow law of demeter and only talk to your friends, not your friends friends
Use exceptions only in exceptional circumstances
Don't guard for null - make sure it NEVER reaches that point in the code with a null. Never pass null to methods and never return null from methods, prefer empty objects instead.
Use TDD to drive the code, doing the test first forces you to not write complicated code, partly because it is really hard to write complicated code when you are writing tests to cover it on the fly as you go.
i. Don't create code before you have a failing test.
ii. Don't create more tests than necessary to fail.
iii You cannot write more code than enough to pass the test that is failing.

....Anyway that is far too much food for thought off the top of my head.

... they add another layer of security - code and comment must match, otherwise we have a bug in code, comment, or both.

Tests are a far better solution to this problem. Tests are the live documentation for the system that express how the system works. If there is no test, how did the code get written in the first place and accepted? putting that aside.... if you are changing a piece of code, it is your duty to write tests that prove it works. Ideally TDD, but let's save that one for another day.

Non-argument - I can say the same - comments are better solution to this problem, they are live documentation ... if you are changing code it is your duty ... - see ? it works as well

So you say code and comment must match but you aren't allowed to have a redundant comment where the code is clear? - Those two statements appear to compete with each other.

you are mixing inline comments and XMLDOC

Do you trust the code or the comment? What do you do to resolve it?

Do you trust the test or the code? Again, the whole argumentation works for comments as well.

Parameter restrictions, better solved with things like Value objects rather than using/abusing primitives like int or string.

No, this is not about abusing types. There are often restrictions - e.g. something CAN be null, or something CANT be null, or something CAN be null ONLY if something else is TRUE, etc.

Ah very good two points from the article you provided.

You should always write your code as if comments didn't exist
To write good comments you have to be a good writer

I agree on both accounts.

@Aprogiena fair enough you can use the same argument for comments instead of tests, but why bother. Tests are runnable, comments aren't.

Non-argument - I can say the same - comments are better solution to this problem, they are live documentation ... if you are changing code it is your duty ... - see ? it works as well

It almost works. Except a comment isn't live, it is free to slip away into being out of date and they 100% do slip and take a great deal of code review diligence to keep in sync
I can't believe I have to make these points, but by the same argument I guess neither can you.

you are mixing inline comments and XMLDOC

I am, why aren't you?  Why is an XMLDOC comment allowed to be redundant?

We decided on these rules months ago after many many discussions.
What happened with not fixing something that is not broken?
Clearly we all have different views on the matter. Some like comments, some don't.
We need to concentrate on writing code and delivering rather than talking about writing code and delivering.

this is a time suck and it's unacceptable.

I am afraid you are right. I would still very much like anyone to question anything or propose anything, however, as you say, we must not waste our time. Therefore, assuming as it is obvious that certain proposal does not have an over helming majority of support, we should avoid spending more time on it.
Therefore not at any more comments here.
@majikandy I am still happy to have a Skype call and discuss this matter, if you are interested, but only outside of working hours – i.e. during weekends – to avoid wasting work time.

We decided on these rules months ago after many many discussions.

When we decided on the commenting policies there where only 3 of us, and I was happy to give it a try.
I am re-questioning that decision now, there are some very solid arguments that are made about not using a strict approach to writing comments and I would like to explore that.
I also think that blindly deciding that we should always put comments is not right, there are places and times where comments are useless/time-wasting but our policies will still demand that we write "something" down.
And again I repeat I am NOT against commenting I am just against the strict policy we currently have.
Looking at example in the dotnet core ns we see comments are optional.
https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/src/System/IO/File.cs
I would also argue that some devs are better at writing comments then others, so if a reviewer feels a comment is needed they can (a reviewer should understand the code they are reviewing and so be able to) provide a solid comment if they think the code is not clear from how its written.
I'd also agree to keep a requirement that classes be heavily commented on the intention of the class, such documentation almost always makes sense.

I am going to propose this changes to the policy.
1 - Private properties don't require comments if name is descriptive enough or its clear form the type.
1.1 - Or we can use apros suggestion to put a special comment tag like //inheritdoc maybe //inheritparent (I did try to see if there is such an existing tag) that means look at the description of the type.
2 - Methods parameters don't require comments (or similar to 1.1)
3 - Constructors don't require comments.
4 - Private methods don't require comments if they are written in a way that its clear what they do.
Require in this context does not mean no comments at all but if the code is readable enough then comments be left out.

First of all, a disclaimer: I'm happy for anyone to question anything at anytime.
I believe this is how we move forward, innovate and better ourselves and what we do.
Having said that, after months-long discussions we arrived at a set of rules that define how we write code here at Stratis. Referring to my previous point, I'm happy for this to be challenged within reason.
However, I think some of us are missing the point with regards to documentation, the use of var and other CONVENTIONS.
No one really cares whether it's better or not to write full documentation or only when it's not obvious. No one cares whether we use var or not. The compiled code is exactly the same, I hope we all agree on that.
What these rules do is they define a set of conventions between developers in order to streamline the process and remove all manner of questions the developer asks himself in his daily work: "Should I do it? Is this the right thing to do? What will the reviewers think? etc..."
When as a rule you decide to have comments everywhere, or no comments at all, developers don't have to think/judge/assess whether comments on a particular element are required.
It removes all uncertainties and prevent all discussions between developers, i.e "we put documentation on everything". Done.
Having comments on everything + using var when type can be inferred and explicit type when not is actually the simplest options that let the developers concentrate on what's important.
If we allow to just do whatever, we're going to have endless discussions about whether a documentation is required or not, whether a private method requires documentation or not, whether the use of var is allowed or not etc...
I think relaxing the rules and allowing anyone to do as they please is a false economy.
Whatever we decide, it needs to be so obvious that no discussion between developers is possible.
To close, and I'm going to be blunt, if a developer can't write English, they need to learn. I ask for help whenever I need to, and I hope everyone feel they can, too.
"I can't write English" is not a good excuse.

My 5 satoshis here:
I like @dangershony suggestion for a policy change. I don't see a point of putting useless comments that increase code reading time and add 0 value, I would actually argue a lot of the times it is an unnecessary maintenance burden.
If we look at Microsoft code (we could consider it to be a benchmark) or code from other big enterprise companies, comments are important (ie class header comments, important business logic decisions) but NOT mandatory in some cases.
Currently, the issue is that I have already seen fair few developers complain about this policy which means it is a problem and maybe something that needs to be addressed. Every time we get a new developer joining Stratis we will see more and more discussion on this topic.
As the last point, I would like to point out that unit tests have far greater value than comments. It provides a live documentation of the code that can be executed and improve confidence in the code. Having good test coverage ensures code quality while having good comments doesn't mean the code is of high quality nor it gives me any confidence when adding a new change that this change is not going to break other parts of the code.

I want to stress again I am not about removing the rules just making then less strict, I am also in violation of some of the policies myself as a result.
For example @bokobza how strict our commenting rules are is this line in commit #1351
https://github.com/stratisproject/StratisBitcoinFullNode/pull/1351/files#diff-119e0a2d82ee52a5f2018a9b4655e222R61
It violates ADD-VALUE policy.

Violations also in this class which was reviewed by @Aprogiena
https://github.com/stratisproject/StratisBitcoinFullNode/blob/master/src/Stratis.Bitcoin/Base/BestChainSelector.cs#L73


Missing quotes in specifying args for $configArgs at install-vstsagent

Following piece of code (line 294 - 298 in install-vsts):
[string[]]$configArgs = @('--unattended', '--url', "$ServerUrl", '--auth', `             'pat', '--pool', "$Pool", '--agent', "$Name", '--runAsService')     if ( $Replace ) { $configArgs += '--replace' }     if ( $LogonCredential ) { $configArgs += '--windowsLogonAccount', $LogonCredential.UserName }     if ( $Work ) { $configArgs += '--work', $Work }
Does not include quotes in the string. For instance "$Pool" will only pass the $Pool parameter and not put it in (single) quotes for the eventual command.
So for instance when passing a Agent pool name like Pool 001 the command line args will be "--pool Pool 001" and not "--pool 'Pool 001'.
Becouse of this the script is not able to handle Agent pools that contain spaces.

Good find! PRs welcome! =)

As a workaround, I believe that since the pool is just a string forwarded through you could surround it in quotes before passing it in.

Yeah that workaround might work yea. I may actually look into updating some code on this DSC module. I'll take a look at contributing.

I actually ran into this issue recently with a password. The password had an "&" for $LogonCredential.Password and was being interpreted and not included as part of the string literal.
@jwittner I can add quotes to the variables and submit a PR.
I did a small test to understand what is occurring. In the example below, I quoted $cred.Password and placed it into the array and it's shown as the type System.Net.NetworkCredential.Password and not the string literal. Is that the expected behavior? Will this break functionality?

@ps-tb - You're seeing that output because you have to wrap your statement as $(<statement>) to access members if you want them to be interpolated into the string. So in your code, $cred is being turned into "System.Net.NetworkCredential" and then that's be joined with ".Password". To resolve this try, "$($cred.Password)".


“docker container top” fails with error regarding runc termination: "getting all container pids from cgroups caused: lstat : no such file or directory"

I've posted the same on the Docker Forums and not gotten an answer after a few days and, in addition to a thorough hunt on Google for similar reports, I also found nothing, so I'm pretty sure this is a novel report here. Forgive me if I overlooked something obvious to an expert, because I just got started with Docker.
Anyway, having been advised to do similar in the past, I'm going to replicate the full text here:
I have Docker set up, including rootless mode, on a CentOS 8 Digital Ocean droplet. I am very new to this subject matter and am following along with Docker in a Month of Lunches and am now at the point where the reader is instructed to type in:
docker container run --interactive --tty diamol/base

Then the reader is instructed to open up another terminal, which I did, and type in:
docker container top [container id]

The command spits out the following:
Error response from daemon: runc did not terminate successfully: container_linux.go:187: getting all container pids from cgroups caused: lstat : no such file or directory
: unknown

Because I am a Docker neophyte, my ability to assist anyone reading to diagnose the problem is limited beyond providing what is typically asked for; however, I think it’s worth noting that the same thing happened when I tried the alpine:latest image, meaning it’s not specific to the book image. It also seems worth pointing out that the same thing does not happen when I repeat the same procedure above but with sudo.
Now, for the rest, as stated, I am using CentOS 8 on Digital Ocean. I used the get.docker.com script and followed the instructions for rootless mode (with the minor and most likely unimportant deviation that I tailored the instructions to fish rather than bash; $DOCKER_HOST has still been exported properly).
Specifically, here is the content of /etc/redhat-release:
CentOS Linux release 8.4.2105

Here’s the output of uname -a:
Linux metalicus 4.18.0-305.7.1.el8_4.x86_64 #1 SMP Tue Jun 29 21:55:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

And last but not least here’s the output of docker version:
Client: Docker Engine - Community
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        f0df350
 Built:             Wed Jun  2 11:56:24 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       b0f5bc3
  Built:            Wed Jun  2 11:54:48 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.8
  GitCommit:        7eba5930496d9bbe375fdf71603e610ad737d2b2
 runc:
  Version:          1.0.0
  GitCommit:        v1.0.0-0-g84113ee
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

I’d be perfectly happy to attempt to supply whatever other details are needed to resolve the problem.
Now that I've wrapped all of that initial bug report up, hopefully the fact that it runs on a standardized IaaS platform will help square things away. The Droplet is still running so you will get whatever help from me you need. Again forgive me if I've just been a n00b but nothing I found helped.

@readyready15728 please open an issue at https://github.com/moby , this project is for the container registry, rather than the local docker tools.


Improve GitHub Actions for pull requests

See https://github.com/Senzing/community-roadmap/issues/71

Pull requests:

https://github.com/Senzing/docker-mysql-init/pull/19


The download link for Glioma dataset

The original dataset download link for Glioma dataset https://www.data.mendeley.com/datasets/vkt6p2xztv/2 seems to be failed. Could you kindly share the dataset?

Our Glioma dataset is a private one but not this public one. Please use other public datesets described in README.


I got the error Failed to Start the Game (Missing Executable).

.

I need way more information than this ... what gave that error, what steps did you take to get that error, what are you trying to do, and where is the error log

I was using it as usual in version 1.4.6, then I noticed that it was updated to version 1.4.7 and I updated it and then started playing other games. Then I wanted to download a new game and I encountered this error.It happens with all the newly downloaded games. Can you try it too?

Steam downloads tend to fail while Steam is running with GreenLuma, restart Steam without GL to download it properly or manually source the files yourself. Either way, not a problem with the manager.

This still has nothing to do with the manager.


Add 'curriculum' tab

Create curriculum tab to explain more about client professional experience

We can start getting the section prepared
Blocked by:

Client will send a list of conferences and masters attended

tab created in #2, now we need a meeting with mama to:

clarify which conferences
add detailed information
get feedback.


cargo-public-api: 0.12.4 -> 0.13.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/Enselic/cargo-public-api/releases.
meta.description for cargo-public-api is: "List and diff the public API of Rust library crates between releases and commits. Detect breaking API changes and semver violations"
meta.homepage for cargo-public-api is: "https://github.com/Enselic/cargo-public-api"
meta.changelog for cargo-public-api is: ""
Updates performed

Rust version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.13.0 with grep in /nix/store/zprn320qvlwawx5mlyzznqlqzp7c0gwg-cargo-public-api-0.13.0
found 0.13.0 in filename of file in /nix/store/zprn320qvlwawx5mlyzznqlqzp7c0gwg-cargo-public-api-0.13.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
cargo-public-api

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/zprn320qvlwawx5mlyzznqlqzp7c0gwg-cargo-public-api-0.13.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A cargo-public-api https://github.com/r-ryantm/nixpkgs/archive/0cf240704c57e5fadda627ad73adc2f315104b1d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/zprn320qvlwawx5mlyzznqlqzp7c0gwg-cargo-public-api-0.13.0
ls -la /nix/store/zprn320qvlwawx5mlyzznqlqzp7c0gwg-cargo-public-api-0.13.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cargo-public-api

Maintainer pings
cc @matthiasbeyer for testing.

Result of nixpkgs-review pr 186377 run on x86_64-darwin 1

1 package built:

cargo-public-api


404

i really hope i didn't accidentally mess with the original repo. somehow i'm lost on the instructions to re-clone this repositiory into my own and i feel like i SHOULD know how to do that but where is the origin remote and how do i replace it with the right repo???? i'm so sorry


Fix multi-parcel unmount resolving

The root object currently only allows a single unmountFinished promise at a time. Multiple parcels unmounting at the same time leads to most promises orphaned and not resolving, throwing console warnings.
This PR uses the parcel name to differentiate unmount promises.
Before:

After:

The core library, single-spa, handles unmounting multiple parcels at once without an issue, I think there is a larger problem with the structure for single-spa react and while this change works it also changes the API in a way that I'm initially uncomfortable with because it changes it only for react and increases the mental surface area for maintenance.

Does it change the API? Seemed like unmountFinished was wholly internal, was trying to copy what was done w/ updateResolves

Ultimate issue: componentWillUnmount calls this.props.unmountFinished, which is defined here
single-spa's unmount call is here from single-spa
Current path, single parcel:

single-spa unmount -> opts.unmountFinished is set to the current unmounting parcel's resolve -> when componentWillUnmount is finally called, that opts.unmountFinished is called so the promise is resolved "in a reasonable time"

Current path, parcels > 1:

single-spa calls unmount on parcel 1
opts.unmountFinished is set to parcel 1's resolve
single-spa calls unmount on parcel 2
opts.unmountFinished is set to parcel 1's resolve
componentWillUnmount is called for parcel 1, which calls opts.unmountFinished - which is parcel 2's resolve
componentWillUnmount is called for parcel 2, which calls opts.unmountFinished - which is parcel 2's resolve, which was already resolved
After some time, single-spa throws warnings/errors that parcel 1 was never unmounted

We need componentWillUnmount to be guaranteed to resolve that parcel's unmount promise. Open to other solutions, shooting blind here but our error logs are getting bombarded and we want to make sure we aren't missing actual unmount issues.

The part of the API that appears to be changing is name. Naming a parcel isn't required in single-spa. This change requires using the name as a key which shifts name to a required field.
I could be missing where it's already required though, if it's already required please let me know.

Ah, it does seem name has a default, we don't set that either. All of ours end up as parcel-${id}.
Looks like the fallback happens here and the parcel name gets set here
Adjusting the fallback on that line locally does change all of the parcel names for me - e.g. I triggered the errors from the first gif and now the names all say my-auth-gen-parcel-name-{id} in the error URLs

Good clarification. Will review again with that insight. Thank you

Released in https://github.com/single-spa/single-spa-react/releases/tag/v5.1.0


Small fixes

Remove double prefixes with the new xAdmin pr, and use xAdmin.Core.Msg instead of xWarn.msg because it looks better. This also stops it from erroring out when using it on sqlite (specifically when warning someone).
Might require https://github.com/TheXYZNetwork/xAdmin/pull/34

Should all be fixed in the latest commit :)


Add simpleswap to credit

We want to have option for those who already have crypto to jump in!
Ramp.network doesn't support Vietnamese, welp, 169+ countries 😅
Changenow.io broken on registration
https://simpleswap.io/?ref=6cc6e0c538ad

https://api.simpleswap.io/
but their api is poor, looking forward

#6722
#6317


Fix crd-install job

Towards https://github.com/giantswarm/giantswarm/issues/23960

"crds" folder is used by helm but we want to manage CRDs with our crd-install job. The folder name is wrong now.

Testing

[x] Installation
[x] Upgrade

Checklist

[x] Update changelog in CHANGELOG.md.
[x] Make sure values.yaml and values.schema.json are valid.

node.cloudprovider.kubernetes.io/uninitialized taint blocks  crd-install job. We don't need cloud-provider for the crd-install job so this PR adds toleration for that taint too.

I removed this part. This doesn't give us so much benefit. This app depends on cert-manager at the end. As I mentioned here, I plan to delegate default VolumeSnapshotClass creation to this app itself. Therefore, nobody will depend on this app's CRDs and it will be not urgent the create CRDs.


Missing error handling for empty repo list

If the user does not have access to any repos, instead of telling the user so, the GUI at $DRONE/account just blocks at "Loading...".
the Javascript Console shows why:
Uncaught TypeError: Cannot read property 'sort' of null
    at app.js:101
    at d.callback (app.js:1462)
    at d.<anonymous> (app.js:1437)
    at d.r.emit (app.js:3169)
    at XMLHttpRequest.n.onreadystatechange (app.js:1468)

Reason for this seems to be that $DRONE/api/user/repos?all=true returns the string null which seems to be parsed as json.
Backend: Bitbucket Server

this was fixed in version 0.8 of drone.


signatureType in QRLDescriptor is not zero but 1

FYI
so the address i got starts by 'Q110500' , and blockchain explorer seems not support this

Hi.
github.com/theQRL/qrllib contains the necessary code for existing QRL mainnet integration in Golang.
This is a work-in-progress library for the upcoming Zond node. It is anticipated to change and break any dependencies, so caution is advised.
We've reverted the XMSS descriptor index in this library, which should help legacy address creation using this library if this is helpful for what you need.
Please don't hesitate to reach out if you have a particular use case in mind, and we can try and point you in the right direction.


Shorten ssh control path

My previous commit to "fix" the ssh control path by including the remote
user and port also made it more likely that the resulting path would
exceed the maximum allowed length of the path to a unix domain socket.
I've replaced the use of '%r@%h:%p' in the ssh control path with '%C',
which is substituted by a hash of the concatenation of '%l%h%p%r', so it
still includes the remote user, host and port, but is also a predictable
length and less likely to exceed the maximum allowed length of a path to
a unix domain socket (104 "chars" on OSX, 108 I think on Linux).
The change was made after I ran into a "too long for Unix domain socket"
error myself when cooking a node, and has been tested in production.

Sorry, I brokes the ssh control path with my earlier commit to fix the ssh control path :-(
I think I've fixed it properly now :-)

Thanks! Do you happen to know how well supported that option is on Linux? I know OS X just got it recently so I'm a little hesitant to support it.
Tbh, I think I may release a new 0.5 that defaults to off. It's causing more bug reports than pretty much any other feature to date.

Ah, good point, I didn't think to check that the option was widely supported, and it's not, yet...
Support for %C in the control path was introduced in openssh 6.7 (http://www.openssh.com/txt/release-6.7), but the latest openssh for CentOS 7.2 is version 6.6.1. Supported LTS versions of Ubuntu are also stuck on earlier openssh versions.
Could just take a string of the user, host and port and hash it in ruby. This seems quite a fudge, but also seems necessary if the feature is to support older ssh clients.
TBH, I think you're probably right to consider changing the default for this option to off. It's probably more important that a client tool like knife-solo just works rather than works fast, and experienced sysadmins will know how to enable ssh multiplexing in their own local ssh config anyway. If the option was off by default, it could still use %C in the control path when enabled, which would mean it would also mostly just work once enabled on a typical developer workstation (highly unlikely to be running something like RHEL or Ubuntu LTS).
Thank you btw for knife-solo, it makes my life easier :-)

Yeah, that makes sense. That made me consider that a whole other side to this is that you can probably get similar speedup by configuring ssh completely externally of knife-solo.
Thanks for using it and glad it's helping!

Rebased on master and force pushed

Coverage remained the same at 89.661% when pulling 5c310582c10ac21ba92c1649ea68d461d3025b31 on thickpaddy:shorten_ssh_control_path into 3b3fa546f24fcee291ef73315e0e9729894f6500 on matschaffer:master.


Breaking change, termion dependency for ratatui

0.9.3, change introduced in c3ef34e48d52a804f29555adc8508c94f0521433, enables termion in ratatui when using ratatui-support feature. This is breaking change on systems which are not supported by termion (i.e., mainly Windows). This could be avoided by allowing users to just use ratatui feature, but this crate doesn't compile properly with it since it uses #[cfg(not(feature = "ratatui-support"))].
I think either all cfg expressions should be changed to #[cfg(not(feature = "ratatui"))] or even better #[cfg(feature = "ratatui")], or the latest change in Cargo.toml should be reverted/reconsidered.

Thanks for reporting. Hopefully v0.9.4 fixes this issue and captures similar errors by means of github-actions.

Great, it's working now. You might want to consider yanking the previous version to prevent other users from having similar problems.

I do not think, it is necessary to yank the previous version. The issue has not impacted the actual module. Only the examples/demo was broken on windows.


Ignore multiple schemaLocation

XML I'm trying to validate has multiple schemaLocation entries:
xsi:schemaLocation="http://example.com/schemas/validation-rules.xsd validation-rules.xsd"
I also have catalog.xml set up to rewrite public schemas to local FS:
<rewriteURI uriStartString="http://example.com/schemas/" rewritePrefix="file:///C:/SW/schemas/" />
But this doesn't work as expected. It works only if I remove second part (validation-rules.xsd) from schemaLocation value. Is there any way to ignore this part?

I don't think Exalt correctly accounts for that scenario at the moment because I didn't know you can refer to more than one schema location. I'll look into it.

Actually, I remembered wrong: it looks like Exalt always uses the last entry in the schemaLocation or noNamespaceSchemaLocation attribute.
I don't know that that's the smartest way for Exalt to work, but it means that you could try adding something like this into your XML catalog:
<system systemId="validation-rules.xsd" uri="file:///C:/SW/schemas/validation-rules.xsd"/>

Remember to restart Sublime Text after making that change for the changes to take effect.
Please let me know whether that solves the issue for you.

In fact (refreshing my memory here, been a while since I've needed to work with this stuff…), it seems that xsi:schemaLocation="http://example.com/schemas/validation-rules.xsd validation-rules.xsd" is basically a hint that says:

The XML schema for XML nodes in the http://example.com/schemas/validation-rules.xsd namespace is located at validation-rules.xsd.

So in that sense, the current behavior seems more or less correct and adding a <system> entry like the one I described above is probably your best bet.

The solution you described above is working. But the problem is that we have a lot of different XSD schemas with the same name - we distinguish them by domain name, not by filename.

Exalt's implementation of schemaLocation is somewhat naïve and probably incorrect, but I'm having trouble finding definitive information on how it should work. I honestly don't have the time (or the inclination) to try to glean the information from the W3C specification, either.
A simple way to fix this would be to use the namespace (the bit preceding the space in the xsi:schemaLocation attribute) instead of the URI hint (the bit following the space).
However, that might break backwards compatibility for some users, which I don't want to do.
I'll try to see if I can modify the code to account for both options.

This should be fixed in v0.3.7.
I think you'll need to add something like this in your XML catalog:
<system systemId="http://example.com/schemas/validation-rules.xsd" uri="file:///C:/SW/schemas/validation-rules.xsd"/>

It'll take a while for the new version to land in Package Control, but once it does, could you give it a go and let me know whether it fixes the issue for you?

Thank you! I will try this approach.

It works! Even without changing my catalog.xml file. Thank you again!

Glad to hear it!


Document how to pass files

They can be file objects or URLs.

I'm having trouble with this, documented here:
https://stackoverflow.com/questions/73927137/file-not-found-by-python-openai-whisper

Does this support windows paths? My api request is successful but when I check the replicate dashboard, my init_image isn't used. Using a web URL works just fine.
I'll probably switch to using a linux distro anyway, but thought I would ask

OK, I am trying to pass a werkzeug FileStorage object to the whisper api. I have tried passing:

IO[bytes] object you get with FileStorage.stream
bytes object you get with IO.read.

In both cases, I get JSON serializable error.


Unable to resolve module ReactDefaultPerf from

Unable to resolve module ReactDefaultPerf from /Users/stereodenis/work/evrone/e2_wtcc/node_modules/react-native/Libraries/react-native/react-native.js: Unable to find this module in its module map or any of the node_modules directories under /Users/node_modules/ReactDefaultPerf and its parent directories

This might be related to https://github.com/facebook/react-native/issues/4968
To resolve try the following:
  1. Clear watchman watches: `watchman watch-del-all`.
  2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.
  3. Reset packager cache: `rm -fr $TMPDIR/react-*` or `npm start -- --reset-cache`.

react-native 0.26.1

I had the same problem yesterday.
Make sure you're using "react": "15.0.2".

@facebook-github-bot answered

Closing this issue as @satya164 says the question asked has been answered. Please help us by asking questions on StackOverflow. StackOverflow is amazing for Q&A: it has a reputation system, voting, the ability to mark a question as answered. Because of the reputation system it is likely the community will see and answer your question there. This also helps us use the GitHub bug tracker for bugs only.

Make sure it's 15.0.2 and not ^15.0.2

thanks @mmazzarolo @holyxiaoxin

If it can help, I got this error when I forgot to wrap custom components into a  one :
throw the error
`...
import App from './app/app.js';
class client extends Component {
render() {
return (

);
}
}
AppRegistry.registerComponent('client', () => client);`
works
`...
import App from './app/app.js';
class client extends Component {
render() {
return (

);
}
}
AppRegistry.registerComponent('client', () => client);`

I was getting this error and it was a silly mistake. I'm sure most of you don't do this:
I was importing the file like this : import file from 'file';
But actual way was : import file from './file';
That works.
P.S. I also run the command "yarn" before doing above change.


River forks

For forked rivers, TF currently checks proximity of the starting points of each river requiring them to be a minimum distance apart, but also within a certain distance. This is to help ensure rivers fork at a reasonably sensible angle (as two points relatively close to each other are more likely to intersect at an accute angle further away), but the effects of domain warping can cause the connection angle to creep up towards 90 degrees or more.
This could potentially be improved by instead checking the angle at the intersection and requiring it to be within a certain range.

Added


Remove secret leakage when pushing an artifact

This fix https://github.com/cf-platform-eng/concourse-pypi-resource/issues/14
As the username, password or url can be passed from environment variable, we don't write them in the twine command to hide them in case of failure. Thus we remove the secret leakage.

Manually merged in d27a74faa4aa565cbe1468bfeddb10589bd4d32b because of conflict. Will cut a new release.


Fix shutdown error if token is invalid

self.telegram_updater was not defined in self.initialize when the telegram module raised InvalidToken making the shutdown to fail

Thank you @zeehio and sorry for the long wait. Merging


Fix install requirements in core functionality test scripts

Description
On -TestCategory "Functional" -TestArea "CORE" the following tests have failed due to unmet prerequisites:
LSVMBUS
INITRD-MODULES-CHECK
CHECK-NUMA
CHECK-NUMA-MAXIMUM
TIMESYNC-BASIC
This this fixes the installation of their prerequisites and cleans up the code by using the Testscript\Linux\utils.sh library function install_package () which already differentiates between distros.
Issue #

PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which has an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[ ] If applicable, the PR references the bug/issue that it fixes in the description.
[x] Verify PR checker results and fix any coding errors.
[ ] Included LISAv2 sample test results to demonstrate code functionality.

Quality of Code and Contribution Guidelines

[x] I have read the contribution guidelines.

@stefanlupsa please leave test results once you have them

Ubuntu 18.04
ID TestCaseName                                                                TestResult TestDuration(in minutes)
1 LSVMBUS                                                                           PASS                 1.78
2 INITRD-MODULES-CHECK                                                              PASS                 5.66
3 CHECK-NUMA                                                                        PASS                  3.1
4 CHECK-NUMA-MAXIMUM                                                                PASS                 2.95
5 TIMESYNC-BASIC                                                                    FAIL                 2.57

timesync fails because on my machine the delta is higher:
03-05-2019 16:12:14 : [INFO ] Time difference = 1.8835497
03-05-2019 16:12:14 : [ERROR] Error: Time is out of sync!

Test summary

CentOS-7.6
Ubuntu-18.10
Ubuntu-18.10 with custom kernel 4.20.7 installed

The fail for TIMESYNC-BASIC is coming from the fact that i'm running on my laptop which where the time delta in the test is greater than 1 second (still <2) it's included in this test case as from the previous runs it had failed due to install prerequisites in the vm
[LISAv2 Test Results Summary]
Test Run On           : 03/06/2019 11:40:59
VHD Under Test        : C:\Users\Public\Documents\Hyper-V\Virtual hard disks\CentOS-7.6.vhdx
Total Test Cases      : 5 (4 Passed, 1 Failed, 0 Aborted, 0 Skipped)
Total Time (dd:hh:mm) : 0:0:28
ID TestCaseName                                                                TestResult TestDuration(in minutes)

1 LSVMBUS                                                                           PASS                17.82
2 INITRD-MODULES-CHECK                                                              PASS                 0.74
3 CHECK-NUMA                                                                        PASS                 2.32
4 CHECK-NUMA-MAXIMUM                                                                PASS                 2.15
5 TIMESYNC-BASIC                                                                    FAIL                 2.27

[LISAv2 Test Results Summary]
Test Run On           : 03/06/2019 11:41:34
VHD Under Test        : C:\VM\HDDs\ubuntu-1810.vhdx
Total Test Cases      : 5 (4 Passed, 1 Failed, 0 Aborted, 0 Skipped)
Total Time (dd:hh:mm) : 0:0:17
ID TestCaseName                                                                TestResult TestDuration(in minutes)

1 LSVMBUS                                                                           PASS                 1.38
2 INITRD-MODULES-CHECK                                                              PASS                 2.91
3 CHECK-NUMA                                                                        PASS                 3.25
4 CHECK-NUMA-MAXIMUM                                                                PASS                 3.12
5 TIMESYNC-BASIC                                                                    FAIL                 2.32

ubuntu with custom kernel 4.20.7
[LISAv2 Test Results Summary]
Test Run On           : 03/06/2019 12:00:20
VHD Under Test        : C:\VM\HDDs\ubuntu-1810.vhdx
Total Test Cases      : 5 (4 Passed, 1 Failed, 0 Aborted, 0 Skipped)
Total Time (dd:hh:mm) : 0:0:24
ID TestCaseName                                                                TestResult TestDuration(in minutes)

1 LSVMBUS                                                                           PASS                 1.56
2 INITRD-MODULES-CHECK                                                              PASS                 2.95
3 CHECK-NUMA                                                                        PASS                 2.79
4 CHECK-NUMA-MAXIMUM                                                                PASS                 2.75
5 TIMESYNC-BASIC                                                                    FAIL                 2.56


Autoreload on code changes doesn't update built docs

Extracted from my comment on #31: When I save, it triggers the rebuild as expected, but the built content is not actually changed.
Command:
sphinx-autobuild -E -a -z /Users/rouge8/rj/fathom-assets/fathom_assets -n -b html -d /Users/rouge8/rj/fathom-assets/.tox/docs-dev/tmp/doctrees . _build/html

Output:
+--------- ../fathom_assets/query/managers.py changed ---------------------------
| Running Sphinx v1.3.1
| loading intersphinx inventory from https://docs.python.org/2.7/objects.inv...
| building [mo]: all of 0 po files
| building [html]: all source files
| updating environment: 3 added, 0 changed, 0 removed
| reading sources... [ 33%] api
| reading sources... [ 66%] index
| reading sources... [100%] queries
|
| looking for now-outdated files... none found
| pickling environment... done
| checking consistency... done
| preparing documents... done
| writing output... [ 33%] api
| writing output... [ 66%] index
| writing output... [100%] queries
|
| generating indices... genindex py-modindex
| highlighting module code... [ 25%] fathom_assets.query.managers
| highlighting module code... [ 50%] fathom_assets.query.terms
| highlighting module code... [ 75%] fathom_assets.query.query
| highlighting module code... [100%] fathom_assets.query.nodes
|
| writing additional pages... search
| copying static files... done
| copying extra files... done
| dumping search index in English (code: en) ... done
| dumping object inventory... done
| build succeeded.
+--------------------------------------------------------------------------------

+--------- ../fathom_assets/query/managers.py changed ---------------------------
| Running Sphinx v1.3.1
| loading intersphinx inventory from https://docs.python.org/2.7/objects.inv...
| building [mo]: all of 0 po files
| building [html]: all source files
| updating environment: 3 added, 0 changed, 0 removed
| reading sources... [ 33%] api
| reading sources... [ 66%] index
| reading sources... [100%] queries
|
| looking for now-outdated files... none found
| pickling environment... done
| checking consistency... done
| preparing documents... done
| writing output... [ 33%] api
| writing output... [ 66%] index
| writing output... [100%] queries
|
| generating indices... genindex py-modindex
| highlighting module code... [ 25%] fathom_assets.query.managers
| highlighting module code... [ 50%] fathom_assets.query.terms
| highlighting module code... [ 75%] fathom_assets.query.query
| highlighting module code... [100%] fathom_assets.query.nodes
|
| writing additional pages... search
| copying static files... done
| copying extra files... done
| dumping search index in English (code: en) ... done
| dumping object inventory... done
| build succeeded.
+--------------------------------------------------------------------------------

[I 150904 01:55:34 handlers:91] Reload 1 waiters: None
[I 150904 01:55:34 handlers:131] Browser Connected: http://<IP_ADDRESS>:8000/api.html#module-fathom_assets.query.managers

Its not just code affected by this but static resources like css too.

I've got a similar issue with sphinx.ext.todo. The .. todolist:: doesn't get updated if the rst file that contains it is not modified and you only add a .. todo:: in another file.
I suppose sphinx-autobuild is building only files that have changed, it can however update references from toctree, so it would be great if it could also work for todo.
PS: Thanks for the great tool by the way.

I have a similar issue with .jinja files. autobuild detects the update to the Jinja file but has no knowledge to drive a rebuild of the .rst file(s) that uses it, so the actual document doesn't update. I have to just resave the .rst file to update. That works for one .rst file but not if the template is used in multiple different .rst files.

This seems to be caused by https://github.com/sphinx-doc/sphinx/issues/2090 -- Sphinx itself isn't handling such changes correctly in incremental builds.
Looks like fixing upstream might be easier than working around this behavior locally. I'll look into this, hopefully soon-ish.

Does anyone have a minimal reproducer for this issue?

This behaviour is now documented under https://github.com/GaretJax/sphinx-autobuild#relevant-sphinx-bugs. I'm not going to be able to contribute the patch to fix this upstream, but for the time being, I think this documentation-only fix is sufficient.
If someone has any suggestions for how we can workaround this issue more transparently, while not being a big maintainance burden, I'm all ears. :)

Going to go ahead and close this now as a wontfix, since I genuinely don't think that there's anything that can be done at the level of this tool to fix this issue.
If someone does think there is something we can do, please feel free to drop a comment here. It's not like closed issues can't be reopened. :)


Remove prefixed $ from shell command examples

As the prefixed $ makes it impossible to copy and paste example shell commands, I was thinking it might be beneficial to remove them from the README. What do y'all think?

I don't know because while it makes copying more easy with triple-click selection, it also makes it less clear that these are commands to type at the shell prompt… Also it's the default from bundler generated gems for instance, so I don't think people are too confused:
https://github.com/rubygems/rubygems/blob/085094b60caa7a9ac6771a7fc6b452fc79911bfb/bundler/lib/bundler/templates/newgem/README.md.tt#L11
https://github.com/rails/rails/#getting-started

I suppose it is a bit less clear they are shell commands but I feel it's still somewhat clear given the code block formatting and usage of terms like bin/rails. As for Bundler's default, a bit brazen, but I feel Bundler should update their docs/generation as well then. Ever since GitHub added this copy button, having breaking $ prefixed has become a bit of an issue.

re: triple click, this is the current experience. Can't do much with $ gem install rails. 🤷♂

I don't think this change makes things more clear. Perhaps 20% less clear but 100% more convenient. 😅

While we're at it, can we change all the bash into sh-session?

Sure thing. Done!


Add eurocrops entry

I would change the description to:
EuroCrops is a dataset collection combining all publicly available self-declared crop reporting datasets from countries of the European Union.
The project is funded by the German Space Agency at DLR on behalf of the Federal Ministry for Economic Affairs and Climate Action (BMWK).

This work is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).

An algorithm for retrieval of [Eurocrops](https://github.com/maja601/EuroCrops) Sentinel-2 signals based on an area of interest.

The algorithm allows the users to specify:
 * an area-of-interest (AoI);
 * a time interval for which they want to retrieve Sentinel-2 data;
 * an evalscript specifying which Sentinel-2 bands or derived indices, e.g. NDVI, to download.

Provided the above parameters, the algorithm computes Sentinel-2 time-series for the specified bands/indices for each polygon in the Eurocrops dataset that intersects the AoI. The computed signals are aggregated spatially over the polygon, and temporally over one day.

Such signals constitute the basis for many applications, in particular in monitoring agricultural activity. Please refer to this [blog-post series](https://medium.com/sentinel-hub/area-monitoring-concept-effc2c262583) for examples on how these signals can be used.

The tool relies on AWS S3 bucket to store the results, thus read/write access to an AWS S3 bucket is required.

The process consists of the following steps:

- Retrieve Eurocrops parcels for a chosen AoI. This is done with the help of [GeoDB](https://github.com/dcs4cop/xcube-geodb).
- The parcels are saved to the specified folder on the user's AWS S3 bucket.
- Retrieve signals for the parcels in the AoI for the specified time interval using Sentinel Hub [Batch Statistical API](https://docs.sentinel-hub.com/api/latest/api/batch-statistical/).
- The signals are downloaded to the  user's AWS S3 bucket in the form of `.json` files.

Looks okay.


doc: auto_host_rewrite works with STATIC clusters if hostname is provided

…ATIC clusters, provided that the hostname attribute of teh endpoint is configured.

Commit Message: Update documentation to indicate that auto_host_rewrite works with STATIC clusters, provided that the hostname attribute of the endpoint is configured.
Additional Description: Current documentation indicates that the auto_host_rewrite feature does not work with STATIC clusters. However, if the hostname attribute of the endpoints is configured, it works and sets the authority to the string configured at the hostname of the endpoint.
Relates to issues https://github.com/envoyproxy/envoy/issues/23131
Risk Level: Low
Testing: Manual
Docs Changes: Update documentation to indicate that auto_host_rewrite works with STATIC clusters, provided that the hostname attribute of the endpoint is configured.
Release Notes: N/A
Platform Specific Features: N/A
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

Thanks for the review. I made the suggested changes. Please review again.

Can you fix CI (format)? Otherwise LGTM.

Sorry I don't understand, it is the first time I am contributing to envoy.
What do you mean by "fix the CI(format)"?  Is it something in the commit, or somewhere else?

Read the CI error https://dev.azure.com/cncf/envoy/_build/results?buildId=117568&view=logs&jobId=f0537f27-2e39-530f-1fd2-a5ecd0924017&j=f0537f27-2e39-530f-1fd2-a5ecd0924017&t=388a504b-3b8d-52aa-33e0-1e12bca05378
You'll need to run proto_format.sh and commit again. It seems to be caused by a trailing space.


Can't start new worlds

Environment
OS Version: Ubuntu 24.04
Binary install: Gazebo Harmonic LTS
Details
Im new to gazebo and still trying to understand how it works
Just installed gazebo harmonic on a fresh install of Ubuntu 24.04, also have ros2 jazzy if it matter
However i can't do gz sim shapes.sdf
Get this error:
The 'gz' command provides a command line interface to the Gazebo Tools.

 gz <command> [options]

List of available commands:

  help:          Print this help text.
  log:           Record or playback topics.
  msg:           Print information about messages.
  param:         List, get or set parameters.
  service:       Print information about services.
  topic:         Print information about topics.

Options:

  --force-version <VERSION>  Use a specific library version.
  --versions                 Show the available versions.
  --commands                 Show the available commands.
Use 'gz help <command>' to print help for a command.

Description
Expected behavior: Shouldn't a world open?
Actual behavior: Nothing happens
Steps to reproduce

Install Gazebo Harmonic TLS from source
Try to do gz sim

Help
If you need more information let me know
Thanks for your help

Updates
Found the actual problem, I have ros2 jammy when i installed: sudo apt install ros-jazzy-ros-gz-bridge lost access to gz sim and some others
Previous output of gz:
The 'gz' command provides a command line interface to the Gazebo Tools.

  gz <command> [options]

List of available commands:

  help:          Print this help text.
  fuel:          Manage simulation resources.
  gui:           Launch graphical interfaces.
  launch:        Run and manage executables and plugins.
  log:           Record or playback topics.
  model:         Print information about models.
  msg:           Print information about messages.
  param:         List, get or set parameters.
  plugin:        Print information about plugins.
  sdf:           Utilities for SDF files.
  service:       Print information about services.
  sim:           Run and manage the Gazebo Simulator.
  topic:         Print information about topics.

Options:

  --force-version <VERSION>  Use a specific library version.
  --versions                 Show the available versions.
  --commands                 Show the available commands.
Use 'gz help <command>' to print help for a command.

Current output of gz:
The 'gz' command provides a command line interface to the Gazebo Tools.

  gz <command> [options]

List of available commands:

  help:          Print this help text.
  log:           Record or playback topics.
  msg:           Print information about messages.
  param:         List, get or set parameters.
  service:       Print information about services.
  topic:         Print information about topics.

Options:

  --force-version <VERSION>  Use a specific library version.
  --versions                 Show the available versions.
  --commands                 Show the available commands.
Use 'gz help <command>' to print help for a command.

Any ideas?

Tried to uninstall but didn't solve and i need that bridge so wouldn't be a solution anyway

Managed to fix this
All I had to do was: ros-jazzy-gz-sim-vendor as mencioned here: https://community.gazebosim.org/t/gazebo-harmonic-packages-available-on-ubuntu-noble/2772/8


[Bug]: arithmetic addition fails on select widget's selectedOptionValue

Is there an existing issue for this?

[X] I have searched the existing issues

Description
I have four select widgets, like so:

Each of these select widgets has a static specification of values 1 to 10, as follows:

I want to display the text widget "Score" to contain the sum of selectedOptionValues of all the four widgets.
When I use the expression Score: {{Confidence.selectedOptionValue + Impact.selectedOptionValue + Confidence.selectedOptionValue + Effort.selectedOptionValue}}, I see this:
https://user-images.githubusercontent.com/94514895/161585045-4d490e54-0acb-4c9e-9f3a-c5a0ed9e7d02.mov
OK, so I think I need to typecast the individual selectedOptionValues, so I changed the expression to Score: {{parseInt(Confidence.selectedOptionValue) + parseInt(Impact.selectedOptionValue) + parseInt(Confidence.selectedOptionValue) + parseInt(Effort.selectedOptionValue)}}
Still, it doesn't work.
Steps To Reproduce
explained above
Public Sample App
https://app.appsmith.com/arithmetic-sum/page1-624b17db51a8863d6c400cc7/edit
Version
Cloud

wrong formula closing issue


How can I use the trained result to predict a single sentence?

Is there such a predict_single.py provided then? I'm not so familiar with BERT, ^_^

Is there such a predict_single.py provided then? I'm not so familiar with BERT, ^_^

Not yet. Maybe I will add it  when I am totally free. For now you may use the batch prediction just set batch_size=1.

OK, thank you
Ray<EMAIL_ADDRESS>于2019年7月16日周二 下午7:11写道：

Is there such a predict_single.py provided then? I'm not so familiar with
BERT, ^_^
Not yet. Maybe I will add it when I am totally free. For now you may use
the batch prediction just set batch_size=1.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jiangpinglei/BERT_ChineseWordSegment/issues/5?email_source=notifications&email_token=AA52C3WEBF4MLW76A4I5SRLP7WUEXA5CNFSM4H4JN2DKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2AQOLA#issuecomment-511772460,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA52C3XCIJGQDXDTJ4JQQN3P7WUEXANCNFSM4H4JN2DA
.


[CLOSED] Add Personality Insights

 Issue by Wilson-Ding1
Thursday Sep 28, 2017 at 04:13 GMT
Originally opened as https://github.ibm.com/IBM-Swift/swift-watson-sdk/issues/26

 Issue by vherrin
Friday Jul 15, 2016 at 13:25 GMT
Originally opened as https://github.com/IBM-Swift/swift-watson-sdk/issues/26

[x] Implement service
[x] Add unit tests
[x] Update documentation
[x] Update travis to reflect new service

 Comment by Wilson-Ding1
Thursday Sep 28, 2017 at 04:13 GMT

 Comment by vherrin
Tuesday Jul 26, 2016 at 15:42 GMT

Finished tasks for this story


Documentation: Add "Edit on Github" button to the top of our documentation pages

Other readthedocs repos have an "Edit on Github" button on the top of the page so you don't have to track down the page to make edits.  This would speed improvements to the documentation.
Example
http://docs.readthedocs.io/en/latest/localization.html

We have the Edit on GitHub button now.


Allow purging queued timeout messages for a specific process instance from queue.Queue.

This probably needs to happen after persisting, but before releasing the cache lock.  At the moment the cache lock is released via an observer, which is the same mechanism used to notify the queue, and the cache lock is added to the observers first so it would always be released first.
We could solve this by replacing UnitOfWork.Observe() with Defer() which would guarantee "unwinding" semantics similar to the defer keyword.

This probably needs to happen after persisting, but before releasing the cache lock.

The reason for this is that if we release the cache lock on the instance before removing the pending timeout messages, there's a chance that a process with the same ID could be recreated (this is allowed under Dogma, as it would be with any CRUD database), and schedule new timeouts, that would then be erroneously deleted along with the timeouts from the process's previous "lifetime".


WGSL: Intrinsics: atomics

3 functions

This task is related to functions listed in the WGSL spec document,
https://www.w3.org/TR/WGSL/#atomic-builtin-functions

Atomic operations for the global memory variables can be implemented with a workaround that aliases the memory address.
struct VertexOutput {
    @builtin(position) position: vec4<f32>,
};

@group(0) @binding(0)
var<storage> aa  : array<i32,12>;

@group(0) @binding(0)
var<storage, read_write> aa2  : array<atomic<i32>,12>;

@vertex
fn vertex() -> VertexOutput {

    atomicAdd(&(aa2[1]),1);
    return VertexOutput(vec4<f32>(1.0));
}

However, the variables in workgroup scope wouldn't be supported as a known limitation, because there is no way for us to translate it from Slang to WGSL due to the strict limitations on WGSL side.

My thinking is that 1) for global memory atomics originating in RWByteAddressBuffer or RWStructuredBuffer<T>, we should create an aliased resource that is RWStructuredBuffer<Atomic<i32/u32>> but at the same group and binding as the original buffer.
This means that in order to represent such a buffer, you need to add IRAtomicType to our IR. (edited)
Then we derive the offset into the atomic array from the index and offset into the original buffer, and write into that atomic element.
This means that the ByteAddressBuffer::InterlockedXXX() or the global InterlockedXXX() function should be calling __wgslAtomicXXX() function for wgsl.
And the __wgslAtomicXXX function should map to kIROp_WGSLAtomicOperation(opName, dest, operands...) slang IR inst.
then we have a pass that identifies all kIROp_WGSLAtomicOperation insts, look at the dest operand, follow any access chain operations on the dest all the way until we see RWStructuredBufferGetElementPtr to know which buffer the address is coming from (byteaddress buffers should be lowered to structured buffers at this point so we don't need to handle them separately).
then we create an aliased buffer for that buffer.
then we compute the offset from the accesschain operations.
and then we modify the WGSLAtomicOperation inst to modify into the corresponding location in the aliased atomic buffer instead.
along the way you will need to use getStd430Offset/getStd430SizeAndAlignment functions to figure out the offset for a struct field.
this should work for global memory atomics. For groupshared atomics, the current decision is to only support atomics on a int/int[]/int[]...[]
If we see kIROp_AtomicOperation on a int or int array in groupshared memory, we convert the array into atomic<i32> or atomic<i32> array.
If dest is not originating from such a source, then we should issue a code-gen time error saying we can't support that general case.
the question then is what if the user passes the array as argument to another function that expects an ordinary array.
there isn't an easy way around other than just make a copy of the callee function and modify the array type into an atomic array there too. There is also the opposite question that is if a callee function with a groupshared array parameter is using atomics on the array, the callee should be converted into taking a atomic array parameter, and all its callsites must be modified to provide that atomic array. if the array argument at callsites can't be modified, it would be an error. This process will be recursive to handle nested calls.
if the entire array is being stored into another array of ordinary ints, we need to make sure that is handled properly as well.
so that's my thinking and I think this should give us decent coverage on atomics.
I suggest we work on global memory atomics first, and worry about groupshared atomics later. Maybe we decide all this automatic rewrites on groupshared arrays is too messy to worth it and we given in and introduce the atomic<T> type in our standard library and deal with all the type system consequences there.

Update: after discussion with @tangent-vector , the latest decision is to introduce Atomic<t> type, implement it for all backends and for both global and groupshared memory, and start to advertise this as the recommended way to do atomics in Slang. This is the only way to reliably support atomics in all platforms without relying on UB, and to allow separate compilation of modules.