text:
nvm install 5 fails unless nvm ls before

nvm install 5 fails unless I previously did a nvm ls. So nvm ls is obviously not idempotent which is a bit weird?
$ . "$NVM_DIR/nvm.sh"
$ nvm install 5.0 || true
$ nvm use 5.0 || true
Version '5.0' not found - try `nvm ls-remote` to browse available versions.
N/A: version "N/A" is not yet installed.

You need to run "nvm install N/A" to install it before using it.
$ cd $DRONE_DIR
$ rm -rf node_modules
/bin/sh: 46: npm: not found

If I just add a nvm ls before it works:
$ git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin`
Note: checking out 'v0.31.6'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 31c68ad... v0.31.6
$ . "$NVM_DIR/nvm.sh"
$ nvm ls || true
            N/A
node -> stable (-> N/A) (default)
$ nvm install 5.0 || true
Downloading https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-x64.tar.xz...
######################################################################## 100.0%
Now using node v5.0.0 (npm v3.3.6)
Creating default alias: default -> 5.0 (-> v5.0.0 *)
$ nvm use 5.0 || true
Now using node v5.0.0 (npm v3.3.6)

Prior to doing an nvm ls, can you run set -ex; nvm install 5.0?
The || trues are likely masking errors, so it'd be ideal to remove those :-)

https://gist.github.com/hedefalk/e1e6d1ddc60ae97ac5ea3bffe3f34afb
Sorry, || true because https://github.com/creationix/nvm/issues/993 - basically my build fails on on everything without because set -e from surrounding environment.

Thanks, I think that cleared it up.

authors: hedefalk ljharb

repo: creationix/nvm


text:
Added explore cc button on submit page

Fixes

Fixes #225 by @praveen-rikhari

#225

Description

This PR resolves the issue of the missing "Explore CC" button on the /submit page by introducing a separate layout file, submit.html. Instead of manually including the content for /sumbit page, this approach streamlines the process by dedicating a specific layout file for the /submit page. By incorporating the Explore CC button within this layout, users can seamlessly navigate and explore CC resources while engaging with the submission process.
Technical details

Created a new layout file named submit.html to handle the layout of the /submit page.
Integrated the "Explore CC" button within the "submit.html" layout file by including header.html, ensuring its visibility and accessibility to users visiting the /submit page.

Screenshots

Before :

After :

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main or master).
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

For the purposes of this DCO, "license" is equivalent to "license or public domain dedication," and "open source license" is equivalent to "open content license or public domain dedication."

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Hi @possumbilities @TimidRobot Please have a look on my PR and let me know if any changes are requied.
Thanks

Thanks @TimidRobot I appreciate the work and ready to do such more contributions

source: gharchive/pull-request

repo: creativecommons/cc-resource-archive

license: MIT

license_type: permissive

license_source: github-api


text:
Fix the grammer mistake on Code of Conduct page

In the Reference of #256
fix the mistake

Thanks for making these changes, but we will not be merging this. See the comment on the related issue.

authors: chetan-v kgodey


text:
Build fails to compile

Version
1.0.1
Reproduction link
http://notavailable.com
Operating System
linux
Device
all
Browser & Version
n/a
Steps to reproduce
npm install soft-ui-dashboard (into my existing project)
npm run dev
What is expected?
Build success
What is actually happening?
ERROR  Failed to compile with 2 errors                                                                      11:42:14 AM
error  in ./resources/sass/app.scss
Module build failed (from ./node_modules/css-loader/index.js):
ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
&.bg-gradient-faded-#{$prop}-vertical{
^
Top-level selectors may not contain the parent selector "&".
╷
15 │   &.bg-gradient-faded-#{$prop}-vertical{
│   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
╵
node_modules/soft-ui-dashboard/assets/scss/soft-ui-dashboard/_gradients.scss 15:3  @import
node_modules/soft-ui-dashboard/assets/scss/soft-ui-dashboard/theme.scss 45:9       @import
node_modules/soft-ui-dashboard/assets/scss/soft-ui-dashboard.scss 27:9             @import

Solution
Additional comments

Hi @krebbi,
Thank you for working with our products and for opening the PR.
We will merge it in our next update.
Thank you,
Rares

source: gharchive/issue

authors: krebbi rarestoma

repo: creativetimofficial/soft-ui-dashboard


text:
Feat/table types

Change description
Change the "columns "part of TabelEvidence to return types for the columns. This functionality is there to support the Platform to style the column outputs (e.g., rounding numbers)
Example:
'columns': [
  {'value': 'false_positive_rate', 'type': 'number'},
   {'value': 'true_positive_rate', 'type': 'number'},
   {'value': 'threshold', 'type': 'number'}
]

@IanAtCredo @aproxacs Is this pull request still meaningful?

@fabrizio-credo Yes, please merge this. Now Backend converts this for old Lens versions, but it will be deprecated by the end of this year.
Note : please change str to string

authors: IanAtCredo aproxacs fabrizio-credo


text:
Sorting on /r/subreddit/comments should be less jacked up

The problem seems to be related to RES NER, but maybe not, and it shouldn't.  I'll try to get a decent sample first.

Thanks for the remember! I wanted to work on sorting removal reasons and shortcuts. Not really related to this, but thought I would mention :P

@LiterallyWTH pls

ok

authors: LiterallyWTH creesch

repo: creesch/reddit-moderator-toolbox


text:
Remove manager_callbacks from docs

There's no use of manager_callbacks in the code, so I'm removing it from the docs.

Disclaimer: This review was made by a crew of AI Agents.
Code Review Comment for PR #1741
Overview
This pull request effectively removes the reference to the manager_callbacks parameter from the crews.mdx documentation file. Such changes are critical in maintaining the accuracy and integrity of our documentation, especially as it pertains to deprecated features.
Documentation Changes
The removal of the following line from the documentation:
- | **Manager Callbacks** _(optional)_    | `manager_callbacks`    | `manager_callbacks` takes a list of callback handlers to be executed by the manager agent when a hierarchical process is used.

reflects the need to keep our documentation in sync with the current state of our codebase.
Impact Assessment

Documentation Consistency: This change is essential as it suggests that the manager_callbacks feature may no longer be part of the codebase. Maintaining accurate documentation is vital for preventing confusion among users regarding obsolete features.

Recommendations

Verification Required:

Confirm that the manager_callbacks feature has been completely removed from the codebase.
Ensure that no existing code still relies on this functionality.
If this constitutes a breaking change, include a migration guide to help users transition smoothly.

Documentation Completeness:

Add a note in the documentation to inform users of the removal if it was indeed a breaking change.
Provide details about alternative approaches or features that replace manager_callbacks, if applicable.

Maintain Table Format Consistency:

Ensure that remaining documentation formatting aligns with the established standards for clarity and user guidance:| Parameter | Config Key | Description |
|-----------|------------|-------------|

Conclusion
This pull request serves a straightforward yet significant purpose by enhancing the overall clarity of our documentation. While the removal of manager_callbacks appears to be a sensible amendment, verifying the complete deprecation of the feature and effectively communicating these changes to users will prevent potential issues down the line.
Additional Suggestions

Consider adding a changelog entry if the removal of manager_callbacks represents a breaking change.
Verify that all related documentation pages are updated consistently to reflect this change.
Ensure that any API documentation is also revised to maintain coherence across user communication.

Thank you for your work on this PR! The change is well-structured and reinforces the importance of accurate and up-to-date documentation in software development.

authors: joaomdmoura pcowgill

repo: crewAIInc/crewAI


text:
Using sensible z-index values

Problem
The current z-index values used for the default styles are seemingly arbitrary - see here, here, and here.
As far as I can tell, removing these z-index values has absolutely no impact on the appearance of the navigation and header. I'm wondering if there is a good reason for these values? Otherwise I'd be more than happy to submit a PR with the relevant changes.

@jpnut A PR would be very welcome. Indeed, the css part is not the best and could be improved. I don't think there is a reason for these values since initially I started with the css from https://www.creative-tim.com/product/paper-bootstrap-wizard and adjusted it along the way

Sure thing! To be honest the css is the least of my concerns - it's very straightforward to roll your own solution, but I personally quite like the default styles provided, and would like to use them in my projects - the only thing stopping me was the z-index! I'll submit a PR today or tomorrow, depending on when I get the time.
Thanks a lot for a great package, your work on this is greatly appreciated!

Thanks for the kind words. The goal for me, would be to have something like in my other component https://github.com/cristijora/vue-tabs#theming where you can easily make a theme a make it look different/personalized quite easy.

authors: cristijora jpnut

repo: cristijora/vue-form-wizard

license: mit

license_source: bigquery


text:
Feature Request

Note sure if this is Foundry side or GURPS side:
When you click on an Actor in the Combat Tracker, the token is highlighted with a thin line around the hex.  It's not very obvious.  It would be good to have a second click or long click generate a more obvious "beacon" to which token is related (flashing the ring around the hex, maybe?) - something to help identify quickly where various tokens are relating to the listed actors.  This can help in a large scene with lots of tokens.
Somewhat related, also the ability for a player or GM to click a hex and set off a "beacon" to indicate to someone exactly which hex they are indicating (this is something that exists in Roll20, for example).

Somewhat related, also the ability for a player or GM to click a hex and set off a "beacon" to indicate to someone exactly which hex they are indicating (this is something that exists in Roll20, for example).

This can be accomplished using a module called Ping.

authors: Farmeroz mjeffw

repo: crnormand/gurps


text:
Upgrade Travis build to Docker infrastructure

See upgrade documentation from Travis. Sudo is not yet supported, but all necessary packages (including gcc-5.1) are whitelisted and can be installed using APT addon.

Concept of a new Travis configuration with support of Travis docker technology can be found on https://github.com/xtracko/travis. Actualy we are waiting for any cmake-3.x ubuntu repository to be whitelisted. The actual whitelist of travis repositories can be found at https://github.com/travis-ci/apt-source-whitelist.

Done in commit  43b0a97

authors: mathius xtracko

repo: crocs-muni/EACirc


text:
Crashing on loading screen

When is loading screen it crashed.
crash:
FATAL: Unable to load 'C:\programs Files\Rockstar Game\Grand Theft Auto V
ScriptHookVDoNet2.dll"

Unblock the ScriptHookVDotNet2.dll (right click > Properties > Unblock).

authors: Zraine crosire

repo: crosire/scripthookvdotnet

license: Zlib


text:
[TC release]Add maven/gradle build way suffix for embeddingapi test s…

…uites
We need all maven/gradle/ant build way for all the embeddingapi test suites.
However, each way has the same zip file name after packing. That will cause
the latter build overwrite the former and only produce one zip file. We want
3 zip files in all for each embeddingapi test suite.
To fix this, we add a build way suffix for the zip file name.
https://crosswalk-project.org/jira/browse/XWALK-4528

Please notice, adding maven/gradle/ant way on Crosswalk-14 and master branch has different way. Please don't merge this PR to master branch at present. I will submit another PR for master branch.

LGTM

authors: jennycao qiuzhong

repo: crosswalk-project/crosswalk-test-suite


text:
Fix path for barclamp_install.rb

When installing a barclamp not from rpm, but from a file location, a non-
correct path is used resulting in not installed roles etc. This fixes
the path
Note: This will upload all data bags and roles present in the path. Worth fixing this too?

Hmm, sounds like a code smell hardcoding absolute paths in the middle of code like that.  There should be a better way.  Can you clarify why a non-correct path is used in the scenario you describe?  I don't understand the problem yet.

I don't think this is correct: "when not installing from rpm" more or less means "install from a git clone", and that path does exist.
Or am I missing something?

I cloned a git repo and manually copied it in into the /opt/dell/ tree. Then I ran /opt/dell/bin/barclamp_install.rb  /opt/dell/barclamps/neutron. The path I pass is bc_path in the barclamp_mgmt_lib.rb. The script appends the other names to the path and expects to find the roles e.g. in  /opt/dell/barclamps/neutron/chef/roles and the data bags in /opt/dell/barclamps/neutron/chef/data_bags. See lines 431 to 433 in barclamp_mgmt_lib.rb

Is this wrong usage of the script? I don't get it to work when not pointing it to /opt/dell/barclamps/<barclamp_name>
But  I agree that there are prettier ways to fix this.

The script appends the other names to the path and expects to find the roles e.g. in  /opt/dell/barclamps/neutron/chef/roles and the data bags in /opt/dell/barclamps/neutron/chef/data_bags.

That's correct. So why don't you have these files if you cloned a git repo and copied it to /opt/dell/barclamps? Oh, I read you copied it to /opt/dell?

Yes, I copied it to /opt/dell.
Also, this works as long as there are no changes to data bags or roles, which might be why it always worked for me that way.

So yeah, you're supposed to simply copy the whole git clone to /opt/dell/barclamps.

I see. I could have probably discovered that myself too. Anyway, closing this now.

authors: aspiers nkrinner vuntz

repo: crowbar/crowbar


text:
Set the variables that are used later in the script

They were accidentally removed by
https://github.com/crowbar/crowbar/pull/2159
Without them, IPv4_addr is not set, thus breaking chef-client configuration. DOMAIN and FQDN are  used in the script as well

aren't those checks in crowbar now? https://github.com/crowbar/crowbar-core/pull/61

Yes, but all the variables are used later or in install-suse-cloud

@jsuchome I would prefer if we just reverted the whole of #2159 and start over from there.

We should just define the variables. The checks are already done while starting crowbar.

authors: MaximilianMeister jsuchome rhafer tboerger


text:
msg="firewall '${BACKEND}' is not supported" - Update doesn't work - dpkg: error processing package crowdsec-firewall-bouncer-iptables (--configure)

Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up crowdsec-firewall-bouncer-iptables (0.0.20) ...
Job for crowdsec-firewall-bouncer.service failed because the control process exited with error code.
See "systemctl status crowdsec-firewall-bouncer.service" and "journalctl -xe" for details.
dpkg: error processing package crowdsec-firewall-bouncer-iptables (--configure):
 installed crowdsec-firewall-bouncer-iptables package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 crowdsec-firewall-bouncer-iptables
E: Sub-process /usr/bin/dpkg returned an error code (1)

-- Unit crowdsec-firewall-bouncer.service has begun starting up.
Dec 23 18:23:45 joshwhotv.com crowdsec-firewall-bouncer[23040]: time="2021-12-23T18:23:45-06:00" level=info msg="crowdsec-firewall-bouncer v0.0.20-debian-pragmatic-932c47510b064026f568
Dec 23 18:23:45 joshwhotv.com crowdsec-firewall-bouncer[23065]: time="2021-12-23T18:23:45-06:00" level=info msg="crowdsec-firewall-bouncer v0.0.20-debian-pragmatic-932c47510b064026f568
Dec 23 18:23:45 joshwhotv.com crowdsec-firewall-bouncer[23065]: time="23-12-2021 18:23:45" level=fatal msg="firewall '${BACKEND}' is not supported"
Dec 23 18:23:45 joshwhotv.com systemd[1]: crowdsec-firewall-bouncer.service: Main process exited, code=exited, status=1/FAILURE
Dec 23 18:23:45 joshwhotv.com systemd[1]: crowdsec-firewall-bouncer.service: Failed with result 'exit-code'.
Dec 23 18:23:45 joshwhotv.com systemd[1]: Failed to start The firewall bouncer for CrowdSec.
-- Subject: Unit crowdsec-firewall-bouncer.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit crowdsec-firewall-bouncer.service has failed.

msg="firewall '${BACKEND}' is not supported"

Hello @JoshWho,
This has been fixed in #105, we will soon release a new version with the fix.
In the meantime, you can workaround the issue by editing /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml and replacing ${BACKEND} with iptables.

Setting up crowdsec-firewall-bouncer-iptables (0.0.20) ...
W: APT had planned for dpkg to do more than it reported back (0 vs 4).
   Affected packages: crowdsec-firewall-bouncer-iptables:amd64
You have new mail in /var/mail/root

Thank you after making the change I ran sudo systemctl restart crowdsec-firewall-bouncer  and everything looks good now.

authors: JoshWho blotus

repo: crowdsecurity/cs-firewall-bouncer


text:
mariadb-logs: MariaDB logs not parsed because of a missing letter

In my Debian Bullseye setup of MariaDB (standard packages) with CrowdSec 1.4.3, MariaDB logs are not parsed. The log lines enter the syslog parser, but never get picked up by mariadb-logs. I found out that this is due to a missing letter.
The MariaDB log file entry for a login attempt with a wrong password looks like this:
Jan 14 09:21:50 data mariadbd[609]: 2023-01-14  9:21:50 15647 [Warning] Access denied for user 'xxx'@'2001:db8::0001' (using password: YES)
The message comes from mariadbd, the daemon. However, mariadb-logs filters for
filter: "evt.Parsed.program == 'mariadb'"
without d. Took me some time to find that error... Changing the filter criterium to 'mariadbd' solves the issue.
I am not sure if this is debian specific or not. If it isn't, it's a simple bug. If it is, I assume this hits most Debian/MariaDB users, and I think it would be worth while adding a second filter criterium 'mariadbd'.

We can change the evt.Parsed.program startsWtih 'mariadb' so it will always cover it for both

Sounds reasonable, thanks.
Talking about little details: You probably meant startsWith, not startsWtih. Just in case you want to copy&paste... :-)

That's what I get for typing too fast! thank you, I can see about pushing a fix sometime today.

authors: LaurenceJJones paulastronaut

repo: crowdsecurity/hub


text:
Deployment is failing

There is some dependency problem in strong-mesh-client.
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Node.js app detected
remote: -----> Requested node range:  6.6.0
remote: -----> Resolved node version: 6.6.0
remote: -----> Downloading and installing node
remote: -----> Restoring node_modules from cache
remote: -----> Installing StrongLoop dependencies
remote: /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/bin/slc -> /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/bin/slc.js
remote: /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/bin/lb-ng -> /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/loopback-sdk-angular-cli/bin/lb-ng.js
remote:
remote: > heapdump@0.3.7 install /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/heapdump
remote: > node-gyp rebuild
remote:
remote: make: Entering directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/heapdump/build'
remote:   CXX(target) Release/obj.target/addon/src/heapdump.o
remote:   SOLINK_MODULE(target) Release/obj.target/addon.node
remote:   COPY Release/addon.node
remote: make: Leaving directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/heapdump/build'
remote:
remote: > modern-syslog@1.1.4 install /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/modern-syslog
remote: > node-gyp rebuild
remote:
remote: make: Entering directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/modern-syslog/build'
remote:   CXX(target) Release/obj.target/core/core.o
remote:   SOLINK_MODULE(target) Release/obj.target/core.node
remote:   COPY Release/core.node
remote: make: Leaving directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/modern-syslog/build'
remote:
remote: > sqlite3@3.1.4 install /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/sqlite3
remote: > node-pre-gyp install --fallback-to-build
remote:
remote: [sqlite3] Success: "/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/sqlite3/lib/binding/node-v48-linux-x64/node_sqlite3.node" is installed via remote
remote:
remote: > strong-agent@2.1.2 install /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/strong-agent
remote: > node-gyp rebuild || exit 0
remote:
remote: make: Entering directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/strong-agent/build'
remote:   CXX(target) Release/obj.target/strong-agent/src/strong-agent.o
remote:   SOLINK_MODULE(target) Release/obj.target/strong-agent.node
remote:   COPY Release/strong-agent.node
remote: make: Leaving directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/strong-agent/build'
remote:
remote: > ws@0.4.32 install /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/node-inspector/node_modules/ws
remote: > (node-gyp rebuild 2> builderror.log) || (exit 0)
remote:
remote: make: Entering directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/node-inspector/node_modules/ws/build'
remote:   CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
remote: make: Leaving directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/node-inspector/node_modules/ws/build'
remote:
remote: > utf-8-validate@1.2.2 install /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/utf-8-validate
remote: > node-gyp rebuild
remote:
remote: make: Entering directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/utf-8-validate/build'
remote:   CXX(target) Release/obj.target/validation/src/validation.o
remote:   SOLINK_MODULE(target) Release/obj.target/validation.node
remote:   COPY Release/validation.node
remote: make: Leaving directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/utf-8-validate/build'
remote:
remote: > bufferutil@1.2.1 install /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/ws/node_modules/bufferutil
remote: > node-gyp rebuild
remote:
remote: make: Entering directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/ws/node_modules/bufferutil/build'
remote:   CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
remote:   SOLINK_MODULE(target) Release/obj.target/bufferutil.node
remote:   COPY Release/bufferutil.node
remote: make: Leaving directory `/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/ws/node_modules/bufferutil/build'
remote:
remote: > strong-mesh-client@1.6.3 install /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/strong-mesh-client
remote: > node proxy/build-client.js
remote:
remote: unable to generate browser bundle: Cannot find module 'regenerator' from '/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib/node_modules/strongloop/node_modules/ajv/lib'
remote: /tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/lib
remote: └── (empty)
remote:
remote: npm ERR! Linux 3.13.0-110-generic
remote: npm ERR! argv "/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/bin/node" "/tmp/build_52f4194afa13e6b7a077196a18992790/vendor/node/bin/npm" "install" "-g" "strongloop"
remote: npm ERR! node v6.6.0
remote: npm ERR! npm  v3.10.3
remote: npm ERR! code ELIFECYCLE
remote:
remote: npm ERR! strong-mesh-client@1.6.3 install: `node proxy/build-client.js`
remote: npm ERR! Exit status 1
remote: npm ERR!
remote: npm ERR! Failed at the strong-mesh-client@1.6.3 install script 'node proxy/build-client.js'.
remote: npm ERR! Make sure you have the latest version of node.js and npm installed.
remote: npm ERR! If you do, this is most likely a problem with the strong-mesh-client package,
remote: npm ERR! not with npm itself.
remote: npm ERR! Tell the author that this fails on your system:
remote: npm ERR!     node proxy/build-client.js
remote: npm ERR! You can get information on how to open an issue for this project with:
remote: npm ERR!     npm bugs strong-mesh-client
remote: npm ERR! Or if that isn't available, you can get their info via:
remote: npm ERR!     npm owner ls strong-mesh-client
remote: npm ERR! There is likely additional logging output above.

Is this with the version that is currently in master?

Yes, and it wasn't the case yesterday.
And we're not the only one: https://github.com/strongloop/strong-mesh-client/issues/53

Locally I'm using nvm to reproduce the same problem.
nvm install 6.6.0
nvm use 6.6.0
npm install -g loopback

The dependencies it complains about: js-beautify, nodent, regenerator. All accidentally in ajv, but only in devDependencies which don't seem to come through if used as part of package.json.

Feel free to reproduce by this simple package.json file:
{
  "name": "Test",
  "version": "1.1.0",
  "main": "server/server.js",
  "license": "(LGPL-3.0 OR Apache-2.0 OR MIT)",
  "dependencies": {
    "strong-mesh-client": "*"
  },
  "devDependencies": {
  },
  "repository": {
    "type": "",
    "url": ""
  },
  "description": "Crownstone",
  "engines": {
    "node": "6.6.0"
  }
}

It is included because in the heroku settings it is listed as a build package. That triggers an npm install -g strongloop which i find really scary since any update to strongloop would be automatically included.

By the way, this is why we would like to use yarn. Exactly to avoid this.

Do we actually use any strongloop functionality? Maybe loopback will be sufficient. Currently the build is failing (https://github.com/strongloop/strong-mesh-client/issues/53) because of some dependencies on strong-mesh-client, namely js-beautify, nodent, and regenerator that are pulled in through ajv.
If we e.g. only want the cluster and restart functionality it should be enough to add strong-supervisor as a dep (http://stackoverflow.com/questions/32150014/how-to-use-strongloop-pm-on-heroku-for-loopback-based-nodejs-applications) and remove the buildpack at https://dashboard.heroku.com/apps/crownstone-cloud/settings, and have web: node server/server.js rather than web: slc run in Procfile.

I haven't done it yet, because I assume removing the buildpack will apply to both development and production.

I tend to agree, though I'm not that up to speed with the cloud processes. I'd prefer everything we use to be in package.json to avoid things like this.
Given that everything runs locally without the strongloop cli I don't think its mission critical.
The buildpack is individually configured per heroku app, dev and production are different apps (in different groups).

Okay, done for development. Deployment is now much faster. :-)

Cool :) we'll need to see what exactly is missing now. It could be that the packages that are running on production require it still.

repo: crownstone/crownstone-cloud


text:
Update protobuf to 2.0.2

Update protobuf to 2.0.2

CI

Keep patient!
Block by PR-89: Upgrade the build environment.

Codecov Report

Merging #95 into develop will increase coverage by 1.11%.
The diff coverage is 0%.

@@             Coverage Diff             @@
##           develop      #95      +/-   ##
===========================================
+ Coverage    37.46%   38.57%   +1.11%
===========================================
  Files          130      130
  Lines        22790    22134     -656
===========================================
  Hits          8539     8539
+ Misses       14251    13595     -656

Impacted Files
Coverage Δ

libproto/src/protos/request.rs
3.34% <0%> (+0.06%)
:arrow_up:

libproto/src/protos/auth.rs
0% <0%> (ø)
:arrow_up:

libproto/src/protos/snapshot.rs
0% <0%> (ø)
:arrow_up:

libproto/src/protos/communication.rs
7.28% <0%> (ø)
:arrow_up:

libproto/src/protos/blockchain.rs
11.65% <0%> (+0.9%)
:arrow_up:

libproto/src/protos/sync.rs
0% <0%> (ø)
:arrow_up:

libproto/src/protos/response.rs
4.01% <0%> (+0.09%)
:arrow_up:

libproto/src/protos/citacode.rs
0% <0%> (ø)
:arrow_up:

libproto/src/protos/executor.rs
0% <0%> (ø)
:arrow_up:

libproto/src/protos/consensus.rs
0% <0%> (ø)
: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 e20ae71...3fa2604. Read the comment docs.

authors: codecov-io driftluo u2 yangby-cryptape

repo: cryptape/cita-common


text:
Option to change between Mac/Windows window buttons (top left vs. top right)

It can get pretty confusing when you're maining a windows machine and the close, minimize and maximise buttons are on the left instead of the right. Having the buttons default to each OS' button styles with the option to choose manually would be much appreciated.

This is currently an option in the configuration (can be found here). If you compile the application you can fix this or you can wait for 2.3.0 and you will be able to edit the configuration yourself, without compiling.

that aint quite what they mean't by that. They wanted the macOS window but with the buttons aligned on the right instead of the left.

Whoops, shouldn't be too hard to do though.

Added to development build, will be available in 2.3.0 and can be enabled with config option macosWindowForceRight.

authors: Nosh118 coredev-uk cryptofyre

repo: cryptofyre/Apple-Music-Electron


text:
Basic operations and statements

Implements basic binary operations and statements such as classes, modules and methods. Splat, double splat and block parameters in method definitions will be implemented in a future PR as they require specific precedences to be set for different operators to prevent parsing conflicts.

For some reason the MacOS CI isn't installing dependencies which causes the rest to fail due to fail-fast. Tests pass locally, I think we'll need to disable MacOS CI and/or remove fail-fast from the workflow for now.

repo: crystal-lang-tools/tree-sitter


text:
iterative flat_map on iterators crashes the compiler by infinite memory growth

Consider the following code
list = { {1, 2, 3}, {4, 5, 6} }.each
2.times do
  list = list.flat_map do |list|
    { {1, 2, 3}, {4, 5, 6} }.each
  end
end

Compiling this will cause the compiler to eat up all the memory (so probably some kind of infinite loop). The code compiles fine if, e.g., the initial value of list is not an iterator but a plain tuple:
list = { {1, 2, 3}, {4, 5, 6} }   # this compiles fine
2.times do
  list = list.flat_map do |list|
    { {1, 2, 3}, {4, 5, 6} }.each
  end
end

Crystal version:
% crystal --version
Crystal 1.2.2 [6529d725a] (2021-11-10)

LLVM: 10.0.0
Default target: x86_64-unknown-linux-gnu

Duplicate of #7044.

authors: HertzDevil f-fr

repo: crystal-lang/crystal


text:
Change implementations for Crystal::System::File.info?/.info

Taking a look at the Unix and Windows implementations for Crystal::System::File.info? we can see that several exceptions are raised for a method that should only return nil. The Crystal::System::File.info method mistakenly wraps .info? with a nilable check, meaning that both methods are exception prone. This was the source of a compiler bug with dsymutil on MacOS but can also be reproduced by attempting to get the information of a protected directory or file:
puts File.info? "/root/dev" # doesn't actually exist but still raises

The docs for File.info? only say:

Returns a File::Info object for the file given by path or returns nil if the file does not exist.

There are no mentions that it "should" return nil in case of an error, so it is not necessarily a bug.

The fact that Crystal is failing to compile because of this means that it's a bug. The general consensus in the standard library is that ? methods are usually nilable or return a boolean and ! methods return the expected value or raise an exception, why should this be an exception? To me it seems like this was the original intention but was overlooked.

If it is a compiler bug, then Crystal::System::File.info? is working as intended and the title does not describe this bug accurately.

Alright, following this I believe the implementation for these methods should be changed to be consistent with the rest of the standard library, as well as to fix this bug.

Reading https://forum.crystal-lang.org/t/dsymutil-is-not-being-found-but-i-cant-specfy-where-it-actually-is/6051 for some background, I understand the issue is that File.info? is used in a way that a raised exception due to non-readable path causes a compiler error. This is definitely a bug, but it looks more like this method is used in a way that it's not intended, placing the error at the call site in the compiler, not the implementation of File.info? itself.
As @HertzDevil argued the behaviour of File.info? is not technically wrong. The error for the path in question (/root/def) is cause by having no read access to /root. So it's unclear whether that path actually exists, but it's clear that we are not allowed to read it. So that's the cause for the exception.
The documentation is very inviting to be misinterpreted that this method would never raise and always return nil in case of an error.
Such a misinterpratation is demonstrated by an exception raised from this method breaking the compiler.
Clarifying the documentation for different error scenarios should improve this at least theoretically (it won't fix call sites that don't account for exceptions).
A different path would be to change the behaviour of the method to maybe more align with general expectations.
So I think the first cause if action should be to determine the expected behaviour of File.info? in various error scenarios.

A different path would be to change the behaviour of the method to maybe more align with general expectations.

I think this would be best to stay consistent with the standard library, otherwise you're better off not using the method at all and doing if File.exists?("/root/dev") && File.readable?("/root/dev") or wrapping it in a begin..rescue..end expression.

Consistency with similar methods .exists? and .readable? should be a good argument to have .info? not raise an exception on an inaccessible path. 👍

authors: HertzDevil devnote-dev straight-shoota


text:
Refactor Sockets API

See #4277 (issue-comment) for the initial idea.
There are quite a few errors in the API design related to sockets:
TCPServer inherits from TCPSocket which is conceptually true, but TCPSocket is a Socket which inherits from IO - yet a server cannot be used as an IO. The same is true for UNIXServer.
UDPSocket also inherits from Socket and IO, yet cannot be used as an IO either since UDP communication does not work as a stream.
IPSocket as parent of UDPSocket and TCPSocket defines accessors local_address and remote_address, yet TCPServer does not have single remote address. Neither does a UDPSocket in listening mode.
While it's not such a big issue, I would also suggest to put all these types in the Socket namespace. These socket types are the only non-basic types in the global name space. And large parts of the API are already in the Socket namespace. TCPSocket -> Socket::TCP, TCPServer -> Socket::Server::TCP (or Socket::TCPServer) etc. I will use namespaced types from now on but that should not influence the logical considerations.
TCP and UDP sockets should be an IO because they are essentially streaming interfaces. The basic Socket however should not be an IO because Socket::UDP cannot be used as an IO. This would call for an intermediary class Socket::IO as parent for Socket::TCP and Socket::UDP which inherits from IO.

Socket

Socket::UDP
Socket::IO < IO

Socket::TCP
Socket::UNIX

I'm not entirely sure about Socket as a base type. It needs to be a module because IO is a class, but I don't know if it has any useful functionality common to streaming and non-streaming sockets. It's main purpose is to give access to lower level socket functions.
I'm also not sure we need IPSocket at all, it adds very little.
The server sockets can't inherit from Socket::TCP and Socket::UNIX so they're don't need to be related. It could be considered having a module which can be included by both, but I don't think there is much commonality, at least not for the public API.

Socket::Server

Socket::Server::TCP
Socket::Server::UNIX

May be related: https://github.com/crystal-lang/crystal/issues/4317#issuecomment-295789662

@bew yeah, this assumes UNIX sockets are only used as streams.

Additionally, I would suggest that all sockets and servers can be created using appropriate Socket::IPAddress or Socket::UNIXAddress as constructor parameters.
Maybe these could also be renamed to Socket::Address::IP and Socket::Address::UNIX to clean up the namespace and follow the same naming as for sockets and servers.
Socket and Socket::Server could have as static method .new which receives a Socket::Address and creates the specific type based on the address type. A nice addition would be a parser for Socket::Address which receives a string and creates the appropriate type based on whether it contains a host + port or a unix path.
This would make it very easy to use a simple string as a config setting for users to transparently choose either a UNIX or TCP connection type (see also #2735 (issue-comment)).

I can hear the conceptual requirement that TCPServer and UNIXServer shouldn't eventually inherit from IO, and it's maybe possible to achieve. I'll welcome a solution that doesn't merely wrap a TCPSocket and delegates some selected methods, but let's stay focused on this single problem.
Honestly, introducing many namespaces only introduces complicity for it's own sake and doesn't solve anything. For example Socket::Server::TCP spells hideously when compared to TCPServer —the OpenSSL namespaces are a perfect example of how hideous and user unfriendly it can lead to (you can't remember proper names without looking at documentation).
Last but not least, the TCPServer or UNIXSocket classes are simple abstractions for very common usages (e.g. start a TCP server, connect to an UNIX socket, send/receive a message over UDP). Uncommon usages must use Socket directly. For example UNIX DGRAM sockets are so uncommon we only have one single reported use case (wpa_supplicant): we musn't bother about it (use Socket).

Listing problems is fine, but detailing what's accessible to each level (general / TCP / UDP and UNIX sockets and servers) would be even better, especially since the underlying system implementation just mixes everything —so Socket should be capable to intermix everything, even being an IO, because of advanced usages, such as Bluetooth or RAW sockets.
That would really help to map what should be accessible, what shouldn't, and so on, and decide whether such a refactor makes sense, or if it would inexorably leads to a horrible implementation.

Right now working on Bluetooth socket , its a hacky ride because of current implementation.
I would love to somehow remove the AF settings from an enum

The only solution to avoid convoluted APIs is to separate the low-level API currently provided by Socket from the more specific implementations. The low-level API needs to be able to provide access to everything you can possibly do. But TCPSocket needs no methods for sending and receiving datagrams for example.
Implementationwise, this could be achieved by wrapping the low-level API in the higher-level classes, though that would not be particularly great. Another approach could be non-public modules that provide the required functionality. But I guess that's gonna cause some issues, just thinking about API docs. Alternatively, we could have a very basic, internal API similar to the APIs in the Crystal::System namespace which is used by both the low-level and high-level types.
I'll try to sketch the basics of each type, leaving out any detailed configuration settings to get a more clear overview:
(we could probably have a module Socket::TCPSettings and include it in Socket::TCP and Socket::Server::TCP to apply tcp settings for both server and client sockets)
abstract class Socket::IO < IO::Syscall
  getter file_descriptor : Int32

  def self.open(*args, **kwargs, &block : self ->) # individual implementations in subclasses
end

class Socket::TCP < Socket::IO
  getter local_address : Socket::Address::IP
  getter remote_address : Socket::Address::IP

  def self.new(address : IPAddress, local_address : IPAddress = nil)
  def self.new(host : String, port : Int32)
end

class Socket::UNIX < Socket::IO
  getter remote_address : Socket::Address::UNIX?

  def self.pair : {self, self}
end

class Socket::UDP
  property? broadcast : Bool
  getter remote_address : Socket::Address:IP?
  getter local_address : Socket::Address:IP?

  def self.new
  def self.new(address : IPAddress)

  def file_descriptor : Int32

  def connect(address : IPAddress)
  def connect(host : String, port : Int32)
  def connected?
  def disconnect

  def bind(address : Socket::Address::IP)
  def bound? : Bool
  def close

  def send(message, address : Socket::Address::IP? = nil)
  def receive(message : Bytes), {Int32, Socket::Address::IP}
end

And the servers:
abstract class Socket::Server
  getter local_address : Socket::Address

  def accept(&block : Socket::IO ->)
  def accept?(&block : Socket::IO ->)
  def accept? : Socket::IO?

  def close
end

class Socket::Server::TCP < Socket::Server
  getter file_descriptor : Int32
  getter local_address : Socket::Address:IP

  def self.new(address : Socket::Address::IP, backlog = nil, reuse_port = false)
  def self.new(host : String, port : Int32, backlog = nil, reuse_port = false)
  def self.new(port : Int32, backlog = nil, reuse_port = false)
end

class Socket::Server::UNIX < Socket::Server
  getter file_descriptor : Int32
  getter local_address : Socket::Address:UNIX

  def self.new(address : Socket::Address::UNIX, backlog = nil)
  def self.new(path : String, backlog= nil)

  def close(delete = true)
end
```

authors: bararchy bew straight-shoota ysbaddaden


text:
Parse integer division operators

In the path to implement #2968 first the operators needs to be allowed.
This PR allows // and &// operators to be defined.
The behavior will need to wait to the next release.
// will raise on overflow and &// won't. Similar to + vs &+.
// will continue to mean empty regex when possible:

foo // bar is equivalent to foo.//(bar)
foo // is a syntax error (from now on)
foo(//) is a call passing empty regex

The ASTNode#to_s will use %r() as empty regex always since // will not always work.
There are some refactors on specs and code for allowing operators to be used as methods and macro names introducing a state ivar @wants_def_or_macro_name that works similar to @slash_is_regex configuring the behavior of the lexer depending on the context.

Yes @straight-shoota I mean to overflow as "raise overflow". &// won't raise. I've just edited for clarity.

&//=

we get closer to perl every day

I really don't like all these new operators being proposed. Wrapped(T) will work fine, and integer division works fine as-is. Why change?
I really don't think we should introduce all these operators, they're just more things for a newcomer to learn to save a few characters typing (.to_f) in a fairly rare situation. I think it's a bad tradeoff.

I would expect that from all the operators added in this PR // will be at far the most used. The rest are for consistency. Implementing only // would leave things unfinished in this topic.
The division operator / can be improved, this has been discussed already in #2968 and #6223. The main issue is semantic one. / performs different operators depending on the numeric type. The fact that we are used to an overload behaviour of / does not mean it can't be improved.
Adding .to_i/.to_f to force one or another will make the code use more (or less) precision that it should because .to_i/.to_f has fixed output type.
The wrapper api, can be implemented on top of this. But not the other way around. So operators are more powerful and expressive.
For wrapper to work well with overloads you will need Wrapper(T) < T which is something that is not supported. Otherwise the type is used only locally without passing them around.
The discussion left (hence this PR) is not about if the language needs to add this, but if the implementation is good enough.

Wrapping(T) is a discussion for another issue, but i'm yet to see a place where numbers with wrapping arithmetic performed on them are actually passed around significantly outside of a single class. I don't see a reason why ease of use of unchecked arithmetic is a big deal because it's just so rare. Adding a whole set of new operators just for something so rarely used seems to be like a gross premature optimization and a bad idea.
Back to this issue, I'm not sure what your concern is about .to_i/.to_f, because the current method clearly works, because it's the current method. I haven't seen any friction in that area and I've been on IRC helping newbies for a long time. I can't see the motivation.

I just want data that this is actually a problem in the real world, and not a solution to a problem that we've invented in our heads and I can't find any.

Back to this issue, I'm not sure what your concern is about .to_i/.to_f, because the current method clearly works, because it's the current method.

Let's use an example, if avg method wants to be coded that will work with any kind of numbers you will end up adding a to_f to force non-integer division, because / currently is both (int and non-int). I think that that already needs to be improved because it can be more clear.
The to_f will make the result of the operation Float64, but if the input numbers are Float32 then why the operation needs to be carried on 64 bits? Only because the lack / to express the floating point division in the most appropriate type given the operands.
Again, the fact that we are used to C like math operators does not make it the best option.

@bcardiff I think issues like that are fairly rare, and val = val.to_f unless val.is_a? Float is a very short snippet for the small amount of methods that operate on generic Numbers.

That snippet is a workaround and harder to come up when learning the language. Having different operators is cleaner. Something new to learn today, yes. But is a more consistent set of operators.
Try to explain that line when coding a method that manipulate numbers vs explain that / is floating point division and // is floor division always.

Splitting / and // was already agreed and pros/cons were exposed.
Leaving // to raise upon overflow and avoid adding &// seems incomplete.
Excluding //= and &//= when /= is already supported seems incomplete also.

I could understand removing 3 from the PR, if and only if /= is also removed. But it seems arbitrary since +=, &+=, etc are allowed. So they are implemented.

@bcardiff it's not just something new to learn today, it's something new that every newcomer from now until forever will have to learn.
At the end of the day though, I'm more concerned about the overflow stuff adding a bazillion more operators than this PR only adding two.

I think having / and // operators is more intuitive than just / (many people find it strange that 1/2 == 0)
The & operators will be used in very specific circumstances, so this doesn't add a lot of complexity. Much less with division.
I think the decision about introducing this // operator is already taken. Now it's time to review the code.

I forgot we'd already merged all the &+ overflow operators. Since we've already - in my opinion - ruined the language with them you might as well go and merge this PR.

I would prefer &//= to be removed, along with &+= &-= &*=. If someone wants to be this specific, they can write a = a &+ 1 rather than a &+= 1.
And if anyone else is thinking: how can integer division overflow? 🤔
@RX14 had to explain to me that it happens (only?) with Int32::MIN / -1

I fixed the typo and rebased. :shipit: !
@oprypin I will still raise the card of completeness regarding the &+= and others. And they will be actually used in Hasher and others. All the op= are syntax sugar and not a core part of the language.

By the way: https://stackoverflow.com/questions/30378591/overflow-division-operator-not-recognized
I would recommend not having the &/ operator in Crystal, just like in Swift. It's an extra check for something that can rarely happen.

completeness for completeness's sake seems like a very bad idea to me. It just expands the set of operators.
I'd be much happier if the only operators we were adding were &+, &-, &*, // and //=.

Since division by zero would still be raised in &// is not that that operator is free of exception.
Ok, I will remove &// and &//=.

authors: RX14 asterite bcardiff oprypin


text:
Fix #8649: Future(Nil).get when the future raises

See #8649

CI failure (on preview_mt) seems unrelated


text:
Make File.rename overwrite the destination file on Windows, like elsewhere

The compiler, for example, relies on it here: https://github.com/crystal-lang/crystal/blob/0bb3fe98d0b2698e646ab6eb24097eb6e4e8bafa/src/compiler/crystal/compiler.cr#L702 But right now it throws an error that the file already exists.
You could argue whether it's desirable. For example, Python, to preserve backwards compatibility where the behavior differed like this for ages, decided to keep rename as replacing on Unix but erroring on Windows, but also added replace to replace on both. So on Unix they don't have any rename which would error out if the destination exists.
Another important caveat is that replacing a file like that is atomic on Unix, but on Windows that is impossible to achieve.
Let me know what you think, I could do the same as Python instead.

it's windows-only, you only need one approval


text:
Create a simple Flask webserver

Might have to use Google Cloud Credits for this one.
Acceptance criteria

Our current webpages are supplied by Python's Flask web server
Merging code into the main branch automatically updates the web server

I'm not sure this is quite the architecture I was expecting. I believe we'll want to host and serve the frontend from github pages (as it is), and have a backend service that the frontend can reach out to for various tasks, and to hide sensitive data from the frontend, like the API keys.

I just created the backend repo and put some automation in place to automatically deploy to Heroku, as it was easier than setting up the same in GCP.

you can see the results here
I'm gonna say this is done. We can re-open if anyone disagrees.

authors: jake-bickle rattboi


text:
Unevalizing the javascript programs does not give information about its sucess

Hi Team,
As part of my research, I was using TAJS and used its option -uneval. As mentioned in the paper Remedying the Eval that men do, it is to uneval the eval functions through different techniques. But when I run this on projects it does not give any such information if it was successful in unevalizing the eval function. Could you please help me in this? How can I get this information?
Thanks & Regards,
Ankur

Try using the option -eval-statistics (together with -uneval).

Hello Sir,
Thank you for the information. I tried the option, but it gives only the following fields without data -
Use of eval/innerHTML
Constant eval'ed strings:
Constant innerHTML strings:
Source locations with maybe values for eval:
Source locations with maybe values for innerHTML:
and for some of the sliced projects given in the Unevalizer benchmark, it gives the error
exception in thread "main" java.lang.Error: Expected children to be strings
Thanks and Regards,
Ankur Gupta

Please email amoeller@cs.au.dk instead of using the github issue tracker for such questions.

repo: cs-au-dk/TAJS


text:
Serializer produces invalid JSON

TL;DR: Don't write your own serialization framework.
Switch to kotlinx.serializable; AnalysisOutput might cause some challenges because of its type parameter. We only ever instantiate T to three types, but their least upper bound is Any?. However we should be able to handle this using a custom serializer and an adaptation of the existing defaultToJson for AnalaysisOutput.
Most other types should work with just an @Serializable thrown on them. Then the default frontend should simply spit out serialized test run output.

This issue is currently a wontfix. Users of the Answerable API are currently expected to handle Answerable's testing output in object form and do what they want with that.
A future version of Answerable may return to automatic serialization.

Resolved by PR #17.


text:
listing restaurants on browse page

comma sepearation on times could help

comma sepearation on times could help

good idea. planning to fix in future pr, lets get this in now.

authors: prithvikannan vsathye


text:
Enhanced user features

Created base classes for most feature commands such as export, import, sort commands, search commands.
For v1.1

Will try to completely implement parsing and exception handling for import and export commands.
See if i can work on implementing search for individual flashcards as well. Not sure about this cause I think there might be some dependencies on your part as well Liang ? o.0

Will try to make another pull request to implement exception handling and testing on Tuesday. Let me know if there's improvements to be made !

Please write your commit titles in the imperative next time
i.e. So that it fits in the sentence: "This commit will <commit message>"

Added some exception checking to import and export commands. Will implement testing at a later milestone. I think this wraps up for v1.1 for now...

I deleted some whitespace changes


text:
Open tasks for milestone 4

4 Development of the invite flow tests 6.5k
We will develop automated tests of the invite flow (as used in ScienceMesh), testing all combinations of the systems that support it, namely Nextcloud+Reva, OC-10+Reva, CERNBox, and oCIS.

This milestone has new changes:

First implementation of oCIS - ownCloud Infinite Scale EFSS in OCM Test Suite.
Updating Cypress to the latest version and dependencies.
Minor fixes for previous milestone tests.

[x] Nextcloud to Nextcloud (ScienceMesh Plugin)

[x] Image (from milestone 1)
[x] Login script (from milestone 1)
[x] Creating an invite link on instance No. 1.
[x] Opening invite link on instance No. 2.
[x] Accepting the invite.
[x] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[x] Logging into Instance No. 1.
[x] Create a share.
[x] Login into the second platform and receive a share.

[x] Nextcloud to ownCloud (ScienceMesh Plugin)

[x] Image (from milestone 1)
[x] Login script (from milestone 1)
[x] Creating an invite link on instance No. 1.
[x] Opening invite link on instance No. 2.
[x] Accepting the invite.
[x] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[x] Logging into Instance No. 1.
[x] Create a share.
[x] Login into the second platform and receive a share.

[x] Nextcloud to oCIS (ScienceMesh Plugin)

[x] Image (from milestone 1)
[x] Login script (from milestone 1)
[x] Creating an invite link on instance No. 1.
[x] Opening invite link on instance No. 2.
[x] Accepting the invite.
[x] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[x] Logging into Instance No. 1.
[x] Create a share.
[x] Login into the second platform and receive a share.

[ ] Nextcloud to CERNBox (ScienceMesh Plugin)

[ ] Image (NEW)
[ ] Login script (NEW)
[ ] Creating an invite link on instance No. 1.
[ ] Opening invite link on instance No. 2.
[ ] Accepting the invite.
[ ] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[ ] Logging into Instance No. 1.
[ ] Create a share.
[ ] Login into the second platform and receive a share.

[x] ownCloud to Nextcloud (ScienceMesh Plugin)

[x] Image (from milestone 1)
[x] Login script (from milestone 1)
[x] Creating an invite link on instance No. 1.
[x] Opening invite link on instance No. 2.
[x] Accepting the invite.
[x] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[x] Logging into Instance No. 1.
[x] Create a share.
[x] Login into the second platform and receive a share.

[x] ownCloud to ownCloud (ScienceMesh Plugin)

[x] Image (from milestone 1)
[x] Login script (from milestone 1)
[x] Creating an invite link on instance No. 1.
[x] Opening invite link on instance No. 2.
[x] Accepting the invite.
[x] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[x] Logging into Instance No. 1.
[x] Create a share.
[x] Login into the second platform and receive a share.

[x] ownCloud to oCIS (ScienceMesh Plugin)

[x] Image (from milestone 1)
[x] Login script (from milestone 1)
[x] Creating an invite link on instance No. 1.
[x] Opening invite link on instance No. 2.
[x] Accepting the invite.
[x] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[x] Logging into Instance No. 1.
[x] Create a share.
[x] Login into the second platform and receive a share.

[ ] ownCloud to CERNBox (ScienceMesh Plugin)

[ ] Image (NEW)
[ ] Login script (NEW)
[ ] Creating an invite link on instance No. 1.
[ ] Opening invite link on instance No. 2.
[ ] Accepting the invite.
[ ] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[ ] Logging into Instance No. 1.
[ ] Create a share.
[ ] Login into the second platform and receive a share.

[x] oCIS to oCIS

[x] Image (NEW)
[x] Login script (NEW)
[x] Creating an invite link on instance No. 1.
[x] Opening invite link on instance No. 2.
[x] Accepting the invite.
[x] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[x] Logging into Instance No. 1.
[x] Create a share.
[x] Login into the second platform and receive a share.

[x] oCIS to Nextcloud (ScienceMesh Plugin)

[x] Image (NEW)
[x] Login script (NEW)
[x] Creating an invite link on instance No. 1.
[x] Opening invite link on instance No. 2.
[x] Accepting the invite.
[x] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[x] Logging into Instance No. 1.
[x] Create a share.
[x] Login into the second platform and receive a share.

[x] oCIS to ownCloud (ScienceMesh Plugin)

[x] Image (NEW)
[x] Login script (NEW)
[x] Creating an invite link on instance No. 1.
[x] Opening invite link on instance No. 2.
[x] Accepting the invite.
[x] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[x] Logging into Instance No. 1.
[x] Create a share.
[x] Login into the second platform and receive a share.

[ ]  oCIS to CERNBox

[ ] Image (NEW)
[ ] Login script (NEW)
[ ] Creating an invite link on instance No. 1.
[ ] Opening invite link on instance No. 2.
[ ] Accepting the invite.
[ ] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[ ] Logging into Instance No. 1.
[ ] Create a share.
[ ] Login into the second platform and receive a share.

[ ] CERNBox to CERNBox

[ ] Image (NEW)
[ ] Login script (NEW)
[ ] Creating an invite link on instance No. 1.
[ ] Opening invite link on instance No. 2.
[ ] Accepting the invite.
[ ] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[ ] Logging into Instance No. 1.
[ ] Create a share.
[ ] Login into the second platform and receive a share.

[ ] CERNBox to Nextcloud (ScienceMesh Plugin)

[ ] Image (NEW)
[ ] Login script (NEW)
[ ] Creating an invite link on instance No. 1.
[ ] Opening invite link on instance No. 2.
[ ] Accepting the invite.
[ ] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[ ] Logging into Instance No. 1.
[ ] Create a share.
[ ] Login into the second platform and receive a share.

[ ] CERNBox to ownCloud (ScienceMesh Plugin)

[ ] Image (NEW)
[ ] Login script (NEW)
[ ] Creating an invite link on instance No. 1.
[ ] Opening invite link on instance No. 2.
[ ] Accepting the invite.
[ ] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[ ] Logging into Instance No. 1.
[ ] Create a share.
[ ] Login into the second platform and receive a share.

[ ] CERNBox to oCIS

[ ] Image (NEW)
[ ] Login script (NEW)
[ ] Creating an invite link on instance No. 1.
[ ] Opening invite link on instance No. 2.
[ ] Accepting the invite.
[ ] Verifying that the sender from instance No. 1 is visible in instance No. 2 contacts.
[ ] Logging into Instance No. 1.
[ ] Create a share.
[ ] Login into the second platform and receive a share.

Test videos zip file:

GitHub Actions run related to test videos

Pull requests to achieve this milestone:
https://github.com/pondersource/dev-stock/pull/126

Related issues regarding this milestone:

All remaining open tasks here are getting CERNBox to pass the tests; the tests themselves are passing for ownCloud, Nextcloud, and OCIS. Marking this task ask completed. \o/

invite-link from nextcloud v27.1.10 to ocis 5.0.6.zip

authors: MahdiBaghbani michielbdejong


text:
Permissions violation in shared directory

It is possible to create resources in a directory which was shared with viewer permissions:
magc@magc:~/reva$ ./cmd/reva/reva --insecure login basic
username: richard
password: OK
magc@magc:~/reva$ ./cmd/reva/reva --insecure mkdir /home/dir_for_viewer
magc@magc:~/reva$ ./cmd/reva/reva --insecure share-create -grantee 4c510ada-c86b-4815-8820-42cdf82c3d51 -idp cernbox.cern.ch -rol viewer /home/dir_for_viewer

magc@magc:~/reva$ ./cmd/reva/reva --insecure login basic
username: einstein
password: OK
magc@magc:~/reva$ ./cmd/reva/reva --insecure share-update-received -state accepted 9caf8855-a0f4-4243-9d7d-f480ff3396ba
OK

magc@magc:~/reva$ ./cmd/reva/reva --insecure ls /home/MyShares
cmd_viewer_dir_15i3
dir_for_viewer
magc@magc:~/reva$ ./cmd/reva/reva --insecure mkdir /home/MyShares/dir_for_viewer/I_can_create_as_viewer
magc@magc:~/reva$ ./cmd/reva/reva --insecure ls /home/MyShares/dir_for_viewer
I_can_create_as_viewer

Marking @gmgigi96

Which branch - master, edge or both?

Sorry for omitting that - I checked that on master

Are you running the storage-references config in the examples?

I am running two server setup

@gmgigi96 @phil-davis Hi guys, did you have time to investigate it? Will this issue be adressed anytime soon?

@mateusz-garlacz I am not ijvolved with master branch, so I don't know what is the timeline for fixes there.
@labkode ?

After some testing it seems that it also applies to writing into files shared with viewer permissions. Are the permissions anyway respected?

authors: gmgigi96 mateusz-garlacz phil-davis


text:
Public Links Download / Upload

Downloads from a public link. There are a few loose ends:

It has not yet been tried with the DataGateway
It has not yet been tested with a storage other than Owncloud's

the path conversion then remains a black box I have not yet tapped into

Basic functionality for downloading using a configured data provider however is there.

@refs two questions:
What is the purpose of the path translator?
What do you need to check for owncloud storage?

Hi @labkode :)

What is the purpose of the path translator?

It's a dumb abstraction, as I'm not so familiar with the storages just yet, all the path operations got me a little lost, so instead of having 4 different variables this layer helps me with the steps. Needless to say, it can be removed in favor of concise code.

What do you need to check for owncloud storage?

The way I test this is with the Owncloud storage, where a path looks like /oc/{username}/.... I could not think of another solution when translating public link paths, i.e: /{token}/folderA/folderB into internal path.

Something is fishy:
2020-06-17T15:03:19+02:00 ERR error starting the grpc server error="unable to register services: rgrpc: grpc service publicstorageprovider could not be started,: driver not found: " service=reva

This happens both with and without the fix from https://github.com/cs3org/reva/pull/848 merged into this branch checked out locally.

ok seems there are some new config values: https://github.com/cs3org/reva/pull/822/files#diff-93a24189b46141fd854292e592c3be2aR56
@refs please provide more info about how to test this

probably also need to extend the default config structure to have default settings for these new config values ?

ok, so it seems this PR also needs https://github.com/owncloud/ocis-reva/pull/258
@refs would be good to always explicitly list the requirements for testing in the top post

[ ] BUG: When sharing a single file, opening the public link shows an empty folder. If single file shares are not supported we should prevent such shares to be created in the first place

I managed to run some API tests locally:
It seems the upload has troubles renaming the file to the final location:
==> reva-storage-home-data.log <==
2020-06-18T09:56:31+02:00 INF access token is already provided pkg=rhttp service=reva traceid=5cd961cf67b45a04f6c8dff718e05cc9
2020-06-18T09:56:31+02:00 DBG http routing: head=data tail=/4fac97d6-c65a-4a0d-8b68-a46f765632de svc=data pkg=rhttp service=reva
[tusd] 2020/06/18 09:56:31 event="RequestIncoming" method="PATCH" path="/4fac97d6-c65a-4a0d-8b68-a46f765632de" requestId=""
2020-06-18T09:56:31+02:00 INF tusd routing: path=/4fac97d6-c65a-4a0d-8b68-a46f765632de pkg=rhttp service=reva traceid=5cd961cf67b45a04f6c8dff718e05cc9
[tusd] 2020/06/18 09:56:31 event="ChunkWriteStart" id="4fac97d6-c65a-4a0d-8b68-a46f765632de" maxSize="11" offset="0"
[tusd] 2020/06/18 09:56:31 event="ChunkWriteComplete" id="4fac97d6-c65a-4a0d-8b68-a46f765632de" bytesWritten="11"
9:56AM ERR home/vincent/Private/Work/workspace/reva/pkg/storage/fs/owncloud/upload.go:349 > ocfs: could not rename error="rename /var/tmp/reva/data/Alice/uploads/4fac97d6-c65a-4a0d-8b68-a46f765632de /var/tmp/reva/data/Alice/files/PARENT/randomfile.txt: no such file or directory" binPath=/var/tmp/reva/data/Alice/uploads/4fac97d6-c65a-4a0d-8b68-a46f765632de info={"ID":"4fac97d6-c65a-4a0d-8b68-a46f765632de","IsFinal":false,"IsPartial":false,"MetaData":{"dir":"/PARENT","filename":"randomfile.txt"},"Offset":11,"PartialUploads":null,"Size":11,"SizeIsDeferred":false,"Storage":{"BinPath":"/var/tmp/reva/data/Alice/uploads/4fac97d6-c65a-4a0d-8b68-a46f765632de","Idp":"https://localhost:9200","InternalDestination":"/var/tmp/reva/data/Alice/files/PARENT/randomfile.txt","LogLevel":"trace","Type":"OwnCloudStore","UserId":"Alice","UserName":"Alice"}} np=/var/tmp/reva/data/Alice/files/PARENT/randomfile.txt pid=13634
[tusd] 2020/06/18 09:56:31 event="ResponseOutgoing" status="404" method="PATCH" path="/4fac97d6-c65a-4a0d-8b68-a46f765632de" error="upload not found" requestId=""
2020-06-18T09:56:31+02:00 WRN http end="18/Jun/2020:09:56:31 +0200" host=127.0.0.1 method=PATCH pkg=rhttp proto=HTTP/1.1 service=reva size=17 start="18/Jun/2020:09:56:31 +0200" status=404 time_ns=1293949 traceid=5cd961cf67b45a04f6c8dff718e05cc9 uri=/data/4fac97d6-c65a-4a0d-8b68-a46f765632de url=/data/4fac97d6-c65a-4a0d-8b68-a46f765632de

==> reva-frontend.log <==
2020-06-18T09:56:31+02:00 ERR Could not start TUS upload error="unexpected status code: 404" pkg=rhttp service=reva traceid=0b1a21dbfa37ce40f43e5cb5dd6ab99c
2020-06-18T09:56:31+02:00 ERR http end="18/Jun/2020:09:56:31 +0200" host=127.0.0.1 method=PUT pkg=rhttp proto=HTTP/1.1 service=reva size=0 start="18/Jun/2020:09:56:31 +0200" status=500 time_ns=57027080 traceid=0b1a21dbfa37ce40f43e5cb5dd6ab99c uri=/remote.php/webdav/PARENT/randomfile.txt url=/remote.php/webdav/PARENT/randomfile.txt

To reproduce, run this command in the owncloud/core repo with the test setup from https://owncloud.github.io/extensions/ocis_reva/testing/#use-existing-tests-for-bdd
% make test-acceptance-api \
TEST_SERVER_URL=http://localhost:9140 \
TEST_EXTERNAL_USER_BACKENDS=true \
TEST_OCIS=true \
OCIS_REVA_DATA_ROOT=/var/tmp/reva/ \
SKELETON_DIR=$HOME/work/workspace/owncloud/apps-external/testing/data/webUISkeleton \
BEHAT_FEATURE=tests/acceptance/features/apiSharePublicLink1/createPublicLinkShare.feature:107

oh, it seems it's the regular upload, not public link that has troubles:
    And user "Alice" has uploaded file with content "Random data" to "/PARENT/randomfile.txt"                                                                                # FeatureContext::userHasUploadedAFileWithContentTo()
      HTTP status code 500 is not one of the expected values
      Failed asserting that an array contains 500.

unrelated to this PR, also happens on reva master... hmmm

I've raised https://github.com/owncloud/ocis-reva/issues/280 for when uploading to a non-existing folder.
I suspect that the skeleton files for the test have changed so I'll need to adjust the test

ok, so I ran the tests with the wrong skeleton folder...
the correct one is SKELETON_DIR=$HOME/work/workspace/owncloud/apps-external/testing/data/apiSkeleton and not the web ui skeleton.
with that in place, the test runs further.
and now I notice that this test is using a range request at the end, so not usable.
let's try other tests...

the test tests/acceptance/features/apiSharePublicLink1/createPublicLinkShare.feature:170 had troubles creating the share because of a permission issue, PR here to fix it: https://github.com/cs3org/reva/pull/852
now with that fix applied, the downloaded content is empty:
The downloaded content was expected to be 'Random data', but actually is ''.
        Failed asserting that two strings are equal.
        --- Expected
        +++ Actual
        @@ @@
        -'Random data'
        +''

[ ] BUG: status code messed up with PUT, see https://github.com/owncloud/ocis-reva/issues/286

@refs please have a look at the second stat call in "put.go". The bug is that it reuses sRes but should use a second response object, because we need the result of the first response to know if the first stat returned null or not.
Here a possible patch:
diff --git a/internal/http/services/owncloud/ocdav/put.go b/internal/http/services/owncloud/ocdav/put.go
index 5652dfc..dd55dc8 100644
--- a/internal/http/services/owncloud/ocdav/put.go
+++ b/internal/http/services/owncloud/ocdav/put.go
@@ -292,26 +292,26 @@ func (s *svc) handlePut(w http.ResponseWriter, r *http.Request, ns string) {
        }

        // stat again to check the new file's metadata
-       sRes, err = client.Stat(ctx, sReq)
+       sRes2, err := client.Stat(ctx, sReq)
        if err != nil {
                log.Error().Err(err).Msg("error sending grpc stat request")
                w.WriteHeader(http.StatusInternalServerError)
                return
        }

-       if sRes.Status.Code != rpc.Code_CODE_OK {
-               log.Error().Err(err).Msgf("error status %d when sending grpc stat request", sRes.Status.Code)
+       if sRes2.Status.Code != rpc.Code_CODE_OK {
+               log.Error().Err(err).Msgf("error status %d when sending grpc stat request", sRes2.Status.Code)
                w.WriteHeader(http.StatusInternalServerError)
                return
        }

-       w.Header().Add("Content-Type", sRes.Info.MimeType)
-       w.Header().Set("ETag", sRes.Info.Etag)
-       w.Header().Set("OC-FileId", wrapResourceID(sRes.Info.Id))
-       w.Header().Set("OC-ETag", sRes.Info.Etag)
-       w.Header().Set("Last-Modified", utils.TSToTime(sRes.Info.Mtime).Format(time.RFC1123Z))
+       w.Header().Add("Content-Type", sRes2.Info.MimeType)
+       w.Header().Set("ETag", sRes2.Info.Etag)
+       w.Header().Set("OC-FileId", wrapResourceID(sRes2.Info.Id))
+       w.Header().Set("OC-ETag", sRes2.Info.Etag)
+       w.Header().Set("Last-Modified", utils.TSToTime(sRes2.Info.Mtime).Format(time.RFC1123Z))

-       // file was new
+       // file was new as it didn't exist during the first stat
        if sRes.Info == nil {
                w.WriteHeader(http.StatusCreated)
                return

@PVince81 @refs the usage of storage.FS from the publicstorageprovider package is bad. Please add the required method to the CS3APIs for initiating a file upload to the GatewayAPI and StorageProviderAPI.

[ ] for consistency: also use NewPathTranslator in stat (and any future operations)

alternate approach in https://github.com/cs3org/reva/pull/872

in https://github.com/cs3org/reva/pull/872 we have the public download working by talking to the gateway instead of storage after translating the paths, this obsoletes the need for a public link data provider and removes the need to know about the underlying storage as the gateway takes care of that by resolving the matching storage provider.

authors: PVince81 butonic labkode refs


text:
Add get nearest runner to a point function

References #220
I will add a helper function to AISpawnerController that will take an fvect as an argument and return a pointer to the runner that is physically closest to that point.

Initially this function (and part of this story) seemed redundant due to RunnerObserver, but ultimately decided to still write it as it can be useful situationally.


text:
Feat/improved theming capabilities

Issue:

Theme setup is strictly a one-time affair at the getStorybookUI method. There is no ability for the parent to change the value of theme if the end user chooses to do so.
A <Switch> could be placed at the bottom (like a footer) of the resulting <StorybookUIRoot> to control the current theme without jumping into any of the "stories", but in doing so, when the end user brings up the keyboard, the "footer" used to allocate space for <Switch> is hidden from the Storybook's <KeyboardAwareView> because it's not a nested child of it.

What I did
Add more parameters to the <StorybookRoot> wrapper to serve the use cases needed.
How to test
Please explain how to test your changes and consider the following questions

Does this need a new example in examples/native?
Does this need an update to the documentation?

If your answer is yes to any of these, please make sure to include it in your PR.

There's no point in me merging this right now because I can't even compile the source code to /dist. To compile the source code, I need to install dependencies. But I can't even install the dependencies.
Root folder
csantarin ~/javascript-apps/@storybook/react-native (v5.3.25) $ yarn
yarn install v1.22.17
[1/5] 🔍  Validating package.json...
[2/5] 🔍  Resolving packages...
[3/5] 🚚  Fetching packages...
warning mini-css-extract-plugin@0.5.0: Invalid bin field for "mini-css-extract-plugin".
error Command failed.
Exit code: 128
Command: git
Arguments: ls-remote --tags --heads git://github.com/CharlesMangwa/simple-markdown.git
Directory: /Users/csantarin/javascript-apps/@storybook/react-native
Output:
fatal: unable to connect to github.com:
github.com[0: 20.205.243.166]: errno=Operation timed out
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

React Native subfolder
csantarin ~/javascript-apps/@storybook/react-native/app/react-native (v5.3.25) $ yarn
yarn install v1.22.17
[1/5] 🔍  Validating package.json...
[2/5] 🔍  Resolving packages...
[3/5] 🚚  Fetching packages...
error Command failed.
Exit code: 128
Command: git
Arguments: ls-remote --tags --heads git://github.com/CharlesMangwa/simple-markdown.git
Directory: /Users/csantarin/javascript-apps/@storybook/react-native/app/react-native
Output:
fatal: unable to connect to github.com:
github.com[0: 20.205.243.166]: errno=Operation timed out
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
csantarin ~/javascript-apps/@storybook/react-native/app/react-native (v5.3.25) $ yarn
yarn install v1.22.17
[1/5] 🔍  Validating package.json...
[2/5] 🔍  Resolving packages...
[3/5] 🚚  Fetching packages...
error Command failed.
Exit code: 128
Command: git
Arguments: ls-remote --tags --heads git://github.com/CharlesMangwa/simple-markdown.git
Directory: /Users/csantarin/javascript-apps/@storybook/react-native/app/react-native
Output:
fatal: unable to connect to github.com:
github.com[0: 20.205.243.166]: errno=Operation timed out
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

repo: csantarin/react-native


text:
[watcher / uploading files] Give proper feedback when Shopify blocks a file from being uploaded

Discovery
I was editing a template where I forgot to close a pagination tag and the watcher said it updated the file but the result was the file not being updated because I'm guessing Shopify blocked it at some point after the watcher tried to do its job.
Feature request
It would be really handy if you could listen for a response from Shopify after uploading and just parrot back the fail message in the terminal if something isn't a 200?

The latest nightly has this patch so you can start using it if you'd like.

authors: csaunders nickjj

repo: csaunders/phoenix


text:
How do we run this in production?

Thanks for the article! How should we deploy this/ run it in production?

I suggest looking at https://github.com/electron-userland/electron-builder or https://github.com/electron/electron-packager. I've used both and they are pretty popular for packaging an application for distribution/installation.
https://github.com/vicentedealencar/electron-with-create-react-app/commit/f1729381d588e65ac140ce5a08cc6277babd9641 shows an example with electron-builder

authors: csepulv maayanalbert

repo: csepulv/electron-with-create-react-app


text:
Add Support to volumeGroup as a source

Add Support to volumeGroup as a source, by adding replicationSource object which is replacing volumeID and can handle volumeID or VolumeGroupID as a source.

opened new PR #302

repo: csi-addons/kubernetes-csi-addons


text:
test.py

when I run test.py,I meet this problem,how can I solve this problem?
Evaluating bbox...
Loading and preparing results...
DONE (t=1.43s)
creating index...
index created!
Running per image evaluation...
Evaluate annotation type bbox
DONE (t=7.60s).
Accumulating evaluation results...
DONE (t=1.90s).
Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.000

See GETTING_STARTED.md for the basic usage.

repo: csuhan/ReDet


text:
Training detector on specific categories

Hello,
Do you know how can i train a model on specific data categories from DOTA dataset? I want to train it on two categories only: large-vehicle and small-vehicle, i don't want the rest of categories.
Thanks in advance..

Assume you have downloaded DOTA dataset, you can remove annotations of these classes by writing a class-filtering script (i.e., remove lines containing these classes in dota/labelTxt/*.txt).
Then, you can use our script to prepare the dataset: https://github.com/csuhan/ReDet/blob/master/DOTA_devkit/prepare_dota1.py
While, remember to change wordname:
https://github.com/csuhan/ReDet/blob/0b9addf3c2734659fd6ffc7824f2e659fde4419c/DOTA_devkit/prepare_dota1.py#L10-L13
Then, change CLASSES in the dataset loader:
https://github.com/csuhan/ReDet/blob/0b9addf3c2734659fd6ffc7824f2e659fde4419c/mmdet/datasets/DOTA.py#L4-L13
Finally, change the corresponding config file in configs/ReDet/*.py

Thanks a lot!
But after running the training file, i had the following error:
`Traceback (most recent call last):
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 724, in _try_get_data
data = self._data_queue.get(timeout=timeout)
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/multiprocessing/queues.py", line 104, in get
if not self._poll(timeout):
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/multiprocessing/connection.py", line 257, in poll
return self._poll(timeout)
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/multiprocessing/connection.py", line 414, in _poll
r = wait([self], timeout)
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/multiprocessing/connection.py", line 928, in wait
return ready
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/selectors.py", line 203, in exit
self.close()
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/site-packages/torch/utils/data/_utils/signal_handling.py", line 66, in handler
_error_if_any_worker_fails()
RuntimeError: DataLoader worker (pid 967102) is killed by signal: Killed.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "train.py", line 96, in
main()
File "train.py", line 92, in main
logger=logger)
File "/media/fadwasa/Untitled/ReDet/mmdet/apis/train.py", line 61, in train_detector
_non_dist_train(model, dataset, cfg, validate=validate)
File "/media/fadwasa/Untitled/ReDet/mmdet/apis/train.py", line 197, in _non_dist_train
runner.run(data_loaders, cfg.workflow, cfg.total_epochs)
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/site-packages/mmcv-0.2.13-py3.7-linux-x86_64.egg/mmcv/runner/runner.py", line 358, in run
epoch_runner(data_loaders[i], **kwargs)
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/site-packages/mmcv-0.2.13-py3.7-linux-x86_64.egg/mmcv/runner/runner.py", line 260, in train
for i, data_batch in enumerate(data_loader):
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 804, in next
idx, data = self._get_data()
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 771, in _get_data
success, data = self._try_get_data()
File "/home/fadwasa/anaconda3/envs/redet/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 737, in _try_get_data
raise RuntimeError('DataLoader worker (pid(s) {}) exited unexpectedly'.format(pids_str))
`
It usually means that there is no enough memory but i have 1TB of free memory.

Try to set workers_per_gpu=0
https://github.com/csuhan/ReDet/blob/0b9addf3c2734659fd6ffc7824f2e659fde4419c/configs/ReDet/ReDet_re50_refpn_1x_dota1.py#L143

I tried this solution but with no luck. Shall the system be installed locally in my machine? it is installed in an external hard drive.

authors: csuhan fadwaSAA