Can't create a user as a non-admin

Description
The docs say that with the default configuration everyone should be able to create a new user through the _users endpoint. If I try to do that though, I receive the {"error":"unauthorized","reason":"You are not authorized to access this db."} response. The only way I can successfully create a user right now is by using admin credentials. I have not changed any configuration and require_valid_user  is set to false.
Steps to Reproduce
Expected Behaviour
Your Environment

CouchDB version used: 3.0.0
Browser name and version: /
Operating system and version: Ubuntu 18.04

Additional Context

Thanks for the report. This is a duplicate of apache/couchdb-documentation#513 .
We'd love a pull request there to help with this.
You do have to create an admin first, then use the admin user to create other users as the default in 3.0.
https://docs.couchdb.org/en/stable/whatsnew/3.0.html

Thank you for the quick response @wohali .
What was the reasoning behind changing this and only allowing admins to create new users by default?
I also saw that there is a new setting called users_db_security_editable, which defaults to false. The docs say the following:

When this configuration setting is set to false, reject any attempts to modify the _users database security object. Modification of this object is deprecated in 3.x and will be completely disallowed in CouchDB 4.x.

If I interpret this correctly, editing the _users/_security object will not be possible anymore in the future. Since it defaults to admins only, this will be the only option for creating users then. Given these changes, what would you say are the best practices for creating users going forward?
I liked CouchDB, because the http API was built-in. Since I can't hardcode admin credentials into the clients, I will need a middleman API then, which acts as an admin during user creation. Is that how you intend user creation to work in the future?

CouchDB has been steadily moving away from the "CouchApps" model (where Couch directly interacts with a web browser) for a long time. The very large percentage of adoption of CouchDB has been in a traditional database layer.
We discuss some of the reasons behind the change in our documentation, and there's been many discussions on the mailing lists about this.
As recommended there, a great option would be to stand up your favourite server next to CouchDB - it can even be something small in JavaScript via Node.JS - and use that to create users in CouchDB, itself leveraging admin credentials to do so.

Thank you for the quick response @wohali .
What was the reasoning behind changing this and only allowing admins to create new users by default?
I also saw that there is a new setting called users_db_security_editable, which defaults to false. The docs say the following:

When this configuration setting is set to false, reject any attempts to modify the _users database security object. Modification of this object is deprecated in 3.x and will be completely disallowed in CouchDB 4.x.

If I interpret this correctly, editing the _users/_security object will not be possible anymore in the future. Since it defaults to admins, this will be the only option for creating users then. Given these changes, what would you say are the best practices for creating users going forward?
I liked CouchDB, because the http API was built-in. Since I can't hardcode admin credentials into the client, I will need a middleman API then, which acts as an admin during user creation. Is that how you intend user creation to work in the future?

Is the answer that the default will be false in 4.x?


P75 Missing $applyAsync stuff here as well

Same as #181

All added, thanks!
Looks like $applyAsync is applied to the book asynchronously - pun intended.


[chisel5] git subtree add FIRRTL

Move the FIRRTL repository in-tree. This is done in preparation for the upcoming Chisel 5 release. For more information on this, refer to the ROADMAP.md.
This is a draft until the Chisel 3.6 release is out. I will keep this and dependent PRs up-to-date until this release happens.
To update this, I find it easiest to just redo the operation that added the subtree:
git subtree add --prefix firrtl https://github.com/chipsalliance/firrtl master

Also, this is a patch that is broken out of @azidar's original chisel5 branch in order to make later changes more easily reviewable. (This patch only does the git subtree add and nothing else.)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.8 out of 10 committers have signed the CLA.:white_check_mark: scala-steward:white_check_mark: mwachs5:white_check_mark: jackkoenig:white_check_mark: chick:white_check_mark: zyedidia:white_check_mark: ekiwi:white_check_mark: geekLucian:white_check_mark: seldridge:x: fabianschuiki:x: Alan-LiangYou have signed the CLA already but the status is still pending? Let us recheck it.


thread 'main' panicked at 'called `Result::unwrap()

While running the command
  --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
  --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
  cosmwasm/workspace-optimizer:0.12.8

in cw2-base smart contract getting error
cargo 1.63.0 (fd9c4297c 2022-07-01)
Building artifacts in workspace...
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { inner: ErrorInner { kind: Custom, line: None, col: 0, message: "missing field `workspace`", key: [] } }', src/main.rs:35:55
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Git Branch: main

You don't run workspace optimizer on the smart contract level - instead, you execute it in the root folder so you build all contracts in the workspace.


pkg_rpm doesn't set architecture in RPM metadata

Description of the problem / feature request:
I've created a pkg_rpm target which sets the architecture attribute to something other than the default (e.g. aarch64).
After building the RPM, if I query it using the rpm tool, it displays the wrong architecture (presumably using the host arch instead):
$ rpm -q --info bazel-bin/build/rpms/kubectl.rpm
Name        : kubectl
Version     : 1.15.0~alpha.0.328+caa70952409c03
Release     : 00
Architecture: x86_64
...

It looks like this is because the make_rpm.py script never actually passes the architecture to rpmbuild; this instance variable is never used:
https://github.com/bazelbuild/bazel/blob/6fc5b6e53be5f1b8b744789f35e1de6617ed7fe3/tools/build_defs/pkg/make_rpm.py#L187
What operating system are you running Bazel on?
Debian GNU/Linux rodete
What's the output of bazel info release?
release 0.22.0
What's the output of git remote get-url origin ; git rev-parse master ; git rev-parse HEAD ?
git@github.com:ixdy/kubernetes.git
a22763b24ee53b5efca5c60b000a63875a6b6f2a
caa70952409c03b099c9aa26abde9b2c77013f34

If you get a chance, can you send a small repo against the pkg_rpm in this repo?
I am trying to add proper tests for pkg_rpm and AFAICT it simply does not work at all.
But I can't tell if that is me or it is really broken. I am not keen on applying #75 until I am confident that it will not break anyone.

This was probably fixed. have to verify.

Ping for verification

This is not believed to be a problem in current versions of rules_pkg.  We have test code that sets the architecture to noarch, and it is respected (and tested):
https://github.com/bazelbuild/rules_pkg/blob/9748dfa1a9a884d4107e5980f4bb3fa330f18b15/pkg/tests/rpm/BUILD#L125-L145
If I change the architecture to something completely different (aarch64), I get output like this:
INFO: Analyzed target //tests/rpm:test_rpm (1 packages loaded, 9 targets configured).
INFO: Found 1 target...
INFO: From MakeRpm tests/rpm/test_rpm-1.1.1-2222.aarch64.rpm:
Error calling rpmbuild:
error: No compatible architectures found for build

No RPM file created.
ERROR: /Users/apsaltis/workspace-git/rules_pkg/pkg/tests/rpm/BUILD:125:8: output 'tests/rpm/test_rpm-1.1.1-2222.aarch64.rpm' was not created
ERROR: /Users/apsaltis/workspace-git/rules_pkg/pkg/tests/rpm/BUILD:125:8: MakeRpm tests/rpm/test_rpm-1.1.1-2222.aarch64.rpm failed: not all outputs were created or valid
Target //tests/rpm:test_rpm failed to build

This error is coming from rpmbuild, and thus proves that the architecture attribute is showing up as expected.  Fixing this problem (cross-building packages) is tracked in #323.


I expected to see a sample custom-elements.json

This repo is the first Google result for "custom-elements.json", yet nowhere is described what this file should look like in the README.
I suggest this README to show an example custom-elements.json as well as document the expected schema,. similarly to document that can be found online about package.json

Totally agree!  This is a duplicate of issues #39 and #40 so it could be closed in favor of adding suggestions there for what you would like to see included.

Agreed. I think we could also have a folder of samples, especially to demonstrate more complete features.
Tagging @thepassle who I suspect might have the most readily available samples from his work on the CEM analyzer.

I have a whole bunch of manifests here: https://github.com/open-wc/custom-elements-manifest/tree/master/packages/analyzer/fixtures
We can probably just reuse some of those.

https://github.com/webcomponents/custom-elements-manifest/pull/91 added an example. Very useful. Thanks.


More async eval

Companion to https://github.com/ml-explore/mlx/pull/998
Benchmarks generating with Gemma on M1 Max:
MLX_MAX_OPS_PER_BUFFER=10 python -m mlx_lm.generate --model mlx_model --prompt "Write a story about Einstein" --temp 0.0 --max-tokens 256

Pre: 128.018 tokens-per-sec
Post: 140.112 tokens-per-sec
Pre + Max Ops 80: 143.687 tokens-per-sec
Post + Max Ops 80: 164.307 tokens-per-sec

I did several tests on M3 Max, output result is consistent, performance similar,  but it's slower with --colorize
python -m mlx_lm.generate --model mlx-community/Mistral-7B-Instruct-v0.2-4bit --prompt "Write a story on Albert Einstein of 40 words" --seed 42
PRE:  75.0 t/s POST: 75.3
adding --colorize
PRE:  73.8 t/s POST: 70.4

Are you using the right version of MLX? This depends on a branch that is not in main yet..

You can try it if you want but you have to build this branch: https://github.com/ml-explore/mlx/pull/992
And it's pretty experimental right now, so be warned 😉

No I just applied the changed utils.py in the PR to test it against main.
I'll try the whole branch to test the speed! 🚀

Branch is always slightly faster in tests 🚀.
I confirm the slow down using --colorize, but this is not an issue no? At the end is like running the model in debug mode.

I confirm the slow down using --colorize, but this is not an issue no? At the end is like running the model in debug mode.

Yea less concerning. But will take a look to make sure nothing strange is going on there. I can't imagine why it would be slower than before with --colorize.. so that sounds a bit fishy.

Landed in #680


Supportapi: Linter code fixes to support.yaml

Description
Cleaned up issues pointed out by the yaml linter

MoveOrders is not a definition used in the supportapi (it's an array of move orders) - deleted it
UpdatePaymentRequest is not used - deleted it
Note MTOAgents is not used but was not deleted - we should be adding it to getMTO and listMTO so I left it in.
createdAt and updatedAt are readOnly values
According to OpenAPI 2.0 there should be a defined set of global tags, added these and noticed some cleanup that could be done
All other tag names are singular not plural so paymentRequests --> paymentRequest

Reviewer notes
There should be no change in behavior (other than not being able to send in createdAt, updatedAt)
However the tag name changes changed some package names, so there's cleanup of the imports.
Most changes are related to payment request and so testing updatePaymentRequestStatus would be great.

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against f525e3a43d6d083261eafd4a65131c4377f0a8bb


Add wild card support for --scripts option

Description
issue #4112
When we execute scripts, we have to specify scripts one by one with "--scripts" option.
I added wild card support for --scripts  option ,so that we can specify scripts all at once.

Thanks, I applied your suggested changes.

Please add a changelog entry - as decribed in the Pull Request template.

Thanks, I added a changelog entry.

Thanks, I applied your suggested changes.

@mhils Could you please review this?

@mhils Could you please review this?

I'm quite busy at the moment, sorry. It definitely needs a dedicated test, and we should use pytest's tmpdir when writing files. I can take a closer look once that's in starting Friday.


Added an extra check when looking up the gitsavvy repo_path

When looking up the repo_path in git_command, it was possible to find a non-existing path that would make everything fail. This verified the path it find exists and if not, it will go the long way round to try to find one.

Would you mind squashing this into a single commit?  I'll merge as soon as that is done.  Thanks, this was a good thought.

im fairly new to git in terms of contributing.  I tried running git reset --soft HEAD~3 and then pushed back to github.  It doesnt look like it did what I thought it would.  What is the proper way to squash the commits into 1?

No worries!  If you're using GitSavvy - I'm assuming you are ;) - you can squash like so:

In the terminal, add a new remote for upstream: git remote add upstream https://github.com/divmain/GitSavvy.git.  This allows you to reference branches and commits in my canonical GitSavvy repo.
Open sublime in the GitSavvy repo.
git: fetch in the command palette, select upstream.  Now your local version of the repo knows the status of the upstream repo.
git: rebase in the command palette to open the rebase dashboard.
Press f to set which branch to compare your branch against - you should select upstream/master

Now the Rebase dashboard will be showing the difference between your branch and upstream/master.  Only one more step:

Press Q to squash all visible commits.  This will take the diffs and commit messages from all commits shown and squash them into a single commit.

Once you've squashed, do git push (force) to update your PR.  Let me know if any of that is unclear or something is left ambiguous.

Also, just realized that in your case you could do it much simpler.    Then git push --force and you should be good to go.

using the second suggestion worked.  PR is updated

Excellent, thanks!

:+1:


r

I am running in server and i have error:
Processing MPIIGaze/p00
Distortion map parameters updated.
fx: 994.74, fy: 998.17, cx: 624.66, cy: 364.09
: cannot connect to X server
Please help me,what is code i have to delete ? thanks

Hi there, if you comment out the code block at https://github.com/swook/faze_preprocess/blob/master/create_hdf_files_for_faze.py#L222 does it work?
Basically, the problem is caused because the cv.imshow command requires a display server.


Improved and added german translations

We have improved and added the german translations. It would be nice if they could be reviewed.
Thanks in advance and happy Hacktoberfest!

 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 have signed the CLA already but the status is still pending? Let us recheck it.

Thanks! I'll check it out when I have time.


add network piece

Could you add a network piece. Like "netstat  with set or select key word arguments. That tie back to process id too.
This would be helpful, when I'm troubleshooting process that tie back to sockets... And maybe resolve the IP to country of origin.

@bitbytes01 Would you describe the feature you proposed more detailed?
Like this:

I want to detect which process the socket tie back to, its running path, its state via netstat


Add more drawing tools

We should investigate other possible options (apart from path, rectangle, and circle that we have) for drawing annotations. This includes figuring out what's supported directly by d3 or finding widely used tools.
One obvious tool that we can add is multi-point lines.

Things to add

Straight line
Straight line with arrow
Polygon
Textbox

Tool-tips needs to added to the drawing tools.
Need to create documentation about how to properly use the annotation.

The documentation has been added as part of this PR in chaise


Make it possible to take a winit::Window in vulkano_win

My problem is the following: I want to separate window and surface/graphics. But since vulkano_win::Window makes the winit::Window private there is no way to keep the winit::Window alive if the vulkano_win::Window goes out of scope.
It's already possible to take the Surface and the Window is an unnecessary type afterwards.
This would be solved by 3afca4f1f64e876a4b5927d4b8be18042e68e7c1
This is probably related to #848 and #844
Sorry if this is too close to the other two issues, but it's a different view and might be helpful in the design of a solution.

Actually I marked this as "blocked" because vulkano_win is unsafe right now and needs a bit of a rework.

Any plans when it will be ready? I've seen you don't want to push the version too often. Would making a private field public (as temporary measure) count as breaking change?
Are there any relatively easy things that can be done to help?


fix: change order of installers

Is the failures due to debian.py::install being passed Dependency objects instead of RosDep?


Scout host functions getShardId(), getShardStateRoot(shardId, offset).

The motivation for this proposal is to allow dapp developers to experiment with cross-shard communication through the beacon chain.
Analogous to how POSIX threads has pthread_self() to identify the thread id, and how OpenCL has get_global_id() and get_local_id() to identify the work item id, Scout EEs may wish to identify which shard they are executing in. I hereby propose a new scout host function getShardId() -> uint32 which returns 0 if called from the beacon chain, 1 if called from the first shard, 2 if called from the second shard, ..., n if called from the nth shard.
Moreover, analogous to how POSIX threads can read from shared pointers to local data, and how OpenCL threads can read from __global or __local pointers to __private data, EEs executing on a shard may wish to read from the beacon chain to local memory. I hereby propose a second new scout host function getShardStateRoot(shardId, offset) -> uint32 which takes as arguments a shard id as described above, and takes a memory offset similar to other scout functions. The host function has a side-effect of writing that shardId's 32-byte state root (see below) at the current time step to the EE's local memory at the offset. If either of the arguments are out-of-range, then it writes nothing. This host function returns 0 unless an argument was out-of-range, then it returns 1.
Now the unspecified part -- we must define what a shard is, define what an EE is relative to shards, define what code is relative to EEs, and define what a shard writes to the beacon chain at each time step. A first attempt follows, but it is incomplete. At each time step, each shard updates its state root to the beacon chain, where the state root of a shard is the 32-byte merkle root of all EEs in that shard. For merkleization, each EE is a leaf which contains the following.

32-byte EE address (this needs specification) which corresponds to the Merkle path to this leaf,
32-byte Eth balance (same as Eth1 balance),
32-byte hash of the code that the EE executes when it is called (this needs specification), and
the 32-byte state root of the EE (accessed with scout functions loadPreStateRoot() and savePostStateRoot()).
Merkleization obeys SSZ rules, though it may be wise to allow the user to easily replace the merkleization rule to allow prototyping without depending on SSZ.

Finally, I hereby propose changes to the Scout yaml format to initialize each EE, and to specify shardIds for each execution. This needs discussion.
Concrete use-cases are not yet available.

Prototyped here https://github.com/poemm/scout_wabt.cpp/tree/getShard_host_funcs .
Retrospective: The interface is reasonable. The unspecified part explained above remains unspecified.


[Feature]: Change hotkeys

Disable using CTRL + ESC
Quit using shift+ctrl+esc
Toggle space mode instead of 1 off interactions

changed, but will need to update docs.


use industrial ci

@ipa-jfh: can you take over this and use industrial-ci for ATF?

The general config for Industrial CI looks fine to me.
According to the log there are two errors. You think they require a repair of the ATF code or they are somehow due to the Industrial CI?

analyser.py

[atf_test.rosunit-analysing_ts0_c0_r1_e0_0/test_Analysing][ERROR]---------------
unsupported operand type(s) for -: 'Time' and 'NoneType'
  File "/usr/lib/python2.7/unittest/case.py", line 331, in run
    testMethod()
  File "/root/catkin_ws/install/lib/atf_core/analyser.py", line 175, in test_Analysing
    groundtruth_result, groundtruth_error_message, result = analyser.get_result()
  File "/root/catkin_ws/install/lib/atf_core/analyser.py", line 116, in get_result
    metric_result = metric_handle.get_result()
  File "/root/catkin_ws/install/lib/python2.7/dist-packages/atf_metrics/calculate_publish_rate.py", line 74, in get_result
    data = round(self.counter / (self.stop_time - self.start_time).to_sec(), 3)

Maybe one has to use groundtruth_result, groundtruth_error_message, metric_result = ... at https://github.com/ipa-fmw/atf/blob/master/atf_core/scripts/analyser.py#L116

Max time allotted

ERROR: max time [60.0s] allotted for test [recording_ts0_c1_r1_e0_0] of type [atf_test/application.py]
  File "/usr/lib/python2.7/unittest/case.py", line 331, in run
    testMethod()
  File "/opt/ros/jade/lib/python2.7/dist-packages/rostest/runner.py", line 148, in fn
    self.test_parent.run_test(test)
  File "/opt/ros/jade/lib/python2.7/dist-packages/rostest/rostest_parent.py", line 132, in run_test
    return self.runner.run_test(test)
  File "/opt/ros/jade/lib/python2.7/dist-packages/roslaunch/launch.py", line 681, in run_test
    (test.time_limit, test.test_name, test.package, test.type))

This might be because of this connection problems. The log also includes this warning:
[WARN] [WallTime:<PHONE_NUMBER>.887650] Inbound TCP/IP connection failed: connection from sender terminated before handshake header received. 0 bytes were received. Please check sender for additional details.

Furthermore there  are multiple errors msgs while accessing log files
Error opening rosout log file '/root/.ros/65ea5982-2458-11e7-bcc1-0242ac110002/rosout.log': No such file or directory
...


Mirage support

This issue is used to track the integration with mirage. What needs to be done:

[x] Remove the dependency to Unix for the logging library (https://github.com/UnixJunkie/dolog/pull/14). Might end-up using something else.
[x] New release of cohttp with https://github.com/mirage/ocaml-cohttp/pull/267
[x] New release of mirage-http with https://github.com/mirage/mirage-http/pull/10
[x] New release of conduit with a fix for https://github.com/mirage/ocaml-conduit/pull/45
[x] Add Git_mirage for Mirage IO (https://github.com/mirage/ocaml-git/pull/70)
[x] Massage mirage-dev packages (https://github.com/mirage/mirage-dev/pull/56). Would be much easier if we had a pure OCaml implementation of:

SHA1
zlib

[x] Smart HTTP Git support (https://github.com/mirage/ocaml-git/issues/26)
[ ] Implement Git.FS using raw block devices
[x] Add Irmin_mirage
[x] Add a unikernel using Irmin (see https://github.com/samoht/mirmin)
[x] Irmin combinators for Mirage

I've updated the list, main blocker is the cohttp PR (I'm not totally convinced that's the right approach but I don't think of anything better).

Thanks, I'll be looking at this tomorrow afternoon/Friday

It looks like a lot of the linked PRs have been merged (or provided as branches, in the case of dolog), but I know we're not quite ready for Irmin on unikernels.  When it's convenient, could someone knowledgeable update us on what's missing?

yea I wanted to do that yesterday but got caught by other emergencies :p
I've ticked some boxed, the PR on ocaml-git is the next thing to be updated.

 Is there a branch somewhere I need to pin?

There's a new, pure OCaml implementation of zlib here btw https://github.com/dinosaure/Decompress

I've added support for building Xen C stubs to my (now badly named) js_of_ocaml branch:
https://github.com/talex5/bin_prot/tree/js_of_ocaml

I've ticked more boxes, basically we have ocaml-git working with Xen, now need to massage Irmin (should not be very hard). The main missing piece is have something to persist the data (for instance a block device)

Ticking more boxes: now the in-memory Git backend seems to work fine with Mirage (although more testing is certainly needed). I'm releasing the various branches now. Having a raw block-device FS backend is the only missing bit.

I get a bunch of link errors on Xen related to bin-prot, as @talex5 reported above.  Is there a fix for those I'm missing?

yea, I overlooked the bin_prot linking issues ... trying to fix those now.

I have some patches here: https://github.com/samoht/bin_prot/tree/xen they seem to work fine, might need some clean-up to have any chance to be integrated upstream ...

And I've updated https://github.com/mirage/mirage-dev/pull/56 to include all of the missing packages.
An example of use is here: https://github.com/samoht/mirage-skeleton/blob/irmin/static_website/config.ml#L53
To use it:
FS=irmin URI=https://github.com/mirage/mirage-www PATH=tmpl mirage configure

I think mirage-xen-posix will need a release as well; my Irmin unikernels fail with Unsupported function times called in Mini-OS kernel when not pinned to dev-repo.  Looks like it's fixed by this patch from @talex5 which is merged but not in a release.

This Irmin in-memory-store-backed-ARP-using unikernel now boots and seems to work! :smile_cat:

yay!

Wow, nice!

I've just released a new version of mirage-xen-ocaml which includes the times patch and I've merged my branch into mirage-dev. Should be working fine by just pinning mirage-dev now.

Closing this as there is now some kind of support for a mirage backend.


Media Picker Field : Unable to add new media to already exists. The Add button is hidden

Unable to add new media to already exists. The Add button is hidden
Steps to reproduces

Add media picker field to page content type.
create new page, add new image. Save
Bellow image is appear 2 links : Remove, Edit.

The "Allow multiple content items" will be checked


A parameter cannot be found that matches parameter name 'AllowProtectedAppendWrite'

Looks like the Enable allow protected append blob write has been removed as a parameter for the Set-AzRmStorageContainerImmutabilityPolicy command?

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

ID: 54464a5d-7cf0-c1c1-bada-b8bb9bf6da93
Version Independent ID: b76a8842-c752-d92a-9e07-6593206b0aab
Content: Set and manage immutability policies for Blob storage - Azure Storage
Content Source: articles/storage/blobs/storage-blob-immutability-policies-manage.md
Service: storage
Sub-service: blobs
GitHub Login: @tamram
Microsoft Alias: tamram

Here is the current version of PowerShell I have installed

Az   3.6.1

@seanmcdonnellblog Thanks for the feedback. We are actively investigating and will get back to you soon.

#reassign: @tamram

@seanmcdonnellblog - The parameter is still there - see the reference for Azure PowerShell v. 3.7:
https://docs.microsoft.com/powershell/module/az.storage/set-azrmstoragecontainerimmutabilitypolicy?view=azps-3.7.0
And it still works. I just ran through all of the examples in the article successfully, including that one.
Can you check your syntax? If it's still not working for you, I recommend posting to the Azure Storage forum.
Since the documentation is accurate, I am closing out this issue.
#please-close

Thanks @tamran :)


Choti : WorkFlow : 1 week

Learning Objectives
🥚 0. Local Development Without Git

[x] 🥚 Folder Structures: You can explain how files and folders are stored in your computer and can find, open or create files in your computer without using the Command Line Interface.
🥚 Command Line Interface (CLI): In a Unix shell you can ...

[x] Open a new terminal window
[x] Navigate up and down directories using cd
[x] List the contents of a directory using ls
[x] View the contents of a file using cat
[x] Create new files using touch
[x] Create new folders using mkdir

[x] 🥚 Markdown: You can write a document in Markdown with no syntax mistakes that renders into a well-formatted document.
🥚 VSCode: You can complete these workflows in VScode, and can use keyboard shortcuts to complete them all:

[x] Opening a repository in a new window
[x] Opening the VSCode terminal
[x] Adding a new file
[x] Adding a new folder
[x] Deleting a file
[x] Deleting a folder
[x] Previewing a Markdown File
[x] Formatting a Markdown document

[ ] 🥚 READMEs: You can write a README file that describes the project you are working on, why it's helpful, and how someone can use it.
🥚 NPM: You can use NPM commands to verify your code's quality, this includes ...

[ ] Using npm install to install a project's dependencies
[ ] Reading a package.json file to find which scripts are available for the project
[ ] Use npm run <script> to execute an npm script

🥚 Formatting Code: You can use Prettier to make sure all the code in your project is well-formatted:

[ ] You can use the Prettier VSCode extension to format a document while you are writing it
[ ] You can use npm run format to format all of the documents in your project
[ ] You can use npm run format: check to make sure all files are well-formatted

🥚 Linting Folder and File Names: You can ...

[ ] Use npm run lint:ls to check all folder and file names in your project
[ ] You can fix all linting mistakes reported by npm run lint:ls

🥚 Linting Code: You can ...

[ ] Use npm run lint:md to check all Markdown files in your folder for linting mistakes
[ ] You can fix all linting mistakes reported by npm run lint:md

🥚 Spell Check: You can ...

[ ] Use the Code Spell Checker VSCode extension to correct spelling mistakes in your Markdown documents while you are writing
[ ] Use npm run spell-check to check the spelling in all the files of your project
[ ] Update .cspell.json to add words that should be allowed in your project

🥚 File and Folder Naming Conventions: You can ...

[ ] Identify and follow the naming conventions for the project you are working on.
[ ] Use npm run lint:ls to check that all files and folders follow the project's naming conventions.
[ ] You can correct any file and folder names to make them match the project conventions.

[ ] 🐣 File Extensions: You can identify all of the languages covered at HYF and give the correct file extension. You don't need to know the languages, just recognize them.
[ ] 🐣 Touch Typing: You can write a Markdown file without looking at your keyboard to find any letters, numbers or special characters. (slowly is ok!)

🥚 1. Local Development With Git

🥚 Git: Using the CLI you can ...

[ ] Initialize a new git repository with git init
[ ] Stage changes using git add <path>
[ ] Check what is staged with git status
[ ] Commit changes using git commit -m <message>
[ ] Display your repository's git history using git log
[ ] Create a new branch using git branch <branch-name>
[ ] Check out a branch using git checkout <branch-name>
[ ] Create a new branch and check it out using git checkout -b <branch-name>
[ ] Merge changes from one branch to another using git merge <branch-name>
[ ] Update current branch (your branch) from main branch:

[ ] Check out to main branch using git checkout main
[ ] Pull changes from remote repository using git pull
[ ] Check out to your branch using git checkout <branch-name>
[ ] Merge changes from main branch to your branch using git merge main

[ ] Merge changes from main branch to current branch in one step using git pull origin main
[ ] Return to a previous version of your project with git log and git checkout <commit-hash>
[ ] Stash and retrieve uncommitted changes with git stash and git pop
[ ] Display list of existing remote URLs using git remote -v
[ ] Add a new remote repository URL usinggit remote add <shortname> <remote-url>
[ ] Update a remote repository URL using git remote set-url <exsit-shortname> <new-remote-url>
[ ] Rename a remote repository URL using git remote rename <old-shortname> <new-shortname>
[ ] Remove a remote repository URL using git remote rm <exsit-shortname>

🥚 .gitignore: You can use a .gitignore file to describe which files you don't want included in your git history.
🥚 VSCode: You can ...

[ ] Use the Git Graph extension to to visualize your repo's commit history
[ ] Use the Git Lens extension to investigate your repository's commit history
[ ] Explain how the file tree in VSCode can show you which files have uncommitted changes

[ ] 🥚 Atomic Commits: You can save your development progress using small commits with clear and helpful message.
[ ] 🐣 Feature Branches: You can organize your development process using branches. You can create a new branch for each part of your project and merge those changes to main when they are finished.

🥚 2. Local/Remote Development

🥚 Licenses: You can ...

[ ] Explain why it's important to include a license for your code on GitHub
[ ] Choose a license for your projects that matches how you want others to use your code

[ ] 🥚 GitHub SSH Key: You can connect your computer to your GitHub account using an SSH key, clone using the SSH link, and push/pull using your SSH connection.
🥚 GitHub Repositories: You can ...

[ ] Create new repository on GitHub
[ ] Write a description for your repository
[ ] Turn on GitHub Pages
[ ] Configure your repository to block pushing to main
[ ] Configure your repository to block merging to main until Continuous Integration (CI) checks have passed

🥚 Git Remote/Local Connection: You can ...

[ ] Clone a remote repository to your computer usinggit clone <remote-url>
[ ] initialize a new repository locally and connect it to an empty remote repository
[ ] git push command is used to upload local repository content to a remote repository
[ ] git fetch a primary command used to download contents from a remote repository
[ ] git pull command downloads the changes directly and then applies those changes to the current working files
[ ] push and pull changes between remote & local branches
[ ] You can distinguish between git fetch and git pull

[ ] 🥚 Pull Requests: You can create a pull request between two branches in your repository and merge changes without causing any conflicts.
[ ] 🥚 PR templates: You can use a PR template to add a checklist to all of your PRs so you are sure the code is great before merging to main.
[ ] 🥚 Continuous Integration: You can use GitHub Actions to check your code's quality before merging a pull request to the main branch.
[ ] 🐣 Local/Remote Branching Workflow: You can use a branching workflow that keeps mistakes away from the main branch and prevents conflicts from happening in GitHub. For each contribution to the project you can ...

Check out a new local branch and write your code
Check out main on your local machine
Pull changes from remote main to local main
Merge changes locally from main to your new branch

Fix any conflicts on your new branch before pushing!

Format and lint your code
Push your new local branch to your remote repository
Open a Pull Request from the new branch to main

Go through the PR's checklist to make sure everything is correct
Make sure all CI checks pass!

Merge your new remote branch to main

You can delete the branch after it's merged if you want to

🐣 3. Remote Collaboration

[ ] 🥚 Contributor Guidelines: Your group can define contributor guidelines that describes how everyone can add their work to the project.
[ ] 🥚 Code of Conduct: Your group can write a code of conduct for your project that describes how everyone should communicate and what behavior is considered unproductive.
[ ] 🥚 Repository Contributors: You can add group members as collaborators in a repository.
[ ] 🥚 Issue Templates: Your group can use issue templates to make sure all issues are complete and relevant to the project. in your repository and merge changes without causing any conflicts.
[ ] 🥚 Code Review: You can use the PR Template and CI checks to review another group member's code before merging it to main.
🐣 GitHub Project Management: You can ...

[ ] Use issues to define tasks in a group project. Each issue should have a helpful title, complete description, and helpful labels.
[ ] Use a Project Board to organize a project's issues
[ ] Claim issues and track your progress with the project board
[ ] Link a PR to your claimed issue
[ ] Assign someone to review your PR
[ ] Use GitHub code review features to discuss your code with your reviewer

[ ] 🐣 Fixing Merge Conflicts: You can fix merge conflicts by selecting which change to keep, or deciding how to combine them. If a conflict occurs in a GitHub PR you can pull both branches and fix the conflict locally.

🐥 4. Open Source Development

[ ] 🥚 Finding Issues: You can read through an open source project's issues and determine if there is one you can help with.
[ ] 🐣 Commenting in Issues: You can productively join the conversation in an open source projects' issues.
[ ] 🐥 Opening Issues: You can open a helpful issue in an open source repository, following their contributor guidelines and code of conduct.
[ ] 🐔 Contributing: You can create a fork of an open source project and open a PR that contributes something helpful and follows the Contributor Guidelines and Code of Conduct.

Week 1
I Need Help With:
What went well?
What went less well?
Lessons Learned
Sunday Prep Work

@jgchoti You need to fill in this section:
Week 1
I Need Help With:
What went well?
What went less well?
Lessons Learned
Sunday Prep Work


[GAPRINDASHVILI] Merge pull request #17987 from bdunne/ensure_zone_is_valid

Prevent queueing things for a zone that doesn't exist in the region
https://bugzilla.redhat.com/show_bug.cgi?id=1635764
(cherry picked from commit 01c28d57c9861c79f2c115c5e5ec1c58afe4873e)
Based on https://github.com/ManageIQ/manageiq/pull/17987#issuecomment-427822065

@bdunne I'm assuming this one will cause test failures on the other repos gaprindashvili branch after merge, much the way the original one did on master, right?  I'm good with this, but it might require a few PRs on other repos to fix.

Is this everything?
https://github.com/ManageIQ/manageiq-ui-classic/pull/4669
https://github.com/ManageIQ/manageiq-providers-ovirt/pull/289
https://github.com/ManageIQ/manageiq-automation_engine/pull/230
https://github.com/ManageIQ/manageiq/pull/18009
(plus 2 PRs that go with this PR, https://github.com/ManageIQ/manageiq-api/pull/472 and https://github.com/ManageIQ/manageiq/pull/18036)

@simaishi Yes, I think that's all of them

This backport also broke providers-kubernetes & providers-openshift.
(https://travis-ci.org/ManageIQ/manageiq-providers-openshift/builds/442300654
https://travis-ci.org/ManageIQ/manageiq-providers-kubernetes/builds/442299612)
TLDR: all this is already fixed on master, so just need to backport some test fixes.
Took me a long time to diagnose, because chains of rails hooks lead to really disconnected symptoms (like what does null value in column "created_at" violates not-null constraint have to do with this validation !?)
The chain definitely involved here is EMS -> Authentication -> after_save hook -> raise_evm_event;
in the container providers we also have the scary chain EMS -> Endpoint -> after_create/after_destroy hooks -> create/destroy a "child" EMS, suspect but not sure that's involved too...
Took me even longer to debug/fix.  The root problem was the following stubbing all over kubernetes & openshift tests:
allow(MiqServer).to receive(:my_zone).and_return("default")

this was affecting the zone with which events were added to MiqQueue to be "default" but no such zone...
So all these stubs can be replaced with the more robust setup (which we already use in some tests):
EvmSpecHelper.local_miq_server(:zone => Zone.seed)

(done in https://github.com/ManageIQ/manageiq-providers-kubernetes/commit/db9bdff5514651f46d2ff9197ce631a9b9913808 but that's not the fix we'll use)
For some reason only now, knowing my_zone is the problem, I found the master PRs that fixed this:
https://github.com/ManageIQ/manageiq-providers-kubernetes/pull/289
https://github.com/ManageIQ/manageiq-providers-kubernetes/pull/297
https://github.com/ManageIQ/manageiq-providers-openshift/pull/114
sending backport PRs now...


Extend validator test coverage

fixes https://github.com/apache/camel-quarkus/issues/6430

CI failure is not related to the change in this PR


Stripout safelisted from tagitem

Codecov Report

Merging #235 (f2b10d0) into master (b052951) will increase coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #235      +/-   ##
==========================================
+ Coverage   43.64%   43.67%   +0.02%
==========================================
  Files          33       33
  Lines        4562     4552      -10
==========================================
- Hits         1991     1988       -3
+ Misses       2571     2564       -7

Impacted Files
Coverage Δ

assemblyline_core/dispatching/dispatcher.py
76.82% <ø> (-0.04%)
:arrow_down:

assemblyline_core/plumber/run_plumber.py
93.33% <0.00%> (-0.22%)
:arrow_down:

assemblyline_core/ingester/ingester.py
76.02% <0.00%> (-0.05%)
:arrow_down:

assemblyline_core/metrics/helper.py
0.00% <0.00%> (ø)

...mblyline_core/scaler/controllers/kubernetes_ctl.py
14.10% <0.00%> (+0.04%)
:arrow_up:

assemblyline_core/updater/run_updater.py
27.73% <0.00%> (+0.07%)
:arrow_up:

assemblyline_core/scaler/controllers/docker_ctl.py
14.34% <0.00%> (+0.12%)
:arrow_up:

Continue to review full report at Codecov.

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


Request: include pages instead of excluded pages

Great plugin.
I'd like to be able to display the banner on the home screen only.
So the opposite of Excluded pages (included pages) would be great!

Good idea! Fixed in 5928856abea9fab77e4072b2c9bd84b34e9c410a 👍


Update arrow directions in sidebar

When section is closed, arrow now points to right.
When section is open, arrow now points down.
Fixes #9433

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/f99968a048faae1df0a13093ddfaec7ffac710fa/

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/fbf1001e77c907a1aa905e88ae54ac18270ac9f7/

This looks good to me!

Thanks, @luciaaaaaaa. There's probably a more elegant way to achieve this result, but I'll merge for now. @anagio, let me know if you have suggestions.


A new tf attachment is not created for multiple D4XX cameras

With the previous RealSense cameras, the tf link that the camera would attach to could be namespaced like this:
  <arg name="camera"          default="camera_ee" />
Where this camera would now attach to camera_ee_link. I haven't found a way to do this with the new D4XX. They seem to always attach to "camera_link" despite a namespace:
  <arg name="namespace"           default="camera_ee"/>  <== does not work

I'm just dealing with this exact problem, having dual D435s... and found a bit of a hack workaround. I have dual point-clouds in Rviz as of 5 minutes ago.
The parameter for the base camera_link is there in the source (see include/constants.h), but it's not exposed in the launch files. So I made my own launch file by copying nodelet.launch.xml, and altered it to expose the base_frame_id as a parameter, see  r435.launch.txt which you can use as-is.
I also added a tf_prefix parameter that gets prefixed to all the frame ids so I could easily create a parent launch file as follows:
<launch>
  <arg name="rs_left_serial"    default="xxxxxx_redacted"/>
  <arg name="rs_right_serial"    default="xxxxxx_redacted"/>

  <group ns="rs_left">
    <include file="$(find my_robot_src)/launch/realsense_d435.launch">
      <arg name="serial_no"         value="$(arg rs_left_serial)"/>
      <arg name="tf_prefix"           default="rs_left_"/>
      <arg name="enable_pointcloud" value="true"/>
      <arg name="enable_sync"       value="false"/>
      <arg name="align_depth"       value="false"/>

      <arg name="depth_fps"                value="6"/>
      <arg name="infra1_fps"               value="6"/>
      <arg name="infra2_fps"               value="6"/>
      <arg name="color_fps"                value="6"/>
    </include>
  </group>

... do other camera here in group rs_right ...
</launch>

Thank you!

Hello @neomanic
I try to use you r435.launch.txt to change the published  tf name like camera_depth_frame to xxx_depth_frame. But I still get the error info (backend-v4l2.cpp 808) empth frame has arrived.
I only change your code at line 68,
<node pkg="nodelet" type="nodelet" name="realsense_ros_camera" args="load realsense_ros_camera/RealSenseNodeFactory $(arg manager)">,
from realsense_ros_camera to realsense2_camera because this is the plugin name with this release package.  So can you help me please?  Thank you

Sorry for slow reply @CxyCH. I also get a similar error, which is fixed by unplugging and replugging the camera. It is apparently a firmware/hardware issue rather than a software one, as the latest datasheet says it's a known issue that will be resolved in future firmware. But your error could be different.

Hello @neomanic I came to the same problem as stated here. I tried your solution by changing the nodelet.launch.xml and also the rs_multiple_devices.launch file
I still get a single camera_link where it looks like the back camera overwrites the front camera in the TF Tree.
Did you use other files to launch the cameras independently?

I have the same issue. The script @neomanic  suggested works for me. Now the frames have a prefix and can be distinguished. My problem is now that the pointclouds still have the generic name in the header. Do you have any idea how to to fix that? It would be nice if the new frame names would be used consistently such that conversions between frames are possible.

Seems like this is a problem that pops up regularly, when it should be fixed in the included rs_multiple_devices.launch and I'm still using my custom launch file to get this to work. If I fork the repo and fix it up, can you accept a pull request @doronhi, or is there too much hassle with contributor agreements?

I fixed this issue in PR  #471, it would be great if you could get that in @doronhi

Oh brilliant. Nice work @baumanta. I've commented over on the PR.

[Please Ignore - RealSense system comment]


feat: Navbar fix and added table to classroom dashboard

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)

We successfully merged main with our branch (hence all the commits) and everything is in a working state.
This PR does the following:

Centered freeCodeCamp logo in our Navbar component.
Added React Table in classroom dashboard page.
Columns in aforementioned table correspond to the currently selected certification's challenges/modules.
Selector functions for dashboard.
/dashboard/{classroomId} maps to specific classroom that matches said classroomId.
Added React Tabs that are used to navigate between different certifications inside of a classroom (Ex: Responsive Web Design, Data Visualization, etc.).
Adds a new column to our schema.prisma file named fccCertifications that hold the certifications inside of a classroom in an array.

Below is a screenshot of the current working dashboard page at the link localhost:3000/dashboard/{classroomId}
Where classroomId matches a classroom inside of your database

Hey @GuillermoFloresV can we get the conflicts out of the way?
In the current situation on the PR, I think the best approach is to squash all the commits you have into one and then rebase on top of the main branch.
If you need help with it please let me know, I will share the commands/steps here or on the chat.
Once done, I will be happy to review the PR.


Update docs add more checks for neural solution

Type of Change
bug fix & documentation update
API changed or not: None
Description
This is a follow-up PR for Neural Solution.

Added E2E custom example
Refine the readme
Add Neural Solution to INC Readme
Added spelling check
Fixed some minor bugs

Dependency Change?
None

let's combine this fix https://github.com/intel/neural-compressor/pull/926


thrust::copy between host & device is not interoperable with thrust::cuda::par.on(stream)

The program crashes:
#include <thrust/host_vector.h>
#include <thrust/device_vector.h>
#include <thrust/copy.h>
#include <thrust/execution_policy.h>

int main()
{
  int N = 5000;

  cudaStream_t stream;
  cudaStreamCreate(&stream);
  thrust::host_vector<float> filterVecHost(N);
  thrust::device_vector<float> filterVecGpu(N);
  thrust::copy(thrust::cuda::par.on(stream), filterVecHost.begin(), filterVecHost.end(), filterVecGpu.begin());

  return 0;
}

Originally reported here: https://groups.google.com/d/msg/thrust-users/5q9YBPjjMrI/R5NCrB2wH6EJ

It might be possible to avoid this problem if we forego the special dispatching trivial_copy_n and the like use and use cudaMemcpyDefault instead.


Playback error again

Again kodi not working. Giving playback error. @tobalan @krreet please check and help here ASAP

Do kindly help. A workaround would do for time being, if anyone has tried other versions of Kodi/plugin.

Getting 401 error when click on channel

Error 401 - unauthorised URL

Yes, again error 😔 hoping and looking forward for a quick fix.

Again kodi not working. Giving playback error. @tobalan @krreet please check and help here ASAP

I don't think, anyone is working on jiotv these days 🫤

For a working solution look at issue #138


New version: LCIO v1.3.0

Registering package: LCIO
Repository: https://github.com/jstrube/LCIO.jl
Created by: @jstrube
Version: v1.3.0
Commit: f30a9fddc75cf12ab776c0386b84d44d308b0633
Reviewed by: @jstrube
Reference: https://github.com/jstrube/LCIO.jl/issues/35#issuecomment-585009560

Not sure I understand the failures here. This works for me locally...

I think this is related to libstdc++ version incompatibilities between the build server and this validation server, but I'm not sure. I found one system where it works, and one where it doesn't...


How do I download links from batch link.txt but only want the link on line 1?

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
It's the same if you download a playlist link, if you want to download a list from list 2 to 3, we just add --playlist-start 2 --playlist-end 3, and if you want to download only list 1, we can just add --playlist-end 1, but what about batch link.txt, how can we use the same logic?
Same thing if i just want to see what formats are available on link 1 in the link.txt batch, especially from the same video type. By default it will run all existing links in batch link.txt and that is not efficient.
 Or whatever line I want?

What if I just want second line only?

head -n2 link.txt | tail -n1 | yt-dlp -F -a -

Or whatever line I want?

head -n55 link.txt | tail -n1 | yt-dlp -F -a -

etc
Note that head and tail are only available in POSIX-like shells such as sh, bash, zsh etc. These commands won't work in Windows cmd.
Passing -a - to yt-dlp tells it to read links from stdin, and then we are piping specific lines of link.txt to yt-dlp using head and tail.

What if I just want second line only?

head -n2 link.txt | tail -n1 | yt-dlp -F -a -

Or whatever line I want?

head -n55 link.txt | tail -n1 | yt-dlp -F -a -

etc
Note that head and tail are only available in POSIX-like shells such as sh, bash, zsh etc. These commands won't work in Windows cmd.
Passing -a - to yt-dlp tells it to read links from stdin, and then we are piping specific lines of link.txt to yt-dlp using head and tail.

Thanks, I was very helped.


what is CUDA_wrap

Hello,
What is CUDA_wrap? Where to get it? What is the version requirement?
Thank you very much!

CUDA_wrap is a wrapping of the CUDA cmake module. It is based on a plastimatch file. Normally, you don't need to know where to find it, cmake should automatically install it and configure the cmake path. The file is available here.


documentation in the README

Coverage remained the same at 100.0% when pulling 00b7fa12d8d6a2c9e159af079fc976e92c97d117 on dlockhart:readme into 0b21a1aadfe66af9db7147576e380e4c90c2c2dc on Brightspace:master.


Chromedriver doesn't seem to work

Using Ubuntu 14.04, with dbus service up, and chromedriver up with xvfb-run chromedriver --port=4444 --url-base=/wd/hub &, when I run gemini I get:
✘ buttons btn-primary clicked [chrome]
Cannot launch browser chrome:
[init({"browserName":"chrome"})] The environment you requested was unavailable..
Reason: {"sessionId":"1e90637d184ec9e84e6f0972145eec07","status":13,"value":{"message":"unknown error: Chrome failed to start: crashed\n  (Driver info: chromedriver=2.25.426924 (649f9b868f6783ec9de71c123212b908bf3b232e),platform=Linux 4.4.0-47-generic x86_64)"}}
^CCancelling...

My gemini config:
module.exports = {
  rootUrl: 'http://localhost:8000',

  browsers: {
    chrome: {
      desiredCapabilities: {
        browserName: 'chrome'
      }
    }
  }
};

Turned out we needed:
module.exports = {
  rootUrl: 'http://localhost:8000',
  gridUrl: 'http://<IP_ADDRESS>:4444/wd/hub',

  browsers: {
    chrome: {
      desiredCapabilities: {
        browserName: 'chrome',
        chromeOptions: {
          args: ["disable-gpu", "no-sandbox"]
        }
      }
    }
  }
};


Tooltip: Live demo is showing incorrect styles for dark themes

The live demo is currently showing the tooltips trigger button with incorrect colors for the dark themes:

Replaced with storybook demo https://github.com/carbon-design-system/carbon-website/pull/3716


Outcome misclassification on two storage deals

The following UUIDs are deals that concluded prematurely in the StorageDealProposalAccepted stage, and were marked as succeeding by the dealbot. Please analyse:

78d87834-5371-4dfd-91b1-d4dfcf8872f4
c41c4751-a6f2-4d48-aa39-c03d4f95a41a

My analysis is as follows:

whether or not a deal is marked as "success" or "failed" is based on whether strorageDealExecutor.executeAndMonitorDeal returns an error
there are two code paths by which we could return no error from this function

the first is when we hit StorageDealActive (https://github.com/filecoin-project/dealbot/blob/main/tasks/storage_deal.go#L390)
the second is when the deal update channel from ClientGetDealUpdates closes (https://github.com/filecoin-project/dealbot/blob/main/tasks/storage_deal.go#L346)

I am assuming something happened here that caused the second code path to get triggered. I think if the channel with Lotus closes for some reason we probably should mark the deal failed). However, I'd like to at least have a hypothesis as to why that channel could close -- network error? Lotus shutting down? I'm not sure. Either way I think we need to make 346 return an error? I think?

we fixed the bug behind these. closing this issue


installl error

ubuntu 18.04
user is root , node version v14.17.0

<EMAIL_ADDRESS>postinstall /root/workplace/bee-dashboard/node_modules/core-js-pure
node -e "try{require('./postinstall')}catch(e){}"

sh: 1: node: Permission denied
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR<EMAIL_ADDRESS>postinstall: node -e "try{require('./postinstall')}catch(e){}"
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-05-13T06_01_07_666Z-debug.log

I use  user: root，Solve by the following way：
npm config set user 0
npm config set unsafe-perm true


<<HEREDOC #comment at EOF is handled wrong

Unfortunately, #1948 did not fix the problem.
The general structure of the problem is the same, but unfortunately you can't look back a token to know when not to output on_nl.
puts <<-HEREDOC.you.can.push.the.heredoc.end.very.far.back.to_s # darn
HEREDOC

No matter how far back the heredoc end is, you will still have the comment last. The heredoc's offset, which would push the eof further down, is lost way back in the token list.
I think the solution I offered wasn't quite right. I wonder if we need to hold onto the furthest end_offset reached at any point in the program (maybe just by a heredoc end), then use that as the eof start.
Here's the bin/lex tokens inspected of the above right now on main. I don't think going backwards until we find the heredoc is a viable solution.

bin/lex output with inspect on tokens
❯ bin/lex
[[1, 0], :on_ident, "puts", CMDARG]
[[1, 5], :on_heredoc_beg, "<<-HEREDOC", CMDARG]
[[2, 0], :on_heredoc_end, "HEREDOC", CMDARG]
[[1, 15], :on_period, ".", DOT]
[[1, 16], :on_ident, "you", ARG]
[[1, 19], :on_period, ".", DOT]
[[1, 20], :on_ident, "can", ARG]
[[1, 23], :on_period, ".", DOT]
[[1, 24], :on_ident, "push", ARG]
[[1, 28], :on_period, ".", DOT]
[[1, 29], :on_ident, "the", ARG]
[[1, 32], :on_period, ".", DOT]
[[1, 33], :on_ident, "heredoc", ARG]
[[1, 40], :on_period, ".", DOT]
[[1, 41], :on_ident, "end", ARG]
[[1, 44], :on_period, ".", DOT]
[[1, 45], :on_ident, "very", ARG]
[[1, 49], :on_period, ".", DOT]
[[1, 50], :on_ident, "far", ARG]
[[1, 53], :on_period, ".", DOT]
[[1, 54], :on_ident, "back", ARG]
[[1, 58], :on_period, ".", DOT]
[[1, 59], :on_ident, "to_s", ARG]
[[1, 64], :on_comment, "# darn\n", ARG]
[[2, 7], :on_eof, "", BEG]
Ripper lex                                                             Prism compat lex                                                       Prism Lex
---------------------------------------------------------------------- ---------------------------------------------------------------------- ----------------------------------------------------------------------
[[2, 0], :on_heredoc_end, "HEREDOC", CMDARG]                           [[2, 0], :on_nl, "HEREDOC", BEG]                                       [:COMMENT, [64, 7]]
nil                                                                    [[2, 0], :on_heredoc_end, "HEREDOC", CMDARG]                           [:EOF, [78, 0]]

Strange... this is being intermittent for me now.


Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory'

I am using below version of angular/cli
Angular CLI: 1.7.4
Node: 8.11.4
OS: win32 x64
Angular: 2.4.10
... common, compiler, compiler-cli, core, forms, http
... platform-browser, platform-browser-dynamic
@angular/cli: 1.7.4
@angular/router: 3.4.10
@angular/tsc-wrapped: 0.5.2
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
typescript: 2.9.2
webpack: 3.11.0
Error :
ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'C:\Users\gazala\Desktop\GCDB_New_Workspace\GCDB6-Portal\src'
@ ./src/main.ts 5:0-74
@ multi ./src/main.ts
Current  behavior : ng build --prod fails not generating dist folder
Expected behavior : ng build --prod should work and generate aot dist folder

This seems like a bug but we'll need to look at a reproduction to find and fix the problem. Can you setup a minimal repro please?
You can read here why this is needed. A good way to make a minimal repro is to create a new app via ng new repro-app and adding the minimum possible code to show the problem. Then you can push this repository to github and link it here.

Thanks for reporting this issue. However, you didn't provide sufficient information for us to understand and reproduce the problem. Please check out our submission guidelines to understand why we can't act on issues that are lacking important information.
If the problem persists, please file a new issue and ensure you provide all of the required information when filling out the issue template.


Check if imported file is a proper external module for imported node typings

also looks like you have build error.

:+1:

pinging @basarat and @jbrantly: FYI, this PR has changed the signature of CompilerHost.resolveModuleNames to return ResolvedModule instead of string

Thanks for the heads up

@vladima can you comment this issue in the API breaking changes page


Abstract and Function support for InjectableIdentifier

Is there an existing issue for this?

[X] I have searched the existing issues

Current behavior
Currently, identifier of unit reference does not support Abstract class and Function. Can you consider adding those to InjectableIdentifier?
Abstract type from @nestjs/common
interface Abstract<T> extends Function {
    prototype: T;
}

Minimum reproduction code
I believe reproduction code is not needed for this issue.
Steps to reproduce
Passing abstract class or function causes an error.
Expected behavior
Ignoring type error, it seems that passing them still works. I think only adding the type would be fine.
Automock version
2.1.0
Node.js version
Bun 1.0.31
In which operating systems have you tested?

[ ] macOS
[ ] Windows
[X] Linux

Other
No response

Hello @SnowMarble,
You can easily solve it by casting the type of the subject dependency, here is an example:
your-class.ts
export abstract class UserAbsSvc { ... }

your-unit.spec.ts
import { Type } from '@automock/types'; // Could be also from `@nestjs/common`

const { unit, unitRef } = TestBed.create(...).compile();
const userSvc = unitRef.get(UserAbsSvc as Type<UserAbsSvc>);

Let me know if it worked!

@omermorad I appreciate your reply.
Type casting definitely works. But I think we should be able to use abstract classes and functions without type casting by default. Because this is not an uncommon use case. What do you think about it?

I see, that's actually an interesting scenario, I think it can work. Would you be able to supply some more context regarding the code?
Does the class you are trying to get() from the unitRef extends from an abstract class? Or is it the abstract class it self?
Suppose this class:
export abstract class UserAbsSvc { ... }

If the following is the case here - how can abstract class act as a dependency of a another class? Or am I missing something?
export class ConcreteClass {
  public constructor(private readonly dep: UserAbsSvc) { ... }
}

I'm working on Nestjs. I use an abstract class as a provider, and bind it with an implementation class.
// some.port.ts
export abstract class SomePort {
  public abstract foo(): void
}

// some.adapter.ts
export class SomeAdapter implements SomePort {
  foo() {
    // do something
  }
}

// some.module.ts
@Module({
  providers: [
    {
      provide: SomePort,
      useClass: SomeAdapter
    }
  ]
})
export class SomeModule {}

This can make me use abstract class as an injection token. This is similar to specifying a string as a provider. I'm sure you already know it.
So, answering your question, what I want to get from get() is not the abstract class. Providing target is just different.
For more information, you can check out the nestjs docs: https://docs.nestjs.com/fundamentals/custom-providers#class-providers-useclass

Alright, I understand now.
It may be beneficial to take a few factors into account when considering this approach:
Typically, abstract classes are used as blueprints for concrete implementations rather than as identifiers themselves. This is because abstract classes are not intended to be directly instantiated. Instead, they serve as templates for subclasses. Unlike interfaces, which are cancled at runtime, abstract classes not.
When it comes to dependency injection and identifiers, it is more typical to utilize concrete classes or other forms of identifiers such as symbols or strings. These references offer a more precise and explicit indication of the dependencies being injected.
If you're interested in finding an alternative method to uniquely identify your dependencies for injection, considering a concrete class or a custom symbol or string token could be a more suitable option. This approach is more in line with the common patterns and conventions found in NestJS and other dependency injection frameworks. Take a look at TSyringe, for instance, or even libraries from various programming languages. Using Java Springboot as an example - it is not possible to use interfaces as identifiers. Instead, you need to provide the DI engine with the specific class you want to resolve.
Based on this, it seems more logical to use casting with Type rather than including the Abstract type in the Identifier type.
What do you think? 🦾

I agree with your point. However, personally, I prefer avoiding @Inject decorator and managing additional DI tokens. After doing some research, I found that people have used abstract classes for the same reason to me. If we use abstract classes as implemented, we can use them like an interface.
Using type cast might be enough to use, but I think supporting abstract classes is also worth to consider. And, actually, it's not a big deal, you know - just a new type to be added.
If you still think my suggestion is unnecessary, I respect your decision :)
By the way, I'm not a Java dev, but it seems @Autowire decorator allows interfaces as DI tokens.

I spent some time looking into this. Let me break it down and share the conclusions :)
Consider the following scenario: you have an abstract class SomePort with various concrete implementations such as SomeAdapter and SomeOtherAdapter. This configuration is completely legal and is frequently used to ensure consistency across multiple implementations.
Consider a class SomeService that requires both SomeAdapter and SomeOtherAdapter:
@Injectable()
export class SomeService {
  constructor(
    private readonly someAdapter: SomeAdapter,
    private readonly someOtherAdapter: SomeOtherAdapter,
  ) { ... }
}

Alternatively, you may apply the dependency inversion concept and utilize the abstract type of the abstract class SomePort directly (rather than the concrete):
@Injectable()
export class SomeService {
  constructor(
    @Inject('SOME_ADAPTER') private readonly someAdapter: SomePort,
    @Inject('SOME_OTHER') private readonly someOtherAdapter: SomePort,
  ) { ... }
}

In both scenarios, Automock confronts a dependency resolution challenge. Because it acts at runtime and relies on given identifiers to find dependencies, it may fail to distinguish between numerous implementations of the same abstract class. As a result, attempting to resolve SomePort using unitRef.get(SomePort) may result in ambiguity.
This problem is similar to one addressed earlier (https://github.com/automock/automock/issues/67), emphasizing the significance of finding clear and unambiguous means to indicate dependencies, which is why I mentioned the string (or symbol identifiers).
I hope this clarifies everything!

@omermorad I appreciate your opinion. I've never thought about multiple implementations of abstract classes. I gotta bring back the proposal when I can prevent these potential problems. Thanks :)


I am trying to add a shortcut to my appxmanifest using desktop7:Shortcut and it does not work

I added
  xmlns:desktop7="http://schemas.microsoft.com/appx/manifest/desktop/windows10/7"

to the Package tag and  tried to add this
			<Extensions>
				<desktop7:Extension>
					<desktop7:Shortcut>

					</desktop7:Shortcut>
				</desktop7:Extension>

			</Extensions>

inside an Application tag. The Docs don't give any meaningful examples but VS gives me a squigle on desktop7:Extension saying thet desktop7:Extensuion is invalid.

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

ID: 72e571f7-162d-5c72-64b6-ab1075f4e875
Version Independent ID: 72e571f7-162d-5c72-64b6-ab1075f4e875
Content: desktop7:Shortcut - Windows UWP applications
Content Source: winrt-related-src/schemas/appxpackage/uapmanifestschema/element-desktop7-shortcut.md
Product: uwp
Technology: winrt-reference
GitHub Login: @drewbatgit
Microsoft Alias: drewbat

^^^

@jbennink @jhiggs15 I am investigating this issue. One thing I wanted to confirm. Have you tried to create the shortcut using this syntax and it failed, or is this just about the squiggles in the editor? I plan to try an implementation of this myself, but I wanted to verify that you two were both unable to actually create the shortcut.

@drewbatgit I have tried to create it. I'm bundling into an appinstaller file and running the file it says "Cannot open app package", and the reason is Error in Parsing the app package. When I remove the xmlns desktop7 and Extensions tag it runs no problem. My AppxManifest.xml looks like this
`
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:desktop7="http://schemas.microsoft.com/appx/manifest/desktop/windows10/7"

Example
Example
Example
images\icon.png

`

@drewbatgit Any luck recreating the issue?

@jhiggs15 - Hi, I was able to get this to build and install. But, having never done it before, it took a few tries. I don't see it in your code sample above, but do you have the IgnorableNamespaces attribute declared?
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:desktop7="http://schemas.microsoft.com/appx/manifest/desktop/windows10/7"
IgnorableNamespaces="uap rescap desktop7">

Confirmed that the SDK now includes desktop7 now.  I believe this issue should be closed now.


error .. RSpec/DescribedClass cop was inspecting .. describe(CONSTANT)

Upgrading PaperTrail from 1.33.0 to 1.35.0, got this error:
An error occurred while RSpec/DescribedClass cop was
inspecting .../spec/paper_trail/version_number_spec.rb:6:2.

In version_number_spec.rb our described_class is a module named VERSION. 🤔 I admit, it's unusual (I didn't name it) but I think we can agree that rubocop should not crash :smile:
module PaperTrail
  ::RSpec.describe VERSION do
    describe "STRING" do
      it "joins the numbers into a period separated string" do
        expect(described_class::STRING).to eq(
          ...

Please see also paper_trail/version_number.rb if necessary.
I'm happy to work on this issue if someone can point me in the right direction. :heart:

Stack trace
An error occurred while RSpec/DescribedClass cop was inspecting /Users/jared/git/paper-trail-gem/paper_trail/spec/paper_trail/version_number_spec.rb:6:2.
undefined method `first' for nil:NilClass
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:147:in `collapse_namespace'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:132:in `full_const_name'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:128:in `offensive_described_class?'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:114:in `offensive?'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:80:in `find_usage'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:85:in `block in find_usage'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:193:in `block in each_child_node'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:190:in `each'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:190:in `each_child_node'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:84:in `find_usage'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:85:in `block in find_usage'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:193:in `block in each_child_node'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:190:in `each'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:190:in `each_child_node'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:84:in `find_usage'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:85:in `block in find_usage'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:193:in `block in each_child_node'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:190:in `each'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:190:in `each_child_node'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:84:in `find_usage'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:85:in `block in find_usage'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:193:in `block in each_child_node'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:190:in `each'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/node.rb:190:in `each_child_node'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:84:in `find_usage'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-rspec-1.35.0/lib/rubocop/cop/rspec/described_class.rb:61:in `on_block'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/commissioner.rb:57:in `block (2 levels) in trigger_responding_cops'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/commissioner.rb:128:in `with_cop_error_handling'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/commissioner.rb:56:in `block in trigger_responding_cops'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/commissioner.rb:55:in `each'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/commissioner.rb:55:in `trigger_responding_cops'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/commissioner.rb:32:in `block (2 levels) in <class:Commissioner>'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/traversal.rb:150:in `on_while'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/commissioner.rb:33:in `block (2 levels) in <class:Commissioner>'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/traversal.rb:50:in `block in on_begin'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/traversal.rb:50:in `each'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/traversal.rb:50:in `on_begin'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/commissioner.rb:33:in `block (2 levels) in <class:Commissioner>'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/ast/traversal.rb:13:in `walk'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/commissioner.rb:44:in `investigate'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/team.rb:119:in `investigate'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/team.rb:107:in `offenses'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cop/team.rb:44:in `inspect_file'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:277:in `inspect_file'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:225:in `block in do_inspection_loop'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:257:in `block in iterate_until_no_changes'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:250:in `loop'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:250:in `iterate_until_no_changes'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:221:in `do_inspection_loop'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:124:in `block in file_offenses'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:142:in `file_offense_cache'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:122:in `file_offenses'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:110:in `process_file'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:87:in `block in each_inspected_file'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:86:in `each'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:86:in `reduce'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:86:in `each_inspected_file'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:73:in `inspect_files'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/runner.rb:39:in `run'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cli.rb:210:in `execute_runner'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cli.rb:80:in `execute_runners'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/lib/rubocop/cli.rb:51:in `run'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/exe/rubocop:13:in `block in <top (required)>'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/2.6.0/benchmark.rb:308:in `realtime'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rubocop-0.74.0/exe/rubocop:12:in `<top (required)>'
/Users/jared/.rbenv/versions/2.6.3/bin/rubocop:23:in `load'
/Users/jared/.rbenv/versions/2.6.3/bin/rubocop:23:in `<top (required)>'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli/exec.rb:74:in `load'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli/exec.rb:74:in `kernel_load'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli/exec.rb:28:in `run'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli.rb:465:in `exec'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli.rb:27:in `dispatch'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli.rb:18:in `start'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/exe/bundle:30:in `block in <top (required)>'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/Users/jared/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/exe/bundle:22:in `<top (required)>'
/Users/jared/.rbenv/versions/2.6.3/bin/bundle:23:in `load'
/Users/jared/.rbenv/versions/2.6.3/bin/bundle:23:in `<main>'

@pirj Would you have time to look at this bug report, too?

Thanks for the detailed report!
It's reproducible, let me take a stab on the fix.

Fixed, now I'll have to find a way to fit it into our hard constraints.
lib/rubocop/cop/rspec/described_class.rb:35:7: C: Metrics/ClassLength: Class has too many lines. [104/100]
      class DescribedClass < Cop ...
      ^^^^^^^^^^^^^^^^^^^^^^^^^^

.. cop/rspec/described_class.rb .. Metrics/ClassLength .. Class has too many lines. [104/100]

I'm new to this codebase, so take this with a grain of salt, but I think 100 lines is not practical.  RuboCop itself currently has a ClassLength of 174. In the past, they've been above 200.

I agree though those limits tend to grow, and keeping them tight is a way to sit back and think what can be improved. Be it the future author of the code, or an encounter attempting to fix or improve it, it's hard to grasp more than 100 lines of code (excluding empty lines and comments).
I had this thing in this very repository, I've been returning to my pull request several times doing month-long breaks, and it was extremely hard to understand the code.
A problem with cops is that it's not a part of the system, it's a self-contained unit using the extension API provided by RuboCop, you usually can't push complexity out of it.
One exception enforced styles, it's sometimes two cops in one, performing code analysis that may not have common parts. However, we don't have a concept for mutually exclusive cops that would be called depending on the enforced styles, but that could help making the cops more focused.

174 is in RuboCop's .rubocop_todo.yml, e.g. it's something that will be eventually addressed, and it appeared as a compromise of development effort to delivering new features/cops.
There's always a lack of resources and demand for new features, so this tradeoff is reasonable considering that some common parts of cops are being extracted, and that reduces their length and complexity.


Impl Drop for Service to close all connections.

r? @vinipsmaker
(maidsafe_highfive has picked a reviewer for you, use r? to override)

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io

Coverage decreased (-71.2%) to 0.0% when pulling 1fa90a4a63b0c3ec7d69719fb146d1b182b83fcc on afck:master into ef93ed778237e520f84f5bb25d92b12098af88b5 on maidsafe:master.


Storage Reports

Currently we have the retention policy set to 30 days we want to change that to 210 days.  What I want to know is where is all the data stored and how does it affect our allocation?  Is the data going to take up SharePoint storage or is it hidden storage on the back end that i'm not aware of.  Is there some way to find out how large our retention repository is?

Data retention for SharePoint is stored in a library on the same site where the data resides. It will increase your storage usage.

@jluce512 Thank you for submitting feedback. We understand that this issue has been resolved.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


[Feature Request] Swap Import/Export buttons

I think the import and export buttons feel very confusing. You should consider swapping their button icon with each other or with othe desing to make it clearer.

The Arrow upwards is Upload/Import and the Arrow downwards is Download/Export. I don't know which symbols else should show this better.

Well, with a few quick searchs you can see that almost everyone in the internet asociate the downwards/going into a box arrow with imports and the the upwards/getting out of the box arrow with exports. You can just type "import symbol" in google and notice that this is the standar. Its not a big issue but i think going against the norm in things like this makes a really worked and nice project like this look less polished. This is just feedback. I love the web, i use it a lot and i would love to see new features added in the future

I am sorry, but the buttons are called download (export) and upload (import) so this is the global standard.
I think if I would change it around, more people would be confused instead of helped.
Also if you google import button you find both,  but the use-case is different:

Arrow Down: Import into an App that is installed on your PC
Arrow Up: Upload to a Server

Thanks for using the site, the next updates will be good!


Order by which back ends are used?

What is the order in which PersistJS tries to save the data? Is it:
flash: Flash 8 persistent storage.
gears: Google Gears-based persistent storage.
localstorage: HTML5 draft storage.
whatwg_db: HTML5 draft database storage.
globalstorage: HTML5 draft storage (old spec).
ie: Internet Explorer userdata behaviors.
cookie: Cookie-based persistent storage.
Can we somehow influence this order?

I've found javascript variable:
search_order: [
  // TODO: air
  'localstorage',
  'globalstorage',
  'gears',
  'cookie',
  'ie',
  'flash'
],

I need to use Flash, however - Flash support is BROKEN in this version of PersistJS, because of race condition (#942):
        // create new swf object
        swfobject.embedSWF(this.o.swf_path || cfg.path, cfg.id, cfg.size.w, cfg.size.h, '8', null, {}, cfg.params, {}, function(o) {
          // save flash element
          B.flash.el = o;
        });
      }

      // use singleton flash element
      this.el = B.flash.el;

B.flash.el is set async meaning that this.el = B.flash.el; gets execute before. It seems that version from http://pablotron.org/?cid=1557 works fine with Flash so I'll see if I can use that one. By the way - which one version is newer? Can we combine them somehow?

Please test the latest version. The object was incorrectly set to the swfobject callback instead of the element.

Nah, it's not working. I've looked into change you've made and I don't think it's possible to attach el to this like that:
        // create new swf object
        swfobject.embedSWF(this.o.swf_path || cfg.path, cfg.id, cfg.size.w, cfg.size.h, '8', null, {}, cfg.params, {}, function(o) {
          // save flash element
          B.flash.el = o.ref;
          this.el = o.ref;
        });

Correct me if I'm wrong, but I think this is what is needed:
        var self = this;
        // create new swf object
        swfobject.embedSWF(this.o.swf_path || cfg.path, cfg.id, cfg.size.w, cfg.size.h, '8', null, {}, cfg.params, {}, function(o) {
          // save flash element
          B.flash.el = o.ref;
          self.el = o.ref;
        });

But even in that case, getting doesn't work as get function for some reason is not properly exposed in this line:
       val = this.el.get(this.name, key);

And one more question - related to swfobject.js - is it somehow possible to embed that video synchronously (as it was done in 0.1.0) rather than asynchronously... since this way following will fail:
var _store;
$(function() {
_store = new Persist.Store('test2', {
swf_path: 'Scripts/persists2/persist.swf'
});
        var val = _store.get('pbd'); // flash store not yet initialized
    });

Your point about doing it synchronously rather than asynchronously is a good one. I don't personally use the flash backend, ever, but we could probably change the code to:
    // create new swf object
    swfobject.embedSWF(this.o.swf_path || cfg.path, cfg.id, cfg.size.w, cfg.size.h, '8', null, {}, cfg.params, {});
  }

this.el = document[C.flash.id];
},

What do you think?

Well, I must say I enjoy this conversation - it's nice to work with js pro ;)
And sorry for bothering you, but the reason why I want to force Flash usage is is because it persists between browsers - which is awesome.
Now, as for your change - I've tried number of methods and all of them failed.

this.el = document[C.flash.id] won't work (this.el is null when called).
I've even tried modifying swfobject.js, but if I make that method sync (rather than async & embedding on DomLoad) - any call to Flash throws: Error calling method on NPObject!

So - I dunno what to do. Correction we did (var self and all that)  will work for most cases - but when somebody wants to use library on page load (which happens in 90% of cases) the only way it'll work is with setTimeout after init. And as anyone will probably guess - that sucks (I've had tons of troubles with Safari on Mac during yesterday's testing - even with setTimeout(code, 1000) sometimes it works, sometimes it doesn't)

OK - I've found out why it doesn't work in Safari - if tab is not focused, this.el.get is not function - it is undefined. But when you switch to tab - this.el.get for some reason gets defined as function and starts working.
Anyone has some suggestion for this problem? Because these race conditions really suck.

I've went back and tested Persist 0.1.0, and this issue has existed since at least then.
I also embedded the generated flash into the page, instead of dynamically loading it, and updated persist to use the preloaded embedded flash, but the issue still exists.
I pushed a change to use createSWF instead of embedSWF, which seems to at least help with this.el being undefined. Please try the latest update and tell me if things are any better.
If you would like to upload a zip to reproduce your issue, and I will do my best to help continue debugging it.


Create a file upload component

Add support for drag and drop file upload component

I'll come back to this as soon as this is complete: https://github.com/redux-autoform/redux-autoform/issues/45
Having the features we have now working, tested and DOCUMENTED is far more important than adding new features.

100% agree with you @andrerpena! I will try to add test for components with enzyme.

+1, really.. Enzyme seems really great

@andrerpena the guys from airbnb are really good with js!

This comment is to remember how to configure a FileUpload!! :smile:
In order to obtain the file data sent by a multipart/form-data content type, we should use the multer middleware (https://github.com/expressjs/multer).
This allows you to define a diskStorage where you set where the files will be uploaded and which pattern will be used to select the filename of a uploaded file.

import multer from 'multer';

const storage = multer.diskStorage({
    destination: function(request, file, callback) {
        callback(null, "./demo/uploads");
    },
    filename: function(request, file, callback) {
        callback(null, file.originalname + '-' + Date.now())
    }
});

After that you create an instance of multer with the configured storage:
const upload = multer({storage});
And finally you should use that multer instance in each route that will receive the multipart data:
router.post("/upload", upload.array("fileData"), (request, response) => {
/* Some awesome stuff */
}

IMPORTANT The data you append to the FormData class in a FileUpload should have the same name you use when you use the upload.array/single/files functions, in our case, we are sendind the fileUpload data as fileData.

@andrerpena with @danigomez we have working a lot on this component. It's not finished yet, but it's at 85% of completation, so when finished we will submit a PR.
If you want to look at it, Dany has added it to the demo!! :smile:

Things TODO:

Provide a better way to customize styles
Extract styles from JS or use somethings like CSS in JS option
Consume status from service and show and alert or success message when upload

Actually the fileUpload looks like this:

Added delete modal to confirm!

I have merged this now because we need to use @andrerpena, I will work on fix the TabGroup minor bugs and test all the components, because I have make the coverage decrease :disappointed: but I promise the coverage will increase!! :smile:

I will keep this issue open since there are so much things to do to get it as we want

@JonatanSalas and @danigomez . I've been away for a while but I'm back now and trying to get up to speed again.
First, you've been doing a fantastic job with this component. I got a few questions:

I can see the component is basically composed of the files FileUpload.js and DropZone.js. If you've created this component and not leveraged an existing one, I assume that you didn't find one. If you didn't find one, it might be a good oportunity to extract this component out of RAF-BS. In my vision, RAF-BS shouldn't contain it's own components (left alone complex ones like this) but be a "package" of existing ones.
I've seen multer is being used for handling the multi-part upload. How are we dealing with the published demo version that doesn't have Node/Express support?

Another note, I added support for stacked vs inline in @JonatanSalas list.
Again.. Amazing job.

@andrerpena here you have the explanations:

The component I have used was react-dropzone. But I was having a bug with it, so I extracted the code.. make some modifications and used by myself, that's why this component is in bootstrap ui.
I want to make a small backend in node and deploy it through openshift. So we can have it uploaded to internet and the demo will consume from there.

What's your opinion?

Thanks @JonatanSalas

I understand you just used the source inside RAF because you had to deliver it. Totally comprehensible :smile: . But now, do you think we can extract it away from it? And create a file upload component that works? This would be interesting because the community could use it even outside RAF. This should drawn contributors too.
If you want to create a full-blown server to deploy the RAF's demo, it's ok for me as long as it's free. But don't you think it's a little overkill? We could just deploy the demo prod in such a way that the "upload" button doesn't work.

Do you mean create a FileUpload project? :open_mouth:
I refer to create a simple api that expose the simple resources that the demo needs (For example to fill the select/lookup from api, and FileUpload with it's upload service).
The demo will be deployed through github-pages also.

I like the idea for a FileUpload project!!! That way we can reuse it in the other UIs!! :smile:
PS: :tada:  :cake: :cake: :tada: :smile:

@danigomez the only case this will be different it's with material.. so we have to think on how to style it or make something that mix well with any UI

Yes. If the one you found doesn't work we should have our own. This is just my opinion, but RAF shouldn't have components. Also, as @danigomez said, it would be reusable.
I don't find it a priority but feel absolutely free to create it if you want :smile: . In my opinion this is what we should do: If the demo can behave differently online and locally according to a build configuration, then do it. Otherwise, we should think carefully. Example: For the autocomplete, we can load the options from a Promise (works online) or through a URL. This case, we can use a public URL, or don't have this option on the demo at all. Just in the documentation. But again, if you want to spin up a server, go for it. Open source is about doing what you are motivated to do :heart:

@JonatanSalas I agree that styling is a problem. Maybe we could have a base headless component and than one component for each UI.


Fix sample

Update Cartfile and Podfile.

 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 have signed the CLA already but the status is still pending? Let us recheck it.


fix(cactus-example-cbdc-bridging-frontend): fix package.json to match other packages

Describe the bug
cactus-example-cbdc-bridging-frontend package.json should follow the same structure as other cacti packages. Additionally, problems in current file causes CI check yarn_custom_checks to fail.
Logs/Stack traces
CI
ERROR: examples/cactus-example-cbdc-bridging-frontend/package.json "name" needs to have @hyperledger scope.
ERROR: examples/cactus-example-cbdc-bridging-frontend/package.json pkg "cbdc-app-frontend" missing "cacti-" prefix
ERROR: examples/cactus-example-cbdc-bridging-frontend/package.json the package itself incorrectly has version 0.1.0. Expected 2.0.0-alpha.2
ERROR: Packages examples/cactus-example-cbdc-bridging-frontend/package.json is not sorted
[tools/check-pkg-licenses.ts] Error: examples/cactus-example-cbdc-bridging-frontend/package.json has incorrect license SPDX. Expected Apache-2.0, got undefined instead.

@outSH I can take this, should be a quick one!