Add streams

Available commands:

XADD
XDEL
XINFO STREAM
XLEN
XRANGE
XREAD
XREVRANGE
XTRIM

Design notes
Link to the Redis data type description: https://redis.io/docs/manual/data-types/streams/
A stream is a sequence of entries.
Each entry has a unique ID in the form "1-2" where two 64-bit numbers are divided by a hyphen.
By default, the first number is set to a millisecond timestamp, and the second one is a so-called sequence number - for cases when more than one entry was added at the same millisecond.
The value of an entry is a set of key-value pairs.
In case of the command:
XADD s1 1-0 key1 val1 key2 val2
the ID is 1-0 and the value is key1 val1 key2 val2.
In RocksDB entries are represented as key-value pairs where the key is formed as:
key | version | entry-ID-milliseconds-value | entry-ID-sequence-number-value
and the value is encoded as:
key1-length(fixed-32) | key1 | val1-length(fixed-32) | val1 | key2-length(fixed-32) | key2 | val2-length(fixed-32) | val2.
Thanks to the structure of a key, all entries in a stream are sorted in chronological order.
As for value decoding: this is the first idea that came to my mind and maybe it's not very efficient because has an overhead (4 bytes on every argument).
Why did I introduce such a weird encoding scheme? Because if you are reading entries, Redis responds not with a single string:
1) 1) "s1"
   2) 1) 1) "1-0"
         2) 1) "key1"
            2) "val1"
            3) "key2"
            4) "val2"

Perhaps, command args can be joined with a ' '(space) into a single string and this string should be saved in RocksDB? After reading, it will be split while constructing the reponse. With this encoding scheme, I was thinking about the possible spaces inside arguments and how to deal with them?
Differences from Redis

XTRIM and XADD with trim possibility: nearly exact trimming (via ~) is not possible due to implementation details (no radix tree here). However, LIMIT option is working while in Redis it is allowed only in combination with ~. LIMIT can be disallowed to be consistent with Redis protocol. I didn't do that because I want to hear opinions from kvrocks maintainers.

Replication is not implemented yet. Basically, I didn't test streams in a cluster configuration. Perhaps, the plain XREAD on a replica will work, but blocking XREAD that unblocks after XADD on the master - I'm sure that some code should be written. It would be greatly appreciated if maintainers provide me with some hints about how to implement this.
Consumer groups are not implemented. I'm thinking about the possible implementation.
Right now I'm looking for any maintainers' feedback from the adding-new-data-type perspective (maybe, I didn't add a new column family to some filter/checker/extractor, etc.) and information about proper replicating a stream from master to other nodes.
This closes #532

Can you add some design documents so that people can understand your design ideas :)

Thanks to @torwig great contribution.
For the replication part, Kvrocks will replicate the data after writing into db, so we needn't to do anything if it has no special case. For the new column family, I prefer to keeping less column family and feel free to add if we MUST.

@caipengbo Yes, sure, I will :)

@git-hulk I mean that if I run
XREAD BLOCK 0 STREAMS s1 $ on a replica (it will block)
and then execute
XADD s1 * k1 v1 on master
the XREAD will be unblocked and return the added entry.
It's very similar to publish-subscribe - there is a fan-out.
Does it require some additional code in processing replicated data?

@git-hulk I mean that if I run XREAD BLOCK 0 STREAMS s1 $ on a replica (it will block) and then execute XADD s1 * k1 v1 on master the XREAD will be unblocked and return the added entry. It's very similar to publish-subscribe - there is a fan-out. Does it require some additional code in processing replicated data?

Yes, you are right. Kvrocks default replication only sends the data to replicas, we need to recognize those special write batch and wake up the waiting clients.

@caipengbo Added design notes.

@caipengbo Added design notes.

Many thanks to @torwig detail explanation and bring this good feature into Kvrocks community, we will take a look recently.

I took a look briefly and overall design is good to me. There are two small issues in design internal:

I think we should save the entries number as well in the encoded value instead of depending on '\0', we should allow using '\0' in the string.
We need to create the column family for stream in storage::open if wants to use the new column family, or it will fallback to the default column family.

I took a look briefly and overall design is good to me. There are two small issues in design internal:

I think we should save the entries number as well in the encoded value instead of depending on '\0', we should allow using '\0' in the string.
We need to create the column family for stream in storage::open if wants to use the new column family, or it will fallback to the default column family.

Thank you for your review. I'll fix the issues.
Just one question for now: what do you mean by depending on '\0'? Currently, the encoded value consists of:
first-string-len | first-string | second-string-len | second string
as implemented here: https://github.com/apache/incubator-kvrocks/pull/745/files#diff-eee0baf52c379afb7e25739db14ec62c603d3c8f4c7f46af24e019319b2bb4beR135

I took a look briefly and overall design is good to me. There are two small issues in design internal:

I think we should save the entries number as well in the encoded value instead of depending on '\0', we should allow using '\0' in the string.
We need to create the column family for stream in storage::open if wants to use the new column family, or it will fallback to the default column family.

Thank you for your review. I'll fix the issues. Just one question for now: what do you mean by depending on '\0'? Currently, the encoded value consists of: first-string-len | first-string | second-string-len | second string as implemented here: https://github.com/apache/incubator-kvrocks/pull/745/files#diff-eee0baf52c379afb7e25739db14ec62c603d3c8f4c7f46af24e019319b2bb4beR135

Yes, I mean we can also save the number of encoded value. As this example, the encoded value can be 2(4bytes)|first-string-len | first-string | second-string-len | second string which we can count the number of strings directly instead of depending of end of string. How do you think about this case?

@git-hulk Fixed possible crashes via access to command non-existing command arguments by index. Created column family for streams. I will use it also for replication purposes, to unblock blocked readers.

I took a look briefly and overall design is good to me. There are two small issues in design internal:

I think we should save the entries number as well in the encoded value instead of depending on '\0', we should allow using '\0' in the string.
We need to create the column family for stream in storage::open if wants to use the new column family, or it will fallback to the default column family.

Thank you for your review. I'll fix the issues. Just one question for now: what do you mean by depending on '\0'? Currently, the encoded value consists of: first-string-len | first-string | second-string-len | second string as implemented here: https://github.com/apache/incubator-kvrocks/pull/745/files#diff-eee0baf52c379afb7e25739db14ec62c603d3c8f4c7f46af24e019319b2bb4beR135

Yes, I mean we can also save the number of encoded value. As this example, the encoded value can be 2(4bytes)|first-string-len | first-string | second-string-len | second string which we can count the number of strings directly instead of depending of end of string. How do you think about this case?

I've got your idea about writing the number of strings to the encoded value. However, I didn't understand how this information can help us. I mean, if we know that there are 2 strings encoded, how this number can work in the decoding process? Could you please provide me with any example?
Currently, we read length len1, the read exactly len1 bytes as a string, then read len2, then read exactly len2 bytes as a string.

I took a look briefly and overall design is good to me. There are two small issues in design internal:

I think we should save the entries number as well in the encoded value instead of depending on '\0', we should allow using '\0' in the string.
We need to create the column family for stream in storage::open if wants to use the new column family, or it will fallback to the default column family.

Thank you for your review. I'll fix the issues. Just one question for now: what do you mean by depending on '\0'? Currently, the encoded value consists of: first-string-len | first-string | second-string-len | second string as implemented here: https://github.com/apache/incubator-kvrocks/pull/745/files#diff-eee0baf52c379afb7e25739db14ec62c603d3c8f4c7f46af24e019319b2bb4beR135

Yes, I mean we can also save the number of encoded value. As this example, the encoded value can be 2(4bytes)|first-string-len | first-string | second-string-len | second string which we can count the number of strings directly instead of depending of end of string. How do you think about this case?

I've got your idea about writing the number of strings to the encoded value. However, I didn't understand how this information can help us. I mean, if we know that there are 2 strings encoded, how this number can work in the decoding process? Could you please provide me with any example? Currently, we read length len1, the read exactly len1 bytes as a string, then read len2, then read exactly len2 bytes as a string.

I rethink about this point, current implementation is ok since C++ string didn't depend on '\0' at all, so use the string length to determine where's value end is ok. Sorry that I misunderstand the implementation. Just disregard it.

@git-hulk Added batch handling on replicas to unblock clients that were blocked by the XREAD command by the respective XADD.

@git-hulk Added batch handling on replicas to unblock clients that were blocked by the XREAD command by the respective XADD.

Thanks for your great contribution, I will try and review the PR in a few days.

@git-hulk I've removed the LIMIT option from trim options to be compliant with Redis protocol.
By default, Redis uses exact trimming (or if = is specified). And in this case, the LIMIT option can't be used.
The LIMIT option can be used only with nearly exact trimming (if ~ is specified instead of =), but nearly exact trimming is bound to Redis implementation of a stream (there are nodes with elements), so it can't be applied with RocksDB.
Also, I will resolve some conflicts with the unstable branch in a few minutes.

@git-hulk I've removed the LIMIT option from trim options to be compliant with Redis protocol. By default, Redis uses exact trimming (or if = is specified). And in this case, the LIMIT option can't be used. The LIMIT option can be used only with nearly exact trimming (if ~ is specified instead of =), but nearly exact trimming is bound to Redis implementation of a stream (there are nodes with elements), so it can't be applied with RocksDB.
Also, I will resolve some conflicts with the unstable branch in a few minutes.

Thanks @torwig, it makes sense to me since the underlay structures are different. I think we can have basic stream functions, then try to resolve the nearly extract trimming issue only if many community users requested it, or just left it behind.

I have reviewed this PR, implementation, test coverage and design are good to me. I will approve this PR after above conversations were resolved.
PTAL @ShooterIT @Alfejik @caipengbo @PragmaTwice, I think we can merge this PR after it got >= 3 approves.

Sorry, there are some small things recently. I will carry out CR within this week :)

redis_cmd.cc file was already long because it contained the command implementation.
Now we have added a new Stream type, which is much longer. Maybe we'll add other new types in the future. They will definitely have a lot of commands too, which will make the file huge.
Should we consider splitting this file, separating the various types of commands into different files? HDYT @git-hulk @PragmaTwice

LGTM

redis_cmd.cc file was already long because it contained the command implementation.
Now we have added a new Stream type, which is much longer. Maybe we'll add other new types in the future. They will definitely have a lot of commands too, which will make the file huge.
Should we consider splitting this file, separating the various types of commands into different files? HDYT @git-hulk @PragmaTwice

It sounds reasonable.

redis_cmd.cc file was already long because it contained the command implementation.
Now we have added a new Stream type, which is much longer. Maybe we'll add other new types in the future. They will definitely have a lot of commands too, which will make the file huge.
Should we consider splitting this file, separating the various types of commands into different files? HDYT @git-hulk @PragmaTwice

It sounds reasonable.

@caipengbo Yes, agree that we should separate commands into each data structure after this PR. I'll submit a new issue to track this improvement.

@torwig Can you help to resolve the conflict?

@git-hulk Done

Thanks @torwig
We can merge this PR after one of @Alfejik @ShooterIT approved since the new commit only resolved command number conflict.

I don't have time to go through this patch. Although, it seems this patch looks good to two reviewers. If we accept such a new feature, remember to track updates on our doc site :)

I don't have time to go through this patch. Although, it seems this patch looks good to two reviewers. If we accept such a new feature, remember to track updates on our doc site :)

Thanks to @tison warm remind. Will merge this PR if have no further feedback tomorrow, then update the doc site after merging.

Hello, thanks @torwig for contributing this awesome feature for Kvrocks community and everyone who reviewed this PR. I will summary and merge this PR and welcome to create a new thread to further discussion if you have any question. Cheers!!!

Thanks @torwig and @aleksraiden again.

as we know, prefix bloom filter can improve the performance of range read,  but current encoding make it hard to use since we can't know key length and how to set prefix length. One PR still is in draft https://github.com/apache/incubator-kvrocks/pull/508

key | version | entry-ID-milliseconds-value | entry-ID-sequence-number-value

for the entry encoding, i think we can put version at the front,  so that prefix bloom filter will be useful.
furthermore, maybe we should redesign the encoding for all complex data structure for better range read performance. Of course, we should keep compatibility, such as, adding an encoding version to distinguish different version for decoding, this way also allow us implement new features easily.

key1-length(fixed-32) | key1 | val1-length(fixed-32) | val1 | key2-length(fixed-32) | key2 | val2-length(fixed-32) | val2.

i think we use  variable length encoding, such as EncodeVarint32 in leveldb/rocksdb,  to save disk space.

for the entry encoding, i think we can put version at the front, so that prefix bloom filter will be useful.

I think we can change all complex data structures at the next major release to make the prefix bloom filter more effective.


filter road images by date.  date filter in inspect view (?)

add the possibility to filter the data shown in inspect view, both graph data and images by date time interval?


fix: Update CHANGELOG for release version 0.3.0-beta

Codecov Report

Merging #463 (29f8a60) into master (ecb72de) will decrease coverage by 0.99%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #463      +/-   ##
==========================================
- Coverage   64.30%   63.30%   -1.00%
==========================================
  Files          16       16
  Lines         804      804
  Branches      168      168
==========================================
- Hits          517      509       -8
- Misses        287      295       +8

Impacted Files
Coverage Δ

src/multimanifestmodule.ts
46.66% <0.00%> (-5.93%)
:arrow_down:

Continue to review full report at Codecov.

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


User does not need to be a Global Admin

The statement "You must be a SharePoint Online global administrator to run the cmdlet." is confusing as it seems to imply that you have to be a Global Administrator to run this, since you actually only need to have the "SharePoint Administrator" role in the tenant to use this. Can you confirm and change appropriately.

@officedocsbot assign @yogkumgit

Hello @Somu76 How are you? 👍
Your description is missing the referenced article, can you please paste the url here?
Thanks

@get-itips  Thank you very much for the contribution and digging deep into it.  @Somu76  We appreciate any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to re-open this issue if you see an improvement is required in the specific area of this documentation. We will certainly update this documentation with that valuable information. Thanks again, for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Load Order sorter doesn't place Bounties Galore above Cities Rebalanced mods

Just wanted to put a heads up here that the automatic load order sorter in this mod tool does not place Bounties Galore above the Cities Rebalanced mods in the load order, which causes some city layouts in-game to glitch out massively because of duplicated buildings.

I also noticed that Shirts For All doesn't go below the XT-MKIII & XT-MKIV and Community Part Map mods. It appears that the reason for this is that the program thinks mods earlier in the list overwrite mods later in the list; This is evident in the fact that the conflict checker feature indicates the incorrect mod's entries will be used.


Add remediation commands as recommendation option

As security assessment tool, I don't think is good idea to allow Prowler to fix or apply changes to the infrastructure. That would mean a big change on the role that allows Prowler to get all the info (readOnly as good practice). However, I think it would be very helpful to have an option that shows a list of commands to fix or remediate all findings, then the user will chose what to run and under what role.

+1 to not changing the role associated with Prowler.
How would you like to display the fixes that cannot be completed via commands? Just display a link to the relevant documentation?

That is probably a good idea. Link to the document is always good since it is the main source of truth for the CIS benchmark.

Were you working on this issue somewhere already @toniblyx ? More than happy to help out where I can.

Hi @wassies, I've got to close other issues first so feel free to add this feature, it would be great! You can add a flag like -s to show fix solution recommendations (or whatever flag that is not used already). Thanks again!

This is actually possible to automate with code as explained here https://aws-quickstart.s3.amazonaws.com/quickstart-compliance-cis-benchmark/doc/cis-benchmark-on-the-aws-cloud.pdf


Update GitLab CI guide

This PR updates our Continuous Delivery guide for GitLab, making some minor formatting changes here and there and adding a new section for how to setup ephemeral environments.
Changes:

Revised the intro to the guide, organizing it into three sections: configuring GitLab Pipelines, "enhanced merge requests" (shout-out to GitLab integration), and ephemeral environments.
Move most existing H2s to be H3s (under "GitLab Pipeline Configuration")
Add the new section at the end.

Let me know if you have any ideas for how we could better organize or refresh up the content.

Ping. @chrsmith just wondering if we can get this merged sometime soon? I wanted to make some updates to the current guide, but remembered that you have this PR with a lot of great info!

@chrsmith Can we close this or move to https://github.com/pulumi/pulumi-hugo?

@chrsmith  do we still need to keep this pr around?

Evidently I totally dropped the ball here and didn't update this PR... ever? Closing out since it's rotted enough that it isn't quite mergeable.


Investigate 404 errors

Redirects to published works from SS3 should (ideally) not 404.
WDLL

count links like /concern/generic_works/[id] and redirect with a 200
count links like /concern/generic_works/[id] and redirect with a 404
create custom widget in Splunk

i've created a report that shows all the hits to the LegacyUrlsController that ultimately returned a non-200 status. I'm creating a widget on the dashboard that contains the same data.
The attached file is a txt file, because that's what GitHub supports, if you open it up in numbers, or excel it should format properly.
Interesting thing of note, all the requests over the last 14 hours that got a 404 threw Pundit::NotAuthorizedError: not allowed to show? this WorkDecorator I, as an admin still can't visit the resolved link, i'm hoping it's something easy to fix.
1606845011_839_2857FFD7-2774-4137-A7E5-8D056B663985.txt

@whereismyjetpack That's the correct response. Technically, it's a 401 because they're not authorized to view the resource, but we don't want to give away it's existence. This is likely because a work that was formerly open access in Scholarsphere 3 is missing some required metadata in version 4, so it still in draft status, and thus, not viewable.


Implement fine pixel tile scrolling

Goal: ability to scroll background tiles smoothly horizontally, i.e. pixel-by-pixel. Could have system to allow for multiple different regions of different scroll rates. Primary goal however is to simply achieve fine scrolling.
Scrolling cannot be done on the CPU side - there's no way to de-conflict tile color palettes. So any fine scrolling must be done on the GPU side.
Horizontal scrolling will require some work - rendering tiles not on their boundaries results in needing to process an additional tile for each long of stored video data.
Planning out in scratchpad.

Will need horizontal and vertical "position" tracking variables passed from CPU to control scrolling.
Hard-incremented on this line, as we will need the data for an extra tile during scrolling.
We instantiate a render cog internal tracker for which horizontal pixel we're rendering (curpx).
So the routine should operate as follows for horizontal fine scrolling (starting at the very beginning of a scanline):

We instantiate a variable curpx to track which physical pixel of the scanline we're currently rendering
We retrieve a variable h_pos from the graphics resources to determine what pixel of the tile map is aligned with the left side of our screen
We determine what our initial tile is by performing floor(h_pos/4) = floor(5/4) = 1, and load that tile's word to be processed.
We then determine what specific pixel from the tile palette we're processing by performing h_pos%4, and load that pixel for rendering
When we proceed to the next pixel, we first check that we've entered a new tile by checking whether curpx%4==0. If so, we load the new tile and continue rendering pixels
We repeat steps 4 and 5 until we have a long worth of graphics data to store, with the option of either breaking out of the process when we hit that or letting the buffer overflow to save cycles on all of the checks that would be performed

Satisfied by 02e3e464f522312893bc89187d3401382fe07512


Implement a fake LowLevelDebug API.

This is the first proper fake::Driver implementation!

bors r+


(Spike) Investigate solution for embedding components in docs site

A spike to investigate a solution for embedding live components directly from a design tool into the docs site, avoiding the need to export multiple flat PNGs first.
Why: The current docs site requires static images to display a component's overview, anatomy, states etc.
This creates a significant overhead as well as potential discrepancies every time there is an update to a component.
Potential solution 1: If we use Axure html/css/js prototypes, can we embed directly from Axure as an iFrame in the docs site?
Potential solution 2: Can we embed live components from Storybook, and use PNGs where these are not enough? This means more work to export PNGs from Axure.

Need to check with @m7kvqbe1 and @hxltrhuxze for a viable long-term approach to this.

Outcome of the spike was to go with embedding Storybook stories in iframes (using https://github.com/davidjbradshaw/iframe-resizer-react) (and supplementing with images if needed).
(See also https://github.com/defencedigital/mod-uk-design-system/issues/3058 for speeding up loading of stories.)


[SPARK-40986][SQL] Move hash function from aggregate to new project

What changes were proposed in this pull request?
Why are the changes needed?
Does this PR introduce any user-facing change?
How was this patch tested?

After some tpcds tests, this PR seems not good for performance.

Merged into Spark master.


Fix install locations for modprobe config and udev rules

I had two problems while packing stlink for Arch Linux (this package: https://aur.archlinux.org/packages/stlink-git/):

The file etc/modprobe.d/stlink_v1.conf is installed to /etc/stlink_v1.conf. The subdirectory modprobe.d is not created. I'm quite sure that this is true for other distributions too. The first patch of the patch set should solve that.

The udev-rules are installed to the absolute location /lib/udev/rules.d. In Arch Linux, /lib is only a link to /usr/lib. To create a package, I have to be able to install the files to /usr/lib. To fix this, I just applied the CMAKE_INSTALL_PREFIX to this path too. I'm not sure if this is OK for other distributions too. Would it be better to use some other variable like CMAKE_LIBRARY_PREFIX instead?

By the way: I adapted the Arch stlink-git package to use this workaround. I'll change that back as soon as the problem is resolved here. See https://aur.archlinux.org/packages/stlink-git/

I had a look, it seem legit. You are right about the first commit the path is not created. Still i'm not sure if we need to install those files, as most package maintainers will cherrypick the files themselves as this changes the system behaviour. @nekromant, @OsterlaD could you also have review?

On Ubuntu 14.04 LTS and Debian Jessie, I do not have this issue.
I guess udev will search on arch linux on /lib/udev/rules.d/ too.
Does it really not install?
I think it will install, even with the /lib -> /usr/lib link.
The link just cause that /usr/lib/udev/rules.d/ and /lib/udev/rules.d/ exist.
Maybe the path issues is a cmake issue. I use <IP_ADDRESS>-0ubuntu3 and 3.0.2-1+deb8u1.
I acked first patch. Same behavior to me.
Second patch would cause problems, because CMAKE_INSTALL_PREFIX contains /usr prefix.
The only way I see to not influence other package builds would be a separate variable just for this purpose.

I'm not sure wether udev is patched to search in /usr/lib/udev/rules.d or if it is solved by the link.
It seems that I didn't describe my problem clearly enough. Sorry for that. I would expect that a "make install" as root would work. What I try is to create a package (or rather fix it): https://aur.archlinux.org/packages/stlink-git/
The package builds fine but can not be installed because of the location of the files. I would be able to just work around this by moving the files after installation. But it somehow feels wrong to do this instead of fixing the problem in the build system instead.
If it is OK for you, I will adapt the patch so that another name for the variable is used. I found something like CMAKE_LIBRARY_PREFIX in other projects. Even if the CMAKE_ prefix would suggest this, it is not an official cmake variable: https://cmake.org/cmake/help/v3.0/manual/cmake-variables.7.html. So some other name might could be better. What do you think?

I have totally forgot about the make install path...
With make install it would be better to install udev rules to /etc/udev/rules.d and libraries to /usr/local/lib and binaries to /usr/local/bin.
We can fix up this in debian/libstlink.install.
-lib/udev/rules.d/*.rules
+etc/udev/rules.d/*.rules lib/udev/rules.d/*.rules

Do you use debian rules for arch linux package generation?

Sorry for arriving a little bit late to join the fun ;)
I think we should drop udev rules to /etc/udev/rules.d in all cases, including packaging.

AFAIK there are a plenty of packages in debian repositories that do that already.
This would work out of the box for most distros.

@OsterlaD: No I don't use the debian rules. Arch uses another package manager (pacman) and has it's own packaging rules. To create a package you more or less just write a shell script that calls make and make DESTDIR=xxx install or simmilar.
@nekromant: I would not move the rules to /etc. According to the description of udev (https://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html chapter Rules files):

The udev rules are read from the files located in the system rules directory /usr/lib/udev/rules.d, the volatile runtime directory /run/udev/rules.d and the local administration directory /etc/udev/rules.d. All rules files are collectively sorted and processed in lexical order, regardless of the directories in which they live. However, files with identical file names replace each other. Files in /etc have the highest priority, files in /run take precedence over files with the same name in /lib. This can be used to override a system-supplied rules file with a local file if needed; a symlink in /etc with the same name as a rules file in /lib, pointing to /dev/null, disables the rules file entirely.

Putting the files into /etc would mean that the files that are installed by the package would have the highest priority. A user would not be able to overwrite the rules (with the mentioned symlink to /dev/null). He would have to overwrite the rules on every reinstall.
I would prefer the mentioned variable with a sensible default value. Most distributions have their own rules where the udev rules should be put. They would be able to overwrite the variable while packing without having to track future new rules file (like for an hypothetical ST-Link version 4).

@c-mauderer Yep, your point is correct (I've been using Arch linux for a few years myself some time ago and I still remember some things about pacman) ;)
Since /etc/ is a user-administered dir, setting it as a default for udev rules installation would make sense for those doing 'sudo make install' installation. And for debian and arch we could override it when building package.
But that would likely look like:
set(STLINK_UDEV_RULES_DIR "/etc/udev/rules.d" CACHE PATH "Udev rules directory")
set(STLINK_MODPROBED_DIR "/etc/modprobe.d" CACHE PATH "modprobe.d directory")
...

I added a patch that uses the two suggested variables to the cmake configuration. Would it be necessary to adapt the debian rules too? It's been quite some time since I last touched some debian package rules.

This would be an easy way to handle it in debian package.
https://github.com/OsterlaD/stlink/commit/f2178381861bfa215f128f7c9e4d38d56c793b4b.patch
@nekromant Do you agree, or would you prefer to pass cmake variable?

I think passing a proper cmake variable is the proper the way to go for packaging.

I agree with @nekromant we should have a cmake variable as you have patched. Probably we should have the default directory to /lib for udev and the user/sysadmin could overwrite it. I'm not sure how other distros handle this (fedora, suse et al). But probably they stick with the udev defaults.

Without any deeper Debian packaging knowledge I tried to add the necessary lines to the debian rules and install file. Could someone with deeper Debian knowledge (most likely @nekromant?) look over the patch?

Keep modprobe at etc. The udev part looks good.

Thanks for the answer @OsterlaD. I somehow was convinced that your patch moved them too. When I now look at it, I somehow have totally misread it. Sorry for that.
I reverted the modprobe configuration location and checked that the package builds. As far as I can say it should work.

Sorry for delays, as usual. I'll try to give it a proper spin on Monday. Currently away from my laptop.

Hello @nekromant, the delay is no problem. Take your time.

@c-mauderer could you rebase with master and test. Because I needed to do some changes due to broken builds under Cygwin.

Hi @xor-gate, the rebase worked without too much of a problem. I had to move the documentation to the new file but despite that, it seems to be OK.
I used the opportunity to remove some of the intermediate stages so that a clean set of patches is left.

Thank you for your work @c-mauderer. @nekromant I have squash-merged, if there are any issues we can discuss here and you are free to open a PR. Thanks all for your input on this.

@xor-gate: Thanks for merging the patches.
@all Thanks for all the help to get the patches ready to merge.


Cannot load images from Orthanc

Dear Friends,
I have a problem with loading images from Orthanc repository via OHIFViewer.
I see patient list from orthanc server, but when I've try to open image, I got this error message
"an error occurred whole loadgin image: dicomweb:http://<IP_ADDRESS>:8042/wado?requestType=WADO&studyUID=2.16....." on next line Details: [object ArrayBuffer]"
In firebug I saw this: http://<IP_ADDRESS>:8042/wado?requestType=WADO&studyUID=2.16.840.1.113669.632.10.20140407.123623642.0.84&seriesUID=2.16.840.1.113669.632.10.20140407.123623642.0.85&objectUID=2.16.840.1.113669.632.10.20131219.130527112.10002.44&contentType=application%2Fdicom 401 Unauthorized

Hi Friend,
Sorry that this is not documented well enough, we plan to improve it. I need some more information to help you diagnose this problem.

How are you running Orthanc? Standalone or in Docker?
How are you planning to run this? On a server for web access, or locally for testing?

I see that you are using the IP that I included in the nodeCORSproxy.js script. This was my own Docker machine's IP, so it almost definitely doesn't apply to your situation. I have just pushed a commit updating the default configuration files, so please pull from master and try this:

Start Orthanc
Go to the /etc folder and running the CORS proxy:

node nodeCORSProxy.js

Run the OHIFViewer with Meteor using:

cd OHIFViewer
./bin/localhostOrthanc.sh

Hello,
I also recommend the pull request #17. It runs the entire OHIFViewers in a few commands using docker.

Hello all,  I am having an issue as well with pulling studies/data into the OHIF Viewer.
So far I have: the Orthanc docker server running, proxy server running,and OHIF viewer running. I have modified the nodeCORSProxy.js file so the target points to the server. I also ran commands I referenced (such as:  $ curl http://localhost:8042/patients) and seem to be getting the appropriate data back from the server so the problem as to be on the Viewer end.
Any idea why the viewer isn't talking to the server? Also I noticed the  "qidoRoot": "http://localhost:8042/dicom-web", etc in the localhostOrthanc.json but seems like the dicom-web url isn't pointing to anything?
Screenshots are attached.

![screen shot 2016-06-04 at 3 24 42 pm](https://cloud.githubusercontent.com/assets/19271735/15801640/b2e89e5e-2a69-11e6-811d-f8bd16283f3c.png)
![screen shot 2016-06-04 at 3 24 26 pm](https://cloud.githubusercontent.com/assets/19271735/15801639/b2e8921a-2a69-11e6-81e9-6598840d45ba.png)
![screen shot 2016-06-04 at 3 24 01 pm](https://cloud.githubusercontent.com/assets/19271735/15801641/b2ea00b4-2a69-11e6-8178-87588441aecc.png)

Hi there,
I had the same issues in the beginning. Consider the pull requests #17 and #18

Thank you for your quick reply.
It seems like #17  is addressing the proxy/server issue but we have confirmed that our proxy and main server is working well.
How do we specify the viewer to communicate with proxy server properly?
I am having trouble understand the localhostOrthanc.json file specifications -- is this relevant? (see below)

Okay so the only thing that appears wrong above is that your proxy is running on 8042 (the .listen(8043) line) and your viewer is pointing to port 8043 (under wadoURIRoot).
That doesn't explain why you don't see the study list though. What do you get in the terminal running the Meteor instance? Or in the Chrome debug console?

The proxy is now internal, so this shouldn't be an issue anymore. Please reopen if you're having problems.


Autism Identification System using Machine learning

Problem statement:- Autistic Spectrum Disorder (ASD) is a neurodevelopmental condition associated with significant healthcare costs, and early diagnosis can significantly reduce these. However, the current wait times for ASD diagnosis are prolonged, and existing procedures lack cost-effectiveness. A time-efficient and accessible ASD screening tool is essential to aid healthcare professionals and guide individuals toward pursuing formal clinical diagnosis. The goal is to develop machine learning techniques to make this screening process faster and more effective.
Please assign me to this issue under tag gssoc'24 , sir @Niketkumardheeryan

Please assign this to me under GSSoC'24, I am eager to contribute.

Hi, myself Rounak Sarkar, proficient in Machine Learning algorithms.
I want to work on this issue under GSSOC'24.
Can you please assign this issue to me ?

Hey, I request to be Assigned to Autism Identification System Project. I have a solid foundation in machine learning techniques, including data preprocessing, model development, and evaluation. While my previous projects weren't in healthcare or autism identification, I'm eager to expand my skills and contribute to this impactful project. With my background and dedication to learning, I'm confident I can make valuable contributions. Looking forward to collaborating with the team. Thanks for considering my request.

Hey, I would like to work on this issue. I have prior experience on working with medical data and i am proficient with methods of data preprocessing, model development and evaluation metrics. You can see my ML project which includes preprocessing PPG data and building a model which is 94.5% accurate. I am also familiar with Git environment. Thanks for considering this request.

Hi @Niketkumardheeryan
Overview of the project:
Autism Spectrum Disorder (ASD) is a complex neurodevelopmental condition characterized by difficulties in social interaction, communication, and repetitive behaviours.
Its primary objective is to create a dependable and efficient diagnostic tool capable of promptly identifying ASD in adult individuals, thus ensuring they receive timely assistance and interventions
I have previously worked on this project so, I would like to take on the task of developing Autism Identification System
Thank you

The issue has been assigned to you , Please follow project guidelines for PR. Issue assigned based on FCFS.

PLease cretae a new Issue if you want to work on same project.

sir i have created new issue here #568


CVE-2023-36665 vulnerability is still present in protobufjs 7.2.4

Protobufjs was updated to version 7.2.4 in https://github.com/googleapis/gax-nodejs/issues/1466 to address the CVE-2023-36665 vulnerability. However, it has been discovered that version 7.2.4 remains vulnerable. The latest version of firebase-tools (v13.7.2 at the monent) still relies on version ^3.6.1 of this package as a peer dependency.
Is it possible to release a patched 3.x version with protobufjs 7.2.5, where the vulnerability has been resolved?
├─ firebase-tools@npm:13.7.2 (via npm:^13.7.2)
│  └─ @google-cloud/pubsub@npm:3.7.5 (via npm:^3.0.1)
│     └─ google-gax@npm:3.6.1 (via npm:^3.6.1)
│        ├─ @grpc/grpc-js@npm:1.8.21 (via npm:~1.8.0)
│        │  └─ @grpc/proto-loader@npm:0.7.10 (via npm:^0.7.0)
│        ├─ @grpc/proto-loader@npm:0.7.10 (via npm:^0.7.0)
│        ├─ proto3-json-serializer@npm:1.1.1 (via npm:^1.0.0)
│        │  └─ protobufjs@npm:7.2.6 (via npm:^7.0.0)
│        └─ protobufjs@npm:7.2.4 (via npm:7.2.4)

Same issue for @google-cloud/logging
https://github.com/googleapis/nodejs-logging/issues/1496

Same issue for @google-cloud/monitoring
<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    ├─┬<EMAIL_ADDRESS>    │ └──<EMAIL_ADDRESS>

I'm experiencing this issue for @google-cloud/secret-manager and @google-cloud/datastore.

I think this is fixed in #1596

Hi @leahecole
The requirement @grpc/proto-loader itself requires<EMAIL_ADDRESS>which is still affected by this critical vulnerability.
You specify "@grpc/proto-loader": "^0.7.0" and this version still comes with the protobufjs vulnerability. Latest published version of @grpc/proto-loader is 0.7.13, which already has this fixed.
Please re-open this issue 🙏

Opened a PR to fix this, awaiting CODEOWNERS review


Bugfix/camera onchange

Due to some JS API timing issues it can happen that camera is not defined when the watcher calls the onCameraChange callback.
We assume that the stationary watcher is calling the callback before the camera is properly set or something like that...

@mvdbster Can you publish to npm?


Support for other transports (SPI, BLE, TCP/IP, ...)

Thank you for the fantastic work on this library! It significantly reduces the effort to get RPC comms established between a host and embedded device.
Currently, the framework as a whole only supports transport over serial or USB, with the target_server side specifically relying on the embassy-usb driver. I am interested in what it would take to support other transports such as SPI, BLE (using the trouble lib, which abstracts over Bluetooth HCI and is thus more versatile than implementing support for a specific stack like the NRF SoftDevice), or TCP/IP via smoltcp. While I see a clear path to implementing SPI or BLE support on the host_client side, it is unclear how to extend this support to the target_server embedded side. I've loosely been following your blog where it looks like you've been thinking about this on some level already. I hope this issue can serve as a log or discussion place for these implementations.

Yep, on the PC side, https://github.com/jamesmunns/postcard-rpc/pull/25 is starting to work towards this, and in the near future I plan to restore "UART + COBS" functionality.
Likely, we will need some kind of similar "Wire" abstraction for the MCU side as well, and I'll need to rework the define_dispatch! macro to be less hardcoded to USB, and instead require you to name some type where T: Wire or something like that.
I'm open to PRs that make this happen, ideally starting with adding back UART+COBS, but also open to a PR that refactors this in a way where supporting two different transports (ideally without a lot of duplicated dispatcher code) is possible.

It would be awesome if we could use any transport that implements embedded-io

If anyone is following this, the changes between 0.7 and 0.10 have made it much easier to write a transport, including blanket ones like @okhsunrog suggested.
I probably will not write this in the near future (as I don't need it), but if someone wants to take it on, I'm happy to chat or say how I would do it.

Added RTT to the title because at some point I would like to have that.

+1 for RTT transport support :+1:

I'm using a cli terminal in a similar way, I implemented embedded-io for RTT and I can easily switch interfaces. I'm actually interested in trying postcard-rpc with RTT, but I'm but sure yet if it fits my task.
@jamesmunns can it be used with 2 embedded devices, both being no_std or the host side needs to be std?

@okhsunrog:
one potential blocker to supporting RTT is we need some kind of async recv() to be notified when a frame is ready. We could have a low priority, blocking task that does this (using interrupt executors on embassy), but it might be nicer to have some way for the debugger to "notify" when it has written RTT data, potentially using an interrupt as a callback handler. I discussed this in chat today: https://libera.irclog.whitequark.org/rust-embedded/2024-11-01#1730467273-1730468273; - there were some ideas of how this could be possible
re: two embedded devices, see #37 - there isn't a no-std client yet, only a std/host client. It should definitely be possible to implement, especially if you are willing to accept some limitations (you can't clone the client, only one in-flight request at a time, handling topic subscriptions might be a little tricky), but this isn't a priority for me at the moment.

@jamesmunns I guess we can do something like this for now, polling in a loop:
pub async fn async_recv(channels: &mut Channels, buf: &mut [u8]) -> usize {
    loop {
        let n = channels.down.0.read(buf);
        if n > 0 {
            return n;
        }
        Timer::after(Duration::from_millis(1)).await;
    }
}

@okhsunrog yep, I agree that is a reasonable "not great, not bad" solution, and is exactly what I had in mind :)

I'm developing an embedded device that should be operable through multiple interfaces:

Via USB from a host PC with rich GUI
Via physical controls (like rotary encoders) directly on the device
(Potentially via other interfaces in the future)

The goal is to make all device functionality accessible regardless of the available interface. This leads to two concerns with the current implementation:

For endpoints and topics, we need to duplicate their definitions in each "Wire", which increases maintenance costs.

In my embedded application, I want to post messages to the server from internal tasks (like UI events from physical controls). Currently, this seems difficult because the server is tightly coupled with external transport implementations (like USB). Would it make sense to have an "internal" transport implementation that could work alongside external transports?

Let me know if you'd like more details about either of these use cases.

Hey @Dicklessgreat, so this issue is mostly for tracking the implementation of new WireRx/WireTx impls. You asked two main things (let me know if I missed anything):

"Can we offer multiple interfaces", and the answer is "not yet, but maybe in the future". I've opened #67 to track this. This feature is something I am open to, and if anyone is interested in sponsoring this work, I'd be happy to prioritize it!
"Can we have local/internal clients", and the answer is "I don't think this is a good idea". I've opened #68 for this, and I'm open to discuss this there.


Using authenticated routes with mounted engines causes a redirect loop

Using Rails 4.2.1, Devise 3.5.1, Warden 1.2.3
This is a regression in 3.5.x. I have rails_admin and sidekiq mounted under an authenticated admin route in my app like so:
devise_for :admin

authenticate :admin do
  scope '/admin' do
    #reqsue admin panel
    mount Sidekiq::Web => "/sidekiq"

    #rails_admin admin panel
    mount RailsAdmin::Engine => '/', as: 'rails_admin'
  end
end

The behavior with devise 3.4.1 is that if I navigate to /admin or /admin/sidekiq and I am not authenticated as an Admin, I get redirected to /admin/sign_in. After upgrading to 3.5.1, I am redirected to /admin/admin/sign_in and /admin/sidekiq/admin/sign_in respectfully. This causes a redirect loop.

I have a very similar issue, also with Rails 4.2.1, Devise 3.5.1 and Warden 1.2.3.
I have the following setup:
devise_for :users, skip: [:sessions, :registrations]

as :user do
  get 'login' => 'devise/sessions#new', :as => :new_user_session
end

namespace :admin do
  authenticate :user, -> (u) { u.is_admin? } do
    mount Sidekiq::Web => '/sidekiq'
  end
end

The desired functionality is that when a user is not logged in, they should be redirected to /login. In Devise 3.4.1 this is the case. However, in 3.5.1 they are redirected to /admin/sidekiq/login.
If I move the authenticate call out of the namespace :admin block but mount Sidekiq to /admin/sidekiq, I also get a redirect to /admin/sidekiq/login when a user is not logged in:
authenticate :user, -> (u) { u.is_admin? } do
  mount Sidekiq::Web => '/admin/sidekiq'
end

This redirects to /admin/sidekiq/login.
Lastly, if I change the above to be mounted at just /sidekiq, I get a redirect to /sidekiq/login when user is not logged in:
authenticate :user, -> (u) { u.is_admin? } do
  mount Sidekiq::Web => '/sidekiq'
end

This redirects to /sidekiq/login.

I'm wondering if this is a feature, not a bug. The CHANGELOG describes the change as 'Use router_name from scope if one is available to support isolated engines' in the bugfix section.
I don't know the insides of Devise enough to say, but I'm guessing there's a method somewhere, or an option to authenticate, that you can use to tell the router that your mounted engines want to authenticate using scopes outside the engine. Or you could insert a route higher up in the routes file that catches the mounted engine's redirect and sends it to your "top" app. I did this for example:
  get '/rails_admin/users/sign_in' => redirect('/users/sign_in')

I have never set relative_url_root but I'd guess all relative roots would then move to the top level root, which isn't what you'd want inside your mounted engines, yes?

This was fixed with aa675f7f6611de5d40114aa98153f3f0c0b3e8d5, as mentioned in #3643.

rails (<IP_ADDRESS>),  devise (4.0.3), warden (1.2.6)
routes.rb:
`devise_for :users
authenticate :user do
mount Sidekiq::Web => '/sidekiq'
end
`
When user is not authorized I get redirect loop error.
I'm trying visit http://localhost:3000/sidekiq but I get redirect to http://localhost:3000/sidekiq/users/sign_in instead of http://localhost:3000/users/sign_in.


Blood lead research retro

This happened 9/24/21
https://app.retrium.com/team-room/41861f20-a261-4456-8474-8fe5c5cea6f9/retro
I'd like to run through the retro board and capture items for research process updates.


Revert changes to package-lock.json, use npm ci instead of npm install

This undoes the changes I made to package-lock.json in the previous version. Now using npm ci instead of npm install, to minimize the differences from upstream.
We also need to make another release because the previous one didn't include the invalidateSize change.

BTW I have already published this to the iridl channel on anaconda.org.

Looks great. approved


Remove unused transportURLSecret from heatAPI/Engine CR

The transportURLSecret spec is no longer used by these two CRs when we merged config file generation to the base implementation in the heat CR.
This also removes a few invalid/outdated comments in init.sh script.

Hmm. it seems cinder-operator implements transportURLSecret in all CRs and, for sub CRs the operator makes sure that the secret exists. Should we implement the same logic instead of removing this spec from sub CRs ?

Hmm. it seems cinder-operator implements transportURLSecret in all CRs and, for sub CRs the operator makes sure that the secret exists. Should we implement the same logic instead of removing this spec from sub CRs ?

This is not really required because heatAPI/Engine requires config map generated by heat, which is dependent on transport url secret.

ok it turned out we need this to run init container for api/engine...


pytest integration

Sybil has a neat approach for hooking into pytest: https://sybil.readthedocs.io/en/latest/use.html#test-runner-integration
Maybe we can reuse this?

Would get rid of the need to implement #5


Add session metrics api

One of these days I'll remove all the unnecessary weak / strong dance but today is not that day.

          1 Warning

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger


View path for addcolumn in a laravel-modules hierarchy

Summary of problem or feature request
Using NWirdart/Laravel-modules package, in a module context not under app folder, i'm stuck to implement the addcolumn with view like described below
https://yajrabox.com/docs/laravel-datatables/master/add-column#view
Code snippet of problem
here my files hierarchy focus on views
app
....resources
............views
................foomodel
....................tables
........................foomodel-table-actions.blade.php
modules
.... mymodule
........resources
............views
................mymodelname
....................tables
........................mymodelname-table-actions.blade.php

here the ajax handler in my controller
    /**
     * Populate the mymodelname datatable (Ajax handler).
     *
     * @return string
     */
    public function publipostageTypeTable()
    {
        return DataTables::of($myModelName = $this->myModelName->all(['id', 'name']))
            ->addColumn('action', '?????i.tried.here.amazing.things.but.nothin.worked??????')
            ->rawColumns([
                'id',
                'name',
            ])
            ->toJson();
    }

so, instead of my view, the text ?????i.tried.here.amazing.things.but.nothin.worked?????? is displayed in the column
I would point out that already perfectly work with some others foocontrollers, foomodels and their associated views in the classical app hierarchy, i introduce modules recently to organize the already big app
System details
windows 10 64bits
php 7.0.x
laravel 5.5.4
yajra/laravel-datatables-buttons": "^3.0
yajra/laravel-datatables-html": "^3.1
yajra/laravel-datatables-oracle": "~8.0

You need to use the module view namespace as path.
->addColumn('action', 'module::path.to.view')


secondaries failing to start with signing_privatekey does not in keystore error

Exception: @ doom22male:signing_privatekey@ doom22male does not exist in keystore for 4120
Exception: @ 16shinygreenblue:signing_privatekey@ 16shinygreenblue does not exist in keystore for 4197
Exception: @  silentjay:signing_privatekey@ silentjay does not exist in keystore for 1665
Exception: @ 26juststay:signing_privatekey@ 26juststay does not exist in keystore for 2453
Exception: @ newyorkdollhostile:signing_privatekey@ newyorkdollhostile does not exist in keystore for 3940
Exception: @ viruddh73rolling:signing_privatekey@ viruddh73rolling does not exist in keystore for 3944
Exception: @ fortunatemallard:signing_privatekey@ fortunatemallard does not exist in keystore for 1644
Exception: @ 50availablekendo:signing_privatekey@ 50availablekendo does not exist in keystore for 4192

I've turned doom22male into a canary so that it has the fix from #457 but it doesn't result in a secondary that will pass seccheck as the scan returns an empty array:
@scan
data:[]

We still need to figure out how the keys are being deleted, and what can be done to prevent that.

Workaround fix done.
https://github.com/atsign-foundation/at_server/pull/457
Some of these secondaries were reset. But cannot confirm whether there is a bug on server related to key deletion.Needs further investigation

moving this is to backlog..since we don't have a mechanism to check the logs for shutdown secondaries


2023 Goals

[ ] List deterministic constant-space self-stabilizing protocols.
[ ] Write about real world needs randomization to break symmetry.
[ ] Space required for leader election.
[ ] Color waves.
[ ] Tree building.

I feel like this could have gone better...


Filter out duplicate collateral inputs in transaction build

This fixes #4744 and potential further issues resulting from unfiltered duplicate collateral inputs.

Subsumed by #4749


Refactor to use Typescript

Refactored to use typescript with minimal changes to process and code.
Imo, using typescript in this project will pay dividends as the gossipsub feature-set grows. It becomes much easier to reason about this codebase which has many moving parts and datatypes when there's that minimal level of type/sanity checking.
That said, I attempted to do this update in a way that's minimally invasive to the standard libp2p workflow.

typescript code lives in ts/, gets transpiled to src/

prebuild and pretest scripts runs tsc
build step left untouched - aegir build
emits js code in strict mode
pubsub.js left untouched (expected to migrate to js-libp2p-pubsub repo eventually)
src/ not checked into git, like dist/

built dist/index.min.js is 2KB larger, from 468KB to 470KB
linting now performed by eslint (using standard and @typescript-eslint configs/plugins) instead of aegir, as the typescript files themselves are to be linted
tests left untouched
caught a few bugs

doc strings out of sync
no null checks for nullish values
improper use of functions due to misleading variable names

GossipSub => Gossipsub throughout (I can remove to future PR if desired)
types in ts/peer.ts should eventually go to js-libp2p-pubsub

Codecov Report

Merging #77 into master will decrease coverage by 5.68%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #77      +/-   ##
==========================================
- Coverage   85.68%   80.00%   -5.69%
==========================================
  Files          11        1      -10
  Lines         510       10     -500
==========================================
- Hits          437        8     -429
+ Misses         73        2      -71

Impacted Files
Coverage Δ

test/utils/index.js
80.00% <ø> (ø)

Continue to review full report at Codecov.

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

@vasco-santos Thanks for bringing up the larger issue of standardizing the tooling and strategy for supporting typescript across the js-libp2p/js-ipfs ecosystem.
I do think that using full typescript here will be beneficial, over, eg: autogen declarations. Imo it mainly boils down to improved dev tooling and type-checking sanity checks. I think the benefits outweigh the additional machinery and differences with other libp2p repos.
The current gossipsub codebase has many rough edges and using typescript here clears up many ambiguities. As part of this process, several bugs were found just from having type-checking. While these bugs were obvious in hindsight, those particular issues would have never passed the base level of scrutiny we get using typescript. I'd love to see this gossipsub implementation be polished and be easily shown to be correct, and I think type-checking plays a role here.
The dev tooling aspect is also useful to call out. I've been working on gossipsub v1.1 in a local branch, and having the full IDE type-checking/hinting and autocompletion significantly reduces the mental burden of eg: spelling out logic with app-specific datastructures. We're able to declare datastructures with interfaces (in the case of gossipsubv1.1, these interfaces can be fairly large and wordy) and seamlessly use these to aid development without having to navigate opaque objects by hand. Using vanilla js, I was struggling to have my IDE link JSDocs throughout the project, and having to manually check for typos and correct usage, so the experience was not nearly so pleasant.
Remaining thoughts are how to best do this PR w/o negatively impacting the js-libp2p ecosystem and with maximal standardization/collaboration with the js-libp2p ecosystem.
I would love to keep using aegir where possible, (using it for linting eventually, if/when supported), and the current structure is an attempt to simply extend the current processes to a typescript codebase. Ideally after ts => js transpilation/pre-processing, "things can be treated the same".
Perhaps this may be the only js-libp2p repo using typescript, but I would like to get this right to maximally align with the whole ecosystem so it doesn't have to be treated strangely and can benefit from standardization.

@wemeetagain thanks for exposing your thoughts. I agree with your thoughts and we should move on the way you are working on!

FYI, just released 0.4.3 with this PR and a custom aegir on my local machine to skip the dirty validation


multi-user Julia notebook

I would like to set up multi-user notebooks on my server for my collaborators and I to do interactive computing in Julia.
I am not sure weather the way to go is via https://github.com/jupyter/jupyterhub or https://github.com/JuliaLang/JuliaBox, but I think both there projects are connected with IJulia so that is why I post here.
What is the way to go and how achievable is my goal at the present time?

Follow the instruction of installing Jupyter-hub. Then you will have multi-user server.
After that, either install globaly julia/IJulia, to have a julia kernel availlable for each users, or let each user do it.
Julia and JupyterHub have roughly the same goals, JuliaBox predate JupyterHub, but Jupyterhub is less tightly coupled with rest of Jupyter/IPython.

Less tightly in what sense? I thought if anything, it would be more coupled, as it is an initiative of the original ipython people isn't it?
So can two users simultaneously edit the same notebook? I am thinking of something along the lines of Google Docs.

Less tightly in the sens that JupyterHub cold perfectly function for something else than the IPython notebook. It Basically act as a Proxy/Login page to redirect people to their server. We can enter into more detail if you wish.
And the IPython people are trying to do each of their pieces without coupling, because people like you might want to not use IPython at all and only Julia :-) Also we are splitting IPythonin a dozen or so components that can work together, but are reusable.
I am working  on Google drive real time integration. Which is not ready yet, and require a few deep refactoring in the notebook architecture to be do The Right Way, in the sens that it's pluggable so that you can use a local firebase or any other RT framework.
If you want realtime collaboration now you can give a try to sagemathcloud
In both cases IJulia is not really related to any of theses project. It is "Just" a think  layer that expose the Julia repl with the correct ZMQ network protocol.
Does that make sens ?

Yes, thank you for the detailed response. Real time collaboration would be a very nice feature for non-git people :) Is sage math installable on my own server? By the way, they do not mention Julia support.

Working on RT, would still be useful to have more people on Deck for that.
I think that most of sagemath cloud be install locally. Though I'm not sure. Yes there should be Julia support as it uses IPython protocol for Python, so it should be a matter of just installing IJulia.

Closing as not really an IJulia issue per se.


Error when running run.py

Hello sir, happy Nation Day！I've met some difficulties running the run.py.
Workspace:  .
configs/mvsgs/dtu_pretrain.yaml
configs/mvsgs/colmap_eval.yaml
EXP NAME:  dtu_pretrain
load model: ./trained_model/mvsgs/dtu_pretrain/latest.pth
Traceback (most recent call last):
  File "run.py", line 98, in <module>
    globals()['run_' + args.type]()
  File "run.py", line 55, in run_evaluate
    data_loader = make_data_loader(cfg, is_train=False)
  File "/home/sunzhenyu/Projects/MVSGaussian/lib/datasets/make_dataset.py", line 90, in make_data_loader
    dataset = make_dataset(cfg, is_train)
  File "/home/sunzhenyu/Projects/MVSGaussian/lib/datasets/make_dataset.py", line 39, in make_dataset
    dataset = dataset(**args)
  File "lib/datasets/colmap/mvsgs.py", line 19, in __init__
    self.build_metas()
  File "lib/datasets/colmap/mvsgs.py", line 51, in build_metas
    c2ws = c2ws[train_ids]
IndexError: index 4 is out of bounds for axis 0 with size 4

However, the colmap step is nothing wrong.
I don't know which part went wrong, so I'm going to ask for your constructive advice.

This means that train_ids is out of bounds of c2ws. Please check the value of train_ids and the shape of c2ws.

Hello sir, happy Nation Day！I've met some difficulties running the run.py.
Workspace:  .
configs/mvsgs/dtu_pretrain.yaml
configs/mvsgs/colmap_eval.yaml
EXP NAME:  dtu_pretrain
load model: ./trained_model/mvsgs/dtu_pretrain/latest.pth
Traceback (most recent call last):
  File "run.py", line 98, in <module>
    globals()['run_' + args.type]()
  File "run.py", line 55, in run_evaluate
    data_loader = make_data_loader(cfg, is_train=False)
  File "/home/sunzhenyu/Projects/MVSGaussian/lib/datasets/make_dataset.py", line 90, in make_data_loader
    dataset = make_dataset(cfg, is_train)
  File "/home/sunzhenyu/Projects/MVSGaussian/lib/datasets/make_dataset.py", line 39, in make_dataset
    dataset = dataset(**args)
  File "lib/datasets/colmap/mvsgs.py", line 19, in __init__
    self.build_metas()
  File "lib/datasets/colmap/mvsgs.py", line 51, in build_metas
    c2ws = c2ws[train_ids]
IndexError: index 4 is out of bounds for axis 0 with size 4

However, the colmap step is nothing wrong. I don't know which part went wrong, so I'm going to ask for your constructive advice.

Hey bro! I hope to know how you finally dealt with it, because I also encountered this problem, your answer is very important to me, looking forward to your reply

This happens to me too on some test scenes, any idea how to fix it? What actually is c2ws?


Change license to Apache-2.0

Proposed change(s)
Change the ros2 branch codes to Apache-2.0
Useful links (GitHub issues, forum threads, etc.)
Disscussed in private discord server
Types of change(s)

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Code refactor (non-breaking change which refactor the code)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update only
[x] Other (please describe)

Testing and Verification
No tests
Checklist

[x] I have checked to ensure there aren't other open Pull Requests for the same change.

Other comments

It's better to use Apache-2.0, many thanks!


Get examples pipeline passing

https://github.com/bacalhau-project/examples/pull/7/files should fix the examples pipeline but for some reason it's not working - debug & fix that PR and land it

Examples are green!


module 'torchvision' has no attribute 'version' [0.4.2]

🐛 Bug

To Reproduce
Steps to reproduce the behavior:

print("Torchvision Version: ",torchvision.__version__)

AttributeError: module 'torchvision' has no attribute 'version'
Environment

PyTorch / torchvision Version (e.g., 1.0 / 0.4.0): pytorch: 1.3.1, torchvision: 0.4.2
OS (e.g., Linux): Ubuntu 19.10
How you installed PyTorch / torchvision (conda, pip, source): conda
Python version: 3.7
CUDA/cuDNN version: 1.01

Hi,
Can you try updating to version 0.5.0, and also update PyTorch to 1.4.0?
This works for me locally.
I'm closing the issue, but let us know if this still persists for you on the last version.


Add back tests for custom environments

The old Connect experience used an AzureEnvironment class that had unit tests. The functionality of this class still exists in a form in the dialog, so we should refactor the tests back in.

Stretch goal for 1.20


Make check failed in run_par_tests.sh

Software:

MPICH 3.3.2, compiled from source
zlib 1.2.11, compiled from source
HDF5 1.12.0, compiled from source
PnetCDF 1.12.1, compiled from source
netCDF-C 4.7.4

Environmental information:

System: Ubuntu 20.04 - 64bit
Compiler: autotools (configure)
CPU: Intel 8700 with 6 cores and 12 threads

Configuration:
CC=mpicc \
CPPFLAGS="-I/usr/local/hdf5/1.12.0/include -I/usr/local/pnetcdf/1.12.1/include -I/usr/local/zlib/1.2.11/include" \
LDFLAGS="-L/usr/local/hdf5/1.12.0/lib -L/usr/local/pnetcdf/1.12.1/lib -L/usr/local/zlib/1.2.11/lib" \
./configure \
    --enable-pnetcdf \
    --enable-parallel-tests \
    --prefix=/usr/local/netcdf-c/4.7.4

Then make check and got errors.
Errors in h5_test/test-suite.log:
Testing parallel I/O with HDF5...

Please see the FAQ page for debugging suggestions

Solved.

Add
export LD_LIBRARY_PATH=/usr/local/hdf5/1.12.0/lib:$LD_LIBRARY_PATH

in .bashrc to solve the problem mentioned above.

Mocify configuration to finish compilation.


Extend linkify-branch-references to more places

Description
When making changes in a project without write access, GitHub will automatically create a fork and display a tip (first screenshot). The text "created a fork of this project" in the tip is bold, I think it's a good candidate for putting a link to the fork.
If the fork is already created, the description will change to include the forked repo name (second screenshot).

Resovled
Also, the branch references in hovercards can also be linkified:

Screenshot

Example URL
https://github.com/kidonng/nixpkgs/edit/master/README.md

If it's 2 lines and part of "linkify branch refs" I wouldn't be opposed to it, but the same link is available on the fork button:

still 1 click if you don't have organizations
2 clicks if you have them

PR welcome if part of the existing feature (even with the feature freeze), but I won't be leaving this issue open.

There are many things in hovercards that can be linkied:

Labels:

Organization repositories/members:

Organization team usernames:

There are many things in hovercards

Yeah, I'd rather not touch them 😃

Extend linkify-branch-references to more places

Time to rename this, e.g. linkify-useful-text

Merging https://github.com/refined-github/refined-github/issues/4873 here


New integration: Concourse CI

What does this PR do?
Creates an integration configuration tile for concourse-ci metrics emitted.
Motivation
What inspired you to submit this pull request?
Add native support for concourse-ci emitted metrics.
Review checklist

[ ] PR has a meaningful title or PR has the no-changelog label attached
[ ] Feature or bugfix has tests
[ ] Git history is clean
[ ] If PR impacts documentation, docs team has been notified or an issue has been opened on the documentation repo

Additional Notes
Anything else we should know when reviewing?

Is this live on staging?

Let's not merge for now, waiting for product management to confirm this is the right repo.

@DataDog/agent-integrations
Moving this to integrations-extras:
https://github.com/DataDog/integrations-extras/pull/238


Data Science with Python : Linear Regression Algorithm

Welcome to 'DSWP' Team, good to see you here.
This issue will helps readers in acquiring all the knowledge to learn about getting involved with Linear Regression Algorithm. Tutorial to Linear Regression Algorithm and how it's applied using sample code.
To get assigned to this issue, add your serial numbers mentioned in the spreadsheet of "Data Science with Python", the approach one would follow and choice you prefer (Documentation, Audio, Video). You can go with all three or any number of options you're interested to work on.
This issue is created for beginners and who aren't assigned to any issues yet.
If you had referred any resources, add them up in "DS Resources". Similarly if you had used datasets, include them in "DS Datasets".
Domain : Machine Learning
Mentors Assigned : Peehu Saxena / Kareem Negm
Points to Note :
The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title should be the same. Include issue number along with it.
Changes should be made inside the Datascience_With_Python/ directory & Datascience_With_Python branch.
Follow Contributing Guidelines & Code of Conduct before start Contributing.
This issue is only for 'GWOC' contributors of 'DSWP' domain.
All the best. Enjoy your open source journey ahead. 😎

Approach: using the optimal dataset to explain linear regression
Id: 253
format: Documentation

Issue assigned to @ayushijindal for documentation

Hello, I am M. Ashish Reddy. I would like to do documentation on this issue. @prathimacode-hub
Batch number: 5
serial number:174.
I am done with my first issue @prathimacode-hub. So can you please assign this

I would like to work on this issue. @prathimacode-hub
Name: Basudev Tyagi
Batch: Data Science with Python Batch-13
Type: Documentation

Name: Pranjal Mittal
Batch: 19
type: Documentation
I would love to work on this issue

/assign documentation

Name :Archana M
Batch:15
type :audio
could you assign it to me.

Update on the issue:
Format: Documentation
I am working on the .ipynb file part, soon I'll add PR for this issue.
I have taken a dataset to make the concept more understandable.
Also, start working on the README.md file.

Hello @prathimacode-hub , please assigned me the issue

@prathimacode-hub ,please assign me the issue

Hello mam , @prathimacode-hub , Can you please assign me video for this issue.
Approach: A detailed and clear explanation.

Issue assigned to @ashish-reddy-20-08 for video contribution

@prathimacode-hub , Can you please evaluate my pr mam.
Link: https://github.com/girlscript/winter-of-contributing/pull/3840

Hello, I am Deepthi M with serial number:198, Batch-5. I would like to do audio on this issue.
my approach: A detail explanation.


Release task: What's new in 2.6.7 (with 2.6.6)

Similar to https://github.com/rancher/dashboard/issues/5638, this ticket is to update dashboard/content/docs/en-us/whats-new.md with material that appears in the UI about what's new. This was missed in 2.6.6.
Checking with @wjimenez5271 what needs to go in.
(Normally there would be a ticket like https://github.com/rancher/rancher/issues/37315 for the overall release, so I'm jumping the gun a bit.)

Filed moved to https://github.com/rancher/dashboard/blob/master/shell/content/docs/en-us/whats-new.md
Initial PR: https://github.com/rancher/dashboard/pull/6449 (draft)

Most of content in the PR now, though checking if wording for the sole 2.6.6 item can be refined from Team 1. Should be able to get this into review shortly.

Content in place.

Ticket #6430 - Test Results
With Docker on a single-node instance:
Verified on rancher v2.6-89fec60628df484c6a136e49ac5b49834df0b51d-head:

Fresh install of rancher v2.6-head
Verified, What's new in 2.6 is seen on Home
From Home, select What's new in 2.6
Verified - New 2.6.7 content is listed
Veri-FAILED - AWS Marketplace link broken; 404 - Not Found
Veri-FAILED - Typo seen under Kubernetes 1.24;

Currently: Kubernetes 1.24 is now a supported Kubernetes version for running Rancher as well for provisioned and imported RKE1/RKE2/k3s clusters.
Suggested-fix: Kubernetes 1.24 is now a supported Kubernetes version for running Rancher as well as provisioned and imported RKE1/RKE2/k3s clusters.

Screenshots:
Step 2 - Verified

Step 4 - Verified

Step 5 - Veri-FAILED

Step 6 - Veri-FAILED

Ticket #6430 - Test Results [pt. 2]
With Docker on a single-node instance:
Verified on rancher v2.6-cd97f6fd1e894dd8677efa2fa87c57d7c7a68d54-head:

Fresh install of rancher v2.6-head
From Home, select What's new in 2.6
Observe Kubernetes 1.24 section
Verified - Description clearly states the following:

Kubernetes 1.24 is now a supported Kubernetes version for running Rancher as well as for provisioned and imported RKE1/RKE2/k3s clusters.


[PROPOSAL]: Increase the usage of augmented assignment statements

Proposal
:eyes: Some source code analysis tools can help to find opportunities for improving software components.
:thought_balloon: I propose to increase the usage of augmented assignment statements accordingly.
Would you like to integrate anything from a transformation result which can be generated by a command like the following?
(:point_right: Please check also for questionable change suggestions because of an evolving search pattern.)
lokal$ perl -p -i.orig -0777 -e 's/^(?<indentation>\s+)(?<target>\S+)\s*=\s*\k<target>[ \t]*(?<operator>[+%^@]|-(?!>)|&(?!&)|\|(?!\|)|\*\*?|\/\/?|<<|>>)/$+{indentation}$+{target} $+{operator}=/gm' $(find ~/Aktivitäten/Colossal-AI/lokal -name '*.py')

:crystal_ball: How will the development interests evolve further also according to update candidates in 194 lines of this software?
Self-service

[ ] I'd be willing to do some initial work on this proposal myself.

Hi @elfring  Thank you for the interesting proposal.
Would you please submit a PR to point this out with some example?
We very much welcome contributions from the open source community, thanks.

:thought_balloon: Would you dare to perform a source code search and corresponding replacements in another development repository with the help of the shown Perl command example?

We have updated a lot. This issue was closed due to inactivity. Thanks.


Investigate using Oimo instead of Cannon

https://github.com/lo-th/Oimo.js/

Might even look back again at ammo.js. All of the physics engines out there have their drawbacks so need to choose one that looks suitable for the long run.


portainer 1.23.1 fails to deploy against known external network

Bug description
Portainer 1.23.1 appears to have issues deploying stacks when containers are using an external network.
Expected behavior
Stacks and their resources should always deploy when using external networks.
Log Details
Portainer
Using details from this article, I only get one error:

2020/02/24 19:57:57 http error: Network  declared as external, but could not be found. Please create the network manually using docker network create  and try again (err=Network  declared as external, but could not be found. Please create the network manually using docker network create  and try again) (code=500)

Docker
I got the following logs via this article:
${EDITOR} /etc/docker/daemon.json  # With '{ "debug": true }' as the content

Attempting a stack deploy yielded the following docker DEBUG level logs:
1.23.1 Stack Deploy (FAIL)
time="2020-02-24T19:43:42.619142054Z" level=debug msg="Calling GET /_ping"
time="2020-02-24T19:43:42.619190400Z" level=debug msg="Client and server don't have the same version (client: 18.09.3, server: 1.12.6)"
time="2020-02-24T19:43:42.619609559Z" level=debug msg="Calling GET /v1.24/info"
time="2020-02-24T19:43:42.619720686Z" level=warning msg="Could not get operating system name: Error opening /usr/lib/os-release: open /usr/lib/os-release: no such file or directory"
time="2020-02-24T19:43:42.623374083Z" level=debug msg="Calling POST /v1.24/auth"
time="2020-02-24T19:43:42.623459626Z" level=debug msg="form data: {\"password\":\"*****\",\"serveraddress\":\"internal.registry.tld:5000\",\"username\":\"portainer\"}"
time="2020-02-24T19:43:42.623622369Z" level=debug msg="attempting v2 login to registry endpoint https://internal.registry.tld:5000/v2/"

1.23.0 Stack Deploy (SUCCESS)
time="2020-02-24T19:46:18.083176083Z" level=debug msg="Calling GET /_ping"
time="2020-02-24T19:46:18.083230483Z" level=debug msg="Client and server don't have the same version (client: 18.09.3, server: 1.12.6)"
time="2020-02-24T19:46:18.083670053Z" level=debug msg="Calling GET /v1.24/info"
time="2020-02-24T19:46:18.083789146Z" level=warning msg="Could not get operating system name: Error opening /usr/lib/os-release: open /usr/lib/os-release: no such file or directory"
time="2020-02-24T19:46:18.086976482Z" level=debug msg="Calling POST /v1.24/auth"
time="2020-02-24T19:46:18.087031966Z" level=debug msg="form data: {\"password\":\"*****\",\"serveraddress\":\"internal.registry.tld:5000\",\"username\":\"portainer\"}"
time="2020-02-24T19:46:18.087172969Z" level=debug msg="attempting v2 login to registry endpoint https://internal.registry.tld:5000/v2/"
time="2020-02-24T19:46:18.136832595Z" level=debug msg="Calling GET /v1.24/networks/"
time="2020-02-24T19:46:18.137577290Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dgogsstack%22%3Atrue%2C%22com.docker.compose.service%3Dgogs%22%3Atrue%7D%7D&limit=0"
time="2020-02-24T19:46:18.138401977Z" level=debug msg="Calling GET /v1.24/containers/febcc6564bc7b441b08e94d519e6696d0267d09bde264f2aaf401c923b5d762d/json"
time="2020-02-24T19:46:18.139729014Z" level=debug msg="Calling GET /v1.24/images/internal.registry.tld:5000/gogs:latest/json"
time="2020-02-24T19:46:18.140652902Z" level=debug msg="Calling GET /v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dgogsstack%22%3Atrue%2C%22com.docker.compose.service%3Dgogs%22%3Atrue%7D%7D&limit=0"
time="2020-02-24T19:46:18.141111638Z" level=debug msg="Calling GET /v1.24/containers/febcc6564bc7b441b08e94d519e6696d0267d09bde264f2aaf401c923b5d762d/json"
time="2020-02-24T19:46:18.141920805Z" level=debug msg="Calling GET /v1.24/images/internal.registry.tld:5000/gogs:latest/json"
time="2020-02-24T19:46:18.142854111Z" level=debug msg="Calling POST /v1.24/containers/febcc6564bc7b441b08e94d519e6696d0267d09bde264f2aaf401c923b5d762d/start"
time="2020-02-24T19:46:18.142904012Z" level=error msg="Handler for POST /v1.24/containers/febcc6564bc7b441b08e94d519e6696d0267d09bde264f2aaf401c923b5d762d/start returned error: Container already started"
time="2020-02-24T19:46:18.167213485Z" level=debug msg="Calling GET /_ping"
time="2020-02-24T19:46:18.167267317Z" level=debug msg="Client and server don't have the same version (client: 18.09.3, server: 1.12.6)"
time="2020-02-24T19:46:18.167721828Z" level=debug msg="Calling GET /v1.24/info"
time="2020-02-24T19:46:18.167849360Z" level=warning msg="Could not get operating system name: Error opening /usr/lib/os-release: open /usr/lib/os-release: no such file or directory"
time="2020-02-24T19:46:18.343487201Z" level=debug msg="Calling GET /containers/json?all=1&filters=%7B%22label%22:%5B%22com.docker.compose.project%3Dgogsstack%22%5D%7D"

Steps to reproduce the issue:
Input Stack
version: "2"

services:
  gogs:
    image: internal.registry.tld:5000/gogs:latest
    container_name: gogs
    restart: unless-stopped
    networks:
      web_network:
        ipv4_address: <IP_ADDRESS>
    environment:
      - PUID=PUID
      - PGID=PGID
    ports:
      - 10022:22
    expose:
      - 3000:3000
    volumes:
      - /path/to/gogs:/data

networks:
  web_network:
    external: true

Technical details:

Portainer version: 1.23.1
Docker version (managed by Portainer): 1.12.6 (API: 1.24)
Platform (windows/linux): linux x86_64 running portainer container from Docker Hub.

I know my external networks are working correctly as my portainer startup command is binding to an external network itself.

And I just confirmed again that:

Downgrading back to 1.23.0 corrected the problem.

Hi there @urda , I have just confirmed your bug. I also note that I encountered this bug when deploying a basic stack on 1.23. Have you encountered this at all? I created the network simply with docker network create web_network

@itsconquest Because I use this web_network as my "reverse proxy"  related network.
For issue #3559 I did not see an error like that, not 100% sure if related.

Portainer 1.23.2 is still affected by this bug. I can also confirm that reverting to 1.23.0 fixes the problem.

I have the same problem with 1.23.2, I'll test with 1.23.0 to confirm the fix

1.23.0 fixes the issue
`version: "2"
services:
nb:
restart: always
image: jupyter/scipy-notebook
container_name: nb
networks:
- jupytus
volumes:
- nb:/home/jovyan/work
environment:
- VIRTUAL_HOST=n.....z
- VIRTUAL_PORT=8888
- LETSENCRYPT_HOST=n.....z
- LETSENCRYPT_EMAIL=g.....g
- JUPYTER_ENABLE_LAB=yes
- RESTARTABLE=yes
command: ["/usr/local/bin/start-notebook.sh","--NotebookApp.password='sha1:f1054a09.................72cb154eb'"]
networks:
jupytus:
external:
name: jupytus
volumes:
nb:`

Interesting, this could be related to the fact that we bumped up libcompose version inside the 1.23.1 version of Portainer.
Another problem with libcompose AFAIK.

Hey all, just here to say I'm also affected by the bug. The referenced network exists and running docker compose with version 1.17.1 on the host directly deploys fine.

Confirmed reproduced on 1.23.2

Looks like this is a duplicate of #2041


Missing version: '3' in docker-compose.yml

Missing version: '3' in docker-compose.yml

No the version tag is omitted in new compose versions

The version tag was made obsolete some time ago: https://forums.docker.com/t/docker-compose-yml-version-is-obsolete/141313

won't launch for me without version tag

won't launch for me without version tag

Update your compose version

The "version" attribute of docker compose is obsolete

You should switch from docker-compose (which was a Python script) to docker compose which is a plugin to the docker cli (install guide)
The former is deprecated.


Doc: Grafana watcher

Hi, thank you so much for whole repo and guidance to make it clear things for me. Before starting to use prometheus operator I would like to do everything manual to learn as much as possible. Current organization of the repo has some doc issues regarding its potential. If you don't mind, I will open some issues to improve documentation? I would like to start about Grafana Watcher. There might be a README file in the directory of it.

What is the use case of it?
Example usage?
How can grafana dashboard must be modified? (which is actually my problem)

thanks

Absolutely a valid case! I'll make sure we add docs about it!

@brancz I added these points to #98.

For now I think we'll keep that documentation local to the directory it lies in, and not move it into the main Documentation/ directory, but thanks for doing that @galexrt! We'll track it from there and close here, thanks for reporting @cemo !


Add fees components for swaps

@fbwoolf do we need design guidance here?

Not specifically for the fee page bc we will reuse the designs from btc choose fee, but we do need a design flow for when fees are used. How are we handing when sponsored txs are disabled (when there is one pending)? How will the user be notified about this and decide to pay the fee themselves, etc? I don't understand at this point when this page is actually needed in the swap flow.


Validator replacement/configuration and $builtInValidators

In my extension, i want to

add a new shortname 'datetime' for my custom DatetimeValidator
set the default $format value for the DateValidator

problem:
i can't change the yii\validators\Validator class to my own neither in configuration, nor in bootstrap.
within bootstrap, only replacing the DateValidator with DI works like:
\Yii::$container->set('yii\validators\DateValidator', [
	'class'  => 'yii\validators\DateValidator',
	'format' => 'yyyy-M-d H:m:s',
]);

working solution, in my extensions bootstrap:
class DataBootstrap implements BootstrapInterface
{
    public function bootstrap($app)
    {
    	\yii\validators\Validator::$builtInValidators['datetime'] = [
    		'class'  => 'yii\validators\DateValidator',
    		'format' => 'yyyy-M-d H:m:s',
    	];

    	\yii\validators\Validator::$builtInValidators['date'] = [
    		'class'  => 'yii\validators\DateValidator',
    		'format' => 'yyyy-M-d',
    	];
    }
}

i expected such options to be configurable.
BTW:
i don't get what all the internationalisation is about with validators, since i always need all values in db-format.
on client-side, i usually have some javascript to do calculations, so number and dateformats again have to be stored in 'computer' format.
Further, datetime respects intl, number does not.
IMHO, the only reason for conversion is displaying values in user friendly format. so in webforms, why not implement (display-)input in user-friendly format linked to hidden input in db/iso-format by design?

Yeah, changing static parameter \yii\validators\Validator is the only solution for you now.
But usually it's fine to write something like this:
public function rules()
{
    return [
        [['foo'], BarValidator::class],
    ];
}

I'm closing the issue since it is not supported by community as required and the original problem could be already solved by different ways.


Speed up reference loading.

Changes of note:

use ujson to parse, if it is installed. Actually, that's not even necessarily the fastest, but it seems very common
option "simple templates" which, if True, uses replace instead of jinja
LRU cache for the templating (is simple_templates is False)
quicker exit from building the directory cache

One obvious thing not implemented here is to have the directory listing be lazy, rather than computed up front. That will become more important when the size of the reference set itself becomes significant.

Folded into #640


tokenBalances(userAddress??) -> Array(int/bigint):

[x] Create function tokenBalances(userAddress??) -> Array(int/bigint): Iterates from the tokens.json lists and returns the balances of those tokens for the given account or the account in context
[x] use this function to show a list of balances in Balances.tsx:

Done on pull request #23


Reproduce Flatwall experiment

Hello, first of all, thank you for generously opensource this repository.
From your paper and the project page, I understand that Glim is able to recovery from lidar degeneration. I try to verify that using the flatwall_01 data but couldn't able to reproduce the recovery. Below is my configuration, could you show me which is wrong in my configuration.
Addtional question: Which module are mainly reponsible to recovery from degeration ( odometry_estimation, submapping or global mapping )?
config_sub_mapping_cpu.json
config_global_mapping_cpu.json
config_odometry_cpu.json
config_ros.json
config_sensors.json

The odometry estimation module is the main part to deal with point cloud degeneration, and for the flatwall experiment, you need to use OdometryEstimationGPU. You can find the configuration file here. Note that the framework has been largely updated since the first release, and it may show slightly different results for a few sequences.

Thanks for the prompt reply. Close threat here.


Fix Errors Uncovered During Unit Test Execution

Critical Changes
Changes
Issues Closed
New Metadata
Deleted Metadata

@force2b - This is ready when you get back!  I made a few minor additional updates to the unit test class for the OPP_OpportunityNaming_BATCH_TEST class to use the UTIL_UnitTestData_TEST calls instead of how it was doing it, just to close that out.

**lurch: attach W-036512

Tracking W-036512


Add link to example contributing.md

Ready for review? :-)

Haven't tested it yet, just threw in what I thought would work.

Okay.
/me waits for the :hand: sign ...

Set for review. Took a little to get running with the crypto stuff in master now. Upgrading Python to 2.7.11 let me install everything though.

Rebased and added 4ad94f335950dc66ffedd5e646f3afdaa6bcf11e to clean up whitespace.


#2375 use type from snapshot2

Description
Now, when we create a datasource with a data snapshot, the types and roles will be set automatically with the information from the snapshot.
Related Issue : https://github.com/metatron-app/metatron-discovery/issues/2375
How Has This Been Tested?

Import and wrangle s5k_1.csv.txt
Create a snapshot without any change.
See the snapshot detail page.
Click "Create datasource" button.
See the datasource creating pop-up with appropriate types, roles, timestamp setttings.

Need additional checks?
Yes, please.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have read the CONTRIBUTING document.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.

run build
deploy to 6

Integrated test done.


Register leetcode-api-track.is-local.org

Added leetcode-api-track.is-local.org using the CLI.

CLA Assistant Lite bot: Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.

I have read the CLA Document and I hereby sign the CLA

You can retrigger this bot by commenting recheck in this Pull Request


no-console -- new config which offers ability to add custom failure string

There wasn't a public outcry for this enhancement or anything :laughing: . I do think it's a worthwhile feature but my feelings wont be hurt if it doesn't make it in.
PR checklist

[X] Addresses an existing issue: #3923
[X] New feature, bugfix, or enhancement

[X] Includes tests

[X] Documentation update

Overview of change:
Adds a new configuration object to the no-console rule, but hopefully maintains the legacy configuration.
Is there anything you'd like reviewers to focus on?
Did I cover all my bases with the new config? Am I properly accounting for legacy configurations?

@aervin this feels like an unnecessary feature that enlarges the API for little real benefit. this feature would make more sense if all rules supported it, but that just feels way over the top complex. why support customizing the error for just this one rule? you could instead use ban, which already supports custom error messages.

the more i think about this, the more it's obvious that this should be handled with ban, not via no-console.

Okay yeah you're right about ban. Close this out if you like 👍

@aervin yes the code examples would be cool for ban. separate PR please.


Update Lute Lemma output and manual page, and add tests!

Lute lemma currently doesn't export things in the right v3 format.  Needs fix.  And I don't see any sample import tests, there may be some.

Not doing this.  Have removed the bulk parent import feature, so this is far less pressing.


SDK-155 Java-SDK: Create test coverage for configuation.SymConfigLoader

Ticket
SDK-155
Coverage

The 2 failed tests pass on my computer


Move kubecf-specific scripts from catapult

Is your feature request related to a problem? Please describe.
We now have multiple ways of deploying and configuring kubecf, and they are split between the kubecf and suse/catapult repos.
Describe the solution you'd like
Build and run code that exists in catapult should live in kubecf-tools and kubecf.
Scripts that can be reused and are useful for other projects should go in kubecf-tools, the rest should go in kubecf.
Additional context
n/a

Blocked by RFD-9 https://github.com/cloudfoundry-incubator/kubecf/pull/1495/


How to use this docker image?

Hello,
When I run this image, I doesn't go into hive environment:
[zd@VM-0-5-centos ~]$ sudo docker run --rm meneal/docker-hive
2021-06-27 11:03:37: Starting Hive Metastore Server
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/apache-hive-3.1.2-bin/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

When I try with interactive mode, error reported:
[zd@VM-0-5-centos ~]$ sudo docker run --rm -it meneal/docker-hive /bin/bash
[sudo] password for zd:
bin/hive: line 351: ps: command not found
bin/hive: line 351: ps: command not found
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/apache-hive-3.1.2-bin/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Hive Session ID = cbdae5aa-f9e3-4890-9eb1-3e6d2f82ffff

Logging initialized using configuration in jar:file:/opt/apache-hive-3.1.2-bin/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
Exception in thread "main" java.lang.RuntimeException: The dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxr-xr-x
        at org.apache.hadoop.hive.ql.exec.Utilities.ensurePathIsWritable(Utilities.java:4501)
        at org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:760)
        at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:701)
        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:627)
        at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:591)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:747)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:318)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:232)

Any suggestions?
Best,
Shixiang

Sorry for the inconvience! This container image is designed as Hive metastore and Hive server2 that works with Object storage backend (like MinIO or S3) instead of HDFS, so the above error message is expected. more docs will be added on how to configure it.
If you're looking for a working setup of HDFS + Hive, personally I recommend big-data-europe/docker-hive which works out of box when using docker-compose.

Thanks


fix har-validator dependency

Summary
har-validator has a version mismatch (see https://github.com/ahmadnassri/node-har-validator/issues/113) in which the npm version is the 5.1.3, but the package.json says 5.1.2. This leads to an error doing a npm install in a project depending on your module.
Simplest Example to Reproduce

npm install in a project with a dependency to<EMAIL_ADDRESS>Expected Behavior

npm install should run smoothly
Current Behavior

npm ERR! code ETARGET
npm ERR! notarget No matching version found for<EMAIL_ADDRESS>npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of 'request'
npm ERR! notarget

Possible Solution

Update dependency to be "har-validator": "~5.1.3" instead of "har-validator": "~5.1.0"
Your Environment

software
version

request
2.88.0

node
8.11.3

npm
6.4.1

Operating System
Linux Mint

But it doesn't work!

@Keekuun that is strange. To solve this on an Angular7 project I simply had to install<EMAIL_ADDRESS>as a direct dependency and so it worked

Thanks, I've  just solved it with the command "npm install  har-validator"


Parameterize abstract filters

https://github.com/sisl/GaussianFilters.jl/blob/1aa2a648021ea9c558b114f5d85065761a7d1625/src/ekf.jl#L9-L15
ExtendedKalmanFilter should be parameterized by DynamicsModel and ObservationModel types.

Parameterizing by the DynamicsModel and ObservationModel types will indeed yield significant performance improvement, but these parameters need not be present in function signatures, for example:
 function predict(b0::GaussianBelief, u::AbstractVector, filter::ExtendedKalmanFilter)

will have identical performance to
 function predict(b0::GaussianBelief, u::Vector{a}, filter::ExtendedKalmanFilter) where a<:Number

as you have now