TCP sockets

This project currently supports WebSockets and HTTP server. Would you consider also exposing hooks for users to work with TCP sockets? The API would be somewhat similar to that of WebSockets with the required differences. Idea being that users who want high performance EPOLL solution could use this lib instead of libuv and Node.js users could have something faster than Node.js net module.

Controversial topic - this request/subject has surfaced a few times before.

uWS is a high level library for doing high performance web messaging. That is the point and purpose of this project.

It is high level because when you do as much as possible in native C++ and only let the very business logic be scripted, you have minimal performance loss and maximum productivity.
You get a sweet point where you can, with 4 lines of JavaScript, set up a WebSocket server that outperforms most of all alternatives from within Node.js. That is the reason why this project is what it is.
I cannot think of one single case where business logic in a web project would need to directly use TCP or EPOLL.

@alexhultman what if your business logic is to write a serivce for IoT devices which communicates with those devices using MQTT, STOMP and other protocols? Yes, it would be nice to also have a parser for those protocols in C++, but we are not going to add parsers for all protocols in this project.
Say you wanted to implement MQTT using uWS, at least for my use cases, the only thing that could be moved to C++ would be the MQTT packet encoder, but until we don't have that I would be happy to use Node.js MQTT parser with uWS as EPOLL.

Another use case would be gRPC. (AWS ALB recently added support for gRPC.)

If uWS TCP stack is faster than Node, another HUGE use case is implementing all database drivers (Redis, MySQL, PostgreSQL, etc..) using uWS for TCP.

I mean, if you could have a database driver which is 2x faster, everyone would want that.

I have presented initial code for a database driver that is 12x faster. Nobody cared and I have no interest in developing yet another thing that really only shows what we all know already: that scripting languages are not about performance. This is computer science 101.
I mean I could rewrite everything that Node.js does, in C++, and have incredible performance. But that would really just be a C++ server, not Node.js. Node.js is Node.js because everyone and their mother knows JavaScript and insist on using it everywhere for anything.
With a database the bottleneck is (mostly) going to be in the database itself. Sure, fast in-memory databases will bottleneck in the connector if done bad (and Node.js has really bad connectors), but it is still not a project I want to take on.
Because, none of this is news to anyone who knows computer science. It's all about popularity.
TLDR; This project is about making a statement, not to polish a turd into slightly less of a turd. You either do something really good, or you don't. This project is about tackling the web messaging problematics, really good.
Besides, the TCP support of uSockets is highly dependent on C-pointers and memory alignments that you don't have in JS - so it would have to be some kind of shoe-horned wrapper turd.

This project is about presenting simple solutions to business problematics, with very competitive results.


ARROW-9744: [Python] Fix build failure on aarch64

pyarrow uses only SetupCxxFlags.cmake. It doesn't use
DefineOptions.cmake. We need to define ARROW_ARMV8_ARCH in pyarrow
too. It's defined in DefineOptions.cmake.

+1


Apply ruff pre-commit to python/triton/runtime.

We're in the process of incrementally converting from autopep8 + flake8 + isort to ruff, on a directory-by-directory basis.
The motivation to switch away from autopep8 is that I can't get it to
wrap long lines, even with -aaa.  This seems to be a known problem,
https://github.com/hhatto/autopep8/issues/497.
See more details about alternatives tried in
https://github.com/openai/triton/pull/2557.

could we just ruff everything in a single PR?

could we just ruff everything in a single PR?

Yea absolutely, I mostly didn't want to have to revert the whole-repository reformatting if it breaks something, because it's such a large PR.
I'm happy to do it in one big bang or to land this, let it bake for a few days, and then land everything.  Do you have a preference?

Discussed IRL, we decided to take this and then submit the Big Rewrite separately.


Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "revert-unexpected-merge" git@github.com:dgageot/machine.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

you made a booboo ?
LGTM


Register RPC method to function in another class

Hi,
I am trying to register RPC methods to functions that are in another class than ofApp.
From the example project, if I put the "getText(...)" function in a custom class of mine "customClass", I tried to register the RPC call to it in the following way:
server.registerMethod("get-text",
"Returns a random chunk of text to the client.",
this,
&customClass::getText);
But am only greeted with compilation error. Am I doing something wrong?
I am on windows 10, OF 0.9.8 release, VS2015

Does 'this' refer to the instance of customClass?

Very good question. I tried many different options but didn't try to put "&myCustomClass" instead of this. Now is compiling fine. Thanks!

Super.


Update dependency markdown to v3.4.4

This PR contains the following updates:

Package
Update
Change

markdown (changelog)
minor
==3.3.7 -> ==3.4.4

Release Notes

Python-Markdown/markdown
v3.4.4
Compare Source
v3.4.3
Compare Source
v3.4.2
Compare Source
v3.4.1
Compare Source
v3.4
Compare Source

Configuration
📅 Schedule: Branch creation - "before 3am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[x] If you want to rebase/retry this PR, check this box

This PR has been generated by Self-Hosted Renovate Bot. Find all logs here.

/cody rebase


Add LookupBoundary to TapRegionRegistry

~Blocked on https://github.com/flutter/flutter/pull/116736 and https://github.com/flutter/flutter/pull/116741.~
TapRegionRegistry.of and TapRegionRegistry.maybeOf cannot find TapRegionRegistry that are past a lookup boundary.

How do tap regions (especially, "tap to dismiss") work in a multiview world?
Does this break menu anchor (https://github.com/flutter/flutter/blob/d19047d8a175dd913533f79dda22a85f3ab28247/packages/flutter/lib/src/material/menu_anchor.dart#L3466-L3468), if we were to make submenus a separate View?  Should the registered tap regions forward their hit-test calls to their registry?


Error message on multiclass SVM with more than 2 classes

The following code fails with an error message SystemError: [ERROR] In file /opt/shogun/src/shogun/multiclass/MulticlassLibSVM.cpp line 200: SVM set failed:
import numpy as np
from shogun import SubsequenceStringKernel
from shogun import MulticlassAccuracy
from shogun import MulticlassLabels
from shogun import MulticlassLibSVM
from shogun import StringCharFeatures
from shogun import RAWBYTE
from sklearn.preprocessing import LabelEncoder

x = ['car', 'war', 'fair', 'hair', 'lift', 'gift']
y = np.array([1, 1, 2, 2, 3, 3], np.float64)

xt = ['bar', 'rift']
yt = np.array([1, 3], np.float64)

features_train = StringCharFeatures(x, RAWBYTE)
features_test = StringCharFeatures(xt, RAWBYTE)

labels_train = MulticlassLabels(y)
labels_test = MulticlassLabels(yt)

C = 1.0
epsilon = 0.0001
kernel = SubsequenceStringKernel(features_train, features_train, 5, 1.0)

svm = MulticlassLibSVM(C, kernel, labels_train)
svm.set_epsilon(epsilon)
svm.train()
labels_predict = svm.apply_multiclass(features_test)
accu = MulticlassAccuracy()
print(accu.evaluate(labels_predict, labels_test))

however, if I change the y array to [1,1,2,2,1,1], no such error occurs. If i put four different classes in y (e.g. [1,1,2,2,3,4]), the error occurs as well. I dug into the code of MulticlassLibSVM a little bit, I suspect the lines 162-194 to be the culprit (they seem a bit 'off'), but I don't know enough about the implementation details to be of any help i fear :(
Of course, i figure the error is on my part, since the multiclass example delivered with the package runs just fine. I just figured that the error message is not very helpful at this point.

@bmurauer thnx for the bug report, indeed bug is coming from somewhere there :) it's a bit painful to look at that code, lemme try if it's easy to fix.

@bmurauer ok so a very quick fix is that you change the labeling to 0 base 💃
but yeah this shoudl work with any arbitrary labeling... i'm working on it but that'll take a bit longer to get in.


No longer get static interventions for ~1000+ counties

With the code currently in master, this check that we have at least 1800 counties is failing, because we only have 1003:
https://github.com/covid-projections/covid-data-model/blob/720dbf763d22d8907ee83691bd6cc296a03e4a0f/libs/validate_results.py#L99

DataExportException
('counties.SELECTED_INTERVENTION', 'Expected more counties in the output, only found 1003')

I'm changing the threshold to 800 for now, but we need to figure out if this was an expected consequence of changes @erccarls made, and if so, if that's okay (it means we will show data for many fewer counties on the website, I believe).

I suspect this is ~expected and the fix is going to be a nicer “no data” page for counties .  Basically 50% of counties don’t have enough data to run inference and we now use “past inference” in all static models.   Longer term we can use api actuals to fill in some data in those counties but we’ll have to decide whether surfacing eg. Rt in a county with <50 total cases (the current cutoff) even makes sense.

Yes, this is expected.  We can get the number back up shortly as we can both lower the thresholds and more data is coming in daily.  Right now we felt it was more prudent to reduce the number shipped until we can patch up a few things (especially moving to R_t based interventions which I should get to tomorrow).

Thanks! Closing since we seem to be moving forward with this!


Simple powered up led

In my opinion a good addition to find out if usb power connection can be safely disconnected between Raspberry Pi and the Power bank using an external switch.
Led is turned on, when Pi is running, when pushing power button is blinks two times to indicate shutdown initiated. Then is stays on until Pi loses power. Now one can disconnect power safely.
Led uses free GPIO 3.
Can be ignored if led is not used.
Renamed GPIO buttons file because it now also controls led.
I made video of the functionality, but need to upload it somewhere.

I think this will not destroy the "no soldering" solution, because one can easily ignore the led like the gpio buttons.

I have not checked the update conditions in detail. I fyou want to merge we should concider the renamed file (gio-buttons.py to gpio.py) in the install script(s).

This is a small video of the functionality.
VID_20181215_105739.m4v.zip

Hi @topas-rec, GPIO 3 is not free, it is currently GPIO to power up and down and can not be chnaged to other pins (wake-up is special pin requirement).
Please find a suitable pin by considering the new pinout

Hi @topas-rec @martinclausen2
thanks for the contribution and thanks for pointing out the conflict. Is there a way to modify the code to follow the GPIO "best practice" ideas?

https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Hardware-Pinout-Overview
https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-buttons

Hi @topas-rec , a suggestion GPIO 7 is free.

Cab you confirm that and then tell me if this gpio is free?
This gpio.py script works on my phoniebox together with the gpio buttons exactly implemented according to the wiki suggestion: https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-buttons
That's why I didn't believe there is a conflict between the led and the shutdown button, because I use them together.

OK found out that the gpio 2 is a conflict for the i2c protocol for the hifiberry. Correct?
So changing to gpio 7 is still necessary right?

Hi @topas-rec
this is still pending for two reasons. The first one I can not solve: I have not GPIO installed at the moment and can not test nor verify which pin should be used.
Secondly, you are right, the name of the script should change, because it's not only about buttons anymore. However, I do not want to deal with the disappointed parents after a git pull - which is why I would like to leave the filename as it is now.
All the best, micz

Hey @MiczFlor,
First:

I have not GPIO installed at the moment and can not test nor verify which pin should be used.
What can I do now? As far as I know current gpio 2 is not ideal. Would it help to change to gpio 7?

Second:

I do not want to deal with the disappointed parents after a git pull - which is why I would like to leave the filename as it is now.
Understand. I think a rename wouldn't break other installations, but no problem. I'll change back to original file name.

I'll change this soon.

Hi @topas-rec Hi @MiczFlor GPIO 7 is fine, just use that. Regards, Martin

I tried that MR in my installation (just changed the LED GPIO to 12) and it works like expected!

I tried the new added lines from the 07.Feb today to check if it works well as Power ON Led.
And what should i Say it works very well!!

Thaanks for testing and for letting us know.
Have you tested the buttons, too? Do the still work?

I haven't tested this code after the changes from 7 th. February.

I'm sorry i did'nt test the buttons, because i don't need them. Maybe i use the shutdown button later on.
Aktual i try to realise some "light show" with some LED's at GPIO

But what i see at the moment the documantaion on
https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Hardware-Pinout-Overview
doesn't match to the   gpio-buttons.py

Could you be please more explicit? Note, that there are two different pinouts suggested old one with collisions and new one without but with breaking changes
You have to die one way or the other ;-)
Am 17. März 2019 13:38:02 MEZ schrieb Joggel84<EMAIL_ADDRESS>
But what i see at the moment the documantaion on
https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Hardware-Pinout-Overview
doesn't match to the   gpio-buttons.py
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/387#issuecomment-473661570

I tried to leave the pins as they were before the changes from 2c4fa26
Before that we talked about incompatible pins as you can see above in this discussion.
@martinclausen2 were you able to test this already?

@Joggel84 The code follows the classic pinout and is aligned with the documentation so far, the status LED is not defined there. In this case i generally would recommend that the code should follow the documentation and not the other way around as we try to get everything in sync. IMHO In a perfect world we would all switch to the new flexible pinout.
@topas-rec I cannot test the code, because my hardware follows the new layout and I do not have buttons except for power and play/pause, the other functions are accessible via encoders
I see myself here as the one trying to moderate pinouts and take care of the encoder stuff.

Why not simply forward the Pi's onboard LEDs with fibre optic cables?

Works great in my phoniebox :)

@winterrace I had that idea as well, but how do you mount the light guide onto the leds on the RPi? Glue + hole in the case? After all I found it easier to redirect the LEDs onto a GPIO and add a LED to it.

I drilled 2 holes into the upper shell of the pi case right above the LEDs. Wide enough that the fibre cable can easily be inserted.
Then i temporarily covered these holes with tape and placed the lid upside down. I filled the entire edge with hot glue. After it cooled down I drilled 2 holes through the existing case holes through the glue layer (which is ca. 1 cm thick) towards the LEDs. I used a slightly smaller size of the drill bit when drilling through the glue layer so that the fibre cable will fit tight in that tunnel later.
This way it's not necessary to apply any glue etc. to the pi itself. Just push the fibre cable through the glue tunnel and the last 5 mm free space until it attaches itself right on the LED surface.
And the fibres can easily be removed with the lid and be attached again with same precision.

Excellent idea!!
Le 12 mai 2019 13:33, "winterrace"<EMAIL_ADDRESS>a écrit :

I drilled 2 holes into the upper shell of the pi case right above the
LEDs. Wide enough that the fibre cable can easily be inserted.
Then i temporarily covered these holes with tape and placed the lid upside
down. I filled the entire edge with hot glue. After it cooled down I
drilled 2 holes through the existing case holes through the glue layer
(which is ca. 1 cm thick) towards the LEDs. I used a slightly smaller size
of the drill bit when drilling through the glue layer so that the fibre
cable will fit tight in that tunnel later.
This way it's not necessary to apply any glue etc. to the pi itself. Just
push the fibre cable through the glue tunnel and the last 5 mm free space
until it attaches itself right on the LED surface.
And the fibres can easily be removed with the lid and be attached again
with same precision.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/387#issuecomment-491587638,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALLOICGFKTPEBONIJMGZFSDPU7565ANCNFSM4GKSVUZA
.

Hi @winterrace
very sweet idea! I added it to the wiki:
https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Forward-Pi-onboard-LEDs-with-fibre-optics

Tests finished. Works (on my machine)

If one merges: Stash all my commits into one!

Somehow after some time of use there is "No space left on device". I have to check if that has to do with this PR.

I left over a print statement which bloated my logs. Is not committed, was only on my local device.
Holding one of my volume buttons sometimes doesn't work when pushing the other one once right before holding the first one. Can someone test that?

Have done a fresh install for fun now. I'll give this piece of software to my 4 year old tester for one or two weeks now. Then we can decide to merge or modify.
Again please test if possible.
cd; rm stretch-install-*; wget https://raw.githubusercontent.com/topas-rec/RPi-Jukebox-RFID/master/scripts/installscripts/stretch-install-default.sh; chmod +x stretch-install-default.sh; ./stretch-install-default.sh

Still stable no issues. Tests done by me and my son.

I really like this addition and I would like to see this PR merged

@kabakakao, if you've testes this PR, can you provide us your experience? Are there issues with this PR?

I will test it the next days. I will comment this thread

I've tested the new gpio-file for my power LED. It works like a charm.
Thanks for that. Unfortunately i have no other gpio buttons to test them. But as I reviewed the changes, it should work. The other buttons are just on another gpio. An they seem to be unchanged.

It also works to connect an LED to an usb-port and it will light up when booting and turn off when shut down without any code. See here: https://twitter.com/Weigelt_P/status/1217192571346259969

Can someone of the maintainers please explain to me why this is not going to be merged or rejected? I see a lot of discussion going on around config files and reorganizing the project. I think that is all great. Does it has to do with this PR? Is that the reason that this PR is not merged? Are there other reasons?
This PR is open for a year now and I am afraid someday I find a whole different project and my changes do not fit anymore and I can rewrite this (small) change. I don't have so much time so I am not sure to be able to keep up with the projects speed.

Hi @topas-rec
you are absolutely right. Did you rebase your work to the latest version of the script? I will merge it immediately. I am not super up to date with the status of your contribution. Apologies!
All the best, micz

I did not rebase but I merged your development branch into this branch just now.
So yes, in my branch are the latest changes of the script.

@MiczFlor everything is up to date - please merge.

is there a way to simply implement this in stable?
as mentioned here i have some trouble with developer...
(am i supposed to post here?)

It has to be merged by a maintainer.
You can copy the file gpio-buttons.py from develop to your box manually until it is merged.

i tried my working develop file to my stable version but LED does still not work on stable.

Led connected as described here?
https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-status-led

yes. and it's working on my "develop-sdcard"

So just not working when copying the file gpio-buttons.py into the stable (master) branch?
I don't have an idea why. For me this file was always like an atomic thing. Works when present.
Can you put a debug printf in that file to see what that code does and why the led doesn't light up?
You can see these printf by looking in the /var/logsyslog file.
You can use the tail command for automatically refreshing through SSH session.

So just not working when copying the file gpio-buttons.py into the stable (master) branch?

exactly

Can you put a debug printf in that file to see what that code does and why the led doesn't light up?

huh. if you tell me where to put what i shure could.

General printing of messages in python:
https://www.w3schools.com/python/ref_func_print.asp

@MiczFlor let us know if this should better be discussed in an issue rather than in a merged PR.

i'm afraid this is (far) above my "potential".
hope this comes to stable soon so i/my kids can have volume rotary encoder and LED.
thanks for your effort however!

We're working on releasing 2.0 "soon" although I can't give you a date. Please see #890 for coordination of the release.


Review formatting

reviews are always formatted correctly regardless of word or paragraph length.

how do i get rid of these old commits help

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 50.467%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
304

Relevant Lines:
501

💛  - Coveralls


Flutter doctor should verify Android SDK licenses have been accepted

After switching the new project template to Gradle-based, flutter doctor should verify that the Android SDK licenses have been accepted. Otherwise, flutter build apk will fail with a message like:
Checking the license for package Android Support Repository in /Users/fortuna/Library/Android/sdk/licenses
Warning: License for package Android Support Repository not accepted.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> You have not accepted the license agreements of the following SDK components:
  [Android Support Repository].
  Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
  Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Exception: Gradle failed: 1

FYI we have some code already on the iOS side to do this.  (iirc there is a way there with xcode-select --license or similar to check.)  I doubt there will be any shared code, but just thought I should mention.

@jason-simmons is this related to the work you are doing for https://github.com/flutter/flutter/issues/8438?

I sent a PR for https://github.com/flutter/flutter/issues/8438; hopefully that will help in codelabs, etc.
For the present issue, I not entirely sure what the actual check would be. The licenses are stored in the ~/Library/Android/sdk/licenses/ folder, but it looks like the contents of those files are just some seemingly arbitrary hash values?

Closing this bug, as I believe it's not actionable


URL Module

Adds a URL module that enables parsing and component matching. Leverages the curl URL parser.

This module looks like a very specific use case, where you have to provide additional URLs for each file that you are scanning. Also, it creates additional dependencies from curl which makes the maintenance harder in platforms like Windows. So, the burden that it adds out-weights the benefits.
I'm not merging it into the master branch for these reasons.


Add support for custom disk sizing & additional disks

Depending on the Lab scenario there can be a requirement to have a smaller C Drive and then push items like logs or data onto other drives.
So within this it would make sense to be able to replicate this in a similar fashion within Lability
Adding Additional Drives with naming convention, type, size & drive letter shouldn't be too much additional work but adding the flexibility for the main Drive likely will be.

I think being able to specify disk sizes is a great addition. I'll check to make sure the xVhd resource supports this (I'm pretty sure it does).
However, as we're relying on the xVMHyperV DSC resource under the hood, this will need to support multiple VHDs first. This is primarily why I decided to use the DSC resources to begin with - any support added to the DSC resources can be used by Lability (double win!).

As I'm a bit of a Lability convert, I'd be glad to help out where I can.
I have a few labs that I currently build out that contain SQL Servers (with multiple log/data disks) or storage spaces with multiple disks. So ideally I'd like to be able to do this with Lability too.
I could look at extending the xHyper-V DSC resources to enable some of these features if it would help? But first I'd probably look at sorting the tech debt on xHyper-V it and bringing it up to HQRM. Now that AppVeyor VMs can be rebooted mid run it should be possible to create integration tests for xHyper-V.
Just let me know what might be helpful.

@PlagueHO Yeah - I think that getting the xHyper-V module up to HQRM standards should be the priority. Lability can then leverage this functionality and everyone's a winner! It would also be an opportunity to split the xVMHyperV resource into separate VM, network and disk resources as discussed here. That resource is simply doing too much and could be easily replaced with a composite resource.

I've submitted a PR to xHyper-V to add HQRM support for creating DVD Drives (and mounting ISO's to them). This should be easy enough to clone and modify to support adding/removing VM Hard Disk drives.
I've included integration tests as well, but these won't work on AppVeyor because unfortunately the AppVeyor machines don't expose VT-x - so Hyper-V won't install.
HTH

Implemented in #285


Error compiling in LSOS

Getting this issue in LSOS when trying to compile:
In file included from Buttons.cpp:8:
C:\Users\Dan and Heather\Documents\Arduino\libraries\DFPlayer/DFPlayer.h: In member function 'void DFPlayer::receive()':
C:\Users\Dan and Heather\Documents\Arduino\libraries\DFPlayer/DFPlayer.h:278: error: invalid conversion from 'uint8_t*' to 'char*'
C:\Users\Dan and Heather\Documents\Arduino\libraries\DFPlayer/DFPlayer.h:278: error:   initializing argument 2 of 'size_t Stream::readBytesUntil(char, char*, size_t)'
Thanks
Dan

which LSOS version are you using? Please note that the master is already obsolete for some time now. Use one of the braches, best is 1.5

Using 1.5 I get the following error code on compile:
In file included from LightSaberOS.cpp:45:
C:\Users\Dan and Heather\Documents\Arduino\libraries\DFPlayer_LSOS/DFPlayer.h: In member function 'void DFPlayer::receive()':
C:\Users\Dan and Heather\Documents\Arduino\libraries\DFPlayer_LSOS/DFPlayer.h:279: error: invalid conversion from 'uint8_t*' to 'char*'
C:\Users\Dan and Heather\Documents\Arduino\libraries\DFPlayer_LSOS/DFPlayer.h:279: error:   initializing argument 2 of 'size_t Stream::readBytesUntil(char, char*, size_t)'
In file included from LightSaberOS.cpp:53:
C:\Users\Dan and Heather\Documents\Arduino\libraries\OneButton/OneButton.h: At global scope:
C:\Users\Dan and Heather\Documents\Arduino\libraries\OneButton/OneButton.h:59: error: ISO C++ forbids initialization of member '_debounceTicks'
C:\Users\Dan and Heather\Documents\Arduino\libraries\OneButton/OneButton.h:59: error: making '_debounceTicks' static
LightSaberOS.cpp: In function 'void setup()':
LightSaberOS:238: error: 'loadConfig' was not declared in this scope
LightSaberOS:283: error: 'saveConfig' was not declared in this scope
LightSaberOS:517: error: 'InitDFPlayer' was not declared in this scope
LightSaberOS:522: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS.cpp: In function 'void loop()':
LightSaberOS:573: error: 'HumRelaunch' was not declared in this scope
LightSaberOS:594: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS:614: error: 'motionEngine' was not declared in this scope
LightSaberOS:627: error: 'motionEngine' was not declared in this scope
LightSaberOS:647: error: 'LoopPlay_Sound' was not declared in this scope
LightSaberOS:661: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS:702: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS:917: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS:942: error: 'HumRelaunch' was not declared in this scope
LightSaberOS:972: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS:986: error: 'batCheck' was not declared in this scope
LightSaberOS:1051: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS:1077: error: 'saveConfig' was not declared in this scope
LightSaberOS:1089: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS:1127: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS:1163: error: 'SleepModeEntry' was not declared in this scope
LightSaberOS:1168: error: 'SleepModeExit' was not declared in this scope
LightSaberOS:1172: error: 'SinglePlay_Sound' was not declared in this scope
LightSaberOS.cpp: In function 'void HumRelaunch()':
LightSaberOS:1339: error: 'LoopPlay_Sound' was not declared in this scope
LightSaberOS.cpp: In function 'void SleepModeEntry()':
LightSaberOS:1451: error: 'class DFPlayer' has no member named 'sleep'

Did you read the instructions?
Some hints:
please use Arduino IDE version 1.6.11 or newer
make sure you use the Board Manager version 1.6.17 or newer!!! How to do this?
go to Tools/Boards/Boards Manager...
select Arduino AVR Boards by Arduino version xxxx
Select in the lower left side of the box the version 1.6.17 and press install
if you want to use the Gravity Color Blend feature, you need to move the MPU6050 calibration values so make room for the extended set of arameters stored in the EEPROM. The easierst way to do it is to re-calibrate the MU using this sketch (MPU lib needed!!!): https://github.com/Protonerd/DIYino/blob/master/MPU6050_calibration.ino

Looks like I had the wrong version of the IDE...though I had updated.
Now getting the following errors:
Arduino: 1.8.2 (Windows 10), Board: "Arduino Nano, ATmega328"
In file included from sketch\Buttons.cpp:10:0:
sketch\Config.h:263:9: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
     ^

sketch\Config.h:274:7: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
   ^

sketch\Config.h:332:7: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
   ^

sketch\Buttons.cpp:810:17: warning: extra tokens at end of #else directive
       #else if STAR_LED

             ^

sketch\Buttons.cpp:823:17: warning: extra tokens at end of #else directive
       #else if STAR_LED

             ^

sketch\Buttons.cpp:835:17: warning: extra tokens at end of #else directive
       #else if STAR_LED

             ^

sketch\Buttons.cpp:1102:17: warning: extra tokens at end of #else directive
       #else if STAR_LED

             ^

sketch\Buttons.cpp:1114:17: warning: extra tokens at end of #else directive
       #else if STAR_LED

             ^

sketch\Buttons.cpp:1126:17: warning: extra tokens at end of #else directive
       #else if STAR_LED

             ^

In file included from sketch\SoundFont.h:12:0,
             from sketch\Buttons.cpp:11:

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h: In instantiation of 'LinkedList::LinkedList() [with T = unsigned int]':
sketch\SoundFont.h:30:14:   required from here
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:101:6: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
root=false;
  ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:102:6: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
last=false;
  ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h: In instantiation of 'LinkedList::~LinkedList() [with T = unsigned int]':
sketch\SoundFont.h:30:14:   required from here
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:121:7: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
last = false;
   ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h: In instantiation of 'bool LinkedList::add(T) [with T = unsigned int]':
sketch\SoundFont.h:352:15:   required from here
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:192:12: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
tmp->next = false;
        ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h: In instantiation of 'T LinkedList::pop() [with T = unsigned int]':
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:279:14:   required from 'T LinkedList::shift() [with T = unsigned int]'
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:320:9:   required from 'void LinkedList::clear() [with T = unsigned int]'
sketch\SoundFont.h:246:22:   required from here
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:248:13: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
tmp->next = false;
         ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:256:8: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
root = false;
    ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:257:8: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
last = false;
    ^

In file included from sketch\ConfigMenu.cpp:9:0:
sketch\Config.h:263:9: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
     ^

sketch\Config.h:274:7: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
   ^

sketch\Config.h:332:7: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
   ^

In file included from sketch\Light.h:14:0,
             from sketch\Light.cpp:7:

sketch\Config.h:263:9: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
     ^

sketch\Config.h:274:7: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
   ^

sketch\Config.h:332:7: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
   ^

In file included from C:\Users\Dan and Heather\Documents\Arduino\LightSaberOS\LightSaberOS.ino:37:0:
sketch\Config.h:263:9: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
     ^

sketch\Config.h:274:7: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
   ^

sketch\Config.h:332:7: warning: extra tokens at end of #else directive
#else if DIYINO_STARDUST
   ^

C:\Users\Dan and Heather\Documents\Arduino\LightSaberOS\LightSaberOS.ino:1035:13: warning: extra tokens at end of #else directive
   #else if STAR_LED

         ^

C:\Users\Dan and Heather\Documents\Arduino\LightSaberOS\LightSaberOS.ino: In function 'void SleepModeEntry()':
LightSaberOS:1452: error: 'class DFPlayer' has no member named 'sleep'
dfplayer.sleep();
        ^

In file included from C:\Users\Dan and Heather\Documents\Arduino\LightSaberOS\LightSaberOS.ino:33:0:
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h: In instantiation of 'LinkedList::LinkedList() [with T = unsigned int]':
sketch\SoundFont.h:30:14:   required from here
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:101:6: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
root=false;
  ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:102:6: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
last=false;
  ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h: In instantiation of 'LinkedList::~LinkedList() [with T = unsigned int]':
sketch\SoundFont.h:30:14:   required from here
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:121:7: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
last = false;
   ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h: In instantiation of 'bool LinkedList::add(T) [with T = unsigned int]':
sketch\SoundFont.h:352:15:   required from here
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:192:12: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
tmp->next = false;
        ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h: In instantiation of 'T LinkedList::pop() [with T = unsigned int]':
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:279:14:   required from 'T LinkedList::shift() [with T = unsigned int]'
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:320:9:   required from 'void LinkedList::clear() [with T = unsigned int]'
sketch\SoundFont.h:246:22:   required from here
C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:248:13: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
tmp->next = false;
         ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:256:8: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
root = false;
    ^

C:\Users\Dan and Heather\Documents\Arduino\libraries\LinkedList/LinkedList.h:257:8: warning: converting 'false' to pointer type 'ListNode*' [-Wconversion-null]
last = false;
    ^

Multiple libraries were found for "Wire.h"
Used: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire
Not used: C:\Users\Dan and Heather\Documents\Arduino\libraries\Wire
exit status 1
'class DFPlayer' has no member named 'sleep'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

I've uploaded the calibration code but nothing happens in the serial monitor...

Did you set the right baud rate? Should be 110k (from the top of my head). What about the previous error? Does it still persist?

I set the baud rate to 115200.  The serial monitor still doesn't pick anything up.
I've tried the DIYino test sketch and the serial monitor picks it up but sticks at "Initializing I2C devices"

Are you using a DIYino board? If yes, the test sketch must work. If not, please check your connections. BTW, in the LSOS code most of the seerial messages are disabled with compile directives not to take precious code space. So now it only brings mostly one single line and then nothing more.

Yes I'm using the DIYino board.
Some good news...I've managed to get the MPU configuration running - it said the test failed in the end but asked me to save values to EPPROM.  I'm assuming this is correct?
I've then run the DIYino test sketch and the serial monitor now loads and runs a script but is constantly running showing a range of acceleration and gyro values.  Is this correct?
When trying to upload LSOS 1.5 I get this:
Arduino: 1.8.2 (Windows 10), Board: "Arduino Nano, ATmega328"
C:\Users\Dan and Heather\Documents\Arduino\LightSaberOS\LightSaberOS.ino: In function 'void SleepModeEntry()':
LightSaberOS:1452: error: 'class DFPlayer' has no member named 'sleep'
dfplayer.sleep();
        ^

exit status 1
'class DFPlayer' has no member named 'sleep'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

if you comment the line it should work fine.
Jason "Kuma" Brinkerhoff
*Mad Science Workshoppe, *proprietor
http://jbkuma.com/workshoppe
On Fri, Apr 7, 2017 at 9:57 AM, dannyc09<EMAIL_ADDRESS>wrote:

Yes I'm using the DIYino board.
Some good news...I've managed to get the MPU configuration running - it
said the test failed in the end but asked me to save values to EPPROM. I'm
assuming this is correct?
I've then run the DIYino test sketch and the serial monitor now loads and
runs a script but is constantly running showing a range of acceleration and
gyro values. Is this correct?
When trying to upload LSOS 1.5 I get this:
Arduino: 1.8.2 (Windows 10), Board: "Arduino Nano, ATmega328"
C:\Users\Dan and Heather\Documents\Arduino\LightSaberOS\LightSaberOS.ino:
In function 'void SleepModeEntry()':
LightSaberOS:1452: error: 'class DFPlayer' has no member named 'sleep'
dfplayer.sleep();
    ^

exit status 1
'class DFPlayer' has no member named 'sleep'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/neskweek/LightSaberOS/issues/55#issuecomment-292543637,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATdCMDb3UO4chxKB60EKZiN5zRhT8S-tks5rtkDhgaJpZM4Mz4eV
.

LSOS-1.5

Arduino: 1.8.2 (Windows 7), Плата:"Arduino Nano, ATmega328"
C:\Users\Р?С‡РµРіРѕ\Desktop\LightSaberOS\LightSaberOS.ino: In function 'void SleepModeEntry()':
LightSaberOS:1452: error: 'class DFPlayer' has no member named 'sleep'
Несколько библиотек найдено для "Wire.h"
Используется: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire
Не используется: C:\Users\Ичего\Documents\Arduino\libraries\Wire
exit status 1
'class DFPlayer' has no member named 'sleep'
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

Comment that line and all similar to it

Hi dannyC, does it work now? What you described about the MPU calibration and the DIYino Testsketch is OK.
I do not understand the sleep error message...AFAIK I run the same code and no trouble. Anyway, this sleep command does not leave any impression on the DFPlayer chip, so it's safe to comment it out. On my Prime v1.5 and Stardust I simply cut power to the module.

On suggestion from jbkuma I removed the troublesome sleep command. Still not sure what causes it, probably a library mismatch.

Ok...apologies for the delay.
Finally got it to compile and upload..whoop!
On the downside I managed to fry my board and ruined the contacts for connecting the string blade.  My own fault so it looks like I'll be ordering a new board.
On a side note I did find that the sounds worked a bit weirdly:

The "hum" sound came on when power was run to the board even before the blade was lit.

When moving the DIYino around there was no change to the sound to replicate motion or swinging.

I will try again with a fresh board and see if that makes any difference.  I've learnt from my mistakes here so fingers crossed my v2 attempt will be more successful.


Fix typos

Hello,
First of all thank you for the PR. Do you plan on doing any other typo fixes or can we merge this?

@szymach at the moment that's all. You can merge this.


getByLabelText does not match when id has a "." in the string.

I had an element that looks like this:
<label for="activity.username">Username</label>
<input id="activity.username" />

and calling: getByLabelText('Username') throws because it won't find the  with an id of activity.username.  Having a period in the id is valid HTML.
The reason is that on this line:
https://github.com/kentcdodds/dom-testing-library/blob/4bf26d70eda829ca0470c79952f53f5d51ab423b/src/queries.js#L27
the CSS selector # needs to be escaped for a characters that are not valid CSS labels.  In this case it is trying to run container.querySelector('#activity.username') but that needs to be escaped to container.querySelector('#activity\\.username').  (double slash to escape in javascript, so the actual string would only have one slash)  (see MDN docs).
An alternative would be to use the [id='activity.shift'] selector, as that finds the element without escaping:
So the whole line would be:
return container.querySelector(`[id='${label.getAttribute('for')}']`)

Sure!

#22 should have closed this it looks like


Get the prices by contract id

This PR simplifies the handling of token identifiers by removing all CoinGecko IDs and only adding tokens by contract addresses. It caches tokens by contract address, chain, and fiat, allowing the same contract addresses to exist across multiple chains.
Changes:

Removed CoinGecko IDs for tokens.
Added token caching by contract address, chain, and fiat.
Allowed the same contract addresses to exist in multiple chains.
Removed the unique constraint for the ID to prevent app breaks.

Testing:

Successfully tested adding and removing tokens individually and in bulk.
Verified functionality with max buttons and custom tokens.
Confirmed adding and deleting custom tokens.
Custom tokens now show prices from pools, enhancing competitiveness with MetaMask.

After a few tests, I could see the app was freezing. I will check if it is using the tasks and another thread.


Don't overwrite i inside the token loop

This can result in the getInternal returning 0 ingesters (when we wrap at the end of the ring).

The more I think about this, the more I think there is nothing wrong with the existing code.


Lasse gave up - time to change...

Lasse, the orignal developer of the TBCEditor, gave up this project. He deleted this repository and the bonecode account at GitHub completely.
Some days before, I received this note from Lasse:

There is about 40 days time to finish this. After that I am going to travel around the world (3rd time) and after that I will finish my 3D engine which may still take a year or two...

The mail address I used in the last days to communicate with him, does not longer work.
Further informations I don't have. May he find, what he is looking for...
Now it's time to change!
I re-created the bonecode user account an filled the repositories with the last updates, I got. Now I will endeavor to provide this project further more and I hope to get a from assistance from other people too.

I re-created the bonecode user account an filled the repositories with the last updates, I got.

Thank you very much.
Now, I suggest to create JiftCode user account and to fork all repositories.
Make BoneCode ------> JiftCode links.

Thanks for recreating. Which is the last update? You didn't push the old history(shame on you :P).

@Memnarch
The code is from 09 Feb 2017 - I don't have the old history (the old repository). I asked GitHub about it, but they wont restore it.
@delphioracle
Why not work with this bonecode account further more? Do you have panic, I will do the same like Lasse?
Please give me some days to understand and handle the BCEditor ... I never worked with it before. Than I hope to offer support and updates like Lasse did.

@bonecode you didn't maintain a local git-mirror oO?
Maybe i can ask someone to give you his history. His one is from 9th February, too

@Memnarch
The code in the repository is from 09 Feb 2017 - I don't have the old history (the old repository). I asked GitHub about it, but they wont restore it.
@delphioracle
Why not work with this bonecode account further more? Do you have panic, I will do the same like Lasse?
Please give me some days to understand and handle the BCEditor ... I never worked with it before. Than I hope to offer support and updates like Lasse did.

Why not work with this bonecode account further more?

We would like to thank  Lasse Rautiainen for his great efforts, and of course all the other developers of the BoneCode project. But the mysterious final and karma of the project can negatively affect his successful continuation. Remember Thomas Jaeger yesterday's comments.
We must save the original for history and as reference point.

https://github.com/maciej-izak/TBCEditor/commits/master
I have almost full history... Last commit from Feb 5, 2017 (1928 commits)

... so I should delete this repository again and fork it from yours? Than I commit the changes up to 09 Feb 2017. If I'm right, on this way we have the most history of Lasses work at the old address.
Should I try that?

Sure that is kosher? From what I heard Lasse went closed repo due to some internal conflicts between you nils and himself.
Doubt people will touch this code until Lasse gives the OK for you to just re-create his repo and continue. From what i see there is code from synedit mixed with a code that isnt even marked.
Please talk to lasse and have him issue a public statement.

Do what you need :) I am a little surprised that old repo/organization was deleted... Very strange. Feel free to fork and please make update.

@NilsHoyer Why did you delete all of my previous comments?

@ThomasJaeger
I deleted this repository and recreated it again.

@quartexNOR
You are right: I told Lasse my opinion about this kind of thinking and handling my suggestions. From my point of view, he was selfish, childish and arrogant. And if I think this from somebody, I tell this to him. That's all, I done.
After he deleted this repository and gave up this project completely, I feel to be confirmed about my opinion of him.
It was never my planning to overtake this project. But I feel to be able to do this - with support and updates. Maybe it's god planning, right now I have to do this...
What should I do now? Should I go away? Should I delete this account again?
PS
Maybe I delete this repository again to fork that other repository. Than your new comments will be deleted again - I'm sorry about this...

IMO we should to keep this repository. New owner of some open source project is natural thing. IMO deleting this root repo by original author was very selfish...
IMO the most important is to keep history of project in this place.

So you can delete it and bring it back with full history :) nothing bad with that.

sglienke has a copy of 9th February ;). That one seems to be out of date by 3 days.


Fix code scanning alert - Missing rate limiting

Tracking issue for:

[ ] https://github.com/KaygusuzAbdal/juice-shop/security/code-scanning/79

Fixed by replacing app.post('/snippets/fixes', vulnCodeFixes.checkCorrectFix()) code fragment with app.post('/snippets/fixes', new RateLimit({ windowMs: 5 * 60 * 1000, max: 100 }), vulnCodeFixes.checkCorrectFix())


Disable progress bars (tqdm) with logger level QUIET

Codecov Report

Merging #271 (b968619) into main (5d8f673) will increase coverage by 0.03%.
The diff coverage is 22.22%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main     #271      +/-   ##
==========================================
+ Coverage   35.75%   35.79%   +0.03%
==========================================
  Files          59       59
  Lines        4984     5026      +42
==========================================
+ Hits         1782     1799      +17
- Misses       3202     3227      +25

Impacted Files
Coverage Δ

siibra/configuration/configuration.py
44.04% <ø> (ø)

siibra/features/basetypes/feature.py
35.23% <0.00%> (ø)

siibra/features/basetypes/regional_connectivity.py
21.29% <ø> (ø)

siibra/livequeries/ebrains.py
26.02% <0.00%> (ø)

siibra/retrieval/requests.py
49.14% <ø> (ø)

siibra/volumes/parcellationmap.py
35.54% <0.00%> (ø)

siibra/features/anchor.py
22.68% <21.73%> (-0.07%)
:arrow_down:

siibra/commons.py
38.08% <100.00%> (ø)

siibra/volumes/volume.py
50.65% <0.00%> (-2.78%)
:arrow_down:

siibra/features/basetypes/volume_of_interest.py
41.93% <0.00%> (-2.19%)
:arrow_down:

... and 4 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

The Sphinx conf.py currently sets SIIBRA_LOG_LEVEL to ERROR, effectively making it run on siibra.QUIET. So if tqdms are disabled with logger.level, we do not need any further changes.

It is decided that a progress bar using tqdm will be added in commons. All tqdms then will be replaced by siibra progress bar which is disabled within, if the log level is set to ERROR (siibra.QUIET).


Issue-596: Holistic review of non-quarkus cloud chapter

Closes/Fixes/Resolves #596

Description:
Improvement to cloud sections

Please make sure that your PR meets the following requirements:

[ ] You have read the contributions doc
[ ] Pull Request title is properly formatted: Issue-XYZ Subject
[ ] Pull Request title contains the target branch if not targeting main: [0.9.x] Issue-XYZ Subject
[ ] The nav.adoc file has a link to this guide in the proper category
[ ] The index.adoc file has a card to this guide in the proper category, with a meaningful description

How to backport a pull request to a different branch?

In order to automatically create a backporting pull request please add one or more labels having the following format backport-<branch-name>, where <branch-name> is the name of the branch where the pull request must be backported to (e.g., backport-7.67.x to backport the original PR to the 7.67.x branch).

NOTE: backporting is an action aiming to move a change (usually a commit) from a branch (usually the main one) to another one, which is generally referring to a still maintained release branch. Keeping it simple: it is about to move a specific change or a set of them from one branch to another.

Once the original pull request is successfully merged, the automated action will create one backporting pull request per each label (with the previous format) that has been added.
If something goes wrong, the author will be notified and at this point a manual backporting is needed.

NOTE: this automated backporting is triggered whenever a pull request on main branch is labeled or closed, but both conditions must be satisfied to get the new PR created.

Found some extra flaws, apologies. :eyes: suggestions


Clean up link display

Links display as markdown rather than as links

Hi! Putting links is currently not supported yet (since there is not clickable element in the board)!
Currently only supports regular text and images.


Revert "taxi: init at 6.1.1"

This reverts commit 55a75ebc44873dcee1d48ef8646c3f00c9481fb1.
Description of changes
Let's remove this package as the PR was merged early. This way I can work on it again and submit a new PR in the future
See @SuperSandro2000 review here : https://github.com/NixOS/nixpkgs/pull/179375
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Since it already got merged and doesn't break anything, why not just apply the changes in a followup PR?

Since it already got merged and doesn't break anything, why not just apply the changes in a followup PR?

Yes, that was also my intention. If it would have required a revert I would already done that.

Ah sorry I misunderstood how I should proceed I'll close it.


[Android] Unexpected pixel gap between Appbar and SliverAppbar

Steps to reproduce

Run the code sample with skia on android device.
Swipe down, and then an unexpected red line will appear between the AppBar and SliverBar.

Expected results
No red line between Appbar and SliverBar.
Actual results
A red line between Appbar and SliverBar.
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'AppBar'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});
  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 0,
        backgroundColor: Theme.of(context).colorScheme.surface,
        title: Text(widget.title),
      ),
      body: CustomScrollView(
        slivers: [
          SliverAppBar(
            elevation: 0,
            pinned: true,
            floating: false,
            backgroundColor: Theme.of(context).colorScheme.surface,
            shadowColor: Colors.transparent,
            title: const Text('SliverAppBar'),
          ),
          SliverToBoxAdapter(
            child: Container(
              height: 5000,
              color: Colors.red,
            ),
          )
        ],
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

Logs
No response
Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.22.3, on Microsoft Windows [版本 10.0.22621.3007], locale zh-CN)
    • Flutter version 3.22.3 on channel stable at C:\src\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b0850beeb2 (10 days ago), 2024-07-16 21:43:41 -0700
    • Engine revision 235db911ba
    • Dart version 3.4.4
    • DevTools version 2.34.3

[✓] Windows Version (Installed version of Windows is version 10 or higher)

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at C:\Users\dompi\AppData\Local\Android\Sdk
    • Platform android-35, build-tools 35.0.0
    • ANDROID_HOME = C:\Users\dompi\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0--11852314)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.10.5)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.10.35122.118
    • Windows 10 SDK version 10.0.22621.0

[✓] Android Studio (version 2024.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0--11852314)

[✓] VS Code (version 1.91.1)
    • VS Code at C:\Users\dompi\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.92.0

[✓] Connected device (4 available)
    • ONEPLUS A6003 (mobile) • c04373de • android-arm64  • Android 14 (API 34)
    • Windows (desktop)      • windows  • windows-x64    • Microsoft Windows [版本 10.0.22621.3007]
    • Chrome (web)           • chrome   • web-javascript • Google Chrome 127.0.6533.73
    • Edge (web)             • edge     • web-javascript • Microsoft Edge 127.0.2651.74

[✓] Network resources
    • All expected network resources are available.

Well explained very helpful.

@Predidit
I tried on Android emulator using latest master version in which I don't see the red line:

Maybe you are hitting https://github.com/flutter/flutter/issues/14288

Thank you for your response. This issue indeed appears only on actual Android devices; it does not manifest on other platforms or on the Android emulator.
It seems to be a duplicate of #14288. But AppBar and SliverAppBar are located inside the appbar and body, respectively, which makes the workaround mentioned in #14288 less effective.
While I understand this may be beyond the scope of your responsibilities, I would like to kindly inquire if there are any measures I can take to mitigate this issue.

I think this also could be a potential solution when resolved. https://github.com/flutter/flutter/issues/151065 and I suggest you to follow-up in the original issue https://github.com/flutter/flutter/issues/14288 for further updates.

I would like to kindly inquire if there are any measures I can take to mitigate this issue.

The community package mentioned in the original issue is something you can take a look to see if it helps to resolve.
Will close this in favor of the linked issue.


Enhance CI/CD infrastructure

Description

Support flexible docker image version in docker compose yaml, with ${REGISTRY:-opea}/searchqna:${TAG:-latest}, so it's easy to use a specific release version rather then always use the latest one.
Add docker_build_compose.yaml for each examples image build, and applied in CI test scripts. It can be also used in the read to build all the images in one cmd. @NeoZhangJianyu
Update manually CD workflow for release test/scan/publish

support test nodes inputs
support GenAIComps branch inputs
support build all the related docker images in one click

Issues
List the issue or RFC link this PR is working on. If there is no such link, please mark it as n/a.
Type of change
List the type of change like below. Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would break existing design and interface)
[x] Others (enhancement, documentation, validation, etc.)

Dependencies
List the newly introduced 3rd party dependency if exists.
Tests
Describe the tests that you ran to verify your changes.

AudioQnA is a code issue, will be fixed in other PR.
Others failure related to the test code, will be fixed in other PR soon to save the test source.


FIX-#6336: pin 'pydantic<2' to fix CI

What do these changes do?

[x] first commit message and PR title follow format outlined here

NOTE:  If you edit the PR title to match this format, you need to add another commit (even if it's empty) or amend your last commit for the CI job that checks the PR title to pick up the new PR title.

[x] passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] signed commit with git commit -s
[x] Resolves #6336
[x] tests added and passing
[x] module layout described at docs/development/architecture.rst is up-to-date

Thanks @vnlitvinov!


Add db fields for Vote USA Id's. Update listing pages and edit forms.

Please add the following new fields to the model:
Candidate
vote_usa_politician_id
vote_usa_office_id
Politician
vote_usa_politician_id
Office
vote_usa_office_id
And to the following listing and edit interfaces:
Candidate List: https://api.wevoteusa.org/c/
Candidate Edit: https://api.wevoteusa.org/c/20543/edit/
Politician List: https://api.wevoteusa.org/politician/
Politician Edit: https://api.wevoteusa.org/politician/3/edit/
Office List: https://api.wevoteusa.org/off/?google_civic_election_id=1000112&show_all_elections=1
Office Summary Page: https://api.wevoteusa.org/off/45563/summary/
Office Edit Page: https://api.wevoteusa.org/off/45563/edit/

[ ] Candidate List: https://api.wevoteusa.org/c/
[ ] Candidate Edit: https://api.wevoteusa.org/c/20543/edit/
[ ] Politician List: https://api.wevoteusa.org/politician/
[ ] Politician Edit: https://api.wevoteusa.org/politician/3/edit/
[ ] Office List: https://api.wevoteusa.org/off/?google_civic_election_id=1000112&show_all_elections=1
[ ] Office Summary Page: https://api.wevoteusa.org/off/45563/summary/
[ ] Office Edit Page: https://api.wevoteusa.org/off/45563/edit/


ros_led: 0.0.9-1 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository ros_led to 0.0.9-1:

upstream repository: https://github.com/CopterExpress/ros_led.git
release repository: https://github.com/CopterExpress/ros_led-release.git
distro file: melodic/distribution.yaml
bloom version: 0.10.0
previous version for package: null

led_msgs
* Version bump

ws281x
* Restore lost rpi_ws281x library files

I think the name is too generic, this package control a ws281x LED for a Raspberry Pi. What do you think @clalancette and/or @tfoote ?
Another note, I think that this package is the first time that it's released, you should change the version to 0.0.1.

I think the name is too generic, this package control a ws281x LED for a Raspberry Pi. What do you think @clalancette and/or @tfoote ?

Agreed, I think this is a little too generic.  I'd go with ws281x_led or something like that.

Another note, I think that this package is the first time that it's released, you should change the version to 0.0.1.

We don't really have any rules around this; some things that come in are more mature than others.  In this case, I think the 0.0.9 that is already here is fine.

@ahcorde, @clalancette, the package can be extended later to support platforms other then RPi. Also, in practice, RPi+ ws281x  is the most common combination. _led suffix is also not nessesary, because ws281x is a LED strip.
Another thing is this package is (as well as vl53l1x, and others) is already widely used for a long time as a part of the Clover Drone Kit software bundle. So renaming the packages would be very inconvenient.

I think the name is too generic, this package control a ws281x LED for a Raspberry Pi. What do you think @clalancette and/or @tfoote ?

Agreed, I think this is a little too generic.  I'd go with ws281x_led or something like that.

Another note, I think that this package is the first time that it's released, you should change the version to 0.0.1.

We don't really have any rules around this; some things that come in are more mature than others.  In this case, I think the 0.0.9 that is already here is fine.

Dear @clalancette I think "generic name" isn't an issue at all because this name presents the relation of this package pretty well. There is no other thing in the world that have a name "ws281x" besides this LED strip

Hi, @ivanpauno, according to REP-140:

A package will have multiple licenses if different source files have different licenses. Every license occurring in the source files should have a corresponding  tag.

I added BSD license to package.xml as well as MIT, so now everything should be fine.

I added BSD license to package.xml as well as MIT, so now everything should be fine.

Thanks!
Though it's clear than the files in ws281x/vendor/ are licensed under the BSD license, it's not super clear that all the others are licensed under MIT.
I guess that adding a note in the top level LICENSE file explaining that everything except ws281x/vendor/ is licensed under MIT and also pointing to the ws281x/vendor/ license file will make it clear, @okalachev does that sound good to you?

@ivandariojr, I added a header to the main source file and a note to the top LICENSE file for clarifying.

That looks better to me, thanks @okalachev !


[cypress-v10] Fix snapshot file location different in open vs run

Thanks @wilsonpage!

Published in 5.0.3

Worth noting this could be regarded as a 'breaking change' as the final
snapshot image paths will be different. Although it was inconsistent
between run/open to start with 🙃
On Sun, Aug 7, 2022 at 5:27 PM Simon Smith @.***> wrote:

Published in 5.0.3
—
Reply to this email directly, view it on GitHub
https://github.com/simonsmith/cypress-image-snapshot/pull/1#issuecomment-1207441789,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHZFBYK3TESQ5ET7QIQC2DVX7PW3ANCNFSM55LQLEEQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Yeah, was on the fence about whether it was fixing the existing issue. So went with patch for now

Do you think this will ever get merged back into the original project?
On Mon, Aug 8, 2022 at 9:40 AM Simon Smith @.***> wrote:

Yeah, was on the fence about whether it was fixing the existing issue. So
went with patch for now
—
Reply to this email directly, view it on GitHub
https://github.com/simonsmith/cypress-image-snapshot/pull/1#issuecomment-1207835298,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHZFBZWAX4FGKOOMMP3JFDVYDBXNANCNFSM55LQLEEQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

I don't think so. I even contacted the maintainer on Twitter and he didn't reply so I guess it will stay in limbo

simonsmith I just downloaded your version and this code is not present there. Version (5.0.3) is correct, but those changes are not.

@mateuszwrobel You're quite right. Strange, it seems like the prepublish didn't work. I've built manually and published 5.0.4 now
I can see the change here - https://www.runpkg.com/<EMAIL_ADDRESS>


Wyre Account

-It Should be the first and not in grey.

@cakesoft-swati the Wyre account goes grey when a user already has a Wyre account. We are allowing only one Wyre account in this release.

@cakesoft-swati the Wyre account goes grey when a user already has a Wyre account. We are allowing only one Wyre account in this release.

@AliMeer - yes correct. Just make sure it is first when not created, it appears second even on a fresh wallet

@AliMeer - yes correct. Just make sure it is first when not created, it appears second even on a fresh wallet

-Verified this issue on Dev app v1.4.2(208)

-Verified this issue on Dev app v1.4.2(208)


Add reader/writer dynamic instrumentation configuration manager, and end to end tests

What does this PR do?

Adds a general purpose reader/writer configuration manager, enabling us to read in configurations via a call to Read(), as well as pass custom io.Writer's for uploading events/diagnostic information.
Adds sample-service, a simple program with lots of functions to test GoDI against
Adds end to end tests which use the new reader/writer configuration manager, and tests dynamic instrumentation:

Build/run the sample-service
Goes through a list of fixtures, sets up probes via the config reader and custom writer
Compares produced events to expected output

Motivation
Dynamic instrumentation needs to be tested in KMT to ensure stability, expose all features that are not yet supported, and track regressions. Since some tests are expected to fail, this shouldn't block CI.
Describe how to test/QA your changes
Tests should run in KMT.
Possible Drawbacks / Trade-offs
These tests are fully e2e. More tests will be added soon that are more fine-grained.

Are the tests that I added running in KMT? Some of the tests are designed to fail, but I don't see anything

My tests are being triggered to run now, but it can't find the go binary for compiling the testing sample service. How does this work for USM or other places where Go is invoked?

/trigger-ci --variable RUN_ALL_BUILDS=true --variable RUN_KITCHEN_TESTS=true --variable RUN_E2E_TESTS=on --variable RUN_UNIT_TESTS=on --variable RUN_KMT_TESTS=on

/trigger-ci --variable RUN_ALL_BUILDS=true --variable RUN_KITCHEN_TESTS=true --variable RUN_E2E_TESTS=on --variable RUN_UNIT_TESTS=on --variable RUN_KMT_TESTS=on

I have one failure due to rlimit memlock. Is it safe to remove the memory lock for this case?

General thought: Think about graceful shutdown. I saw a lot of goroutines that had no way to exit.

/merge


Collect states_set alongside states in search

As discussed, this is the fix for #461 that promotes the states_set variable to a global so that it can be collected in the same way as states.

Oh yeah of course - I missed this code:
if (stepResults.size() == 0) {
  results.insert(state);
} else {

and read wrongly that the results were only collected at the end. I'll add that change now


Tests migration for Rails 6

Thanks for your effort, I finally got around to this.  New 3.2 gem is pushed.

@smathy thank you!


MSID: 91002 Version: 1 DOI: 2<IP_ADDRESS>6394

"msas": "Neuroscience"
"msid": "91002"
"preprintDoi": "10.1101/2<IP_ADDRESS>6394"
"Reviewed Preprint posted": "2023-11-01"
"Sent for peer review": "2023-08-28"
"Posted to bioRxiv": "2023-09-13" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>6394v1/")
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[x] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=91002)

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/preview/91002/v1)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[x] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>6394)
[x] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[ ] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/91002/v1/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/91002)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/91002

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/91002

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/91002/v1/91002-v1.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/91002)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

elocations missing from references


feat: Add support for pull_request_target event

The failure doesn't seem to be from my code. It also happens in #50

@ghengeveld we should apply this PR on the chromatic-cli repo


NIFI-8516 Enabled HTTPS and Single User Authentication by default

Description of PR
NIFI-8516 Implements the stated goals of NIFI-8220 providing a basic layer of security for the default installation of NiFi.
The default configuration disables HTTP on port 8080 and enables HTTPS on port 9443 using a self-signed certificate generated during the bootstrap process.  The default configuration also leverages the Single User Login Identity Provider and Authorizer to generate a random username and password for authentication.  The NiFi README.md includes updated instructions and screenshots describing how to access NiFi using the generated credentials.
These changes will not impact existing installations of NiFi following an upgrade.  Neither the self-signed certificate nor the generated username and password are intended for production deployments.  The purpose of these default configuration changes is to provide a greater level of security for default installations of NiFi while maintain a straightforward experience for new users.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[X] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[X] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[X] Has your PR been rebased against the latest commit within the target branch (typically main)?

[X] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[X] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[X] Have you verified that the full build is successful on JDK 8?
[ ] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[X] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

Great work, this has a nice feel to it when you put it all together! Just documentation comments below. Also, we should update the Getting Started guide, which still references localhost:8080.

Thanks for the feedback @gresockj!  I pushed an update with additional details in the Getting Started guide describing the generated credentials and referencing to new default URL.

Haven't tried it to confirm, but I don't think this will work with the Docker start scripts, which still default to no authentication (or is that a conscious decision)?

Haven't tried it to confirm, but I don't think this will work with the Docker start scripts, which still default to no authentication (or is that a conscious decision)?

Thanks for the feedback @ChrisSamo632, that's a good question.  The change to the default properties will impact the Docker image.  It looks like some adjustments to the startup property configuration in the Docker image is going to be necessary.  I will look into it and evaluate potential changes.

Will review

Tested this out and seems to work well. One question would be, why specifically is the default port 9443? Typically, most documentation refers to NiFi using 8443 for secure NiFi:
https://pierrevillard.com/2016/11/29/apache-nifi-1-1-0-secured-cluster-setup/
https://community.cloudera.com/t5/Community-Articles/Securing-NiFi-Step-by-Step/ta-p/244315
https://community.cloudera.com/t5/Support-Questions/NiFi-Cannot-replicate-request-to-Node-nifi-domain-net-8443/td-p/283664

Tested this out and seems to work well. One question would be, why specifically is the default port 9443? Typically, most documentation refers to NiFi using 8443 for secure NiFi:
https://pierrevillard.com/2016/11/29/apache-nifi-1-1-0-secured-cluster-setup/
https://community.cloudera.com/t5/Community-Articles/Securing-NiFi-Step-by-Step/ta-p/244315
https://community.cloudera.com/t5/Support-Questions/NiFi-Cannot-replicate-request-to-Node-nifi-domain-net-8443/td-p/283664

Thanks for the testing and feedback @thenatog!  The Administration Guide had a note about 9443 being the default for HTTPS, but this seems like a good opportunity to bring that in line with other common examples, so I will update the default value and documentation to use 8443.
I am in the process of making some adjustments to the Docker scripts to enable HTTPS by default, so I will push these updates soon.

Hmm, yes, it does appear to be a bit of a mix between 8443 and 9443. Perhaps we should continue with 9443 as that's what officially existed in docs.

@ChrisSamo632, I updated the Docker startup scripts to enable HTTPS on port 8443 as the default configuration.
@thenatog In light of the Docker images previously referencing 8443 as the default port for HTTPS, and with 8443 being more common as a default port for HTTPS, I updated also updated the default value for nifi.properties as well as the associated getting started documentation.
Please feel free to provide any additional feedback.

On further assessment, lets use port 8443 rather than 9443.

Thanks @exceptionfactory. This appears to work as designed. However, I think that this is a pretty concerning change to the user experience. Every time the user wants to login, they now are required to go find that generated username and password. There appears to be no way to set your own. I think we need the ability to set the username & password somehow. Preferably with something like nifi.sh set-single-user <user> <pass> or something like that.
Would also recommend using a pre-defined username such as admin or nifi or something but I can leave that up to your discretion if the commandline util gives us the ability to set username and password

Thanks @exceptionfactory. This appears to work as designed. However, I think that this is a pretty concerning change to the user experience. Every time the user wants to login, they now are required to go find that generated username and password. There appears to be no way to set your own. I think we need the ability to set the username & password somehow. Preferably with something like nifi.sh set-single-user <user> <pass> or something like that.
Would also recommend using a pre-defined username such as admin or nifi or something but I can leave that up to your discretion if the commandline util gives us the ability to set username and password

Thanks for the review and feedback @markap14!  Although Single User authentication is not intended for production use cases, having the ability to change the credentials would certainly make it easier to get started.
I pushed an update that includes a new command option:
nifi.sh set-single-user-credentials <username> <password>
This required refactoring shared classes to a new nifi-single-user-utils module that could be leveraged in the bootstrap library.  I also updated the Getting Started documentation with an example command, and included a log statement with the command after generating the default random credentials.
With this option, I kept the random username as well as random password.
Please let me know if you have any additional feedback.

Functions as designed, just a couple documentation changes needed.

Thanks for the additional feedback @gresockj!

So was just doing a bit of testing, and I found that if you run ./bin/nifi.sh set-single-user-credentials   with a different secure configuration (eg LDAP), the password/user will not be set. This is good, however it doesn't necessarily indicate that the command had no effect, it will still state "Login Identity Providers Processed".

So was just doing a bit of testing, and I found that if you run ./bin/nifi.sh set-single-user-credentials with a different secure configuration (eg LDAP), the password/user will not be set. This is good, however it doesn't necessarily indicate that the command had no effect, it will still state "Login Identity Providers Processed". Otherwise, things are looking good.

Thanks for pointing that out @thenatog.  Do you think any changes are necessary in that case?  It seems that the command name set-single-user-credentials indicates what the command does, so unless the command should throw an error, I'm not sure what else should happen.

I would maybe expect to see a log saying "Single user provider cannot be used in conjunction with other identity providers."?

I would maybe expect to see a log saying "Single user provider cannot be used in conjunction with other identity providers."?

That could be possible by evaluating the configured value from nifi.properties against the configured providers in login-identity-providers.xml, but it would involve some amount of additional handling just to produce an error message.  If you think it is worth doing, I can make the changes.

Okay no problem, I don't think it's worth it.

Thanks for the update @exceptionfactory! Things are looking really good here! I did some testing and playing around with it and all works well. I'll do a code review and if all looks good merge.
Only thing I noticed was when I tried to set the password to something short like "pass" I got the following output:
Java home: /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
NiFi home: /Users/mpayne/devel/nifi/nifi-assembly/target/nifi-1.14.0-SNAPSHOT-bin/nifi-1.14.0-SNAPSHOT

Bootstrap Config File: /Users/mpayne/devel/nifi/nifi-assembly/target/nifi-1.14.0-SNAPSHOT-bin/nifi-1.14.0-SNAPSHOT/conf/bootstrap.conf

Password length less than required [12]

In that case, we have basically some debug output and then a failure message, but the failure message IMO wasn't as clear that it could be. It would be easy to miss the fact that it was a failure, and that could lead to a lot of confusion. So if all else looks good I'll update that message on merge to indicate "ERROR: " as a prefix so it's obvious. Otherwise, all looking great!

All looks good @exceptionfactory. I've merged to main! Many thanks to @exceptionfactory for implementing this and to @thenatog @gresockj and @ChrisSamo632 for reviewing!