[osg] [osgearth] Plugins are not installed correctly on Linux

Using dynamic linkage on Linux, the osg and osgEarth plugins are not installed properly. The osgPlugins folder will end up in lib/osgPlugins-<version>/, when it should be installed to plugins/osgPlugins-<version>. I believe this is because the portfiles look for the plugins within the bin/ directory, whereas on non-Windows systems they will be located in lib/ instead.
Here is the behavior I see for each of these ports:

osg:x64-linux-dynamic will install without error, but the plugins won't be in the correct location.
Attempting to install osgearth:x64-linux-dynamic will result in the following error post-build: Could not determine osg plugins directory.

A quick and dirty test appears to confirm that replacing bin with lib in the section of the portfiles referencing the plugins will fix the problem for osg. For osgearth, it will now install successfully, but the osgearth plugins seemingly disappear. They don't end up in the plugins/osgPlugins-<version>/ folder.
Additional context
Here is the location in the portfiles where they first attempt to locate the plugins:
https://github.com/microsoft/vcpkg/blob/b2a22ff59ab523788a26980f7d38a4e5d4fedb8f/ports/osg/portfile.cmake#L123
https://github.com/microsoft/vcpkg/blob/b2a22ff59ab523788a26980f7d38a4e5d4fedb8f/ports/osgearth/portfile.cmake#L84
They will both exclusively search ${CURRENT_PACKAGES_DIR}/bin/, but the osg and osgEarth builds will use bin/ for the library install path on Windows only. On other systems, the path is under lib/.
osg
INSTALL(TARGETS ${TARGET_TARGETNAME}
            RUNTIME DESTINATION bin COMPONENT ${PACKAGE_COMPONENT}
            ARCHIVE DESTINATION ${OSG_INSTALL_LIBDIR}/${OSG_PLUGINS} COMPONENT libopenscenegraph-dev
            LIBRARY DESTINATION ${OSG_INSTALL_LIBDIR}/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT})

osgEarth
INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib${LIB_POSTFIX}/${OSG_PLUGINS} LIBRARY DESTINATION lib${LIB_POSTFIX}/${OSG_PLUGINS} )

Taking another look at this, I'm a bit confused as to why the plugins folder is moved from bin/ to plugins/. It doesn't seem like there would be an issue with leaving them in bin/ or lib/, though I could easily be missing something. As-is, however, I don't believe it's handled completely correctly, even on Windows.
With osg:x64-windows, the targets in the CMake files generated by the changes made in unnoficial-export.patch will still refer to bin/osgPlugins-<version>/<plugin>.dll, despite the file now existing at plugins/osgPlugins-<version>/<plugin>.dll.

I haven't done any tests that consume the libraries yet, but disabling the bit about moving the plugins appears to result in a successful osg and osgearth installation on x64-linux-dynamic, with the exported targets referring to the correct location as well.

The plugins are moved to get a fairly consistent installation layout for such items in vcpkg.

Note that filesystem layout in vcpkg is windowsish, not posixish.
The bin dir is for regular DLLs on Windows, not for executable programs and not for linux shared objects.
(Unfortunately, some related aspects are underspecified, regardless of community questions for clarification.)
The binary artifacts are meant to be relocatable. In most cases, you need to explicitly tell software where to actually find plugins, by some specific interface.
x64-linux-dynamic didn't  exist until a few days ago, so it couldn't be tested.
The exported location should be fixed indeed. (Usually the only use case for the location property of a plugin is custom deployment script.)

That makes sense, thanks for the clarification.

x64-linux-dynamic didn't exist until a few days ago, so it couldn't be tested.

On this note, I don't think this problem isn't necessarily specific to x64-linux-dynamic, though that is where I observed the issue. I believe it will occur on any system where WIN32 is false in CMake, and the triplet in use specifies dynamic linkage. It looks like all instances of this are currently within community triplets, however.

@dg0yt Is the intention that the plugins be relocated on any platform (e.g. the .so files will be moved to plugins/ on Linux, just like the .dll files on Windows)? I believe I have a solution that will fix this, and another minor issue I've found with osgearth, but want to ensure I'm assuming the correct behavior before submitting anything.

There was a tendency to promote plugins/<group>. I would prefer such a consistent layout on all platforms. Neither bin nor  lib is consistently used across platforms, in vcpkg.
Unfortunately, I wasn't able to get answers for filesystem layout questions with regard to tools (https://github.com/microsoft/vcpkg/issues/17607), so maybe there is no authorative answer with regard to plugins.


DATETIME2 data type in MS SQL with range starting at 0001-01-01 is problematic for datetime representation in ns

What language are you using?
Python.
What version are you using?
0.3.1.
What database are you using?
MS SQL
What dataframe are you using?
Tested with Polars, Pandas, Arrow and Arrow2
Can you describe your bug?
My DATETIME2 value in MSSQL has er length of 6 meaning µs. The date range given by for the Data type is 0001-01-01 through 9999-12-31.
When fetching data with
cx.read_sql(cnx, select "DATETIME2 Column" from "MSSQL database", return_type="polars")
type(DATETIME2 Column) = datetime[ms]
cx.read_sql(cnx, select "DATETIME2 Column" from "MSSQL database", return_type="pandas")
type(DATETIME2 Column) = datetime64[ns]
cx.read_sql(cnx, select "DATETIME2 Column" from "MSSQL database", return_type="arrow")
type(DATETIME2 Column) = date64[ms]
cx.read_sql(cnx, select "DATETIME2 Column" from "MSSQL database", return_type="arrow2")
type(DATETIME2 Column) = timestamp[ns]
If possible, please include a minimal simple example including:
Database setup if the error only happens on specific data or data type
MS SQL Server, with following Data type:
Data Type = datetime2, Length = 6, Numeric precision = 19
for values like 0001-01-01 00:10:00
Example query / code
SELECT ProcessTime FROM RecipeStep
What is the error?
The resulting unit is wrong, which is fine for ms, but for ns, the resulting value is also wrong as it cannot represent dates before around year 1754. At the moment I do something like:
SELECT DATEADD(year, 2000, ProcessTime) AS ProcessTime FROM RecipeStep
and then substract the 2000 years afterwards. which is working by not quite to my liking.

In connectorx, we use NaiveDateTime to deal with DATETIME2 and then convert it into an integer to construct a DateTimeArray in pandas.  Looks like the issue is due to the range limitation of using integer to representing datetime, in both rust and python. Might need more investigation on this.

Would it not make sense to use timestamp_micros instead of timestamp_nanos, for Datetime2 in rust.
For python, numpy datetime64 supports the use of unit to set the range so the type should be datetime64[us] instead of datetime64[ns].
But again my understanding of the workings of connectorx is not great enough to say if it is that easy.

Looking at the pandas Documentation, it seems that both Timestamp and DatetimeArray which is base on Numpys Datetime64 are limited to a unit of ns, hence it is not possible to store 0001-01-01 00:00:00.
However if I user return_type="polars" I get the representation in [ms], which is fine for my purpose. Even though it would be more correct to use [us] as unit.
If I user return_type="arrow" I also get the representation in [ms], which is fine for my purpose. However it seems that I only get the date, and that the time is truncated to 00:00:00
I don't know how you go to arrow2, but here again the unit ends up as [ns] and hence the values are wrong. As far as I can deduce, polars use Arrow2, and hence using polars.read_sql in python ends with a wrong value, even though connectorx.read_sql(return_type="polars") does it correct.
Is it correct that:
connectorx uses arrow -> polars (this might be right if the arrow -> polars is done in rust)
and
polars uses connextorx arrow2 -> polars?
I dont know if this helps. But in the end I would like to use polars, and don't need pandas, which does not seem to support all values in the Datetime2 range. However, my understanding is that arrow, arrow2, and polars should all be able to do this, and indeed polars at least does fine if connectorx makes the dataframes.


Having Error: [$compile:multidir] thing.

Hello I have been using https://sroze.github.io/ngInfiniteScroll/demo_async.html this to scroll-to-load my page. But i needed a fixed column that also requires scroll-to-load function. So I upgraded my 1.0.0 script to 1.2.0 and bam I got this error.
Error: [$compile:multidir] http://errors.angularjs.org/1.4.1/$compile/multidir?p0=ngController&p1=&p2=infiniteScroll&p3=&p4=new%2Fisolatedcope&p5=%3Cdiv%id%3D%22THCont%22%20ng-controller%3D%22trendingHeadlinesCtrl%22%20infinite-scroll%3D%data.nextPage(%7Bpage%3A'trendingHeadlines'%7D)%22%20infinite-scroll-distance%3D%222%22%infinite-scroll-parent%3D%false%22%20infinite-scroll-disabled%3D%data.busy%22%20class%3D%22panel%20panel-default%22%20ng-class%3D%22%7B'tt-bar'%3A%201%7D%22%3E

I'm having this same issue when trying to use it with ng-table.  Did you come up with a solution?


[Discussion] Combine /smooth_app and /app

What
Heyy everyone, currently we have the app split into
/app/ for the entry points and
/smooth_app/ for the main code of the app
but this brings some problems with it

we have a lot of native & flutter internal files as duplicates
We have to run inside of app, but work inside smooth_app, which confuses hot reload (at least for me)
A lot of people (likely all Windows users) have problems with the packages, which can be solved by clearing the pub cache manually, not the command but deleting the files by hand

The current setup works once setup, though I don't see any advantage in having this split up or is there anything else I'm missing here?
what do you say @monsieurtanuki @AshAman999

Hi @M123-dev!
I think @g123k built the current architecture.
The idea was to be able to create slightly different apps for slightly different targets (e.g. for Google Play Store, Amazon, FDroid, ...). A bit like Android flavors. That's what the app package is about.
It looks like flutter does not support well different versions from the same code; for instance there's no flexibility in pubspec.yaml like a conditional inclusion of packages.
I don't know the best practices about it in flutter. If I had to do it for a personal project I would do in a much more artisanal way (e.g. generating pubspec.yaml files, or editing it by hand) - which wouldn't be such an issue as I would be the only dev on the project. But here there are many contributors and many generated versions, and that would not be possible.
I assume the current architecture meets the needs of generating several slightly different apps (I'm not involved in that part of the project).
Unless you have a very good solution to emulate android flavors, we should probably stick to the current architecture.
That said, if you're experiencing troubles developing, it would be helpful to explore the subject and to write about it in the wiki, as you say that once the setup is done, it's OK. Would be useful for developer onboarding.
PS: for the record when I started developing for smooth_app I was a bit puzzled by the "inner" packages, as my previous flutter experience was with a single package project. Not being able to click on the green right arrow to run the app and having to run it from the shell was disconcerting. And the pub get on each package is a pain in the neck.

As said above, I too don't have much information on how the release cycle works,
but as far as I know, keeping the folders separated helped us in having different flavors for the app.
If you can still manage to get the release pipeline working for different flavors alongside this change, I am totally okay with that

That said, if you're experiencing troubles developing, it would be helpful to explore the subject and to write about it in the wiki, as you say that once the setup is done, it's OK. Would be useful for developer onboarding.

Even a good description for the same in the current readme would be good to go

And the pub get on each package is a pain in the neck.

A small script to run from root dir to set up all these packages can be helpful here (if possible)
We can mention the same in the readme or wiki, probably one for UNIX bases and one for windows based systems

I just created https://github.com/openfoodfacts/smooth-app/pull/3465, feel free or rather please test if it still works on iOS,

I don't know the best practices about it in flutter. If I had to do it for a personal project I would do in a much more artisanal way (e.g. generating pubspec.yaml files, or editing it by hand) - which wouldn't be such an issue as I would be the only dev on the project. But here there are many contributors and many generated versions, and that would not be possible.
I assume the current architecture meets the needs of generating several slightly different apps (I'm not involved in that part of the project).

There isn't a "better" way to do this actually, we just comment out the packages using a script not by hand and we have multiple entrypoints (void main(){}) which pass different scanners. Now we do the same just without the additional app package

PS: for the record when I started developing for smooth_app I was a bit puzzled by the "inner" packages, as my previous flutter experience was with a single package project. Not being able to click on the green right arrow to run the app and having to run it from the shell was disconcerting. And the pub get on each package is a pain in the neck.

I completely agree, that's why I always opened /packages/smooth_app in my IDE, now with the Android Studio and VSCode launch files it should be possible both ways.

A small script to run from root dir to set up all these packages can be helpful here (if possible)
We can mention the same in the readme or wiki, probably one for UNIX bases and one for windows based systems

Thats a great idea

@M123-dev is this closed by #3555 ?

Yes, thanks @VaiTon


Convert scrape_configs to simple attribute tree

Rather than having a lot of custom templating, the scrape_configs section should be a simple tree of attributes that are sent to the config with to_nice_yaml
In defaults/main.yml:
prometheus_scrape_configs:
  - job_name: prometheus
   ...

Then in templates/prometheus.yml.j2:
scrape_configs:
{{ prometheus_scrape_configs | to_nice_yaml }}

I think this is implemented, look at variable prometheus_scrape_jobs and in template it is in Line 48


[Bug] Empty lists are encoded as list with one null

Example:
This code:
Data.Aeson.Yaml.encode (object ["foo" .= ([] :: [Int])])

would make a YAML which looks like this:
foo:
  -

It should be like this:
foo: []

Thank you. Fixed in https://github.com/clovyr/aeson-yaml/commit/ceb8d53e1a84cb07447c651762f83405673127ea and released as aeson-yaml <IP_ADDRESS>.


Stems write - Format not recognised

Hello,
As you stated in the documentation the stems write doesn't always work well.
I am using this command with ffmpeg to create a STEM file:
ffmpeg -i ~/mix.wav -i ~drums.wav -i ~/vocals.wav -map 0 -map 1 -map 2 -c:a libfdk_aac -metadata:s:0 title=mix -metadata:s:1 title=drums -metadata:s:2 title=vocals ~/output.stem.mp4

I then tried to read it back using the musdb library and it works well.
I was wondering if this could be included in your library to finally make it work properly.
I unfortunately do not have much time to work more on this and ask for a pull request but I made a simple implementation if could be of any help.
Also check this homebrew-ffmpeg if the right codecs are not installed properly in the official ffmpeg distribution.

thanks for your contributions. I don't really see a difference between the arguments you use and the one used in write.py. Here is an example what is actually called by stempeg:
ffmpeg -y -f s16le -acodec pcm_s16le -ar 44100 -ac 2  -i mix.wav -i vocals.wav -i drums.wav -i bass.wav -i other.wav -map 0 -map 1 -map 2 -map 3 -map 4 -vn -acodec aac -ar 44100 -strict -2 -loglevel error -ab 256000 stems.mp4

The difference should be in the codec.
I'm trying this example but then there must be something wrong in the way I use stempeg, but I can't understand what:
y, sr = librosa.load('STEMS/mix.wav')

# CREATE STEMS
which_stem = 1

if which_stem == 1:

    # stems x samples x channels
    y_0 = y.reshape((-1, 1))
    y_1 = np.zeros((y.shape[0], 1))

else:
    # stems x channel x samples
    y_0 = y.reshape((1, -1))
    y_1 = np.zeros((1, y.shape[0]))

# CREATE TENSOR
S = np.array([y_0, y_1])

# WRITE STEMS
output_wav = 'STEMS/stem_OUT.mp4'
stempeg.write_stems(S, output_wav, rate=sr)

For some reason, using stems x samples x channels, the generated .mp4 file runs twice the speed it should be, but the single .wav files are correct.
The stems x channel x samples, which should be the format required by stempeg.write, results in an error, as the vector has wrong size.
Error opening '/var/folders/zk/xlbb09bs2j3_wrxkj0fwbhvc0000gn/T/tmp2z3t3wiv.wav': Format not recognised.

Do you see any error in what I am doing?
Thanks a lot!

The difference should be in the codec.

you mean the output codec (acodec)? I also check if libfdk_aac is available and use it. So that doesn't look to be different.
https://github.com/faroit/stempeg/blob/ebbaec87ea440fcbb06423d708e7847749e63d38/stempeg/write.py#L79-L84

For some reason, using stems x samples x channels, the generated .mp4 file runs twice the speed it should be, but the single .wav files are correct.
Do you see any error in what I am doing?

Are you writing mono files? The STEMS format is stereo only, that is why its hardcoded here. I might need to add a check for this to warn users...

Yes in this case is mono.
I understand, thanks a lot for the clarification.

Hi, sorry if I am reopening the issue.
I am saving the audio setting 2 channels as:
def save_stereo(filename, y, sr):
    librosa.output.write_wav(filename, y, sr)
    sound = AudioSegment.from_wav(filename)
    sound = sound.set_channels(2)
    sound.export(filename, format="wav", bitrate="256k", parameters=["-ac", "2"])
    return

Then I am collecting the stems and creating S but the error still pops up.
I am making sure nothing goes wrong in the numpy array when saving and when I listen back to it. It sounds okay.
mix: (2, 13340160)
drums: (2, 13340160)
bass: (2, 13340160)
accompaniment: (2, 13340160)
vocals: (2, 13340160)

S.shape: (5, 2, 13340160)
stempeg.write_stems(S, output_mp4, rate=sr_mix)
Error opening '/var/folders/zk/xlbb09bs2j3_wrxkj0fwbhvc0000gn/T/tmpwqt3zrer.wav': Format not recognised.

I also have these warnings. Could they be related to the error above?
/usr/local/lib/python3.7/site-packages/stempeg/write.py:84: UserWarning: For better quality, please install libfdc_aac
  warnings.warn("For better quality, please install libfdc_aac")
/usr/local/lib/python3.7/site-packages/stempeg/write.py:96: UserWarning: Number of samples does not divide by 1024, be aware that the AAC encoder add silence to the input signal
  "Number of samples does not divide by 1024, be aware that "

[UPDATE]
Correct me if I am wrong, could It be related to https://github.com/bastibe/SoundFile/issues/203 ?
So stems x samples x channels should be the right format.

has this issue been addressed?

Sorry, I solved using the stems x samples x channels ordering.
Closing now.


Add an option to display details in the file grid itself

This should contain absolute path and most of the values from the details panel. This also allows sorting.

duplicate issue


TodoMVC example doubles items when switching between All and Completed

Describe the bug
When you run the latest version of the TodoMVC example, add some items and then mark some as completed, then when you switch between the tabs All and Completed, the amount of  not completed items will double.
Further, when switching to the completed tab, also uncompleted items will show up.
To Reproduce
Steps to reproduce the behavior:

Run TodoMVC example
Add items
Mark some as done
Switch between All and Completed

Expected behavior
I expect the amount of items not to double
Screenshots

Environment

Sycamore: master
Browser: Firefox 100.0-1
OS: Arch Linux

I can't reproduce this here: https://sycamore-rs.netlify.app/examples/todomvc/# Can you please try it out on your side?

In order to reproduce:

create any list of 3 or more items
mark the second item in the list as completed
switch to the 'completed' filter

notice the completed item at the start and any remaining items have stayed too.

switch back to the 'all' filter

notice that all the items after the completed item has been duplicated.

I can't reproduce this here: https://sycamore-rs.netlify.app/examples/todomvc/# Can you please try it out on your side?

I can reproduce the above locally and using that link.
Notably, if only the first item is marked as completed then the bug doesn't occur and if the final item is marked as complete when the second item is then it doesn't occur; however, mark a middle item with any uncompleted items between it and the last and the effect will occur with those uncomplete items.

hmm this is not good. This must be a regression somewhere because I don't believe there was this issue in previous versions of sycamore.


Screen does not completely refresh after updating to Chrome OS 50.0.2651.0 dev (64-bit)

After updating to Chrome OS 50.0.2651.0 dev (64-bit):
sudo startlxde
The LXDE screen does not completely refresh on any resolution setting in Chrome OS except 2560x1700 (native).
crouton: version 1-20160206234800~master:daa872a0
release: sid
architecture: amd64
xmethod: xiwi
targets: xiwi,lxde-desktop
host: version 7930.0.0 (Official Build) dev-channel samus
kernel: Linux localhost 3.14.0 #1 SMP PREEMPT Tue Feb 16 02:54:36 PST 2016 x86_64 GNU/Linux
freon: yes

Update: This most certainly is a Chrome OS issue, since other apps/extensions are similarly misbehaving since the version 50 update.


fix typo in docs

refer to https://github.com/tryolabs/norfair/blob/4d59a4d5dd0cf4738c70de6e93782c93bce10d41/norfair/tracker.py#L31

Hi @fcakyon thanks for catching this mistake!


Bump anchor-tests version

Preview is available here:http://stellar-anchor-tests-pr81.previews.kube001.services.stellar-ops.com/


Moving testinfra to a github organization

Hi testinfra users and contributors.
I'm wondering how to offer the best future for testinfra development. After
discussing about this with some contributors, I consider moving testinfra to a
github organization.
Why ? While I'm still happy to maintain the code, I've less time to do it.

I recently added @ianw, @decentral1se and @ssbarnea as maintainers, so they
can fix bugs and release quickly when I'm not available.
Now I consider moving testinfra to a github organization, this has several
advantages:

Joining a developers community is good for long term maintenance
People from the organization have a good potentiality to help maintaining
the project.
Organization may have tools, CI, workflows which can help maintaining the
project.
Users usually have a better maintenance trust in project which belong to a
known organization

I think the criteria for choosing includes:

First, are they open to take testinfra ?
does testinfra match the organization policy ?
Will we be allowed to have full github administrative permissions on the
project (this is useful for CI setup etc)
Number of people
Links between testinfra and others projects from the organization (python,
pytest, infrastructure testing)

At the time of writing, we have some potential candidates:

https://github.com/pycontribs
https://github.com/pytest-dev
https://opendev.org/ (not sure they have a dedicated github organization)
https://github.com/ansible

About pytest-dev, they seems to be open for any pytest related project to join the organization. The process is described here: https://github.com/pytest-dev/pytest/blob/master/CONTRIBUTING.rst#submitting-plugins-to-pytest-dev
I think testinfra matches all the criteria, except that the project name is not prefixed by pytest- (and I think renaming the project is out of scope for now).
Still a good candidate for me because, testinfra is highly related to pytest and they are a good community with very active (and nice) people.

@philpep if testinfra is a pytest-plugin moving under pytest-dev is almost a total winner.
My only concern is around "administrative permission" needed for enabling new github integrations and bigger organizations. This proved to be a real PITA in several cases for me and even blocker.
For example I cannot enable Azure pipelines for Molecule because I have no access and because... policy. The bigger the organization the bigger the policy. Some projects died by being adopted by a bigger rigid organization and that it I would like to avoid.
So if one of testinfra maintainers is also an admin on the organization and we get the agreement that configuring additional integration would not be an issue, we should be ok. To be honest I would be proud to join the bigger pytest team and glad to transfer my pycontribs/pytest-molecule to pytest-dev - it gives better visibility.
PS. For PyContribs, I am ok to give org admin rights to all involved here, as they seem trustworthy and decent not to touch other projects (or careful enough not to activate an integration that affects other unrelated repositories).

Adding to pytest-dev (if you can get over the naming issue) and getting existing maintainers here having access there sounds like it would be a great solution.

@philpep I hope you are still interested about the more. Out of curiosity what is the main issue with renaming the git repository name or the package name? AFAIK, they do not have to match. Based on how I read the docs, I have the impression that the docs wants packages named with the prefix, it does not say anything about repository name.
I still hope pytest-dev team will accept the exemption from the rule, basically for not breaking the big number of users.


Clicking on PDF thumbnail triggers the blob PDF download and "Save As" menu

The Issue
I accidentally clicked on the PDF file thumbnail and the "save as" menu opened with "blob" pdf file download.
Steps to reproduce

Find a PDF file
Click on the thumbnail image
"Save As" menu will appear with blob:pdf XXXXXXXXXXXXX.pdf file

Expected behaviour
This should not happen? Files should be downloaded in the default download folder.
Actual behaviour
When it appeared the first time I finished with two same pdf files with different names in two different locations.
Confirmed it in two different pdf files from different publishers, happened to Tom also
System Configuration

LBRY Daemon version: 0.18.0
LBRY App version: 0.19.4
LBRY Installation ID: 7tYN144rHXrspzJG9xLP28fi1JztXnbpKro6DBJEQyzBmXTyDgqRLfYsUvHYFVmMe2
Operating system: Win 10

Screenshots

External fix https://github.com/feross/render-media/pull/38
This would prevent electron from opening the menu, however electron isn't able to render pdf inside a subframes ( iframe / object ) yet :disappointed:

The next step would be to found a way to display .pdf files using a basic viewer / reader
See https://github.com/lbryio/lbry-app/issues/620#issuecomment-375822739


Stop using the beta.kubernetes.io/os

Change description
See https://github.com/kubernetes/kubernetes/issues/89477, https://github.com/kubernetes/kubernetes/issues/89477#issuecomment-603911496.
Project tracking
Do any added TODOs have an issue in the backlog?
Did you add unit tests? Why not?
Does this code need functional testing?
Is a code review walkthrough needed? why or why not?
Should additional test coverage be executed in addition to pre-merge?
Does this code need a note in the changelog?
Does this code require documentation changes?
Additional Information

Hi @pacoxu,
Please confirm that you have signed the CCLA in order to contribute to the project.
I see that this change is being requested for many Kubernetes projects as "beta" is deprecated for beta.kubernetes.io/os and beta.kubernetes.io/arch labels. Thanks for opening the PR. If you are not interested in attribution please let us know and a GitHub issue can be opened.

Please confirm that you have signed the CCLA in order to contribute to the project.

Signed.

I see that this change is being requested for many Kubernetes projects as "beta" is deprecated for beta.kubernetes.io/os and beta.kubernetes.io/arch labels. Thanks for opening the PR. If you are not interested in attribution please let us know and a GitHub issue can be opened.

It is not a problem from the current latest Kubernetes v1.25 or v1.19~1.25.  I would be a problem probably in v1.27 or v1.28.(We plan to remove the deprecated one then.)

First-time contributors need a maintainer to approve running workflows.

@gnarl Could you approve the test running?

Hi @pacoxu,
It doesn't appear that we ever received the signed CCLA. The link for submitting the CCLA is in step 6.

Sign doc can be found in https://netapp.na1.adobesign.com/public/agreements/view/CBJCHBCAABAAU_o2rWIj074mjll1y-i7ORljohvn073l?type=esign&tsid=CBFCIBAA3AAABLblqZhASZoia1x3wfzkxG9mB2taFNRJxpxT-33vhS0kjmPpa1bMxzPyjagz3D_vw4D7zYrZxB9NKqF6uY_1a1gLlBipU

@pacoxu, thanks for signing the CCLA and providing the link.

Hi @pacoxu,
We had a change requirement that removed the use of a node selector in the section of code you'd modified. Because of this change we were unable to use your PR. Thank you for your contribution!


Blizzard Scam Dialog Prevention

Late in Beta Blizzard added a scam prevention dialog around potential scams related to chat exploits.  http://kotaku.com/watch-out-for-world-of-warcrafts-newest-gold-stealing-s-1783299905 has the details.
The knock on effect is that sequences with
/console Sound_EnableSFX 1
/script UIErrorsFrame:Hide()
/run UIErrorsFrame:Clear()

or their derivitives will trigger that dialog.  I have created these as global options in the first case as part of issue #4 but need a long term solution,

I have done what I can with this.  I cannot interrupt the actions of the SecureButtonActionTemplate


A script that documents the error code of each module is required

Summary

Add a script that documents the error code of each module.

Problem Definition

It is not easy the client developer of chain are looking for the each error code and message. So I think it's better to make a script that documents a error codes and messages of each module, like protobuf's MD file.
Proposal

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

Duplicate issue
#942


Git Catalog Support through form in Repo Creation

Duplicate of https://github.com/rancher/dashboard/issues/986


Support EJS

Would like to see EJS supported someday in the future.
EJS is a popular template language for NodeJS/Deno
https://ejs.co/

EJS's syntax is too loose to support.


semantic kitti data visualization

hello, I think your work is really excellent.
Well, it is a little difficult for me to semantic kitti visualization , could you offer me your code?
Thank you so much.

Map label to RGB color;
Use save_point_cloud in pointcept.utils.visualization to save as ply
Open ply with MeshLab


[stable/prometheus-redis-exporter] add RBAC resources

What this PR does / why we need it:
For clusters with a PodSecurityPolicy admission controller, every pod
must have an associated PodSecurityPolicy to be scheduled.

/assign @sameersbn

/assign @acondrat

/ok-to-test

/assign

/lgtm


Add GenerateClassFromObject to Javascript gen

Adds the fromObject helper to the public API of generated pb classes.
This closes a 5-year-old open issue: protocolbuffers/protobuf-javascript#96
by rebasing this 1-year-old open PR: https://github.com/protocolbuffers/protobuf/pull/8488
based on this 4-year-old workaround: protocolbuffers/protobuf-javascript#96
From the original issue:

The comment for jspb.Message.GENERATE_FROM_OBJECT states:
 *     NOTE: By default no protos actually have a fromObject method. You need to
 *     add the jspb.generate_from_object options to the proto definition to
 *     activate the feature.

However, no such option is currently implemented in the open sourced version. I see the code which generates output for this option (GenerateClassFromObject) but it is invoked 0 times.
~/protobuf$ grep -r GenerateClassFromObject .
./src/google/protobuf/compiler/js/js_generator.cc:void Generator::GenerateClassFromObject(const GeneratorOptions& options,
./src/google/protobuf/compiler/js/js_generator.h:  void GenerateClassFromObject(const GeneratorOptions& options,

Any updates on this?

Well, in doing some testing, I am not sure if this PR is actually going to work.
The issue is that the internal fromObject follows its own rules and doesn't seem to correspond to a straightforward JS object, instead it is structuring things in its own way.  The resulting input object isn't necessarily intuitive to use.
For the record, I have given up on this implementation and have been using https://github.com/thesayyn/protoc-gen-ts with much more success.  It generates intuitive TypeScript objects and typing with minimal fuss.


how to handle strict mode?

Thanks for this plugin! The default behaviour of the plugin works well so far and as part of the design if a user has already registered with email + pass this plugin does not allow login with social media. If I understand correctly I can change the behaviour with strict mode? Is there any guidance or example how to do that? Thanks

The strict option alter the default behaviour described in the doc. It makes possible for a user to login with a different provider even though the default behaviour is protecting against it for security reason


Connect aws cluster reidis failed

Disconnect xxxxxxxx:port because the node does not hold any slot +0ms
ioredis:redis status[xxxxxxxx:port]: wait -> close +1s
ioredis:connection skip reconnecting since the connection is manually closed. +2s
ioredis:redis status[xxxxxxxx:port]: close -> end +0ms
ioredis:cluster:connectionPool Remove xxxxxxxx:port from the pool +1ms
ioredis:cluster:subscriber subscriber has left, selecting a new one... +2s
ioredis:redis status[xxxxxxxx:port (ioredisClusterSubscriber)]: wait -> close +1ms
ioredis:connection skip reconnecting since the connection is manually closed. +1ms
ioredis:redis status[xxxxxxxx:port (ioredisClusterSubscriber)]: close -> end +0ms
ioredis:cluster:subscriber selecting subscriber failed since there is no node discovered in the cluster yet +0ms
ioredis:cluster status: connecting -> close +2s
ioredis:cluster status: close -> reconnecting +0ms
cannot connect aws redis

try it this way:
  const redis = new Redis({     port: 6379, // Redis port     host: 'XXXXX.XXXX.ng.0001.XXXX.cache.amazonaws.com', // Redis host     connectTimeout: 2000,     maxRetriesPerRequest: 3   })

Hope it helps someone here. We were facing a similar issue and this answer from Stack Overflow worked well for us - https://stackoverflow.com/questions/76409668/how-to-connect-to-amazon-memorydb-for-redis-from-node-running-in-ec2-ecs


README states S2ORC contains 11.3M papers but the original S2ORC paper claims 80M

The original paper says there are 80M papers available: https://aclanthology.org/2020.acl-main.447.pdf
Curious why there's a difference here?

Hi @jtalmi,
There are two factors at play here:

The original release of S2ORC contains 80M full text papers, of which 10.8M were full text papers. The remaining 68.2M were titles + abstracts.
When the method of distribution of S2ORC changed (from being distributed through a Google Form to using Semantic Scholar API), it went through a name change. S2ORC now refers to just the full-text subset (which contained 11.3M papers in March 2023), while the abstract subsection is called S2AG.

Hope that helps!
Best,
Luca

thanks!


Add tooling for TravisCI, Codecov.io

Added npm scripts for getting coverage reports
Setup Travis yml file to support CI
I have no affiliation with either company and I am not receiving any kind of reward for integrating these product into this open source project.  I am suggesting this change because I think  it will be useful to contributors. Note both products are free for open source projects.
With every new PR we will be able to see if the changes passes tests and we can investigate how new change affect our code coverage.
After merging this branch, a few changes will still be required from your end @nieldlr

Setup a TravisCI account and enable CI for this repo. Instructions here: https://docs.travis-ci.com/user/getting-started/

Setup a codecov.io account and enable coverage reports for this repo. codecov.io should automatically detect the TravisCI instance on this repo

@nieldlr Quick bump for this PR.
It is not blocked on any other PRs. It just needs you to sign up for those two accounts

@nieldlr I just rebased again so this PR should be good to merge

Heya @zurawiki, I think I have this all set up now. Not sure if I missed anything?
Travis - https://travis-ci.org/nieldlr/Hanzi
CodeCov - https://codecov.io/gh/nieldlr/Hanzi
I left one comment where I think a small typo needs to be fixed.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@f730735). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master     #37   +/-   ##
========================================
  Coverage          ?   87.4%
========================================
  Files             ?      10
  Lines             ?     524
  Branches          ?      86
========================================
  Hits              ?     458
  Misses            ?      54
  Partials          ?      12

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 f730735...74b08f3. Read the comment docs.

Rebased this PR onto v2.0.0

Thanks for updating this @zurawiki 👌


Loading feedback aside the error handling

Hi, I am using the RideRequestViewController and have realised sometimes, its takes a little bit before the view fully load. Is there other API calls to check for loading progress? I want to be able to show an ActivityIndicator while the view this loading so users don't think the app is frozen. Anyway to do that? Thanks

Hi @saintjab, unfortunately it is not currently possible to check the loading progress while using the RideRequestViewController. We would like to support this in the future, however.

@jbrophy17, thanks for getting back and for adding that to the enhancement. In your opinion, what is the best way for me to handle such so users don't think the app is frozen?

@saintjab there isn't currently a great solution. The widget itself has some loading animation but that does take a little bit to load sometimes. A good solution is going to require exposing some signals from the RideRequestView's underlying webview


Pretty syntax highlighting for the README.md

Lau,
Looks like a nice lib.
I added elixir  tags around the code blocks for pretty github syntax highlighting.
-Jason

Thanks Jason!


[Feat] Implementing Logic for "download invoice" for PDF Generation

Description
Description:
PDF Generation For Invoice  Fore Orders by using pdf-lib module .This invoice will contain watermark of shop logo.
I have work on similar feature before.
Screenshots
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I'm a GSSoC'24-Extd contributor
[X] I'm a Hacktoberfest'24 contributor
[X] I am willing to work on this issue (optional)

@ParasY1724 That's amazing, but can you please tell me where exactly you plan to place this feature on the website and when users can download the invoice? I think users can download the invoice after the payment, right? If that's correct, we're currently working on the payment integration. After it's completed, I'll let you know to work on it. Otherwise, please describe when users can download the invoice and other details.

@mdazfar2  I was referring to Myorders page

But , I think it would be better to work on it after payment gateway is merged

Alright! @ParasY1724
Right now, I'll keep this issue open, and after the payment integration is done, I'll mention you here to work on that.


Log file is being used by another process error.

I don't know why this occur often, but i found a solution i just delete everything inside the logs & it good to go.
Mind if you fix this error?

I know You added to delete old logs file in the new update, but this error still appers.

Duplicate of #212. If you find anything new, then please comment there.

i have no coding experinece yeah


Matlab highlighting inconsistencies: after the transpose .' the text becomes a string

(Original issue 881 created by alexpacini on 2013-06-21T08:48:04.874328+00:00)
As written from Ryan Ollos here:
https://bitbucket.org/birkenfeld/pygments-main/issue/414/matlab-lexer-doesnt-properly-handle
when the operator transpose .' occurs, all the text until the next ' is treated as if it was a string.
You can see this behaviour on this:
https://github.com/alexpacini/Uni.Snippets/blob/master/TIC/assignment04_noisyap2LHamm/decHD.m
The GitHub support explicitly said (today) they use pygments for the highlighting and so to file the bug here.

(Original issue 881 last updated on 2014-01-09T19:58:20.228370+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by birkenfeld on 2014-01-09T19:58:02.759780+00:00)
Thanks, this was indeed not really fixed yet.

(Original comment by birkenfeld on 2014-01-09T19:58:20.220397+00:00)
Closes #881: try to fix all instances of matching transpose operator as string.
→ <<cset 2d8a717ef310>>


foxx: console.log warn error debug doesn't work

I don't know why the console doesn't work
I can't find anything in log file
 controller.post('/find', function (req, res) {
    var collection = Account_repo.collection.name();
    var username = req.parameters.user.username;
    var password = req.parameters.user.password;
    //var password = req.parameters.password;
    console.debug("-------------------------------------------------");
    console.debug("%s", collection);
    console.debug("%s", username);
    console.debug("%s", password);
    //console.log(password);
    //return res.json({username:"test1"});
    return res.json(
      db._query(searchQuery, {
        '@collection':collection,
        'username': username
      }).toArray()
    );

    //res.json({username: "test"});
  }).bodyParam('user', {
    type: joi.object().keys({
      username: joi.string(),
      password: joi.string()
    }),
    description: 'The Account you want to find'
  });

it's ok....i write this code, and worked
var console = require("console");
console.log(username);

Yes, you're right. I'll add that to ... https://docs.arangodb.com/devel/Foxx/Develop/Console.html

@dothebart Don't.
The problem is that the Foxx console doesn't log anything to the arangod log and there isn't currently a UI for querying the _foxxlog collection.
@fceller What is the right approach here? Should we deprecate the functionality and restore the global console object in Foxx? Should we pass all Foxx console logging to the global console? Should we create a web interface and be more explicit about this behaviour?

Yes please: global console for logging to stdout and call that _foxxlog thingy something else.

@fceller we should probably use the global console in ArangoDB 3.0 again. We can still provide the Foxx console via import. Your call.


Apply tests to test class

Description of changes made
Allow the user to pick a test class to apply the selected tests to, and append the chosen test cases to the end of that class
Why is merge request needed
Applying the test cases generated via TestGenie is a very nice feature so that the user doesn't have to copy them manually.
Other notes
Closes #45

@jzelenjak Thanks for the comments. What exactly do you mean by package-private fields - what is being marked as an error? Could you be a bit more specific?
About appending tests multiple times: I think that this is up to the user, since we shouldn't limit them in what they are allowed to do (and doing so would be very complex anyways). They could end up with equivalent tests by running the plugin multiple times as well, but there's not much we can do to prevent them from adding them to the test suite. We also shouldn't simply mark tests that have already been added to a file as "added" and never add them again, since a user could accidentally delete one of the tests they just added and might want to add it again.
Creating a test for class might indeed be a good idea, but we should be careful, since it gives users the impression that TestGenie can generate a complete test suite for the whole class, which is not the case. Tests should always be manually reviewed and augmented by a developer.

By package-private i mean if you don't put an access modifier, then it is only visible within a package, meaning that if in this case you put your tests into a file in another package, there will be errors, because they cannot be resolved
Imports are also broken, but that is fine in my opinion.
I agree with you about the second paragraph.
About the last point, i still think we have to add it, maybe in another issue, but otherwise it will be confusing to the user which we want to avoid.

By package-private i mean if you don't put an access modifier, then it is only visible within a package, meaning that if in this case you put your tests into a file in another package, there will be errors, because they cannot be resolved

We can't really do anything about that, sadly - this is a consequence of allowing the user to insert test cases into any of their test classes. Preventing that would be very difficult and would likely be quite confusing to users if some of their test classes simply don't appear. In any case, it would be easy for a developer to fix such issues once they insert their tests.


Auto-Generate API docs

I was always thinking about automating API documentation, because docs will eventually get out of sync with the actual implementation after a while...
I don't like jsdoc because it is bad for ES6 modules, but maybe it would be interesting to add http://documentation.js.org/ support, since this tool can also render to Markdown ... I also saw somewhere that it can parse flowtype declarations.

I love this idea! :)

Testing slack integration

I love documentation.js

Closed with #22


I would like to be a maintainer

Hi,
Please help me to be a main participator of this repo as now I have more time and energy and I can be helpful
this is my last pr:

Also please help me to understand how to review for the best result, should I consider UI changes as well? or will you review at a higher level? I really think we need a more simple introduction in English for UI changes for new jopiners!
Thanks

@faeghe-hajiabadi please send me your email address so we can have a Google Meet session and discuss this mater.

@faeghe-hajiabadi please send me your email address so we can have a Google Meet session and discuss this mater.

Here is my email<EMAIL_ADDRESS>

welcome to React community.


[1.13.x] Bump Quarkus version to 2.13.7.Final

https://github.com/kiegroup/kogito-runtimes/pull/2837
https://github.com/kiegroup/kogito-examples/pull/1591
https://github.com/kiegroup/optaplanner/pull/2658
https://github.com/kiegroup/optaplanner-quickstarts/pull/528

(tests) - kogito-examples job #58 was: FAILURE
Possible explanation: Pipeline failure or project build failure
Please look here: https://eng-jenkins-csb-business-automation.apps.ocp-c1.prod.psi.redhat.com/job/KIE/job/kogito/job/1.13.x/job/pullrequest/job/kogito-runtimes.tests.downstream.kogito-examples/58/display/redirect
See console log:

Console Logs
[2023-03-01T15:31:54.180Z] du: cannot access<EMAIL_ADDRESS>No such file or directory[2023-03-01T15:31:54.180Z] du: cannot access<EMAIL_ADDRESS>No such file or directory[2023-03-01T15:31:54.180Z] du: cannot access<EMAIL_ADDRESS>No such file or directory[2023-03-01T15:31:54.180Z] du: cannot access<EMAIL_ADDRESS>No such file or directory[2023-03-01T15:31:54.180Z] du: cannot access<EMAIL_ADDRESS>No such file or directory[2023-03-01T15:31:54.180Z] du: cannot access<EMAIL_ADDRESS>No such file or directory[2023-03-01T15:31:54.435Z] 1.2G	/home/jenkins/workspace[2023-03-01T15:31:54.435Z] 0	/home/jenkins/.pki[2023-03-01T15:31:54.435Z] 119M	/home/jenkins/tools[2023-03-01T15:31:54.435Z] 0	/home/jenkins/caches[2023-03-01T15:31:54.435Z] 20M	/home/jenkins/.npm[2023-03-01T15:31:54.992Z] 672M	/home/jenkins/.gradle[2023-03-01T15:31:54.992Z] 0	/home/jenkins/.yarn[2023-03-01T15:31:54.992Z] 6.7G	/home/jenkins[Pipeline] }[Pipeline] // dir[Pipeline] }[Pipeline] // script[Pipeline] }[Pipeline] // withEnv[Pipeline] }[Pipeline] // stage[Pipeline] stage[Pipeline] { (Install build-chain tool)Stage "Install build-chain tool" skipped due to earlier failure(s)[Pipeline] }[Pipeline] // stage[Pipeline] stage[Pipeline] { (Build projects)Stage "Build projects" skipped due to earlier failure(s)[Pipeline] }[Pipeline] // stage[Pipeline] stage[Pipeline] { (Sonar analysis)Stage "Sonar analysis" skipped due to earlier failure(s)[Pipeline] }[Pipeline] // stage[Pipeline] stage[Pipeline] { (check space after build)Stage "check space after build" skipped due to earlier failure(s)[Pipeline] }[Pipeline] // stage[Pipeline] stage[Pipeline] { (Declarative: Post Actions)[Pipeline] script[Pipeline] {[Pipeline] sh[2023-03-01T15:31:55.921Z] + wget --no-check-certificate -qO - https://eng-jenkins-csb-business-automation.apps.ocp-c1.prod.psi.redhat.com/job/KIE/job/kogito/job/1.13.x/job/pullrequest/job/kogito-runtimes.tests.downstream.kogito-examples/58/api/json[Pipeline] readJSON[Pipeline] sh

Jenkins rerun kogito-examples tests


Add commit_trees table

Closes #272
Depends on #280. Will rebase when that one is merged.

Rebased with current master.

@erizocosmico done

@ajnavarro done


Deployment docs

Description
This PR adds some documentation to try and capture the considerations and choices relating to web app deployment in production. It also includes an example Docker Compose stack providing a more production-like setup.
Fixes #266
Type of change

[X] Documentation (non-breaking change that adds or improves the documentation)
[ ] New feature (non-breaking change which adds functionality)
[ ] Optimization (non-breaking, back-end change that speeds up the code)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Breaking change (whatever its nature)

Key checklist

[X] All tests pass (eg. python -m pytest)
[X] The documentation builds and looks OK (eg. python -m sphinx -b html docs docs/build)
[X] Pre-commit hooks run successfully (eg. pre-commit run --all-files)

Further checks

[ ] Code is commented, particularly in hard-to-understand areas
[ ] Tests added or an issue has been opened to tackle that in the future. (Indicate issue here: # (issue))

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 86.03%. Comparing base (5838bb5) to head (53a87e4).
Report is 113 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #272      +/-   ##
==========================================
+ Coverage   82.39%   86.03%   +3.63%
==========================================
  Files          33       38       +5
  Lines         409      580     +171
==========================================
+ Hits          337      499     +162
- Misses         72       81       +9

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Refactor params reading in safegraph_patterns

Description
Refactor safegraph_patterns so that `run_module() accepts a params argument corresponding to parameters read from the json file. Partially addresses #814.
Changelog

Change signature of run_module()
Document required and optional parameters in comments of run_module()
Remove use of params.json in tests now that run_module() does not read params
Clean up some lint issues in the test

aside from linting lgtm


Release sdk/resourcemanager/mysql/armmysql v0.1.0

[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[ ] Tests are included and/or updated for code changes.
[ ] Updates to CHANGELOG.md are included.
[ ] MIT license headers are included in each file.

/azp run go - armmysql - ci


Add gitpod documentation and update config for remote

We need the ability to be able to launch the GitPod workspaces with the origin remote NOT pointing to the main repository, but the fork of the user instead.
If the later is not possible, then at least removing the remote, so that the user notices the remote missing while pushing.
Additional guidelines around this are also required to be documented for setting remotes in the terminal within GitPod.
Finally the best place to document this would be to move the same from the Contributing Guide and place it in the how to work on freeCodeCamp locally guide.
Some references:
https://github.com/freeCodeCamp/freeCodeCamp/blob/master/.gitpod.yml#L15
https://www.gitpod.io/docs/44_config_start_tasks

/cc @cmccormack for oversight.

If the user launches GitPod from their fork, the origin remote points to the fork, doesn't it?

If the user launches GitPod from their fork, the origin remote points to the fork, doesn't it?

It does. We are looking to solve the edge case where maintainers on this repository have write access to the upstream (this repo), and the forget about the push rights when working on a instance that the launched from the main repo.

Oh, I get it now! Can I work on a PR for this issue?
I'm guessing we could assume the user has a fork, and try to set the remote origin to it (git does not return an error if the url does not exist).

Yup. Thanks for working on this.


endOf/startOf doesn't work with predefined Date Objects

Description of the Issue and Steps to Reproduce:
I am trying to create a moment object from a Javascript Date Object and then set it to the end of the day.
While
moment().endOf("day")
does work,
moment(new Date()).endOf("day")
doesn't work.
Environment:
Chrome Version 60.0.3112.113 (Offizieller Build) (64-Bit) on a Mac OSX
If you are reporting an issue, please run the following code in the environment you are using and include the output:
Tue Sep 19 2017 08:00:08 GMT+0200 (CEST)
19.9.2017, 08:00:08
-120
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
2.18.1```

It does work on server side with node.js. It could be a problem with my set up on Chrome and not with moment js.

@bastiankemmer did you get to the bottom of this? I'm hitting this problem in a test running on Node 8.7 but so far it's been impossible to isolate and reproduce.

I could not reproduce the problem and I stopped trying to do so. For me it seemed like a Bug, but I was confused, because a colleague said on his PC it does work fine. Maybe I can try to reproduce this problem again.
Perhaps i can check this afternoon.


feat(hyper-express): Added compat features and typings

Added some compatibility features to Express in the Request object.
Added Request statusCode getter.
Added more typings to Route object.

So after reviewing the changes, I determined the following things:

Hooks were primarily implemented so we did not have to extend an EventEmitter for each Response. This is simply because EventEmitters are relatively bulky and are much easier to cause memory leak/cleanup issues with rather than a simple method such as the Response.hook() which allows you to bind a callback and subscribe to a Response's lifecycle events. With that said, I think implementing alias methods such as Response.on() and Response.once() with alias event translations would add both compatibility and prevent redundant functionalities from being added to HyperExpress.

uWebsockets.js recommends a pattern where any network operation such as writing a status code or headers should be a one-time operation without any changes throughout the whole request flow. For this reason, HyperExpress never exposes any network properties of a Response such as status code, headers, body etc. Exposure of any network properties through getters should be avoided to ensure users always perform all finalizing network operations in a single chunk of their code as specified by uWebsockets.js for best performance, consistency and maintainability.

The typings look good, will merge them If you could resolve the above.

uWebsockets.js recommends a pattern where any network operation such as writing a status code or headers should be a one-time operation without any changes throughout the whole request flow. For this reason, HyperExpress never exposes any network properties of a Response such as status code, headers, body etc. Exposure of any network properties through getters should be avoided to ensure users always perform all finalizing network operations in a single chunk of their code as specified by uWebsockets.js for best performance, consistency and maintainability.

What is your suggestion about this point? Can we throw an exception if trying to read statusCode before that request has been finalized?

No, I think implementing statusCode as an undocumented getter to add compatibility with ExpressJS should do the trick. Also, I don't think throwing an exception is required, instead returning undefined or returning nothing should be fine as that seems to be what ExpressJS's behavior would be as well.

I just noticed a few more problems with your type changes, you added an option to pass Router as the second parameter for method specific route method such as get(), post(), put() and so on... but the thing is that route specific methods are not supposed to accept a Router. Routers can only be passed into the use() method as Routers simply contain information about routes and thus being able to pass Routers under the route-specific methods would imply that that Router would somehow inherit that method's routes. The type changes to alow for Router to be passed with UserRouterHandler should be removed.
Also, the statusCode() getter should be implemented separately in the ExpressJS compatibility methods/properties section so everything is properly organized.
Also, Your code for translating ['close', 'finish'] into 'complete' should be offloaded into a separate method which does the translations from a static object of translations into HyperExpress native events.
Finally, I'm not sure why the unhook() method was implemented. All hooks only fire once, therefore there should not be a need to register a hook and then unhook it after it has executed as under no circumstance will any event fire more than once. For example, a request cannot be completed more than once.
I see what changes you are trying to implement here but I think the placement and consistency may be a little bit out of sync with the structure of the package. I'll let you respond with some feedback to the above suggestions and then implement these changes accordingly for 5.4.3. Thanks!

Thank you for the clarifications. I tried to address your questions with the last commits.
I've only kept the unhook() implementation since it could be useful at some point.


Best approach: Assume you're already infected but asymptomatic, act accordingly

In the US, virtually no one has been tested. As of yesterday, last I checked, it was a total of 5,000 tests, nowhere near a big enough number to be statistically significant as a measure of the condition of the US population.
In addition, nearly 100% of the few tests that have been performed have been performed on people who have sought medical attention, by definition symptomatic symptoms.
SFAIK (I'm no authority) ~80% of people who are infected have little or no symptoms, or symptoms not severe enough to cause them to seek medical attention.
So if there are virtually no tests and 80% chance that any spreader is a "silent spreader" (aka Silent But Deadly, or SBD, spreader), there is no way for most people to know that they're not infected. Therefore, given the current situation in the US, just as it doesn't make sense to assume that "COVID-19 isn't here", it doesn't make sense for any individual who hasn't been tested recently (for your definition of recently) to assume that they themselves aren't already infected, and every reason for each and every one of us to assume that we're already infected and acting as an SBD spreader, spawning a trail of new little SBD spreaders everywhere we go.

I acknowledge to myself that every single person I encounter is a very important person, a person who is part of someone's family and community, a person who likely has some vulnerabilities that may be invisible to me, a person who has family and friends who are more vulnerable than average--and I recognize in my mind all the reasons why I really really really don't want to infect them.

When out and about (increasingly rare!), I give everybody plenty of leeway so we can remain at least a meter apart. I aim for 2 meters. I don't ride in elevators. I don't stand in queues. I don't grab doorknobs with my bare hands. Sometimes (increasingly often!) I wear a mask and usually when I wear a mask I wear gloves. I don't do anything else I can think of that I'd hate to see an SBD spreader do, and I do everything else I can think of that I'd want to see an SBD spreader do.

When encountering people in a way that involves conversation or significant interaction, I say to them something like, "I'm assuming that I'm infected.  How would you prefer that I behave toward you?" Then I follow their lead. If they say, "Don't come any closer", I don't. If they say, "Keep 10 feet away" I do. If they say, "Let me out of here", I let them go. On the other hand if they say something like, "Stay 4 feet away", unless something about the situation makes it impossible to do so, I say, "I'll try to stay 10 feet away." Otherwise I just say, "I'll stay as far away from you as possible". And I do whatever else is required so that an SBD has very minimized opportunity to infect whoever I happen to be with.

Is this cumbersome and sometimes a little odd-feeling? Yep. But in the early days of a nasty pandemic, what was super-weird last week, a good example this week, and a total necessity next week.
I have found so far that taking this approach has at least two very good knock-on effects:

People almost always and almost immediately want to ask me for information and/or tell them what they think about whether or not they think either or both of us are already infected--it starts a really productive conversation about why I assume I'm part of the 80% and not part of the 20%, and we usually converse a little bit about our individual and collective assumptions. I get to tell them that in the near future all of us will need to decide frequently whether or not we are at the moment an SBD spreader. And we have a nice moment of recognizing together that we all have the choice to be either more prosocial or more antisocial, and that most of us, for the most part would actually rather be more prosocial. For example, when today I told someone I was assuming I'm an SBD spreader, she said, "You should go to the store to get some blahblah." To which I was able to reply, "Gee, if I'm an SBD spreader, do you think it's a good idea for me to go in the store?" And then she said, "Well, you really should have some blahblah in your house." To which I was able to reply, "Is it possible for me to get some blahblah without going to the store?" It was a total feel-good "pandemic success" conversation for both of us.

People immediately start behaving like I'm infected, which causes them to do all kinds of things that actually make me safer as well--they stand back from me, they monitor the distance between us, they don't act like they want to shake my hand, and so on. So I can now say with 100% certainty that my behavior is almost effortlessly producing in others the social distancing behavior I'd like to receive from them, thereby making me way less likely to get infected if by chance I happen to not be infected already.

We get a fantastic opportunity to practice our zero-contact greetings; expressions of friendship, solidarity, appreciation, and love;  goodbye hugs and other great stuff, and it helps us to quickly and easily become more comfortable in expressing ourselves in these ways that are new and sometimes ungainly for us, and that will likely remain with us for some extended duration.

Near as I can tell, we, as a whole, can't go wrong by adopting this "assume I'm an SBD spreader" and upon repeated examination I can't find any downside to it, whereas I can easily see all kinds of downsides to me assuming that I'm not already an SBD spreader. It is, near as I can tell, by far the most prosocial approach to isolation. And as I told a friend the other day, "Isolation is the new prosocial."
Look, this is a lot of words here I wrote. It's kind of a of stuff for me to break down for a reader, but I'm sure that someone more skilled than I can make the point in fewer and better words. If any of the words and phrasing I wrote are helpful, please
I can't thank you enough for the work you're doing. I've shared it more times than I can count and have basically (kindly and sometimes by being a little tricky) forced a number of people to read it and to evaluate it and to think about how to apply it and to converse with me about it. It's rumored that the Buddha said that no one wants to be faced with sickness, old age, and death. Your work makes it easier to for us to face those realities in a way that still facilitates taking personal responsibility and positive collective action. It's the kind of fact-based, humanistic guidance that so many people have been growing more and more desperate for. From my heart, mind, body, and spirit I say thank you thank you thank you thank you.

just re-read my comment above, apologies for typos, missing words, and other mistakes. Feel free to ask if clarification is desired.

Is there an existing section that you think this advice could be naturally worked into @codejack42 ?


[Question]: how to backup the ragflow docker volume repository

Describe your problem
I look up the docker-compose.yml，and use "sudo docker volume ls” and watch there are 4 repository volume:

docker_esdata01 docker_minio_data docker_mysql_data docker_redis_data
First:I try to use shell command backup.sh to export the four volumn to tar.gz
Second: delete the four volumns use the command “sudo docker volume rm docker_esdata01 docker_minio_data docker_mysql_data docker_redis_data”
Third:use shell command restore.sh to import tar.gz to create and restore the four volumns
Last:But when I use "sudo docker-compose -f docker-compose.yml up -d" it didn't work.
So: I want to ask if this plan can't backup the Ragflow repository,how to do?
Uploading backup.sh_and_restore.sh.zip…

Please refer to this.


Set default order for each entity

Sometimes it's necessary to specify a particular order for entity records. For example, we may want to see Users sorted by DateCreated fields in descending order.
So, we need a way to specify this default order somewhere.

Done in version 1.3.0


publish<EMAIL_ADDRESS>

Requested by: @romtsn
Merge target: fix/obfuscated-libs-instr
Quick links:

View changes
View check runs

Assign the accepted label to this issue to approve the release.
Leave the #retract comment under this issue to retract the release (original issuer only).
Targets

[ ] maven
[ ] github
[ ] registry

Targets marked with a checkbox have already been executed.  Administrators can manually tick a checkbox to force craft to skip it.

#retract


chore: run npm upgrade

:tada: This PR is included in version 1.3.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


docker-compose scaling fix

Description
There is --scale parameter in docker-compose (docs) that allows to start several instances of certain container. It's not working in current implementation.
Docker compose's --scale parameter is useful for running several container replicas in the same terminal window which is extremely handy for running on remote servers.
Current behavior:
After running the following command:
docker-compose up --build --scale uashield=5

I'm getting the following error:
Recreating uashield_uashield_1 ... done
Recreating uashield_uashield_2 ... error

ERROR: for uashield_uashield_2  Cannot create container for service uashield: b'Conflict. The container name "/uashield" is already in use by container "853da05e2937124032ca3398b9dcd8d2b40ec4be3d5947ac8c1e7d21b1ee2409". You have to remove (or rename) that container to be able to reuse that name.'

ERROR: for uashield  Cannot create container for service uashield: b'Conflict. The container name "/uashield" is already in use by container "853da05e2937124032ca3398b9dcd8d2b40ec4be3d5947ac8c1e7d21b1ee2409". You have to remove (or rename) that container to be able to reuse that name.'
ERROR: Encountered errors while bringing up the project.

Expected behavior
After running the following command:
docker-compose up --build --scale uashield=5

no errors need to be thrown. Containers need to be scaled to 5 running instances in parallel.
Proposed solution
Now scale parameter does not respected by docker-compose because of strictly defined container_name and image properties in uashield service. Just removing them will resolve the problem and container names for replicas will not conflict with any other replicas.

Looks like good small change, thanks!


rtp command not working with no error message

I haven't used RTP in a while but I am fairly sure it was working in previous version. Issuing rtp now puts up message saying "Finding a safe random position to teleport you to" which fades without ever sending you anywhere, no error and no money withdrawn from economy. No errors in server console either.
Relevant lines in config.yml
rtp:
  # Radius around the spawn point in which players cannot be random teleported to
  radius: 256
  # Radius of the spawn area in which players cannot be random teleported to
  spawn_radius: 4096
  # Mean of the normal distribution used to calculate the distance from the center of the world
  distribution_mean: 0.75
  # Standard deviation of the normal distribution for distributing players randomly
  distribution_deviation: 2.0
  # List of worlds in which /rtp is disabled. Please note that /rtp does not work well in the nether.
  restricted_worlds:
  - world_nether
  - world_the_end

Server is Paper-1.20.2-243, Huskhomes 4.5.3
List of plugins
Paper Plugins:
- AdvancedServerList, HuskHomes
Bukkit Plugins:
- AureliumSkills, Chunky, Citizens, CommandHook, DecentHolograms, DungeonParties, EmeraldBank, FastAsyncWorldEdit, GriefPrevention, LevelledMobs, LuckPerms, MythicDungeons, Pl3xMap, Pl3xMap-Claims, PlayerKits2, ProtocolLib, QuickShop, Sentinel, SuperVanish, TangledMaze, Vault, ViaVersion, voicechat

Let me know if you need any other info.

This is because you've specified a rather spawn_radius than regular rtp radius - so your effective RTP range is zero.. I'll look at adding error correction to show an error if this is the case in the future.


Importing from browser Issue

When importing from browser, results in a empty module with no exports.
If using the example
 import {
                Client,
                ITEMS_HANDLING_FLAGS,
                SERVER_PACKET_TYPE,
            } from "https://unpkg.com/archipelago.js/dist/archipelago.min.js";

The result is "The module does not contains an export named Client"
When using import * as AP from "...". Result is a module with nothing except the name.
Nodejs version works perfectly, issue only affect browsers

I'm having this exact same issue. I'm trying to build a browser based tracking solution for a game and it simply won't import properly.

This issue should be completely resolved by v2.0, which I'm releasing RC1 for today. If it isn't too much effort, I'd recommend giving the new version a try.

I just published 1.2.0 on npm that should fix this issue for legacy users. If you don't mind letting me know if that fixed it for you, I would greatly appreciate it.


Brew History Parsing Error

I just noticed that my two most recent brew sessions will not display on the server. However, two prior sessions do display fine.
Pi Zero W with Beta 5 image.
Server version: 8aad195
picobrew_pico.log shows "ERROR in routes_frontend: ERROR: An exception occurred parsing <file.json>"
Files...
Works: 20201225_183449#1d1dc94bd8027552dfa35490a5f86ec1#a2c322cfaf5d4eeaa5a1#Manual_Brew.json
Works: 20201225_233406#1d1dc94bd8027552dfa35490a5f86ec1#4f1d8143ba3343e9b5aa#Deep_Clean.json
Parse Error: 20210110_194309#1d1dc94bd8027552dfa35490a5f86ec1#767f726423234a668d7d#Manual_Brew.json
Parse Error: 20210115_230114#1d1dc94bd8027552dfa35490a5f86ec1#4b6ecb4b8cbd4255b8d1#Manual_Brew.json
I didn't see anything in the files themselves that looks off. Also checked ownership and permissions on them via SSH. All matches there.

picobrew_pico.log
archive.zip

Trent,
Can you check the json files in the brew archive? See if there is a comma in the line before the closing bracket ].

From: Trent<EMAIL_ADDRESS>Sent: Thursday, January 21, 2021 1:57 PM
To: chiefwigms/picobrew_pico<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [chiefwigms/picobrew_pico] Brew History Parsing Error (#206)
I just noticed that my two most recent brew sessions will not display on the server. However, two prior sessions do display fine.
Pi Zero W with Beta 5 image.
Server version: 8aad195https://github.com/chiefwigms/picobrew_pico/commit/8aad195e0c9ce2afc128144e36f21d654478fcc9
picobrew_pico.log shows "ERROR in routes_frontend: ERROR: An exception occurred parsing <file.json>"
Files...
Works: 20201225_183449#1d1dc94bd8027552dfa35490a5f86ec1#a2c322cfaf5d4eeaa5a1#Manual_Brew.json
Works: 20201225_233406#1d1dc94bd8027552dfa35490a5f86ec1#4f1d8143ba3343e9b5aa#Deep_Clean.json
Parse Error: 20210110_194309#1d1dc94bd8027552dfa35490a5f86ec1#767f726423234a668d7d#Manual_Brew.json
Parse Error: 20210115_230114#1d1dc94bd8027552dfa35490a5f86ec1#4b6ecb4b8cbd4255b8d1#Manual_Brew.json
I didn't see anything in the files themselves that looks off. Also checked ownership and permissions on them via SSH. All matches there.
[image]https://user-images.githubusercontent.com/77810609/105417293-a1d46380-5bf8-11eb-9c21-a623370bc131.png
picobrew_pico.loghttps://github.com/chiefwigms/picobrew_pico/files/5852365/picobrew_pico.log
archive.ziphttps://github.com/chiefwigms/picobrew_pico/files/5852369/archive.zip
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/chiefwigms/picobrew_pico/issues/206, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AP337JBIMHSGBW5FK3637Y3S3CPMTANCNFSM4WNSB5DQ.

Trent,
Can you check the json files in the brew archive? See if there is a comma in the line before the closing bracket ].

From: Trent<EMAIL_ADDRESS>Sent: Thursday, January 21, 2021 1:57 PM
To: chiefwigms/picobrew_pico<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [chiefwigms/picobrew_pico] Brew History Parsing Error (#206)
I just noticed that my two most recent brew sessions will not display on the server. However, two prior sessions do display fine.
Pi Zero W with Beta 5 image.
Server version: 8aad195https://github.com/chiefwigms/picobrew_pico/commit/8aad195e0c9ce2afc128144e36f21d654478fcc9
picobrew_pico.log shows "ERROR in routes_frontend: ERROR: An exception occurred parsing <file.json>"
Files...
Works: 20201225_183449#1d1dc94bd8027552dfa35490a5f86ec1#a2c322cfaf5d4eeaa5a1#Manual_Brew.json
Works: 20201225_233406#1d1dc94bd8027552dfa35490a5f86ec1#4f1d8143ba3343e9b5aa#Deep_Clean.json
Parse Error: 20210110_194309#1d1dc94bd8027552dfa35490a5f86ec1#767f726423234a668d7d#Manual_Brew.json
Parse Error: 20210115_230114#1d1dc94bd8027552dfa35490a5f86ec1#4b6ecb4b8cbd4255b8d1#Manual_Brew.json
I didn't see anything in the files themselves that looks off. Also checked ownership and permissions on them via SSH. All matches there.
[image]https://user-images.githubusercontent.com/77810609/105417293-a1d46380-5bf8-11eb-9c21-a623370bc131.png
picobrew_pico.loghttps://github.com/chiefwigms/picobrew_pico/files/5852365/picobrew_pico.log
archive.ziphttps://github.com/chiefwigms/picobrew_pico/files/5852369/archive.zip
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/chiefwigms/picobrew_pico/issues/206, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AP337JBIMHSGBW5FK3637Y3S3CPMTANCNFSM4WNSB5DQ.

Yes, that's the only difference I see between those that work and those that don't... the ones that don't work have a comma before the closing bracket.

Yes, that's the only difference I see between those that work and those that don't... the ones that don't work have a comma before the closing bracket.

Try removing the comma and see if it works. I think I may have a lead on the issue.

From: Trent<EMAIL_ADDRESS>Sent: Thursday, January 21, 2021 3:48 PM
To: chiefwigms/picobrew_pico<EMAIL_ADDRESS>Cc: Todd<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [chiefwigms/picobrew_pico] Brew History Parsing Error (#206)
Yes, that's the only difference I see between those that work and those that don't... the ones that don't work have a comma before the closing bracket.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/chiefwigms/picobrew_pico/issues/206#issuecomment-765014167, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AP337JAU2O5ECBESINVO3H3S3C4OFANCNFSM4WNSB5DQ.

Try removing the comma and see if it works. I think I may have a lead on the issue.

From: Trent<EMAIL_ADDRESS>Sent: Thursday, January 21, 2021 3:48 PM
To: chiefwigms/picobrew_pico<EMAIL_ADDRESS>Cc: Todd<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [chiefwigms/picobrew_pico] Brew History Parsing Error (#206)
Yes, that's the only difference I see between those that work and those that don't... the ones that don't work have a comma before the closing bracket.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/chiefwigms/picobrew_pico/issues/206#issuecomment-765014167, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AP337JAU2O5ECBESINVO3H3S3C4OFANCNFSM4WNSB5DQ.

Yeah if there's a comma on the last line, the session probably never ended and it's malformed.. blame json for being strict.  Remove the offending comma and you'll be good

Yeah if there's a comma on the last line, the session probably never ended and it's malformed.. blame json for being strict.  Remove the offending comma and you'll be good

Yes, removing that last comma does fix things. Thanks. These sessions were not prematurely terminated, so I'm not sure what happened. My setup and connectivity has been solid.

Yes, removing that last comma does fix things. Thanks. These sessions were not prematurely terminated, so I'm not sure what happened. My setup and connectivity has been solid.

I think it's in the code. I've been adding the START/STOP button for the iSpindel and have encountered this problem. Know where it is in the code, don't know (yet) why it occurs, and have an (inelegant) fix for it that I'd like to make prettier. @tmack8001 This is what I DM'd you about the other day. For now, you can remove the comma when it happens and I'm looking for a solution.

From: Trent<EMAIL_ADDRESS>Sent: Thursday, January 21, 2021 4:14 PM
To: chiefwigms/picobrew_pico<EMAIL_ADDRESS>Cc: Todd<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [chiefwigms/picobrew_pico] Brew History Parsing Error (#206)
Yes, removing that last comma does fix things. Thanks. These sessions were not prematurely terminated, so I'm not sure what happened. My setup and connectivity has been solid.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/chiefwigms/picobrew_pico/issues/206#issuecomment-765023814, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AP337JHCYCPSFUXMJPW3NEDS3C7OHANCNFSM4WNSB5DQ.

I think it's in the code. I've been adding the START/STOP button for the iSpindel and have encountered this problem. Know where it is in the code, don't know (yet) why it occurs, and have an (inelegant) fix for it that I'd like to make prettier. @tmack8001 This is what I DM'd you about the other day. For now, you can remove the comma when it happens and I'm looking for a solution.

From: Trent<EMAIL_ADDRESS>Sent: Thursday, January 21, 2021 4:14 PM
To: chiefwigms/picobrew_pico<EMAIL_ADDRESS>Cc: Todd<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [chiefwigms/picobrew_pico] Brew History Parsing Error (#206)
Yes, removing that last comma does fix things. Thanks. These sessions were not prematurely terminated, so I'm not sure what happened. My setup and connectivity has been solid.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/chiefwigms/picobrew_pico/issues/206#issuecomment-765023814, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AP337JHCYCPSFUXMJPW3NEDS3C7OHANCNFSM4WNSB5DQ.

@chiefwigms or that we are writing to the JSON like it is a CSV file :trollface:

@chiefwigms or that we are writing to the JSON like it is a CSV file :trollface:

@sickchilly I'm curious if you selected a different way to "end" the brew.
There is an API request that is suppose to be seen by the server (not sure if Pico Manual Brew sends it at all though honestly... I haven't used the smaller Pico devices, the one I got has been leaking and I haven't decided to go fix it yet)
if 'complete' in active_brew_sessions[uid].step.lower():
    active_brew_sessions[uid].file.write('\n\t{}\n]'.format(json.dumps(session_data)))
    active_brew_sessions[uid].cleanup()
else:
    active_brew_sessions[uid].file.write('\n\t{},'.format(json.dumps(session_data)))
    active_brew_sessions[uid].file.flush()

when this happens the session file is "closed properly". Likely we should also just go and "properly close" out any archived session file like this.

@sickchilly I'm curious if you selected a different way to "end" the brew.
There is an API request that is suppose to be seen by the server (not sure if Pico Manual Brew sends it at all though honestly... I haven't used the smaller Pico devices, the one I got has been leaking and I haven't decided to go fix it yet)
if 'complete' in active_brew_sessions[uid].step.lower():
    active_brew_sessions[uid].file.write('\n\t{}\n]'.format(json.dumps(session_data)))
    active_brew_sessions[uid].cleanup()
else:
    active_brew_sessions[uid].file.write('\n\t{},'.format(json.dumps(session_data)))
    active_brew_sessions[uid].file.flush()

when this happens the session file is "closed properly". Likely we should also just go and "properly close" out any archived session file like this.

I didn’t do anything different than I’ve done before and that is follow the PicoBrew manual brew instructions as published by them. After finishing the brew (and the 10 minute circulation), I always drain the step filter and do a rinse cycle. After rinse, I drain the reservoir and turn the machine off with the power button.

I didn’t do anything different than I’ve done before and that is follow the PicoBrew manual brew instructions as published by them. After finishing the brew (and the 10 minute circulation), I always drain the step filter and do a rinse cycle. After rinse, I drain the reservoir and turn the machine off with the power button.

Right.. likely manual brew just ends for picobrew proper after a period of time

Right.. likely manual brew just ends for picobrew proper after a period of time

Well the PR that merged today should take care of this. Can you "update/restart server" and see if these "invalid" files go away for you @sickchilly ?

Well the PR that merged today should take care of this. Can you "update/restart server" and see if these "invalid" files go away for you @sickchilly ?

I did limiting testing using the PR from this morning just before the PR I did this afternoon. It worked fine for me.

I did limiting testing using the PR from this morning just before the PR I did this afternoon. It worked fine for me.

All good here. It's tolerant of files with or without the final comma.

All good here. It's tolerant of files with or without the final comma.

Awesome. The files themselves stay intact. Later I might rewrite them into a valid syntax upon parsing them.
Glad it fixed your history feed.

Awesome. The files themselves stay intact. Later I might rewrite them into a valid syntax upon parsing them.
Glad it fixed your history feed.


Fix issue 16639 - Review std.json wrt this article on JSON edge cases and ambiguities

The test corpus provided at https://github.com/nst/JSONTestSuite/ revealed some issues with the std.json.parseJSON function. Since addressing some of the issues required parseJSON to reject input it previously accepted, I have added a new JSONOptions.strictParsing flag so callers can opt-in to the stricter parsing.
The issues, and how I've addressed them, are listed below (approximately from most severe to least):
Silently dropping ASCII NUL characters from strings:
n_string_unescaped_crtl_char.json
This is the most serious problem I found while fixing the test cases. The current implementation of parseJSON() uses a helper function called peekChar() which can store the next character to handle in a variable of type Char (an alias of the character type). Unfortunately it was using 0 to indicate it has not read a character yet so if an ASCII NUL (which will have the value 0) is present in the text and someone reads it with peekChar() then it will effectively be skipped over, which was happening in string and whitespace parsing.
I changed peekChar() to use a Nullable!Char as the temporary storage for the next character to disambiguate the case where there is no pending unconsumed character from the case where there is a pending unconsumed ASCII NUL. In strict mode JSON with unescaped ASCII NULs in strings will throw an exception while in non-strict mode the JSON will be accepted with the NUL included in the string value.
Failure to accept ASCII DEL (0x7f) unescaped in strings:
y_string_unescaped_char_delete.json
y_string_with_del_character.json
These were the only test cases that std.json rejected that it should have accepted. This issue was addressed by changing the string parsing logic to explicitly check for character values < 0x20 instead of using std.ascii.isControl (which also returned true for 0x7f), with a special exception for ASCII NULs in non-strict mode as mentioned above.
Parsing "true", "false", and "null" tokens case-insensitively:
n_structure_capitalized_True.json
In strict mode those tokens are now parsed case-sensitively.
Accepting control characters other than ' ', '\t', '\r', and '\n' as whitespace:
n_structure_null-byte-outside-string.json
n_structure_whitespace_formfeed.json
In strict mode only the listed characters are accepted as whitespace, while non-strict mode continues to use std.ascii.isWhite with an additional exception for ASCII NUL for a similar reason as the n_string_unescaped_ctrl_char.json case (the skipWhitespace() function used peekChar() so it didn't handle ASCII NULs consistently; non-strict mode after my changes is actually more permissive than the previous behavior but it is at least consistently permissive).
Silently accepting empty data:
n_structure_no_data.json
In strict mode an exception is now thrown instead of returning an empty value.
Failure to enforce that numbers beginning with 0 cannot have any additional digits in the non-fractional part:
n_number_-01.json
n_number_neg_int_starting_with_zero.json
n_number_with_leading_zero.json
An additional check is now performed in strict mode when the whole part of a number begins with zero to ensure trailing digits are not present.
Failure to check for trailing characters after parsing:
n_array_comma_after_close.json
n_array_extra_close.json
n_multidigit_number_then_00.json
n_object_trailing_comment.json
n_object_trailing_comment_open.json
n_object_trailing_comment_slash_open_incomplete.json
n_object_trailing_comment_slash_open.json
n_object_with_trailing_garbage.json
n_string_with_trailing_garbage.json
n_structure_array_trailing_garbage.json
n_structure_array_with_extra_array_close.json
n_structure_close_unopened_array.json
n_structure_double_array.json
n_structure_number_with_trailing_garbage.json
n_structure_object_followed_by_closing_object.json
n_structure_object_with_trailing_garbage.json
n_structure_trailing_#.json
An additional check is now performed in strict mode to ensure any trailing characters after the initial JSON value are only whitespace.
In addition to the above issues, parseJSON() will throw ConvException for numbers out of the range of double/long/ulong which was not previously documented. I have updated the ddoc comment to reference that exception.
I have attached a patch with the test harness I used to run the tests. It can be applied to the JSONTestSuite repository linked above, and I plan to submit it as a pull request to that repository after this issue is handled.
test_harness.zip

Thanks for the contribution !
Could you add some test cases for the issues you've addressed, so it won't regress ?

Sure. I'll update the unit tests to cover these cases. Also, the style check failed the "Check for package wide std.algorithm imports" test. Is that supposed to fail for cases like this where the import from std.algorithm is local within a function?

Is that supposed to fail for cases like this where the import from std.algorithm is local within a function?

It looks like that, even if the import is selective.

It looks like the auto-tester failure on the Darwin_64_64 platform is unrelated to my changes (the std.datetime.stopwatch and std.datetime.interval modules don't use std.json at all). Is there any way to re-try that check?

Auto-tester constantly restarts itself and invalidates all builds whenever a PR at DMD, druntime or Phobos is merged. So these failures should disappear quite quickly. There's also a button "deprecate" if you login over there to manually invalidate a build, but as mentioned there's typically no need.


add api: JSON.toJSONString(Object object, ObjectWriterProvider writer…

…Provider, JSONWriter.Feature... features)
What this PR does / why we need it?
能快捷的使用 ObjectWriterProvider 定制实例
Summary of your change
Please indicate you've done the following:

[ ] Made sure tests are passing and test coverage is added if needed.
[ ] Made sure commit message follow the rule of Conventional Commits specification.
[ ] Considered the docs impact and opened a new docs issue or PR with docs changes if needed.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Added some python 3 compatibility

Hey,
Tried to upgrade to python 3, using your tutorial notebooks as tests.
Things seem to work OK, but I haven't done excessive amounts of testing.
Python 3 wasn't happy with a circular import so I had to merge plotlytools and tools, but did so without breaking compatibility.
Let me know what you think

Hi Krey - thank you very much for this. I am looking into getting all of this sorted soon.
Thanks again,
Jorge

Hi @krey , version 0.7.0 support Python 3 now. I was not able to do a PR since the code has change considerably since, but I added some credit to your contributions on the code. Thank you again!


Redundant entityId field is required in the payload to add service provider to UAA IdP

The entityId field in the payload for POST /saml/service-providers is mandatory and has to match entityID field in service provide metadata.  Otherwise, it causes the following response:
400 Bad Request: unexpected token at 'Metadata entity id does not match SAML SP entity id: mysp’.
This requirement seems to be redundant.  Users will have to parse service provider metadata to extract entityID value.  It becomes even more difficult if metadata is provided in the form of the URL and not XML.  Since entityID is available in the service provider metadata, it should be read by SamlServiceProviderConfigurator directly from there at the time of creating service provider configuration. It should not be required in the payload as a separate field.
Example:
POST http://localhost:8080/uaa/saml/service-providers REQUEST BODY: "{"entityId":"2c21112d-c76b-4eed-b5d7-76400d3b3dc1.cloudfoundry-saml-login","name":"mysp","config":"{\"metaDataLocation\":\"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?><md:EntityDescriptor xmlns:md=\\\"urn:oasis:names:tc:SAML:2.0:metadata\\\" ID=\\\"2c21112d-c76b-4eed-b5d7-76400d3b3dc1.cloudfoundry-saml-login\\\" entityID=\\\"2c21112d-c76b-4eed-b5d7-76400d3b3dc1.cloudfoundry-saml-login\\\">...</md:EntityDescriptor>\\n\",\"nameID\":\"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\",\"singleSignOnServiceIndex\":0,\"metadataTrustCheck\":false}","active":true}"

This story has been picked up and will be available as part of UAA 3.8.0


Update generate maven metadata plugin

Maintainers will complete the following section

[ ] Commit messages are descriptive enough
[ ] Code coverage from testing does not decrease and new code is covered
[ ] Python type annotations added to new code
[ ] JSON/YAML configuration changes are updated in the relevant schema
[ ] Changes to metadata also update the documentation for the metadata
[ ] Pull request has a link to an osbs-docs PR for user documentation updates
[ ] New feature can be disabled from a configuration file

This change avoids download in generate_maven_metadata, however the result looks move to another side, that is the fetch_maven_artifacts takes part of the responsibility of the metadata generation.
FYI. IIUC, these two plugins share most of the code logic to iterate artifacts and take different actions based on the same data source in pre- and post- build phases. In prebuild, it fetches artifacts, and in the postbuild, it generates metadata. To achieve the goal of CLOUDBLD-8264, probably it's a good time to refactor these two plugins like what was done for the koji_import plugin.
BTW, can we rename remote_source_files to another one that can reflect the meaning of maven artifact? e.g. maven_artifacts_output or something like that. "output" should make sense because it is a term used in the Koji Content Generator Metadata.

Hmm, there seems to be some confusion here. I'll add comments in code to make it less confusing and probably rename generate_maven_metadata plugin to generate_remote_source_files.
This PR accomplishes the following,
fetch_maven_artifacts plugin is now processing all fetch_* configurations and it's only done once. While iterating it's downloading the maven artifacts and also generating metadata for those artifacts as much as possible(for nvr and pnc artifacts, this was done in generate_maven_metadata before this). It is also creating and returning source_download_queue that is a queue of sources for url artifacts that is uploaded to binary brew build as remote_source_files to be later fetched by source container build.
generate_maven_metadata plugin is no longer generating metadata for all fetch_* configs. It is only downloading from source_download_queue that fetch_maven_artifacts generate and creates remote_source_files from them. We've decided to do it in postbuild so that we won't have source artifacts in build_dir during the binary build. That's why it's not done in pre.

Coverage seems to be decreasing due to decrease in the number of lines.


Class config variables accessed via $this->config() seem empty unless used

After a fresh install of SS 3.2.1 and creating a simple custom class like
class MyPage extends Page {

  /**
   * @config
   */
  private static $project = 'some string';

  public function init() {

    $a = $this->config()->project;
    $b = $this->config();
    $c = Config::inst()->get('MyPage', 'project');
    $d = Config::inst()->forClass('MyPage');
    var_dump($this->config()->project);
    var_dump(empty($this->config()->project));
    var_dump($a);
    var_dump(empty($a));
    var_dump($b->project);
    var_dump(empty($b->project));
    var_dump($c);
    var_dump(empty($c));
    var_dump($d->project);
    var_dump(empty($d->project));

  }
}

and after calling
$mp = new MyPage();
$mp->init();

the expected output would be:
string(11) "some string"
bool(false)
string(11) "some string"
bool(false)
string(11) "some string"
bool(false)
string(11) "some string"
bool(false)
string(11) "some string"
bool(false)
Instead, the output looks like:
string(11) "some string"
bool(true)
string(11) "some string"
bool(false)
string(11) "some string"
bool(true)
string(11) "some string"
bool(false)
string(11) "some string"
bool(true)
That means calling empty() on a variable accessed directly via $this->config() is not working as expected.
Same situation occurs when getting the config via Config::inst()->forClass('MyPage').
When the value is accessed via Config::inst()->get('MyClass', 'project'), it works as expected.

Hm, typically I haven't used empty() on expressions (due to compatibility with PHP < 5.5).
It looks to me as though  a missing Config_ForClass::__isset is the cause of this issue.

Hi @tractorcow,
not sure where to put the suggested bit of code to create a pull request, can you advise?
Thanks

here: https://github.com/silverstripe/silverstripe-framework/blob/3/core/Config.php#L926 ?

PR against 3, please :)

Fix at https://github.com/silverstripe/silverstripe-framework/pull/5865


Add optional height prop to DemoIframe

The DemoIframe height is not variable:
https://github.com/mapbox/dr-ui/blob/edd33964171631d13ecb41f3fd63d46059d43268/src/components/demo-iframe/demo-iframe.js#L41
We should add a height prop and set the default size to 400.
Use case: https://github.com/mapbox/help/issues/2891

https://github.com/mapbox/dr-ui/pull/532


⚠ Bofrost.fr has degraded performance

In f54500b, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 875 ms

Resolved: Bofrost.fr performance has improved in c4d9681 after 6 minutes.


Mantainers needed

Does anyone still use this project? As I've said in issue #4,

I'd be happy to add maintainers to this project, if anyone is interested, and if @johan-sports agrees.

Just noticed we already had this discussion in #5, carry on...