text:
[webapi] Update xml configure files

Update test entery in xml for tct-forms-html5-tests,
webapi-webcl-nonw3c-tests and webapi-webrtc-w3c-tests

Remove duplicated test entery in xml for webapi-webcl-nonw3c-tests
and tct-indexeddb-w3c-tests

Impacted suites: tct-forms-html5-tests
Impacted tests(approved): new 0, update 2, delete 0
Unit test platform: Crosswalk for Android 15.43.354
Unit result summary: pass 2, fail 0, block 0
Impacted suites: tct-indexeddb-w3c-tests
Impacted tests(approved): new 0, update 0, delete 7
Unit test platform: Crosswalk for Android 15.43.354
Unit result summary: pass 0, fail 0, block 0
Impacted suites: webapi-webcl-nonw3c-tests
Impacted tests(approved): new 0, update 1, delete 2
Unit test platform: Crosswalk for Android 15.43.354
Unit result summary: pass 0, fail 1, block 0
Impacted suites: webapi-webrtc-w3c-tests
Impacted tests(approved): new 0, update 6, delete 0
Unit test platform: Crosswalk for Android 15.43.354
Unit result summary: pass 6, fail 0, block 0

Better with 4 commits in this PR.

@zqzhang  I will split this PR into 4 commits

@zqzhang  I have updated it following your comments

Please update all the commit messages accordingly, thanks.

@zqzhang Conflicts in this PR can't be resolved, so close it. I have updated it following your comments  in another PR https://github.com/crosswalk-project/crosswalk-test-suite/pull/2574

authors: kangxu zqzhang

repo: crosswalk-project/crosswalk-test-suite


text:
[crosswalk-17][webapi] Add baseline for bdd tests on Nexus7

ARM-Nexus7:
Impacted TCs num(approved): New 0, Update 7, Delete 0
Unit test Platform: Crosswalk Project for Android 17.46.448.0
Unit test result summary: Pass 0, Fail 0, Blocked 0

Merge as-is.

source: gharchive/pull-request

authors: Honry kangxu

license_type: permissive

license_source: github-api


text:
add sanity check subcommands to server subcommand

check
status

depends on https://github.com/crowbar/crowbar-core/pull/386

Do we really need different commands for that? Otherwise :+1:

Do we really need different commands for that?

it could also be fine to just always perform the check and return the result. then we wouldn't need subfolders either, just a check command.
I leave it up to you if anyone has an opinion please share.
keep in mind that we may add more checks (other than network) in the future, which could require even a subcommand to the check subcommand (if we want to just run single checks)

i think crowbarctl server sanity or crowbarctl server check should be fine for now.

+1

I agree with @tboerger just one command would be better for now.

@tboerger how would you do the implementation then? AFAICS we would either need to:

add another API endpoint which performs the check and returns the result

or

for one subcommand use two request, which I am not sure of how  that fits into the architecture.

add another API endpoint which performs the check and returns the result

or I can just return the cached value in the check controller action, that would work

Just use a single request.

@tboerger done. https://github.com/crowbar/crowbar-core/pull/386/commits/d7c392768dd90a0798059316f379fc39956d7784 enables checking and parsing the result with a single request from here

:+1:

+1

thanks for merging, but better would have been to wait until the API is there, https://github.com/crowbar/crowbar-core/pull/386 is not merged yet. (but hopefully soon)

@MaximilianMeister I'm not rolling a new gem yet, so nothing really bad for that.

I'm not rolling a new gem yet, so nothing really bad for that.

okay, i guess the dependent PR will be merged today anyways, so sorry for the noise

authors: MaximilianMeister rsalevsky tboerger

repo: crowbar/crowbar-client

license_source: bigquery


text:
Crowd Guild Requester Features

There are several features for requesters, however, due to the specific experimental setup its likely some of them won't need a lot of focus at this point.
Task Authoring for Levels
After requesters have completed the prototype task workflow they will have the opportunity to select what level workers for their task should be. This is similar to how MTurk lets us select Masters. The requesters will be shown some recommended pricing information, based on the prototype task rate, and the average hourly wage of workers of each level.
Task Rejection
If workers think requesters are underpaying in a specific task, for their level, they can reject a task from the task details page, or from within the task. Rejecting does not allow them to receive any money for that task, and removes it from their feed. The requester will get a notice that this has happened. If a large number of workers reject tasks in this way from the same project, then the project will be removed.
Right now we don't know what that large number will be.
Experimental Context
We are not intending to run this live with requesters, because we don't think we can recruit enough for that. Instead, we would like to collect data from workers about quality and price reaction (e.g. rejecting, performing better or worse etc.) and then set up a game for a few requesters to play in which they can choose how much to pay workers for a specific task and which level workers to target. They will get feedback based on the recorded real worker data based model and we will see how they change their behavior over several iterations of the game.
As a result, the task authoring for levels and task rejection sides are not needed in full, but just a few parts in the way we deal with the data are needed at this point.

High level goal|	Sub Goal|	Sub Goal	|Sub Goal	|Sub Goal|	Sub Goal|	User Goal|Scenario|	Step|	Sub-Step	|User Physical Action (operations)	|Notes
1	|1	|2	|0	|0	|0	|To gather more information about a task||||
||||||							A|	1|		|User identifies  [TASK LIST ITEM] to explore|
||||||							A|	2|		|User moves cursor above  [TASK LIST ITEM]	|
A	3		User clicks [TASK LIST ITEM] to expand details
1	1	2	1	0	0	To reject a task after elaboration
A	1		User clicks [TASK LIST ITEM] to decrease details
B	1		User moves mouse cursor over [TASK LIST ITEM]
B	2		User clicks different [TASK LIST ITEM]
C	1		User moves cursor to [REJECT BUTTON]
C	2		User clicks cursor over [REJECT BUTTON]
1	1	2	1	1	0	To explain task rejection
A	1		User views [REJECTION LIST FORM]	options include [LOW PAY only for study]
A	2		User moves cursor over [REJECTION LIST FORM]
A	3		User clicks [UI ELEMENT] s from [REJECTION LIST FORM]
B	1		User read [PROMPT]	prompt reads "Is there another reason why you reject this task?"
B	2		User moves cursor over  [REJECTION LONG FORM TEXT FIELD]
B	3		User clicks cursor over  [REJECTION LONG FORM TEXT FIELD]
B	4		User types rejection reason in [REJECTION LONG FORM TEXT FIELD]
C	1		User read [PROMPT]	prompt reads "What would repair this task?"
C	2		User moves cursor over  [REPAIR LONG FORM TEXT FIELD]
C	3		User clicks cursor over  [REPAIR LONG FORM TEXT FIELD]
C	4		User types rejection reason in [REPAIR LONG FORM TEXT FIELD]	prompt reads "Error. Please leave empty of if filled must be >10 characters."
1	1	2	1	1	1	To submit task rejection
A	1		User moves cursor to [SUBMIT BUTTON]
A	2		User clicks cursor over [SUBMIT BUTTON]
1	1	2	1	1	2	To cancel task rejection

Task Review Mockup: from @alipta and explained in the HTA

Possible Changes to the Task Stream for Workers GREATER THAN LEVEL 1
We are proposing no major changes to the task stream. The only differences will be noticed by workers higher than level one after they have demonstrated competency through task acceptance (i.e. a measure that they can use the Daemo system successfully). The changes would be a notice of level information or a task identified as "REVIEW" in text or possibly the placement of review tasks at the top. 3 options for this. Overall we are positioning review tasks to be handled in a way similar to requester tasks with all of the same functionality.

@qwertyone I think the images you've posted here are part of some of the other features, not quite the requester facing part.
Because we are not running with requesters we probably don't need as much development in this area, we just need to be able to set up the toy problem mentioned above.

I think the moc up for Task Stream for Workers GREATER THAN LEVEL 1 is already in place
 There is a slight change in the design pattern as the current daemo app is using accordion menu to display task details, but in our case we are asking user to click on the details button positioned at the right end of task feed. Once the user click on details he will get to see the description of the task

closing guilds issues

source: gharchive/issue

authors: Alipta dmorina markwhiting qwertyone

repo: crowdresearch/crowdsource-platform

license: mit


text:
[Bug] Ignore unix socket requests

Currently we check all connections including unix socket request leading to the following error
openresty   | 2023/11/03 11:15:30 [alert] 9#9: *1 [lua] crowdsec_openresty.conf:20):3: [Crowdsec] Remote addr is unix:, client: unix:, server: , request: "GET /json HTTP/1.1", host: "images"
openresty   | 2023/11/03 11:15:30 [error] 9#9: *1 lua entry thread aborted: runtime error: /usr/local/openresty/lualib/crowdsec.lua:161: attempt to index local 'ip_network_address' (a nil value)
openresty   | stack traceback:
openresty   | coroutine 0:
openresty   |   /usr/local/openresty/lualib/crowdsec.lua: in function 'item_to_string'
openresty   |   /usr/local/openresty/lualib/crowdsec.lua:395: in function 'allowIp'
openresty   |   /usr/local/openresty/lualib/crowdsec.lua:457: in function 'Allow

We should implement a check to see if remote_addr is unix
access_by_lua_block {
   local cs = require "crowdsec"
   if ngx.var.remote_addr ~= "unix:" then
      ngx.log(ngx.WARN, "[Crowdsec] Ignoring unix socket request")
   else
    cs.Allow(ngx.var.remote_addr)
   end
}

Both lua bouncers have implemented a fix, the upstream lib doesnt need it

repo: crowdsecurity/lua-cs-bouncer

license: MIT


text:
setup.py needs to specify encoding when reading README.rst

I've found another issue with the recent changes to setup.py (https://github.com/crsmithdev/arrow/commit/2e5031b473bcf10b99b9d7ff8a7e72499c412c07)
Depending on the current locale, installation fails when setup.py attempts to read README.rst
Collecting arrow<1,>=0 (from this-is-redacted==1.2.3->also-redacted==4.5.6)
  Downloading https://files.pythonhosted.org/packages/90/7f/7fd8accc23aa507d215b5f07b509661c31583010d8276ba844896ee1f44b/arrow-0.14.1.tar.gz (102kB)
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-3mcnwe97/arrow/setup.py", line 7, in <module>
        readme = f.read()
      File "/apps/api/venv_py3/lib/python3.5/encodings/ascii.py", line 26, in decode
        return codecs.ascii_decode(input, self.errors)[0]
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xec in position 3701: ordinal not in range(128)

Also see:
https://github.com/crsmithdev/arrow/issues/202
https://github.com/crsmithdev/arrow/issues/208
https://github.com/crsmithdev/arrow/issues/224

Sorry to do this to you @jadchaar!

I will open a PR very shortly.

No problem @andrewmwilson thanks for bringing this up. Hah the seemingly innocuous change seemed to cause the most issues.

@andrewmwilson `arrow 0.14.21 has been released to address this issue. Let us know if it fixes the issue and if you have anymore questions or concerns!

Thanks again!

authors: andrewmwilson jadchaar

repo: crsmithdev/arrow


text:
Fixed negative timestamp tests

Pull Request Checklist
Thank you for taking the time to improve Arrow! Before submitting your pull request, please check all appropriate boxes:

[ ] 🧪 Added tests for changed code.
[x] 🛠 All tests pass when run locally (run tox or make test to find out!).
[ ] 📚 Updated documentation for changed code.
[x] ⏩ Code is up-to-date with the master branch.

If you have any questions about your code changes or any of the points above, please submit your questions along with the pull request and we will try our best to help!
Description of Changes
Fixed negative timestamp tests on macOS and Linux.

Codecov Report

Merging #743 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #743   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           9      9
  Lines        1678   1678
  Branches      283    283
=====================================
  Hits         1678   1678

Impacted Files
Coverage Δ

arrow/util.py
100% <100%> (ø)
: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 70fb905...1d22592. Read the comment docs.

Closing because of https://github.com/crsmithdev/arrow/pull/745.

authors: codecov-io jadchaar


text:
Add template flag to update command

I did go ahead and solved #244
Adds a --template flag to the update command.
This way, the template URL can contain access-tokens in CI/CD pipelines, without needing to change it in the .cruft.json file.
I am not sure, if this is the best way to achieve this.
It definitely would solve our problem, but I am not sure if adding a new flag is the best solution.
Also, I am not sure if we should add this flag to all other commands.
Any feedback on this is very welcome.

@JulianSobott for your specific problem, I would instead recommend configuring the gitconfig/netrc in your CI/CD run to have appropriate access to the template, rather than passing template URLs with tokens. I am closing this PR for now. Please let me know if there is an alternative use case and/or the above solution does not work for you.

authors: JulianSobott sambhav

repo: cruft/cruft


text:
Remove scripts

Signed-off-by: svor vsvydenk@redhat.com
Remove project's scripts to simplify Terminal -> Run Task.. view

@nickboldt it is needed for https://issues.redhat.com/browse/CRW-725

repo: crw-samples/nodejs-mongodb-sample


text:
Implementing Settings page and user backgrounds

Solving #430

Argh, something is wrong... But it's here just for cryogen to look at and make the changes needed...

Travis CI build fails saying that user isn't known but it's working... Maybe i missed something in GameBoard.jsx.

There is now a settings page, backgrounds are likely to be something in the future once we actually get some that can be used

authors: cryogen khyinn

repo: cryogen/throneteki


text:
Implement debug mode

This ticket is for the implementation of "Debug mode" which allows you to create a private node to do experiments on the chain state.  For example, this is useful for verifying hardforks, or for doing a "dry run" of some wallet commands before trying them on the live network.

This issue was moved to bitshares/bitshares-core#180

authors: theoreticalbts vikramrajkumar

repo: cryptonomex/graphene


text:
Rootless container image

When security is a concern, better use rootless images.
I started working on the topic and I have a working rootless image.
You can see the diff here. This diff includes a bunch of other changes (See #77) that probably shouls be excluded from a PR.
Happy to propose a PR if this is welcome.
The fixes I made so far are:

rootless image
better ENV support
option to not use supervisord
much smaller image
the image is built from the local source, and not from the github repo... which is also a better practise and allows building any tag/branch.

Yes, PRs are welcome!

Here you go: https://github.com/cryptosharks131/lndg/pull/377


text:
After code is corrected and saved, previous error/problem is still persistent

Describe the bug
After correcting code to eliminate an error, and saving the fie, the previous problem and flagging of the problem does not go a way.
To Reproduce
Make a simple type error in any code. For example use "string" instead of String. Save the file and see the proper error message and red underlining appear. Now change the code from "string" to "String". Save the file. The error message and red underlining do not go away.  Close VScode and  re-open it. The error message and underlining finally go away.
Expected behavior
Once error is corrected and file is saved, the red underlining and error messages should go away.
Piece of Code
see screenshot
Screenshots

Desktop (please complete the following information):

OS: Ubuntu 22.04 LTS
Crystal version: 1.11.2
This plugin version: 0.9.3
VS Code version: 1.87.2

Additional context
Add any other context about the problem here.

Can you post the full output of the Crystal output channel?

The output tab is blank.

You need to select "Crystal" from the dropdown at the top right of the panel

[Crystal] extension loaded
[Hover] getting context...
[Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color
[Hover] error: undefined
[Hover] getting context...
[Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color
[Hover] error: undefined
[Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color
[Dependencies] error: In src/epub_reader.cr:1:24
1 | def testing_ext(file : string)
^
Error: unexpected token: "string"
[Problems] (epub_reader) $ /usr/bin/crystal build src/epub_reader.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null
[Problems] Error: [{"file":"/home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr","line":1,"column":24,"size":null,"message":"unexpected token: "string""}]
[Hover] getting context...
[Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color
[Dependencies] error: In src/epub_reader.cr:1:24
1 | def testing_ext(file : string)
^
Error: unexpected token: "string"
[Hover] error: undefined
[Problems] (epub_reader) $ /usr/bin/crystal build src/epub_reader.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null
[Problems] Error: [{"file":"/home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr","line":1,"column":24,"size":null,"message":"unexpected token: "string""}]
[Hover] getting context...
[Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color
[Dependencies] error: In src/epub_reader.cr:1:24
1 | def testing_ext(file : string)
^
Error: unexpected token: "string"
[Hover] error: undefined
[Problems] (epub_reader) $ /usr/bin/crystal build src/epub_reader.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null
[Problems] Error: [{"file":"/home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr","line":1,"column":24,"size":null,"message":"unexpected token: "string""}]
[Hover] getting context...
[Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color
[Dependencies] error: In src/epub_reader.cr:1:24
1 | def testing_ext(file : string)
^
Error: unexpected token: "string"
[Hover] error: undefined
[Problems] (epub_reader) $ /usr/bin/crystal build src/epub_reader.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null
[Problems] Error: [{"file":"/home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr","line":1,"column":24,"size":null,"message":"unexpected token: "string""}]
[Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color
[Hover] getting context...
[Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color
[Hover] error: undefined

The above is from changing "String" to "string" then back. (saving file in between actions.)

Thank you. In the meantime for things to work you can disable a lot of the features to just use snippets and syntax highlighting. Check this repo's README for more info

I've also run into some weird ghosting with Crystal sometimes recently. Does it still happen if you try building from the command line?

macOS 15.0.1
VSCode 1.94.0
Extension 0.9.6

Here's the console output. The actions I took here are: Intentionally introduce a syntax error, hit save, fix the error, hit save again.
[Dependencies] hello_crystal $ /Users/gregwoods/.asdf/shims/crystal tool dependencies /Users/gregwoods/Source/gregawoods/hello_crystal/src/hello_crystal.cr -f flat --no-color
[Dependencies] error: In src/hello_crystal.cr:5:27

 5 | def self.say_hello(name :String)
                             ^
Error: space required after colon in type restriction

[Problems] (hello_crystal) $ /Users/gregwoods/.asdf/shims/crystal build src/hello_crystal.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null
[Problems] Error: [{"file":"/Users/gregwoods/Source/gregawoods/hello_crystal/src/hello_crystal.cr","line":5,"column":27,"size":null,"message":"space required after colon in type restriction"}]

[Dependencies] hello_crystal $ /Users/gregwoods/.asdf/shims/crystal tool dependencies /Users/gregwoods/Source/gregawoods/hello_crystal/src/hello_crystal.cr -f flat --no-color

Now, I've been playing around with the settings.json. I set both crystal-lang.hover and crystal-lang.dependencies to false and set crystal-lang.main to my main file, and now it's working properly again. I do not know if that is a permanent fix, or maybe I just kicked a cache somewhere by doing that, but either way things seem fairly happy right now.

authors: gregawoods nobodywasishere wileycoleman

repo: crystal-lang-tools/vscode-crystal-lang


text:
Bug: Casting float NAN to integer does not error

NANs can be converted to integers:
Float64::NAN.to_i # => -2147483648

This should clearly be an arithemtic error.
I assumed this could be fixed similar to #10420, but I couldn't get it to work as I would have expected. So I'm posting this issue to keep track.

I came up with this patch, but no overflow is raised.
diff --git a/spec/std/float_spec.cr b/spec/std/float_spec.cr
index eb0824958..d9a9e8827 100644
--- a/spec/std/float_spec.cr
+++ b/spec/std/float_spec.cr
@@ -265,6 +265,20 @@ describe "Float" do
     (-0.0/0.0).finite?.should be_false
   end

+  {% if compare_versions(Crystal::VERSION, "0.36.1") > 0 %}
+    it "converts nan" do
+      Float32::NAN.to_f64.nan?.should be_true
+      Float32::NAN.to_f32.nan?.should be_true
+      expect_raises(OverflowError) { Float32::NAN.to_i }
+
+      Float64::NAN.to_f64.nan?.should be_true
+      Float64::NAN.to_f32.nan?.should be_true
+      expect_raises(OverflowError) { Float64::NAN.to_i }
+    end
+  {% else %}
+    pending "converts nan"
+  {% end %}
+
   it "does unary -" do
     f = -(1.5)
     f.should eq(-1.5)
diff --git a/src/compiler/crystal/codegen/primitives.cr b/src/compiler/crystal/codegen/primitives.cr
index 386d57860..715858164 100644
--- a/src/compiler/crystal/codegen/primitives.cr
+++ b/src/compiler/crystal/codegen/primitives.cr
@@ -263,13 +263,20 @@ class Crystal::CodeGenVisitor
     if arg_type.kind == :f32 && target_type.kind == :u128
       # since Float32::MAX < UInt128::MAX
       # the range checking is replaced by a positive check only
-      builder.fcmp(LLVM::RealPredicate::OLT, arg, llvm_type(arg_type).const_float(0))
+      or(
+        builder.fcmp(LLVM::RealPredicate::OLT, arg, llvm_type(arg_type).const_float(0)),
+        builder.fcmp(LLVM::RealPredicate::ONE, arg, arg)
+      )
     else
       min_value, max_value = target_type.range
-      # arg < min_value || arg > max_value
+      # checks for arg being outside of range or nan
+      # arg < min_value || arg > max_value || arg != arg
       or(
-        builder.fcmp(LLVM::RealPredicate::OLT, arg, int_to_float(target_type, arg_type, int(min_value, target_type))),
-        builder.fcmp(LLVM::RealPredicate::OGT, arg, int_to_float(target_type, arg_type, int(max_value, target_type)))
+        or(
+          builder.fcmp(LLVM::RealPredicate::OLT, arg, int_to_float(target_type, arg_type, int(min_value, target_type))),
+          builder.fcmp(LLVM::RealPredicate::OGT, arg, int_to_float(target_type, arg_type, int(max_value, target_type)))
+        ),
+        builder.fcmp(LLVM::RealPredicate::ONE, arg, arg)
       )
     end
   end

Both Float64::NAN == Float64::NAN and Float64::NAN != Float64::NAN are false, so that wouldn't work. What works is:
(Float64::NAN <=> Float64.zero).nil?

which translates to:
builder.fcmp(LLVM::RealPredicate::UNO, arg, llvm_type(arg_type).const_float(0))

authors: HertzDevil straight-shoota

repo: crystal-lang/crystal


text:
Crystal update error messages

List of messages which the update manager of Linux Mint showed to me in the last weeks. (separated by ---). It is always crystal, all other packages can be installed. A few days later, crystal can then also be installed. I do not know what this is. Something is out of sync.
W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/amd64/crystal_1.10.1-1%2b2.5_amd64.deb
  404  Not Found [IP: 2001:67c:2178:8::13 80]

---

W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/amd64/crystal_1.10.1-1%2b2.11_amd64.deb
  404  Not Found [IP: 2001:67c:2178:8::13 80]

W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/amd64/crystal_1.10.1-1%2b2.11_amd64.deb
  404  Not Found [IP: 2001:67c:2178:8::13 80]

---

W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/amd64/crystal_1.10.1-1%2b2.13_amd64.deb
  404  Not Found [IP: 2001:67c:2178:8::13 80]

W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/amd64/crystal_1.10.1-1%2b2.13_amd64.deb
  404  Not Found [IP: 2001:67c:2178:8::13 80]

---

W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/all/crystal_1.10.1-1%2b3.4_all.deb
  404  Not Found [IP: 2001:67c:2178:8::13 80]

W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/amd64/crystal1.10_1.10.1-1%2b4.2_amd64.deb
  404  Not Found [IP: 2001:67c:2178:8::13 80]

Hm, I can't tell what this is, but I've noticed some inconsistencies with download.opensuse.org lately as well. New package builds wouldn't be made available for days after being built.
But I've never witnessed such a download error. The message seems to indicate that the package metadata was available but the actual package data was not.

The message seems to indicate that the package metadata was available but the actual package data was not.

That was also my guess, though I wasn't able to word it that precisely.
I have now chosen another main mirror, maybe that improves the situation. Previously it was:
https://ftp-stud.hs-esslingen.de/pub/Mirrors/packages.linuxmint.com

Nope, didnt help, unfortunately.
W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/all/crystal_1.10.1-1%2b3.5_all.deb
  404  Not Found [IP: 2a01:4f8:10b:4655::4 80]

W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/amd64/crystal1.10_1.10.1-1%2b4.3_amd64.deb
  404  Not Found [IP: 2a01:4f8:10b:4655::4 80]

W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/all/crystal_1.10.1-1%2b3.5_all.deb
  404  Not Found [IP: 2a01:4f8:10b:4655::4 80]

W: Failed to fetch http://download.opensuse.org/repositories/devel:/languages:/crystal/Debian_Unstable/amd64/crystal1.10_1.10.1-1%2b4.3_amd64.deb
  404  Not Found [IP: 2a01:4f8:10b:4655::4 80]

Yeah, the main mirror doesn't matter because this package is not in the main repository.

So, since recently this seems to be resolved, there are now always two packages, one small one, approximately 1KB and a bigger one with a version number, which is seemingly the actual update. It installs now without issues. Thanks to the dude fixing it. Closing the issue.

authors: nilslindemann straight-shoota


text:
[RFC] Change tuple syntax to use parentheses

Right now tuple literals use curly braces:
{1, 2, 3}

What do you think if we change it to parentheses?
(1, 2, 3)

The rational for this is (in no specific order of importance):

According to Wikipedia: "Tuples are usually written by listing the elements within parentheses "()" and separated by commas; for example, (2, 7, 4, 1, 7) denotes a 5-tuple. Sometimes other symbols are used to surround the elements, such as square brackets "[ ]" or angle brackets "< >". Braces "{ }" are never used for tuples, as they are the standard notation for sets."
Parentheses are usually used in other languages for tuples, for example in Python, Rust, Julia and Swift (however, Erlang and Elixir use curly braces)
Parentheses feel more lightweight... but this is probably subjective
You could pass a tuple to a method without extra parentheses: foo (1, 2) instead of foo({1, 2}). It's definitely just a small gain.

In the future we could have a named tuple type, written as (x: 1, y: 2). You can think a NamedTuple is to a Hash what Tuple is to Array. We could introduce **args in method definitions and ** for splats, similar to Ruby, so you could do, for example:
def bar(x = 1, y = 2)
end

def foo(**args)
  bar(**args)
end

foo(x: 1, y: 2) # works, args will be (x: 1, y: 2) and when splatted it will match bar
foo(x: 1, z: 2) #  will match foo, but won't match bar, so compile error

a = (x: 1, y: 2)
foo(**a) # works

The above will make the delegate macro (or any other similar macro) to work in more cases (the block handling case still remains an issue). Of course, changing a tuple syntax to use parentheses isn't related to this, but we would need to find a way to write named tuple literals, but {x: 1, y: 2} already means a hash literal.
As in other languages, to write a single-element tuple you have to write:
(1, ) # note the trailing comma

to distinguish it from a grouping expression, but this usage shouldn't be frequent.
The cons is that there's code out there that uses curly braces and would need to upgrade. We could make a release that accepts both syntaxes, and have the formatter upgrade the code to the new syntax.
Another cons is that to specify an array of tuple, right now you do Array({Int32, String}), but with the new syntax it's Array((Int32, String)). The double parens are needed, otherwise Array(Int32, String) is "wrong number of type arguments".

I think it might be slightly confusing and conflate with function calls, especially since parens on function calls are optional. I personally don't mind the {} syntax.

I dont mind the curly braces, maybe because I associate tuples with Erlang. I like that it looks different than grouping (maybe?).
Curly braces are also used as block delimiter, and using parens could help remove some confusion, or compiler limitation, for example p {a, b} doesn't compile.
So, why not? I don't mind the parens either.

Naive (and total ignorant question), how this affects the constructor/usage of Class{}, like Set{1, 2} or Array{1, 2, 3}?
The other is a detail (subtle, actually) about foo(args) vs foo (tuple) that might appear confusing on a quick review of some code, making a single space the difference between an error or working code, in which case the error being presented should be clear about it :sweat_smile:
Beyond that, I don't mind.

From all the options I prefer the angle bracket.
The only issue (as in C++) is that probably we would need to write < <1, 2>, 3>  instead of <<1,2>, 3> but since generics syntax is not under question here it won't appear as much as in C++.
Using < > seems aligned with type theory texts :-). It plays nice with named tuples in the future.
Maybe I am missing something else form the grammar. But besides the cons pointed, I see no other reason why not go for < >.

please also think about to change macro brackets (i prefer <%%> <%=  %>), instead of
p({{{1}}, 2, {{3}}})

@kostya You are right. <% is a bit different than everything else in the language so it could be easily recognizable as "macro code". However, <%= ... %> is a bit long compared to {{...}}, and if we leave spaces inside <%= ... %> it looks weird.
macro setter(name)
  def {{name}}=(@{{name}})
  end
end

macro define_method(name)
  def <%=name%>=(@<%=name%>)
  end
end

macro define_method(name)
  def <%= name %>=(@<%= name %>)
  end
end

I do agree that {{...}} and {%...%} are maybe not the best option.

@luislavena No problem with Array{1, 2, 3}, though it's true that there might be some semantic relationship, but we'd have to keep the curly braces there as parens are for generic type instantiations.
@bcardiff I wouldn't use <...>, exactly because it's a mess to parse

Since named tuples will allow **args and curly braces with names are hash,
square brackets will conflict with arrays when no names are used with
tuples, angle brackets are awful to parse, and other unicode braces are
hard to type... Lets move to parens :-)
On mié, 2 de mar de 2016 at 21:28 Ary Borenszweig notifications@github.com
wrote:

@luislavena https://github.com/luislavena No problem with Array{1, 2, 3},
though it's true that there might be some semantic relationship, but we'd
have to keep the curly braces there as parens are for generic type
instantiations.
@bcardiff https://github.com/bcardiff I wouldn't use <...>, exactly
because it's a mess to parse
—
Reply to this email directly or view it on GitHub
https://github.com/crystal-lang/crystal/issues/2261#issuecomment-191507287
.

--
Brian J. Cardiff

I've been thinking of suggesting this for a long time, for the obvious reason you quoted from wikipedia, and that the braces would be better used for Sets. I've refrained because I figured it wouldn't be appreciated because of confusion with parenthesized calls and procs.
@bcardiff 's idea on using <> is interesting, but of course, as mentioned, there's the parsing (C++11 fixed the parsing of generics btw).
Right now, as mentioned, braces are over distributed in syntax, but going parens, would shift to them being used to the level of more confuzion.
Hard trades.
Purely out of a code comprehension perspective, I'd vote for  <>.

Using <...> is really hard for parsing.
a, b, c = foo <1, 2, 3>

Really hard for the parser, is it a, b, c = foo < 1, 2, 3, ... ups, there's a >

FYI, C++ being able to parse something probably is not a good indicator of whether or not it can be easily parsed, considering you need stuff like typename T::xyz and `vector<L<s, Z<1>>, allocator<X<Y>>>

And in that @asterite example, it is ambiguous if it is
a = foo < 1 ; b = 2 ; c = 3
or
a, b, c = foo(<1, 2, 3>)
C++ does not have that issue since parens in function call are optional.
This is a killer for < > I think :-( .
Maybe we could use #{ x: 2, y: 3} for named tuples. Or some other symbol. Whether or not change the nameless tuples to use that symbol would be another thing to choose.

@kirbyfan64 - No, C++ is a really bad role model, it does lex-parse-semantics-soup (so it knows what the symbol is in order to decide what the angulars means), which is why it's so slooow.
The angulars are a welcome idea though, cause they might serve in Onyx.
"Purely isolated" parentheses are of course superior, and more beautiful (and correct). The only con as I see it is the visual confusion in actual code, as mentioned by several (the one space difference between call with tuple arg, or multiple args).

I know of several languages that use #{} for sets, though...

You could pass a tuple to a method without extra parentheses: foo (1, 2) instead of foo({1, 2})

This point is the biggest downside to me actually. Typos around that area will lead to more confusing error messages or even wrong behavior if a method is liberal about what types it accepts. It becomes even more confusing with single element tuples
add 1, 2   # two params
add(1, 2)  # two params, still
add (1, 2) # single param, ups

set 1    # single param
set(1)   # single param, still
set (1)  # single param or tuple?
set (1,) # wouldn't we need to start this ugliness?

I think in the edge cases it becomes harder to read by using regular parenthesis, and after all code is far more often read than written.

I believe in Ruby foo (1, 2) is a parse error at the comma because foo (1) is parsed as (1) being a grouping expression, not parentheses for a method call.
I agree it may lead to some confusion, but I'm not sure we'll see this code much. Do we often pass a tuple literal to a method call?

I agree with @ysbaddaden here. Passing an explicit tuple to a method is pretty rare. Also, if you make this mistake you will probably immediately receive a compiler error at some point. Or, we could prohibit passing a tuple to a method like that, forcing you to use double parentheses, maybe.

I'm not sure it's worth handling a special case, is it?

I guess not. We could add it if we later find that it's indeed a real issue (but I doubt it).

I wouldn't disallow foo (1,2) neither.
Also I don't think there will be lots of singleton tuples (1,) so we won't see that a lot.
I would support always a trailing comma in tuple though. That way macro generated tuples are easy to create (a for loop will always add a comma after the element).
Empty tuples will be (). That actually has the same think between foo () / foo()  and foo (1,2) / foo(1,2) .
And just for completeness, I would not parse (,) as an empty tuple.
I do want to see named tuples (subtyping will come along probably :-) )  and is neat to have a similar notation for named & positional tuples.

@bcardiff +1 for named tuples

On the other hand, parentheses for tuples sometimes are hard to spot, or look weird. For example:
# with new syntax it's one of these
assert { 5.divmod(3).should eq((1, 2)) }
assert { 5.divmod(3).should eq (1, 2) }

# with current syntax
assert { 5.divmod(3).should eq({1, 2}) }

Or:
# Parentheses used for grouping and for tuples, so when you see a parentheses
# you have to visually check if there's a comma
a = (foo(bar, baz) + 3) * (4 + x)
b = (foo(bar, baz), 4, x)

# With curly braces maybe it's more obvious
a = (foo(bar, baz) + 3) * (4 + x)
b = {foo(bar, baz), 4, x}

Or:
# A bunch of code, there are parentheses, have to look careful to see that it's returning tuples
res.map do |cur_piece|
  dy, dx = cur_piece.min
  cur_piece.map do |yx|
    (yx[0] - dy, yx[1] - dx)
  end
end

# With curly braces it's a bit more obvious
res.map do |cur_piece|
  dy, dx = cur_piece.min
  cur_piece.map do |yx|
    {yx[0] - dy, yx[1] - dx}
  end
end

Or:
(foo bar).baz
(foo, bar).max # kinda looks like a call on an object, and it is, but the tuple is maybe not that obvious

Or:
# This is real code in the compiler
has_pkg_config = Process.run("which", {"pkg-config"}, output: false).success?

# Trailing comma needed for one-sized tuple, ugh
has_pkg_config = Process.run("which", ("pkg-config",), output: false).success?

Maybe it's just that I'm used to curly braces for tuples already.
Of course one can argue the same with tuple literal vs. hash literal:
{1, 2, 3]
{1 => 2}
{foo: bar, baz: qux}

but I think the difference is bigger, either because of the => or because the keys get colored.
So, if we decide to use parentheses for tuples we can, in the future, use (x: 1, y: 2) for named tuples. If we stick with curly braces for tuples, my vote would be to make:
{x: 1, y: 2}

be a named tuple, not a hash. For a hash, you'd have to use {:x => 1} if you wanted a symbol as a key. We could still maybe support {"foo": 1} as a hash literal with a string key, because it's convenient and it resembles JSON, but that would be the only exception. Or just use =>, which might be overall more consistent.

Scala uses parentheses for tuples and I have never met any of these problems, moreover I have never had any problem with it. Also i think tuples with curly braces are very similar to blocks.

I like curly braces more since it is easier to identify whether something is a tuple or not. I would not mind if a different character would be used, but not parentheses because IMO this makes tuples harder to spot and creates some ambiguities and special cases that one has to learn about.

I've implemented both parentheses and angular tuple-notation in Onyx now; I'll "share my experiences" for how it works out in this issue, if it can help in any way.

at risk of a dumb idea I was staring at my keyboard for symbols that might work.
what about colons
:1, 2, 3, 4:
:foo: 1, bar: 2:
:foo => 1, bar => 2:

We decided that curly braces are just fine for tuples and named tuples.

I can chip in here also, after having paren-tuples (and angular-tupes) in Onyx for some time now, that it is very unclear syntactically, still thinking about alternatives. Curlies are no doubt clearer to distinguish.

authors: Ragmaanir asterite bcardiff hangyas javajax jhass kirbyfan64 kostya luislavena ozra ysbaddaden


text:
Improve auto-casting in JSON::Any

Currently JSON is inconvenient to use, not sure if that's a bug or feature. The perfectly reasonable code below would fail complaining Int can't be cast to Float
require "json"
JSON.parse("{\"v\":1}")["v"].as_f

Expected behaviour: The code above should work and JSON::Any should allow reasonable automatic casting between Int -> Float, Number -> String etc.
How I hit this bug - I tried to parse JSON like { a: 1, b: 1.1 } - when some values casted to Int and some to Float and the only way to handle it is to json.to_i? || json.to_f which feels wrong.

FWIW a better approach would be to deserialize the data into structs/classes via JSON::Serializable or JSON.mapping.  This also works for literal types.
Hash(String, Float64).from_json "{\"v\":1}"

In my opinion having JSON::Any is fine, it's easy to understand and use.

There should probably be to_i and to_f in addition to as_i and as_f, which are fuzzy on whether the value is an integer or float.

Why not use as_i.to_f? It makes it clear that you are converting an int to float, which might result in precision loss.

@asterite because that will fail if the value is 1.0, since it's a json float.
@alexeypetrushin is asking how to treat 1 and 1.0 in json both as floats, for libraries which don't make the distinction.

There is no issue on behavior, the JSON document is represented correctly.
What is requested is to simplify casting, which is usually better to be explicit in my opinion.
Converting types to another can be already done by using #raw.
For example, converting all types to String will be #raw.to_s. In your case, you can use #raw.as(Float64 | Int64).to_f.

What is this API we are talking about? I don't understand why sometimes it's an int, sometimes a float. And the OP already provided a solution so I'm not sure there's something to do here.

The #raw.as(Float64 | Int64).to_f should work.
@asterite I'm parsing historical price data, it's like [{ date: "2020-01-01", price: 500 }, { date: "2020-01-02", price: 521.2 }, , ...] } JSON parses numbers sometimes as Int and sometimes as Float which makes it hard to parse.

If the value is an explicit float (1.0)  then Any will parse it as a Float64, if it's ambiguous (1) the type will be an Int64, because it looks like an integer.
The Any#as_i is basically doing .as(Int64) and same for as_f (.as(Float64)). It's a basic type cast with no transformation. If Any parsed an Int64 (1) then trying to cast a Float64 out of the JSON::Type union will fail.
There are workarounds, as explained above, for example using manual casts with an explicit transformation of the raw union, like .raw.as(Int64 | Float64).to_f. That will always return a float, but that's not very pretty nor friendly to use :(
Maybe there could be explicit Any#to_f and Any#to_i methods that would do that for Float64 and Int64 (and maybe even String) automatically? I think it would fit into Any's purpose: parse whatever inefficiently but simply and nicely.

Sounds good. I guess to_f would call to_f on a string if the value is a string? Same for to_i? But then to_i returns Int64 I guess?
Or maybe as_f could just cast the int to a float if it's an int, and that's it.

Or maybe as_f could just cast the int to a float if it's an int, and that's it.

No. as_f should only return the raw value (if it is a float).
Adding Any#to_f and Any#to_i sounds reasonable.

Just a note that whatever is decided above could (should?) be applied to YAML::Any, as well 🙏

This behavior hit me with a surprising exception in production when I was parsing data from an IoT device endpoint that sometimes looks like {"voltage": 120.68, "power": 16.45} but occasionally looks like {"voltage": 121, "power": 16.53} when the decimal part rounds away.
Same basic problem as @al6x's stock data use case described above. (I posted with more detail on https://forum.crystal-lang.org/t/json-any-as-f-unpredictable-when-number-might-sometimes-be-an-integer/5165 and @HertzDevil sent me here, thanks!)
My gut instinct is that this #as_f is something unexpected that will bite beginners. I think this parse-a-JSON-integer case is perhaps a special one, and should "just work" by default. Currently, it really depends on the source that wrote the JSON: some languages will emit 121.0 and others 121.
If I may make a UX suggestion: one possibility I haven't seen discussed might be to add an argument that is enabled by default: JSON::Any#as_f(cast_from_int : Bool = true).
This way, JSON.parse("121").as_f would work returning 121_f64, while JSON.parse("121").as_f(cast_from_int: false) would maintain the current raw-only behavior and raise TypeCastError.
Whatever is decided, some additional documentation on JSON::Any#as_f about this issue would be nice.

Let's please make as_f also work with int values.

Despite what I said earlier, I suppose that makes sense.
JSON only has a generic number type, so distinguishing between int and float is entirely internal to the Crystal mapping. The meaning of #as_f should not be influenced by the initial decision of the JSON parser to map the value to an int type. In JSON, it's just Number. If you want that to be represented as a float, you should get a float. JSON does not say it's not a float.

JSON only has a generic number type

I think this is the key thing for deciding how to handle this.

PR #12835 is attached and updates JSON::Any, YAML::Any methods #as_f, #as_f?, #as_f32, #as_f32? to work when the underlying @raw.is_a?(Int).


text:
Removed ESLint Indent in favor of Prettier

ESLint and Prettier should not be used for formatting at the same time, and they conflict

I recently updated the deps with a newer eslint-prettier-config, can you run npm i --only=dev and reopen the project to see if the issue still persists?

I recently updated the deps with a newer eslint-prettier-config, can you run npm i --only=dev and reopen the project to see if the issue still persists?

Does not fix it. The amount of indentation is not the same when a declaration is on a different line, but this is like the 3rd time we've had this issue with Eslint and Prettier

I recently updated the deps with a newer eslint-prettier-config, can you run npm i --only=dev and reopen the project to see if the issue still persists?

Does not fix it. The amount of indentation is not the same when a declaration is on a different line, but this is like the 3rd time we've had this issue with Eslint and Prettier

Ok fair enough

authors: suneettipirneni tanndlin

repo: cs-discord-at-ucf/lion


text:
Expire artifacts in local cache

In GitLab by @tristanvb on Oct 27, 2017, 07:54
The local artifact cache is currently unbounded and needs to periodically be cleaned by the user with something like:

rm -rf ~/.cache/buildstream/artifacts

This is not ideal because it will delete everything.
Instead, we should have a user configurable quota, allowing the user to restrict the artifact cache from growing beyond a given size.
This can be imlemented using a least-recently-used algorithm, where artifacts which have not been used for a long time are expired from the local cache first when buildstream is creating artifacts.
Complications and edge cases:

BuildStream should not expire artifacts which are required in the current build plan
In interactive mode, in the case that the local cache is too small to fit a given build, the user needs to be asked what to do

This decision should probably carry for the remainder of the build, if the user decided to make an exception and allow the cache to grow beyond the quota, then they probably dont want to re-answer this question for every build

In non-interactive mode, a decision needs to be made in advance, perhaps it is simply disallowed to ever grow
In the cases where local artifact quota exceeds the amount of remaining disk space for the given partition/volume, something smart needs to be done

On startup, a warning should be issued
The remaining space, minus some hard coded reasonable value, should probably be considered instead of the user defined quota for the duration of the session

In GitLab by @jjardon on Jan 11, 2018, 08:52
marked this issue as related to #136

In GitLab by @jjardon on Jan 15, 2018, 18:05
Note libostree issue opened related with this: https://github.com/ostreedev/ostree/issues/1420

In GitLab by @samthursfield on Feb 22, 2018, 12:07
mentioned in commit b2197bc2aa7300ec9663686ce767aa02d78bbb99

In GitLab by @samthursfield on Feb 22, 2018, 12:08
mentioned in merge request !285

In GitLab by @jjardon on Mar 12, 2018, 16:08
This is starting to affect us: https://gitlab.gnome.org/Infrastructure/GitLab/issues/171#note_79852

In GitLab by @TheRealMichaelCatanzaro on Mar 12, 2018, 17:16

This is starting to affect us: https://gitlab.gnome.org/Infrastructure/GitLab/issues/171#note_79852

On my personal computer, ~/.cache/buildstream is over 60 GB large. That's not good.
It's not just ~/.cache/buildstream/artifacts, though. All of the cache directories are quite large.

In GitLab by @TheRealMichaelCatanzaro on Mar 17, 2018, 20:29
I currently have:

In ~/.cache/buildstream/artifacts, 2,439,334 items, totalling 57.3 GB
In ~/.cache/buildstream/build, 11,936,893 items, totalling 26.9 GB
In ~/.cache/buildstream/sources, 268,435 items, totalling 7.7 GB
In ~/.cache/buildstream/logs, 5,040 items, totalling 455.3 MB

I would say that even the logs folder is far too large. All the caches should have reasonable size limits in place. Expiring artifacts alone won't be sufficient.

In GitLab by @juergbi on Mar 17, 2018, 20:58
Please note that ~/.cache/buildstream/build mostly consists of hardlinks to files in ~/.cache/buildstream/artifacts. I.e., the total size of ~/.cache/buildstream is smaller than the sum of the subdirectory sizes.
However, I agree that we also need to expire build trees and logs. I'm not sure how to handle sources.

In GitLab by @tlater on Mar 19, 2018, 12:37
created branch 135-expire-artifacts-in-local-cache

In GitLab by @tlater on Mar 28, 2018, 14:06
mentioned in merge request !347

In GitLab by @tlater on Mar 28, 2018, 15:53
assigned to @tlater

In GitLab by @LaurenceUrhegyi on May 1, 2018, 14:20
marked this issue as related to #372

In GitLab by @TheRealMichaelCatanzaro on May 8, 2018, 04:42
Anecdotes:

Last week, I found my BuildStream cache had reached 160 GB. I encountered some difficulty when attempting to delete it.
Today I ran out of space on my 1 TB hard drive. My BuildStream cache had grown to 770 GB. This after having deleted it just last week.

In GitLab by @toscalix on May 23, 2018, 15:47
marked this issue as related to #402

In GitLab by @toscalix on May 23, 2018, 16:37
marked this issue as related to #357

In GitLab by @tlater on Jul 4, 2018, 17:03
It's been a while, the MR for this is still sailing with few updates. Planning to round it up on the plane to GUADEC!

In GitLab by @tlater on Jul 19, 2018, 09:43
!347 has landed - should we close this? Not quite everything is covered yet, but perhaps it's better to split off the remaining feature ideas into a different issue.

In GitLab by @tlater on Jul 23, 2018, 09:30
I've split off the remaining features into #490 and #491 so we can close this critical High_impact Urgent Blocker bug ;)

In GitLab by @tlater on Jul 23, 2018, 09:30
closed

In GitLab by @toscalix on Aug 3, 2018, 08:17
marked this issue as related to #520

In GitLab by @jjardon on Oct 27, 2018, 16:04
mentioned in merge request !548

repo: cs-shadow/buildstream


text:
add trace id header to http responses

As an administrator I want to take the trace id that a user has seen in an error message or in a client log and find the corresponding log messages / spans.
AFAICT the tracing middleware should always add the trace id to response headers.

Also, to use the methods here:
internal/grpc/services/gateway/storageprovider.go
for GRPC trace enabled responses.

authors: butonic labkode


text:
[mid-term] Evaluate usage of go micro framework for Reva services

This issue will keep track of requirements for prototyping a go micro restructure of Reva.
Open items to discuss:

Mono vs multi repo
How to avoid code duplication across services?
How to fit CS3APIs without changing them?

@micbar @butonic @refs @felixboehm please add your thoughts here

I'll go ahead and dump a bit of what's on my short term memory.
pros (go-micro)

Established community, pretty responsive and open to collaborators.
API Gateway out of the box. This would mean there's no need to model the api gateway on the cs3api. I cannot back my arguments with benchmarks but making them should be trivial using pprof.
Go-micro grpc model follows golang's RPC implementation.
Multiple services out of the box, easy to extend and implement a new one.
Build with k8s support.
Open development roadmap.

cons

Considering all the moving parts they don't really follow SEMVER and we've seen sometimes a minor version breaking compatibility.
... elaborate on more cons

Mono vs multi repo
My 2 cents: I would put all my eggs on a single basket and try Monorepo, it simplifies things a lot. Would this be a challenge for CI?
How to fit CS3APIs without changing them?
No need to change them. I have a project where I ran micro's protoc plugin and this is how a service / client interface would look like: https://github.com/refs/cs3api-micro you can find all the generated go-micro code alongside the go_out plugin. Example here.
I achieved that by tweaking prototool.yaml:
diff --git a/prototool.yaml b/prototool.yaml
index d4264dd..3a28527 100644
--- a/prototool.yaml
+++ b/prototool.yaml
@@ -32,3 +32,6 @@ generate:
       type: go
       flags: plugins=grpc
       output: build/go-cs3apis
+    - name: micro
+      type: go
+      output: build/go-cs3apis

We should keep adding arguments for this ticket and not letting it stale! :)

Monorepo
There has to be a scope defined. What is in and what not anymore... As there are extension mechanisms, that might be an ongoing drift.
I‘d vote for easy / efficient first but clear definitions.
A mechanism for extensions not being part of monorepo has to be there anyway and needs demo / tutorial.
Maybe:

ocis binary = monorepo
reva cs3 reference implementation = monorepo
both have further services in individual repos which are part of a larger platform

Concerning Monorepo, I find the Symfony approach to monorepo interesting:
All commits happen in the monorepo  https://github.com/symfony/symfony which also consists of variouse  components like ocis https://github.com/symfony/symfony/tree/master/src/Symfony/Component
Changes to the individual components are automatically mirrored to sparate read-only repos using git subtree split which allows one to have seperate tags and releases for components.
https://github.com/symfony/serializer
Explanation can be found here for example: https://github.com/symfony/serializer/pull/14#issuecomment-401900377

authors: IljaN felixboehm labkode refs


text:
fix decomposedfs upload

The FS.Upload() implementation needs to handle direct uploads that did not initiate a unpload.
fixes ocis spaces registry PR https://github.com/owncloud/ocis/pull/2739
ocis makes direct PUT /data/spaces/spaceid!spaceid/relative/path/to/file.json  requests to the metadata storage data provider. No initiate upload call ... we did that to save requests. Might be better to just use TUS with the creation-with-upload extension.
For now this allows us to create users with ocis and the accounts service.

This is completely against the CS3api spec... It will create hidden complexity and produce bugs like https://github.com/owncloud/ocis/issues/2609. That's why we removed zero-byte-uploads and the functionality you just added again in https://github.com/cs3org/reva/pull/2309.
Can we please revert this and solve it properly?
CC @C0rby

I agree the different upload mechanisms currently are confusing:

we have the InitiateFileUpload call which returns a "simple" or "tus" protocol endpoint
both protocols take an upload id, but

the eos driver uses a path as the upload token
the ocis metadata service bypasses all this as it used the "simple" protocol with a path

We should fix the metadata service to make the proper InitiateFileUpload + PUT request. While this will create more requests we can improve that later, similar to the creation-with-upload extension of TUS.

authors: butonic wkloucek


text:
Pagination: page props is not passed to ArkPagination.Root

When using the Pagination component, it seems like there is a bug in how the props are splited which make the page props not passed to the root component. It seems to come from the function splitCssProps that does not return the page in the localProps
const [variantProps, paginationProps] = pagination.splitVariantProps(props)
  const [cssProps, localProps] = splitCssProps(paginationProps) // local props does not contains page.

@pierrebiver
This should be fixed by now https://park-ui.com/react/docs/components/pagination

authors: cschroeter pierrebiver

repo: cschroeter/park-ui


text:
updates for new 122 structure

Removed File i/o - covered in 121
Added 2DArrays - expected topic coming into 122

You'll need to change https://github.com/cse12x/java-tutorial/blob/ca25302057be04757e95681e35e47062e7ebd5b8/book_source/source/_toc.yml to include this new page in the table of contents

@hschafer fixed the toc!

authors: WateringFire hschafer


text:
SCSS variable not accepted

Please check the validity of the block starting from line #1

1*| $foo-2x-x: 100px;

The following is OK.
$foo-x2-x: 100px;

So it fails if you have - separated variable with one of the parts starting with a number.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/6856153-scss-variable-not-accepted?utm_campaign=plugin&utm_content=tracker%2F214563&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F214563&utm_medium=issues&utm_source=github).

Fixed in csscomb@3.1.7

authors: raine tonyganch


text:
Improve spawn fail error message

Add some logs to address :

https://github.com/cta-epfl/flux-jh/issues/45

hm, 100% test failure rate! :)

Test were already failing on master.

Test were already failing on master. But I can make another PR to address those.

Indeed, let's do it separately https://github.com/cta-epfl/batchspawner/issues/22

Shall we merge this now ?

repo: cta-epfl/batchspawner


text:
ensure path casing for debug documents

While enabling source link for Rx.NET #167, we discovered that calling the PowerShell build scripts with the wrong case resulted in debug documents with wrong case for the paths too. My guess is that the full path msbuild call is resulting in a compiler property. To make enabling source link easier, we should investigate and see if it is possible to override with a Path.GetFullPath or something similar.

The solution for this one should hopefully be pretty easy. In the SourceLink.Create.GitHub.targets, we just need to change it to pass in both @(Compile) and @(EmbeddedFiles), then also pass back out @(Compile) with Path.GetFullPath called called for each item.

This affects SourceLink.Create.GitHub and not SourceLink.Create.CommandLine. Rx.NET has switched to Rx.NET. I'm going to close this until it is surfaces again.

repo: ctaggart/SourceLink


text:
Support for Christmas nicknames needed

As is customary, now is the time that people change their nicknames to their Christmas version. Unfortunately it's difficult to do this on Hubbit. Would it be possible to implement a nickname feature, where people can select an optional nickname?

I believe it's already possible, since the nicknames are retrieved from chalmers.it/LDAP, but I'm guessing that we have a somewhat permanent cache in hubbIT itself. Maybe we could simply set a reasonable expiration of the nickname cache to solve this issue.

Yes, 24 hours: https://github.com/cthit/hubbIT/blob/develop/app/models/user.rb#L44

authors: jesperlindstrom lindskogen oherik

repo: cthit/hubbIT


text:
ERROR: Uncaught exception: java.lang.IllegalArgumentException: Incorrect nucleotide char: "Y"

metacherchant.sh --tool environment-finder
--k 31
--coverage=5
--reads ../data/testOutput.fastq
--seq /dataAndScripts/ARG.fasta
--maxradius 2000
--output ../data/output
--work-dir ../data/output/metacherchant_logs
--maxkmers=100000
--bothdirs=False
--chunklength=250
-m 5G
this is the code i runned but  it have an error like this :
10-Apr-24  16:29:25  MAIN: Running tool environment-finder
10-Apr-24  16:29:25  |   Loading file testOutput.fastq...
10-Apr-24  16:29:26  |   1'041 reads added
10-Apr-24  16:29:26  Hashtable size: 105157 kmers
10-Apr-24  16:29:26  ERROR: Uncaught exception: java.lang.IllegalArgumentException: Incorrect nucleotide char: "Y"
java.lang.IllegalArgumentException: Incorrect nucleotide char: "Y"
at ru.ifmo.genetics.dna.DnaTools.fromChar(DnaTools.java:59)
at ru.ifmo.genetics.dna.DnaQ.(DnaQ.java:27)
at ru.ifmo.genetics.utils.iterators.DnaQIteratorFromDnaIterator.next(DnaQIteratorFromDnaIterator.java:21)
at ru.ifmo.genetics.utils.iterators.DnaQIteratorFromDnaIterator.next(DnaQIteratorFromDnaIterator.java:5)
at ru.ifmo.genetics.io.ReadersUtils.loadDnaQs(ReadersUtils.java:205)
at tools.EnvironmentFinderMain.loadInput(EnvironmentFinderMain.java:117)
at tools.EnvironmentFinderMain.runImpl(EnvironmentFinderMain.java:156)
at ru.ifmo.genetics.utils.tool.Tool.simpleRun(Tool.java:287)
at ru.ifmo.genetics.utils.tool.Tool.runAsStep(Tool.java:371)
at ru.ifmo.genetics.utils.tool.Tool.run(Tool.java:451)
at ru.ifmo.genetics.utils.tool.Tool.mainImpl(Tool.java:607)
at ru.ifmo.genetics.Runner.run(Runner.java:176)
at Runner.main(Runner.java:59)
and i don't know how to fix it , look line the error in nucleotide char in --reads ../data/testOutput.fastq  but when i try to check it sequence by using this code
cat ../data/testOutput.fastq  | awk 'NR%4==2{print}' | grep -oP "[^ATCG]"
the only char is ATGC
if you have any solution for this type of error please let me know it, it will help me a lot in my project

Hello!
Probably the error is with nucleotide in --seq /dataAndScripts/ARG.fasta file. Can you please check it the same way you described?
Kind regards,
Artem

than you a lot sir, now it work but when i run ./metacherchant.sh  in my folder it seem not work but when i try to export it to $PATH
metacherchant.sh is work .
./metacherchant.sh
Error: Invalid or corrupt jarfile ./metacherchant.sh

metacherchant.sh
/home/hp/mambaforge/bin/metacherchant.sh: line 23: let: mem=: syntax error: operand expected (error token is "=")
/home/hp/mambaforge/bin/metacherchant.sh: line 24: * 95 / 100: syntax error: operand expected (error token is "* 95 / 100")
MetaCherchant: genomic environment analysis tool, version 0.1.0 (revision 329e235)

Usage:     metacherchant [<Launch options>] [<Input parameters>]
Tool:           environment-finder
Description:    Finds graphic environment for many genomic sequences in given metagenomic reads
Input parameters (only important):
	-k, --k <arg>                           k-mer size (MANDATORY)
	--seq <arg>                             FASTA file with sequences (MANDATORY)
	-o, --output <arg>                      output directory (MANDATORY)

Launch options (only important):
	-m, --memory <arg>                      memory to use (for example: 1500M, 4G, etc.) (optional, default: 2 Gb)
	-w, --work-dir <arg>                    working directory (optional, default: workDir)
	-c, --continue                          continue the previous run from last succeed stage, saved in working directory (optional)
	--force                                 force run with rewriting old results (optional)
	-h, --help                              print short help message (optional)

so how to fix this error?

To get rid of this error, you have to set the mandatory parameters, such as --k, --seq, and --output. Alternatively, you can set -h parameter to see help message. Bash script doesn't seem to work well without input parameters.

repo: ctlab/metacherchant


text:
32 Bit constraint for input vectors

Hello Mr Tralie,
this is Thomas Davies. I was wondering why you have this constraint for the input vectors X and Y to be 32 Bit. Do you think it is also possible in the future to work with 64 Bit floats?
Kind Regards,
Thomas Davies

Hi, thanks for your interest in this library!  Currently I'm only
supporting 32-bit to be consistent with the GPU enabled code, and I've seen
in experiments that it doesn't make too much of a difference (see figure 4
here http://www.ctralie.com/Research/linmdtw/paper.pdf)
But if you find a use case where that actually makes a difference, I would
be very interested to see it!
On Tue, Sep 7, 2021 at 2:10 PM lvlanson @.***> wrote:

Hello Mr Trailie,
this is Thomas Davies. I was wondering why you have this constraint for
the input vectors X and Y to be 32 Bit. Do you think it is also possible in
the future to work with 64 Bit floats?
Kind Regards,
Thomas Davies
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ctralie/linmdtw/issues/8, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJWDZX5QJIJGX76ZYNI6J3UAZISRANCNFSM5DS5MYQQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Hi!
I use your DTW algorithm for a machine learning algorithm, where I update the timeseries based on the distance between two timeseries. Over the course of the learning process the float values can become really small, since I need to scale them between 0 and 1 before I start training them. The more epochs I use, the more likely it is that I work with really small floats. I usually get a buffer overflow warning pretty fast when using linear memory dtw.
There is currently no rush for implementing a 64 bit version. I'd even try to help out myself. Currently I need to finish my thesis and when I'm done I can try to make a 64 bit version. My work is based on this paper https://www.sciencedirect.com/science/article/abs/pii/S0031320317304387. I am incorporating your work as well.
I can send you some code if you are interested in this topic.

Ah very interesting!  So incorporating 64 bit into cython for the CPU
version would be no problem; one would just change floats to doubles.
However, I'm not aware of how to support 64-bit in pycuda.  So I'd have to
look into that first
On Wed, Sep 8, 2021 at 2:23 AM lvlanson @.***> wrote:

Hi!
I use your DTW algorithm for a machine learning algorithm, where I update
the timeseries based on the distance between two timeseries. Over the
course of the learning process the float values can become really small,
since I need to scale them between 0 and 1 before I start training them.
The more epochs I use, the more likely it is that I work with really small
floats. I usually get a buffer overflow warning pretty fast when using
linear memory dtw.
There is currently no rush for implementing a 64 bit version. I'd even try
to help out myself. Currently I need to finish my thesis and when I'm done
I can try to make a 64 bit version. My work is based on this paper
https://www.sciencedirect.com/science/article/abs/pii/S0031320317304387.
I am incorporating your work as well.
I can send you some code if you are interested in this topic.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ctralie/linmdtw/issues/8#issuecomment-914953853, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJWDZSJCNLHAIIIC7TQEXTUA36PRANCNFSM5DS5MYQQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Anyway, if memory is all you care about and you don't need to use CUDA to parallelize the computation, then one thing I could do in the meantime is enable a 64-bit option for the CPU

Hey there,
don't worry about this for now. We could add 64-bit support in the future.
For now I need to install the changed linmdtw version in my system. Currently I am having a hard time it being recognized correctly and running.

Yeah, I'm still reviewing your changes and brushing up on what I did
before.  If you're using conda, you can setup a new environment with your
code
https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
and then you can do
pip install -e .
from within your directory.  That will install the package with a symbolic
link to your code, so anything you change in your code will be updated in
what you run.  I'd suggest doing that in the meantime before I make a full
official release.  But the test cases you left are very helpful.  I just
have limited time because of teaching and other projects, but I will see
what I can do today
On Sun, Sep 19, 2021 at 9:18 AM lvlanson @.***> wrote:

Hey there,
don't worry about this for now. We could add 64-bit support in the future.
For now I need to install the changed linmdtw version in my system.
Currently I am having a hard time it being recognized correctly and running.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ctralie/linmdtw/issues/8#issuecomment-922472541, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJWDZRQFU3SJ5KKXRENB4LUCXPLLANCNFSM5DS5MYQQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

authors: ctralie lvlanson

repo: ctralie/linmdtw


text:
单元测试中不能刷新@ConfigurationProperties修饰的类的值

单元测试用例: L78
下面是简化的代码加注释
    @Test
    @DirtiesContext
    public void testConfigurationProperties() throws Exception {
        Assertions.assertEquals("root", dbProperties.username);
        Assertions.assertEquals("root", dbProperties.password);

        // 1. 修改 username 为 ahao, 监听到修改事件
        apollo.addOrModifyProperty("db", "username", "ahao");
        ConfigChangeEvent updateEvent1 = testBean.future.get(5000, TimeUnit.MILLISECONDS);
        Assertions.assertEquals("ahao", updateEvent1.getChange("username").getNewValue());
        // Thread.sleep(10000); // ConfigurationProperties 未能及时刷新, 即使 sleep等待事件消费 也不行
        // Assertions.assertEquals("ahao", dbProperties.username);

        // 2. 此时如果不走下面的代码, 另一个单元测试 testInject() 会检测到 username 已经改为 ahao

        // 3. 还原 username 为 root
        apollo.addOrModifyProperty("db", "username", "root");
        ConfigChangeEvent updateEvent2 = testBean.future.get(5000, TimeUnit.MILLISECONDS);
        Assertions.assertEquals("root", updateEvent2.getChange("username").getNewValue());
    }

这边是通过EnvironmentChangeEvent来刷新配置的, 在web环境下测试可用.
    applicationContext.publishEvent(new EnvironmentChangeEvent(changeEvent.changedKeys()));

官方提供的单元测试例子里没有ConfigurationProperties相关的测试，还请帮忙解答一下，谢谢~

这个是spring cloud的逻辑，看下相关源码？应该是 org.springframework.cloud.context.properties.ConfigurationPropertiesRebinder ？

感谢指引入口, 看了下ConfigurationPropertiesRebinder源码, 当事件触发的时候, 会去销毁所有@ConfigurationProperties修饰的类, 然后重新初始化.
if (bean != null) {
    this.applicationContext.getAutowireCapableBeanFactory().destroyBean(bean);
    this.applicationContext.getAutowireCapableBeanFactory().initializeBean(bean, name);
    return true;
}

当DBProperties类在web环境运行时, 我们可以在ConfigurationPropertiesRebinder类里的ConfigurationPropertiesBeans对象的beans属性看到DBProperties这个Bean.

但是当DBProperties类在test环境运行时, beans属性里却找不到DBProperties这个Bean.
事件确实有被消费掉, 只是因为没有DBProperties这个Bean, 所以导致DBProperties不能通过销毁再初始化, 来刷新里面的属性值.

当执行另一个单元测试testInject()时, 会重新初始化DBProperties, 所以里面的值就改变了.
现在卡住的点是, 为什么在test包里, ConfigurationPropertiesBeans就找不到DBProperties了?

玄学调试, 加了个Starter.class, 发现解决问题了.
@ContextConfiguration(classes = {ApolloConfig.class, SpringIntegrationTest.TestConfiguration.class})
@ContextConfiguration(classes = {Starter.class, ApolloConfig.class, SpringIntegrationTest.TestConfiguration.class})

可以知道, 肯定又是@SpringBootApplication这个注解里面又做了什么操作.
依次排插, 发现只要加上@EnableAutoConfiguration就没问题, 没有加上@EnableAutoConfiguration就失败.
修复commit: R34

authors: Ahaochan nobodyiam

repo: ctripcorp/apollo


text:
apollo在ns未配置下客户端会卡顿几秒

apollo-client在ns未配置时，虽会抛404异常，但是仍做重试，导致使用方会卡顿几秒；
RemoteConfigRepository.loadApolloConfig()

这里倒是可以尝试优化，404的话就不用重试了

https://github.com/ctripcorp/apollo/pull/3056


text:
怎么自定义setup和teardown，虽然源码里面有说明hook类的逻辑，没看明白怎么在项目中实现

怎么自定义setup和teardown，虽然源码里面有说明hook类的逻辑，没看明白怎么在项目中实现

项目中自定义hook的文件：pscript/dsl/hook.py，常用的有下面几种方式，你可以在这个文件里修改

before_all_extend：项目整体执行前触发
after_all_extend：项目之行结束后触发
before_feature_extend：项目中的每个feature文件执行前触发
after_feature_extend：项目中的每个feature文件执行后触发
before_scenario_extend：feature中的每个senario执行前触发
after_scenario_extend：feature中的每个senario执行后触发
before_step_extend：senario中的每个step执行前触发
after_step_extend：senario中的每个step执行后触发

repo: ctripcorp/flybirds


text:
Despite installing ledger along with ascender, the logs are not getting sent to the ledger

Even though the ascender logging is configured to reach the ledger service using the admin credentials, I do not see the containers getting registered under the servers of ledger admin section, nor the logs are going out/reaching the ascender node.

The servers section from ledger shows nothing.

Saw rsyslogd misbehaving, but describe ascender-app-task pod says rsyslogd is running, but the log says otherwise.

Since its using the internal IP on the cluster, try changing the URL to http instead of https.

By the way, how long it usually takes for ascender to send logs to the ledger?

I ran setup module against 2 of the hosts in the inventory and it pulled all the facts. But, I do not see anything under facts or I don't see any of the servers being displayed under reports.

In ledger, both the ascender-app-web and ascender-app-task containers are pointing to https and not http. Is this expected?

It should be instant. You might check the logs on the parser container and make sure there are no errors.  You show that the containers showed up in the Servers list, which means that logs have been sent and received by Ledger from Ascender, so we know something is at least getting there.
The Server Url is for the external link to the Ascender UI, so it would have no effect on receiving logs.  Its only useful when linking back into Ascender to directly view job runs there.

Also something to double check, go into settings and ensure that gather_facts is an allowed module.  It should be by default.

That setting is there, without any changes.

I even reinstalled with http and don't find the facts getting collected.

The only error I see is rsyslog error from ascender-app-task-7b9cc64f67-bm2rd pod. Seems like the issue still exists because of unresonsive rsyslogd itself

Any further suggestions?

An update, a complete new setup with HTTP just worked fine. Why isn't it working for HTTPS?

@muralihcl Where are you setting this up, meaning for what platform of Kubernetes? I will work to replicate it on my end.

I'm setting it up with K3s on Rocky Linux 8.9

@muralihcl - The ledger Web frontend (k8s service "web-svc") requires SSL authentication as it has an ingress object allowing external access. Ascender talks to the parser service, which is not fronted by an Ingres object and does not require SSL certificates. In the logging section of Ascender you still need the username and password for ledger, but can set the Logging Aggregator URL to "http://".

In the logging section of Ascender you still need the username and password for ledger, but can set the Logging Aggregator URL to "http://[parser service address]".

You don't need the username and password set, its currently unused if set.  We instead require you to trust the server in the admin section instead before it will allow any logs from it.

authors: cigamit michaelford85 muralihcl

repo: ctrliq/ascender-install


text:
Images Fail to Upload on Production Server

The Problem
Some images fail to upload on the production server. The most significant pattern we have found in the images that fail is that any image taken by your phone camera that was saved to your camera roll fails to upload. The same behavior is found for both creating new listings and editing profile images.
Results of my investigation
I found out that seemingly any image I download onto either my actual phone or the simulator will upload to the production server. However any image that is taken from an iPhone camera fails to be uploaded to the production server. I verified this by taking an image with my iPhone camera and trying to upload it which failed. This seemed to be the case regardless of image file type. However when I took an image from the internet (even .heic / .heif), it was successfully uploaded. I was able to figure out that it was only the production server by trying to upload exactly the same image to the dev server and production server. It worked on the dev server but failed on the production server. This also seems to occur regardless of image file size. The smaller image taken from the iPhone camera fails while a larger image downloaded from the internet succeeds.
Another thing to note is that these results are independent of whether the user is on Test Flight or Expo. I was able to get the same behavior both ways, since I was able to test uploading images through the edit profile, which is the same code on Test Flight and Expo.
What we can do
For those who know the differences between the production and development environment, maybe there is some environment variable or some easy fix that can be done. But if not, I think the way to make image upload consistent is to refactor both the backend and frontend to use form data instead of base 64. I think this would definitely fix the problem but it would be a good amount of work from both backend and frontend. Otherwise I suggest backend developers who set up dev and prod servers take a look at the differences between them to figure out what could be wrong.

Turns out the production server just had a small image size upload limit 🤡

repo: cuappdev/resell-backend


text:
SWIPE for iOS

Hello, we want to use iScroll with Backerframework (http://www.bakerframework.com). It works wonderfully, but there is only one problem, which is crucial. Bakerframework needs swipe event to switch to the next/prev page. Iscroll blocks it. How can we enable this event in iScroll? Is it possible? Thank you in advance!

Sorry, hadn't get the eventPassthrough: 'horizontal', option. It is working more then fine! Thank u!

Hi uncledent my e-mail: rovissi@gmail.com
after your return we erase this

authors: rovissi uncledent

repo: cubiq/iscroll


text:
Add further sanity checks to docker installation instructions

When running the tutorial inside our Docker, I am now having them run

runt -i 'core|mrxl'
fud check verilog jq mrxl interpreter

If anyone sees a reason to check additional fud stages, speak now!
I have check that these do work cleanly inside the latest Docker image. I have not tested these in any other form of Calyx installation (crate or built-from-source).
Closes #1559.

Indeed; sounds good—reverting this tutorial-specific thing afterward seems like a good idea.

authors: anshumanmohan sampsyo

repo: cucapra/calyx


text:
WIP parameter type support

🤔 What's changed?
Added Parameter Type support for Python, since cuke4behave exposes cucumber expressions to Python
⚡ What's your motivation?
I'd like cucumber expressions to be first class in Python via behave
🏷 What kind of change is this?

:zap: New feature (non-breaking change which adds new behaviour)

♻ Anything particular you want feedback on?
So I opened this draft PR because, while all tests pass, in the real world, only sometimes my ParameterTypes get found. In one file, with identical construction of the parameter types, only 3 were found in a file containing at least a dozen parameter types.
📋 Checklist:

[x] I agree to respect and uphold the Cucumber Community Code of Conduct
[x ] I've changed the behaviour of the code

[x ] I have added/updated tests to cover my changes.

[ ] My change requires a change to the documentation.

[ ] I have updated the documentation accordingly.

[ x] Users should know about my change

[ ] I have added an entry to the "Unreleased" section of the CHANGELOG, linking to this pull request.

This text was originally generated from a template, then edited by hand. You can modify the template here.

Added Parameter Type support for Python, since cuke4behave exposes cucumber expressions to Python.

Could you please update CHANGELOG.md to describe your changes and also add a link to cuke4behave?

authors: aslakhellesoy mrkaiser

repo: cucumber/language-service


text:
🛑 CUETCONNECT(NoticesSite) is down

In c3f0cf4, CUETCONNECT(NoticesSite) (https://notices.cuetconnect.org/) was down:

HTTP code: 500
Response time: 3316 ms

Resolved: CUETCONNECT(NoticesSite) is back up in 2310968.

repo: cuetconnect/statuspage


text:
overpass query parameters should show up in popup

Right now the popup shows tags as an [object Object] instead of actually listing them.

seems okay to loop through these specifically and create new attributes named tag_NAME

This is fixed in 0.1.1

Btw: osmtogeojson has a flatProperties option which would also result in a similar, flat structure.

Hey! That's a lot easier. Thanks for pointing that out. Just removed our own function and set the options. Should be out in 0.1.1

authors: mapsam tyrasd

repo: cugos/dropchop


text:
[FR] add button "Scroll to Bottom"

Amazing plugin！ I know you have the button “Scroll to Top” and it‘s very convinent, but it doesnt have a button "Scroll to Bottom".
Most of time, I need add someting to the bottom ,or I need to look footnote and others.
I think it useful to everyone, not only for me, thanks.

同求

相同请求，请求作者添加“一键至底”的功能。

2.4.3 已经支持

repo: cumany/obsidian-floating-toc-plugin


text:
Added OS check to prevent errors on non 'nt' OSes.

An error caused by trying to install 'pywin32' without considering the OS detection has been fixed. Tested on Ubuntu 22.04.3 and Windows 11 23H2.

Thank you so much for pointing out that problem! I confirmed that your PR fixed the problem. However, we have already merged another similar PR(https://github.com/cumulo-autumn/StreamDiffusion/pull/92), so we will close this PR. Anyway, thank you so much for the contribution!

repo: cumulo-autumn/StreamDiffusion


text:
🛑 cuong-dev.ml is down

In 779a9db, cuong-dev.ml (http://cuong-dev.ml) was down:

HTTP code: 504
Response time: 10498 ms

Resolved: cuong-dev.ml is back up in a6a72dd.

repo: cuong-nd/uptime


text:
Unable to create RandomState with MT19937

Hello,
I work with two versions of scripts that do some math operations. I have a CPU version that works with numpy and a GPU one that works with cupy. I wanted to validate that the code will return the same results when it has the same config. In my code I sometimes need to use some random distributions, therefore ideally I want to set up numpy and cupy in the same way so far as RandomState goes. This is where I encountered a problem - it seems I'm unable to set it up in the same way (same RandomState setup). I wanted to use the MT19937 random state for this comparison. However, on cupy I'm getting the following error when creating the random state :
cp.random.RandomState(method=cp.cuda.curand.CURAND_RNG_PSEUDO_MT19937)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/uname/anaconda3/envs/sai/lib/python3.7/site-packages/cupy/random/generator.py", line 56, in __init__
    self.seed(seed)
  File "/home/uname/anaconda3/envs/sai/lib/python3.7/site-packages/cupy/random/generator.py", line 697, in seed
    curand.setGeneratorOffset(self._generator, 0)
  File "cupy/cuda/curand.pyx", line 123, in cupy.cuda.curand.setGeneratorOffset
  File "cupy/cuda/curand.pyx", line 125, in cupy.cuda.curand.setGeneratorOffset
  File "cupy/cuda/curand.pyx", line 86, in cupy.cuda.curand.check_status
cupy.cuda.curand.CURANDError: CURAND_STATUS_TYPE_ERROR

My setup is the following (output from python -c 'import cupy; cupy.show_config()'):
CuPy Version          : 7.3.0
CUDA Root             : /usr/local/cuda
CUDA Build Version    : 10020
CUDA Driver Version   : 10020
CUDA Runtime Version  : 10020
cuBLAS Version        : 10202
cuFFT Version         : 10102
cuRAND Version        : 10102
cuSOLVER Version      : (10, 3, 0)
cuSPARSE Version      : 10301
NVRTC Version         : (10, 2)
cuDNN Build Version   : 7605
cuDNN Version         : 7605
NCCL Build Version    : 2506
NCCL Runtime Version  : 2506

I'm using an Nvidia GTX 980 Ti GPU.
PS: Also I should point out that you should probably update your documentation, since the actual RandomState method enumeration: https://github.com/cupy/cupy/blob/v7.3.0/cupy/cuda/curand.pxd
does not match the method enumeration mentioned in the docs: https://docs-cupy.chainer.org/en/stable/reference/generated/cupy.random.RandomState.html#cupy.random.RandomState

Thank you for the bug report @zerodayexploit, I was able to reproduce the bug.
The problem seems to be that during the setting of the seed, offset is always set. However from the documentation, CURAND_RNG_PSEUDO_MTGP32 and CURAND_RNG_PSEUDO_MT19937 dont support setting of the offset.
As for the second problem mentioned, I think you are reffereing to quasi-random generators which are not yet a part of Numpy's API, and hence are not supported by CuPy. The enum has the values for completes I believe.

authors: martinmocko niteya-shah

repo: cupy/cupy


text:
Increase numbers of retries for K-S tests

Each test added in #1300 theoretically fails with probability 0.1158125 %.  It seems OK to increase the numbers of retries because wrong implementation rarely passes K-S test with 2000 samples by chance.
Fix #2373.

Jenkins, test this please

Jenkins CI test (for commit 6bdfda337213b80566bdbb49b635f0035887d0a3, target branch master) failed with status FAILURE.

LGTM

authors: chainer-ci niboshi toslunar


text:
Add searchsorted

Implements searchsorted
As in NumPy the function assumes that the a array is monotonic increasing and doesn't explicitly check it.
The implemented kernel adds a check option to detect wether the array is increasing or decreasing by comparing two values. This is to allow an efficient implementation of digitize.

PTAL, this is my first time implementing complete cupy routines so I expect a lot of corrections and feedback  😅

PR updated, now there is an option for the internal searchsorted function to perform the monotonicity increasing or decreasing check inside the kernel.
The array is assumed to be monotonic and only 2 values are compared to determine whether it is increasing or decreasing. (decreasing is needed for efficiently implementing digitize)
Since all the threads share the bins array and do exactly the same check there is no warp divergence.

Comments addressed.

PTAL

Also please add a test case where a[-1] is NaN and v has a NaN too.

PTAL

Done, thanks and sorry for making you waste your time on this.

I am not sure if this is what do you refer to 😓

Jenkins, test this please

Jenkins CI test (for commit 8cb0d67f481caa90e8a24f4269cd61681d7c48e8, target branch master) succeeded!

authors: chainer-ci emcastillo niboshi


text:
Fix cupy.fill_diagonal to implement with cupy.flatiter

Follows #3165 , originated from #2970 .
cupy.fill_diagonal is currently implemented with its own elementwise kernel object. This PR fixes it to implement by means of cupy.flatiter that is introduced at #3165 as numpy.fill_diagonal does.
https://github.com/takagi/cupy/compare/flatiter...takagi:fix-fill-diagonal

Please rebase 😢

Rebased!

Jenkins, test this please

Jenkins CI test (for commit 42a89ce864b86ebbe8305c68028e039ef47cf35d, target branch master) succeeded!

authors: chainer-ci emcastillo takagi


text:
Add cupyx.scipy.sparse.kron()

The implementation and test cases are largely borrowed from SciPy, with minor tweaks.
I actually implemented a correct ElementwiseKernel to construct the arrays row, col, and data at once (see 7135ec9) instead of following SciPy, but in my local tests I found it's slower, so I abandoned it. I guess it's because the memory access pattern isn't optimal.
Moreover, the real bottleneck in this function is the three coo_matrix() calls. Together they took about 90% of time, so how the rest is implemented really doesn't matter much. I am not sure if this is a defect or something expected, will look into it, but it shouldn't be a blocker.

pfnCI, test this please.

Jenkins CI test (for commit 0adce0ab3010d1eb71a3cbd5ec94f2a358931d3c, target branch master) succeeded!

LGTM!

Thanks!

authors: chainer-ci leofang takagi


text:
HTTP 302 redirects not being handled

IFDB's page for Counterfeit Monkey gives the "Play On-line" link as
https://iplayif.com/?story=https%3A%2F%2Fgithub.com%2Fi7%2Fcounterfeit-monkey%2Freleases%2Fdownload%2Fr10%2FCounterfeitMonkey-10.gblorb
But this doesn't work, at least not for me: with Firefox I get "TypeError: NetworkError when attempting to fetch resource." and with Edge "TypeError: Failed to fetch". The actual link to the Blorb file, https://github.com/i7/counterfeit-monkey/releases/download/r10/CounterfeitMonkey-10.gblorb, works fine in these browsers. However, looking in more detail with wget, accessing this URL returns a HTTP 302 redirect to a URL under "githubusercontent.com". Parchment doesn't seem to be handling that.

Huh, we'd already patch it to follow redirects, so I don't know why it's buggy now. Will investigate.

Can't reproduce in Firefox 98, Edge 100, or Chrome 99 on Windows.

I've now gone round and tested all the computers here (all Windows boxes) - it works on two, and it fails on two. Not clear at all why. I won't complain if you close this issue as I don't know when I'll get a chance to see if I can figure out why this might be happening for me.

Link is working fine on Android chrome.
Em ter, 5 de abr de 2022 05:17, David Kinder @.***>
escreveu:

IFDB's page for Counterfeit Monkey gives the "Play On-line" link as
https://iplayif.com/?story=https%3A%2F%2Fgithub.com%2Fi7%2Fcounterfeit-monkey%2Freleases%2Fdownload%2Fr10%2FCounterfeitMonkey-10.gblorb
But this doesn't work, at least not for me: with Firefox I get "TypeError:
NetworkError when attempting to fetch resource." and with Edge "TypeError:
Failed to fetch". The actual link to the Blorb file,
https://github.com/i7/counterfeit-monkey/releases/download/r10/CounterfeitMonkey-10.gblorb,
works fine in these browsers. However, looking in more detail with wget,
accessing this URL returns a HTTP 302 redirect to a URL under "
githubusercontent.com". Parchment doesn't seem to be handling that.
—
Reply to this email directly, view it on GitHub
https://github.com/curiousdannii/parchment/issues/122, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHVQEW2A7JISTGXNZE7OLBTVDPZH3ANCNFSM5SR5TOLA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

authors: DavidKinder curiousdannii namekuseijin

repo: curiousdannii/parchment


text:
Clarify customization doc

Checklist

[ ] I have added tests
[ ] I have updated the docs and cheatsheet
[ ] I have not broken the cheatsheet

Right thanks 😅

repo: cursorless-dev/cursorless


text:
Error Repository structure not compliant - preventing HA startup

Version of HACS
I don't know how to check while Home Assistant won't start due to this error. Not the latest if I correctly remember. HA is 0.97.2 (Hassio in Docker on Ubuntu Server 18.04).
Describe the bug
Suddenly HA became unreachable. Restarting the Docker did not help; HA is still unreachable. It seems a HACS repository is causing problems. The other errors in my logs are pretty common and have never prevented HA from starting.
Edit: some extra info, don't know if it's relevant. Two or three days ago I tried to update HACS. I got a message telling me 'A background task is running...' and to be patient. This message was present for about a whole day. Then it disappeared, but when clicking on 'Store' in HACS this error was showing:
'custom_components.hacs.http.HacsWebResponse object' has no attribute 'store'

Home Assistant was running fine otherwise, so I didn't think much of it. Now I think perhaps it's related?
Debug log
2019-09-23 16:36:53 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2019-09-23 16:36:53 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for spotcast which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2019-09-23 16:36:53 WARNING (Recorder) [homeassistant.components.recorder] Ended unfinished session (id=20 from 2019-09-23 16:34:20)
2019-09-23 16:36:56 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for afvalwijzer which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2019-09-23 16:36:59 ERROR (MainThread) [homeassistant.components.template.cover] could not convert string to float: 'None'
2019-09-23 16:37:07 ERROR (MainThread) [hacs.repository.plugin.PiotrMachowski.Home-Assistant-Lovelace-HTML-Jinja2-Template-card] Repostitory structure not compliant
2019-09-23 16:37:07 ERROR (MainThread) [hacs] Validation for PiotrMachowski/Home-Assistant-Lovelace-HTML-Jinja2-Template-card failed.

I think I the error in my ways; being on 0.97.2 I should not have tried to upgrade, since 0.98 is minimum requirement. Now to figure out how to remove it, simply removing the hacs: from configuration.yaml doesn't seem to do the trick.

restart HA now

Restarting didn't work, tried several times. Also deleted the custom_components/hacs folder and copied the files from 0.13.3 back in. Didn't help ('integration not found').
I'm now underway to reinstalling Hassio from scratch then restoring a snapshot.

Integration not found is not the same issue, you get that if the files in /hacs/ is not correct

You are right, 'integration not found' was one of the errors I encountered in my attempts to recover from my error. Eventually the restoration of a snapshot succeeded and I'm up and running again. Lesson learned.

authors: ludeeus rschuiling

repo: custom-components/hacs


text:
CustomerIO/MessagingPushFCM is broken

Hello. I'm receiving an issue when trying to install pods

Versions:
CustomerIO/MessagingPushFCM ~> 2.0.5
customer_io: ^1.0.0-alpha.7

Hey @damienissa can you try,
pod install --repo-update
And if that doesn't work, just delete the podLock file and try pod install again.

@Shahroz16  Thank you for the quick response.
But it was precisely the log of pod install --repo-update
I think it can be project-specific, but then I create a new empty project and try to add customer io and receive the same issue.

@damienissa I think you are correct, I believe you are following this link
Can you please try,
'CustomerIO/MessagingPushFCM', '~> 2.1.0-beta.1'

I'll update the docs as well.

@Shahroz16 Now It works well.
Also, would be great to receive the ability to set the device FCM token from Flutter.

@damienissa so glad to hear that, and regarding your next question, you are in luck 😄
The PR is out, I expect it to be merged by today.

repo: customerio/customerio-flutter


text:
PX/Px being converted to rem when inside calc()

I need a pixel value to remain a pixel value inside of a calc function. I have made sure that the value is -17.4359PX before the postcss-pxtorem processes. After processing, this is converted to -1.08974rem.
Is there a specific reason by the plugin ignores PX/Px inside of a calc()?
Is there a workaround?

I added a test for the case-sensitivity of px and included calc() in #35. I didn't seem to have the same issue that you are having.

Do you have a pre-processor running on your CSS before it gets to postcss? Maybe something is converting the PX to px.

After some further testing, it appears that the following example causes the issue:
margin: 12px calc(12PX + 2PX)
In this example the 2 upper case pixel values get converted to rems.

Do you happen to be using a pre-processor like Sass or Less? I feel like something is lowercasing the px before it reaches postcss.

@mdmccarley89 Nevermind, you are correct. I think I know the issue too. I'll put out a fix soon.

@mdmccarley89 published postcss-pxtorem@4.0.1

Thanks so much Jonathan!

repo: cuth/postcss-pxtorem


text:
Add the ability in SqlSessionFactoryProvider Builder to set MyBatis Configuration Settings

As discussed on the java channel, this is a PR which contains the code changes to SqlSessionFactoryProvider Builder, so that it can incorporate MyBatis Configuration Settings while creating session factories.

@PParth27 Lets figure out how to do this without adding another dependency.  For example, can we just add the configuration object as a parameter you can pass in instead of needing something like property utils?  Or what if we just expose only the most common configurations into the builder?

@brentryan I have removed the dependency on commons-beanutils by directly using reflection to set the properties. We can go by the options you have suggested, but this way gives the most flexibility to set any setting in the configuration object.

repo: cvent/dropwizard-mybatis