Combo cases/deaths producing duplicate geos

It seems that combo cases/deaths is pulling some geo ids from both usa-facts and jhu-csse, which causes the archiver to balk. here's a sample file with duplicate geos:
$ for f in receiving/*.csv; do echo $f; cut -d, -f1 $f | sort | uniq -d; done
[...]
receiving/20210227_county_confirmed_7dav_cumulative_num.csv
46000
46075
46107
46129
46135

Here's the error we get from archiver:
Traceback (most recent call last):
  File "/home/krivard/projects/covid/auto/covidcast-indicators/_delphi_utils_python/delphi_utils/archive.py", line 89, in diff_export_csv
    after_df_cmn = after_df.reindex(common_idx)
  File "/home/krivard/projects/covid/auto/covidcast-indicators/combo_cases_and_deaths/env/lib/python3.8/site-packages/pandas/util/_decorators.py", line 312, in wrapper
    return func(*args, **kwargs)
  File "/home/krivard/projects/covid/auto/covidcast-indicators/combo_cases_and_deaths/env/lib/python3.8/site-packages/pandas/core/frame.py", line 4176, in reindex
    return super().reindex(**kwargs)
  File "/home/krivard/projects/covid/auto/covidcast-indicators/combo_cases_and_deaths/env/lib/python3.8/site-packages/pandas/core/generic.py", line 4811, in reindex
    return self._reindex_axes(
  File "/home/krivard/projects/covid/auto/covidcast-indicators/combo_cases_and_deaths/env/lib/python3.8/site-packages/pandas/core/frame.py", line 4022, in _reindex_axes
    frame = frame._reindex_index(
  File "/home/krivard/projects/covid/auto/covidcast-indicators/combo_cases_and_deaths/env/lib/python3.8/site-packages/pandas/core/frame.py", line 4041, in _reindex_index
    return self._reindex_with_indexers(
  File "/home/krivard/projects/covid/auto/covidcast-indicators/combo_cases_and_deaths/env/lib/python3.8/site-packages/pandas/core/generic.py", line 4877, in _reindex_with_indexers
    new_data = new_data.reindex_indexer(
  File "/home/krivard/projects/covid/auto/covidcast-indicators/combo_cases_and_deaths/env/lib/python3.8/site-packages/pandas/core/internals/managers.py", line 1301, in reindex_indexer
    self.axes[axis]._can_reindex(indexer)
  File "/home/krivard/projects/covid/auto/covidcast-indicators/combo_cases_and_deaths/env/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 3476, in _can_reindex
    raise ValueError("cannot reindex from a duplicate axis")
ValueError: cannot reindex from a duplicate axis

Hm I can't replicate this (admittedly on 3/2 to 3/11 data, which is what running the indicator locally gave me). Could you post the problematic file? Do we know if it's both usafacts/jhu or if it's a duplicate within usafacts (from bad geo mapping or some other bug)?

params:
{
  "common": {
    "log_exceptions": false,
    "export_dir": "./receiving",
    "log_filename": "delphi_combo_cases_and_deaths.log"
  },
  "indicator": {
    "export_start_date":[2020,4,1],
    "date_range":"all",
    "source":"indicator-combination",
    "wip_signal": ""
  }
}

Bad file:
20210227_county_confirmed_7dav_cumulative_num.csv.zip

Hm, I thought this would concern Puerto Rico, since we changed that recently, but it's not
>>> df = pd.read_csv("20210227_county_confirmed_7dav_cumulative_num.csv")
>>> df
    geo_id          val  se  sample_size
0    21033  1333.857143 NaN          NaN
1    46000   161.285714 NaN          NaN
2    46000     4.714286 NaN          NaN
3    46075    84.857143 NaN          NaN
4    46075    85.000000 NaN          NaN
5    46107   368.857143 NaN          NaN
6    46107   369.142857 NaN          NaN
7    46129   677.000000 NaN          NaN
8    46129   719.428571 NaN          NaN
9    46135  2679.571429 NaN          NaN
10   46135  2793.285714 NaN          NaN
11   54087   493.000000 NaN          NaN

ohhhhhhh Andrew and I have figured this out; it's because we switched a couple days ago to requesting just the last week's worth of issues. So what's probably happening is that there were multiple issues of 46000 in the past week, but we're not dropping the spares.


SegmentedControl: Remove tooltip temporarily and add an accessible name to the button

This PR resolves the axe-violation on the SegmentedControlIconButton - please see the story here.
Closes https://github.com/github/primer/issues/1864 (Hubbers only link)
We decided to disable (remove) the tooltip for now and add a discernable name to the button itself until we resolve more critical issues on the tooltip (ref: https://github.com/github/primer/issues/1909).
Screenshots
Please provide before/after screenshots for any visual changes
Merge checklist

[ ] Added/updated tests
[ ] Added/updated documentation
[ ] Tested in Chrome
[ ] Tested in Firefox
[ ] Tested in Safari
[ ] Tested in Edge

Take a look at the What we look for in reviews section of the contributing guidelines for more information on how we review PRs.

@broccolinisoup just a heads up, the link in the PR description seemed to still include tooltips. I used the latest link from the storybook deploy URL (here) and it worked perfectly! Just wanted to share in case something was going on.

@broccolinisoup just a heads up, the link in the PR description seemed to still include tooltips. I used the latest link from the storybook deploy URL (here) and it worked perfectly! Just wanted to share in case something was going on.

Ah thanks @joshblack ! I added both in the description now for comparison.


Improve Fetch URL  - fixes #3129

Fixes #3129.
Makes the following improvements to the Fetch URL code:

switches to Apache HTTP Client 5.0.2 including support for HTTP/2 as well as automatic retries other general improvements
reuses HTTP client across requests for the entire operation rather than rebuilding it for every request to improve connection reuse and not pay connection setup cost every time (especially bad for HTTPS)
honors Retry-After header (built-in support), but if none specified uses binary exponential backup (default is single retry at 1 sec.)
computes interrequest delay using a request interceptor

Because the namespace was changed, the new client can coexist with the old client, but we should probably abstract this out into a reusable class that can be reused by project creation, reconciliation, etc.
I went ahead and split things out into their own reusable class and extended it to support POSTs as well as GETs so that it could be used for reconciliation too.

OK, I've still got some testing to do, but I'd like to get some review feedback in parallel.
Along the way, this kind of morphed from "fix rate limiting" to implement support for Apache HTTP Client 5, HTTP/2 and refactor all our our previous 5 implementations (Create Project, Fetch URL, Guess Types, Reconcile, Extend Data) into a single set of common code.
One thing which probably could be improved is client/connection pool reuse for reconciliation calls, but this is no worse than the current implementation.


Co seeds/migr for prod, added two reviewers since it effects prod

Oops. I tried to merge but there are conflicts that must be resolved from the command line. Let me know if I can help you with this.


Implement TIME_STYLE="+DATE" ls

We already support TIME_STYLE as an environment variable but only with the 4 different values.
GNU allows the use of +date
For example:
$ touch exe
$ TIME_STYLE="+%Y__%S" ls exe -al
-rw-r--r-- 1 sylvestre sylvestre 0 2022__58 exe
$ TIME_STYLE="+%Y-%m-%d %H:%M:%S.%N %z" ls exe -al
-rw-r--r-- 1 sylvestre sylvestre 0 2022-06-13 21:34:58.728327312 +0200 exe
$ TIME_STYLE="+foobar" ls exe -al
-rw-r--r-- 1 sylvestre sylvestre 0 foobar exe

GNU supports the date format (like the date or touch commands)
https://github.com/uutils/coreutils/blob/main/src/uu/date/src/date.rs
https://github.com/uutils/coreutils/blob/main/src/uu/touch/src/touch.rs
Tests in:
https://github.com/coreutils/coreutils/blob/master/tests/ls/color-term.sh#L23=

Hi. I would also like to try this issue. I have made some progress, and technically it works except for the clap validation, see problem on a question I made to clap-repo.
Basically right now we have value_parser!, but not supporting +FORMAT. Thus, by supporting +FORMAT, it cannot match the string anymore, but rather a user defined string with the + key in front, thus making it a bit more difficult, and as far as I am concerned, requiring a custom logic in case parse fails.
In my question to clap, the maintainer suggested something, and I tried some stuff but it looks so far a bit beyond my capabilities, so if anyone has any other ideas, lets discuss :)

Hi! Sounds very promising! You could always remove the parsing from clap, accept any string and then manually parse the string value later. What argument is this about by the way? In the issue I only see an environment variable, which clap should not have anything to do with right?

Hi! Your initial suggestion seems like doable. The argument is --time-style which accepts(for now)    .value_parser(["full-iso", "long-iso", "iso", "locale"]). However if I add there +FORMAT then its no longer accepted. If I remove completely validation it works fine, but then you dont get the nice clap help message such as: `Possible values are: ["full-iso", "long-iso", "iso", "locale"] etc.

Yeah we indeed lose the message and we'd need some custom message instead, but I'm not sure that the message from clap would still be as nice with a custom value_parser.


Ionic currents

NIF coverage of ionic currents is rather partial. I've created a page where I describe my attempts at improving this coverage: https://github.com/BlueBrain/nat/wiki/Ontology-terms-for-ionic-currents
Any chance these can be integrated in NIF?

Yes! We would love to get these in. I think we need to get the currents in by themselves independent of their channels. We will need to think a bit about where currents fit in the larger hierarchy.
If you could create a little owl file (serialized in ttl preferably) with the outline of the hierarchy that you have I can match them up with existing terms. Then once we figure out exactly where to put the currents in the hierarchy we can get them identifiers in interlex (https://scicrunch.org/create/term) and integrate them fully. Does that sound reasonable?
PS I think there is an opportunity to rethink how we are modelling ion channels and are not alone in the need. See for example https://github.com/SciCrunch/NIF-Ontology/issues/80. NIFMOL:nifext_2500 and NIFMOL:nifext_2502 seems to be where most things start currently but those conflate the proteins with the currents.

Hi Tom,
Sounds reasonable. However, I think what you are asking for (except the
fact that it should be formatted in owl/ttl) is already described at the
link I provided (
https://github.com/BlueBrain/nat/wiki/Ontology-terms-for-ionic-currents).
There are three parts to this page:
1 - A hierarchy (in form of a bullet point list with varying depth)
2 - A list of terms from the hierarchy in 1  that are already available in
NIF (ids and labels provided)
2 - A list of the terms to add to NIF to have the full hierarchy described
in 1
Note 1: The full hierarchy described in 1 has only one top parent term:
NIFMOL:nifext_8054 -- Transmembrane ionic current. Consequently, every new
term has a lineage to an already existing NIF term.
I tried the page https://scicrunch.org/create/term to see how it can be
used to add new terms. However, it didn't showed me any form where I could
enter new terms...
[image: Images intégrées 1]
Concerning your PS: Yes, I think that we must clearly distinguish ionic
currents and ionic channels. Obviously, these can come to converge to the
functional and structural parts of a same entity in case where the
knowledge has been refined enough to talk about the current of a specific
ionic channel type, but most ionic currents (e.g., all the currents
described in the page I linked to) are the results of the interaction of an
unknown mixture of various ion channel types.
By the way, I plan to attend your next meeting call with Silvia on Tuesday
so that I can introduce myself to you more adequately and that we can
discuss any issues related to the present topic.
Best,
Christian
2017-02-15 20:49 GMT+01:00 Tom Gillespie<EMAIL_ADDRESS>
Yes! We would love to get these in. I think we need to get the currents in
by themselves independent of their channels. We will need to think a bit
about where currents fit in the larger hierarchy.
If you could create a little owl file (serialized in ttl preferably) with
the outline of the hierarchy that you have I can match them up with
existing terms. Then once we figure out exactly where to put the currents
in the hierarchy we can get them identifiers in interlex (
https://scicrunch.org/create/term) and integrate them fully. Does that
sound reasonable?
PS I think there is an opportunity to rethink how we are modelling ion
channels and are not alone in the need. See for example #80
https://github.com/SciCrunch/NIF-Ontology/issues/80. NIFMOL:nifext_2500
and NIFMOL:nifext_2502 seems to be where most things start currently but
those conflate the proteins with the currents.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/SciCrunch/NIF-Ontology/issues/91#issuecomment-280118981,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFqHmrXtJd4A2kL9OLHle3sEuWD21ipyks5rc1bfgaJpZM4L74kk
.

@christian-oreilly
I have created a new branch for reviewing the new terms that we want to include. The temporary file with the new classes is here. Take a look make sure everything seems ok, I will get real ILX ids for them and move them into NIF-Molecule.ttl.
This is the generated hierarchy from the terms I have added (in the separate file for review).
Transmembrane ionic current
├──Excitatory postsynaptic current
├──Inhibitory postsynaptic current
├──Leak ionic current
├──Chloride current
│  ├──Calcium activated chloride current
│  └──GABA related chloride current
├──Non-selective current
│  ├──Calcium activated nonspecific cation current
│  └──Cyclic nucleotide gated nonspecific cation current
│     └──Inward rectifier current
├──Calcium current
│  ├──Low threshold calcium T current
│  ├──N type calcium current
│  ├──Slow high threshold calcium current
│  └──q and p type calcium current
├──Sodium current
│  ├──Sodium leak current
│  ├──Sodium persistent current
│  ├──Sodium transient fast current
│  └──Sodium transient slow current
└──Potassium current
   ├──Fast voltage gated potassium current
   ├──M type potassium current
   ├──Potassium delayed rectifier
   ├──Potassium inward rectifier current
   ├──Potassium leak current
   ├──A current
   │  └──I A, slow
   └──Calcium-dependent potassium current
      ├──Fast voltage and calcium dependent potassium current
      ├──Medium calcium dependent AHP potassium current
      └──Slow calcium dependent AHP potassium current

Looks all good to me. I just made a small modification (adding a synonym) which I committed.

@christian-oreilly these are up on matrix http://matrix.neuinfo.org:9000/scigraph/vocabulary/id/ILX:0115055. I sent you a csv with the identifier mappings, but I am including them here as well for the record.
BBP_nlx_0002 ('BBP_nlx_0002', 'ILXREPLACE:3711531e7a6a4c36be36402799879855', 'ILX:0115055')
BBP_nlx_0003 ('BBP_nlx_0003', 'ILXREPLACE:719fdb67ef87beb098f1a71afb0722c0', 'ILX:0115057')
BBP_nlx_0004 ('BBP_nlx_0004', 'ILXREPLACE:8d046788739d6a5a2811237140901836', 'ILX:0115058')
BBP_nlx_0005 ('BBP_nlx_0005', 'ILXREPLACE:5a672be9a77dfdb8f3e7de7e985503af', 'ILX:0115056')
BBP_nlx_0006 ('BBP_nlx_0006', 'ILXREPLACE:b1518541c88de516c479eb374056a3a8', 'ILX:0115050')
BBP_nlx_0007 ('BBP_nlx_0007', 'ILXREPLACE:6a4edad09d025f6847714281b9dead85', 'ILX:0115052')
BBP_nlx_0008 ('BBP_nlx_0008', 'ILXREPLACE:8abd46a40a9a69d89f08e19449ae54ba', 'ILX:0115047')
BBP_nlx_0009 ('BBP_nlx_0009', 'ILXREPLACE:68b35d60cbaf4fc37a6acbcf776b3f2e', 'ILX:0115042')
BBP_nlx_0010 ('BBP_nlx_0010', 'ILXREPLACE:e864beaa642bb23a5e6e2148d59c086f', 'ILX:0115053')
BBP_nlx_0011 ('BBP_nlx_0011', 'ILXREPLACE:a892e32626211ac51c29f6399401aef0', 'ILX:0115046')
BBP_nlx_0012 ('BBP_nlx_0012', 'ILXREPLACE:70bce66b82c7959019cde2aba9f6f603', 'ILX:0115054')
BBP_nlx_0013 ('BBP_nlx_0013', 'ILXREPLACE:6e663e7389d8edec8c569982c543ae9a', 'ILX:0115059')
BBP_nlx_0014 ('BBP_nlx_0014', 'ILXREPLACE:1d77d7b0ef0fedac25dfbc8f718b3e9a', 'ILX:0115049')
BBP_nlx_0015 ('BBP_nlx_0015', 'ILXREPLACE:cbf5f2f87cd34c2b6b3873e65ac82162', 'ILX:0115038')
BBP_nlx_0016 ('BBP_nlx_0016', 'ILXREPLACE:6e3b7910f481bd23246f8629f63bdc6c', 'ILX:0115039')
BBP_nlx_0017 ('BBP_nlx_0017', 'ILXREPLACE:a299cacbf838c74b0aba21c0815908f4', 'ILX:0115040')
BBP_nlx_0018 ('BBP_nlx_0018', 'ILXREPLACE:31378bc0c7fed58a442bb103027da8d3', 'ILX:0115041')
BBP_nlx_0019 ('BBP_nlx_0019', 'ILXREPLACE:27ccaf8f5806dca155f841d0f3994288', 'ILX:0115051')
BBP_nlx_0020 ('BBP_nlx_0020', 'ILXREPLACE:8ff86d336ef8ddc4c8dbe851ada48c18', 'ILX:0115043')
BBP_nlx_0024 ('BBP_nlx_0024', 'ILXREPLACE:1f0a682fee89bca90442e339f38909f5', 'ILX:0115048')
BBP_nlx_0027 ('BBP_nlx_0027', 'ILXREPLACE:b1c7dbf2c7ba9cf1b64d6c57f880eec6', 'ILX:0115044')


files v2 crashs on startup on windows 10 (same issue after reset the app)

Description
files v2 crashs on startup on windows 10 (same issue after reset the app)
Steps To Reproduce
1 open
2 see logo
3 close
Expected behavior
crash on strtutp
Files Version
v2
Windows Version
windows 10 pro for workstations 21h1
Relevant Assets
debug_fulltrust.log
debug.log

@Fefedu973 which version of Files are you having this issue with?

The last one

@Fefedu973 unfortunately we can't really help without a version number, please reopen this issue once you the version number.


pull request for e2e test at 01/24/2017 03:56:16

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add dev graph node project

Add a new project to the monorepo to setup a local graph-node instance.

Should we expand the scope of this one to include deploy scripts for subgraph-beanstalk and subgraph-bean to the node after it's instantiated?


wsl --import Unspecified Error / The specified network name is no longer available.

Your Windows build number:  Microsoft Windows [Version 10.0.19041.21]

What you're doing and what's happening:
Exported Ubuntu from C Drive due to size issues. I now have a .tar sitting on D:\Ubuntu.tar
Trying to import the file yields Unspecified Error or The specified network name is no longer available.
Command executed: wsl --import Ubuntu-18.04 d:\WSL\Ubuntu-18.04\ d:\Ubuntu.tar

What's wrong / what should be happening instead:
This shouldn't happen, the Distro should import.

For WSL launch issues, please [collect detailed logs] logs.zip
Logs attached!

Same for me.  Unspecified Error each time I try the wsl --import command on a previously exported (in.tar) image

Same for me.

What worked for me was importing the WSL 2 distribution as WSL 1 using --import ... --version 1, and then convert it to version 2 using --ser-version.

But obviously this is a temporary workaround. In my case, the import would cause the RAM utilization to go to about 95%, and then I would see the aforementioned error. It seems like there is something wrong with importing large image sizes (mine was about 18GB).

Same here. @nimamahmoudi's method works but now running "wsl -d MyImportedDistrib" give me a root prompt instead of the correct user... ^^' (the import process can be speedup by excluding the install directory in defender...)

@KnuX that is expected. https://github.com/microsoft/WSL/issues/3974 see here for fixes :)

Ran into the same issue, which appears to be related to RAM. I'm on 8GB trying to import an image that is also about 8GB. I was able to get around this issue by temporarily increasing the virtual RAM to 16GB.
https://answers.microsoft.com/en-us/windows/forum/windows_10-performance/how-to-increase-virtual-memory-in-windows-10-a/46dacaf5-15cf-4f5d-9d5a-cba1401ae4c9

I was getting this error on my WSL2 image which was 45GB. I ended up installing a new Ubuntu WSL2 instance then just copying over my vhdx file. Just had to setup my user again as it was logging in with
as root.

The import fails for me with the Unspecified error regardless of whether I try version 1 or version 2. I have 16G of memory, the image size is about 2G. Is there any way to diagnose further?

I got same sutiation, after that I set "swap=120GB"  in .wslconfig file, it worked! @Kristof-Mattei this may be memory lack caused

@nimamahmoudi solution of importing as v1 then converting was the only one that worked for me.

Only thing that worked for me was importing as v1 and turning it into v2.

@stormysky Where is the .wslconfig file stored for WSL2? Or if it's not existing you need to create it by your own?
For me importing as V1 and converting then has worked out, but I've been able to login as root by default after re-import (not sure if it's connected to converting). So had to patch the register to fix it to my primary OS user.

@adolgoff  .wslconfig need to created strored at current user path (c:\users\xxxx, xxx is current user),

None of these work for me, I've tried importing as v1 as well as modifying .wslconfig. No luck

I solved this problem after compact my wsl vdisk:
wsl --terminate ubuntu-18.04 diskpart DISKPART> select vdisk file=%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx DISKPART> compact vdisk
After that, please try wsl export and wsl import again.

Maybe a duplicate of issue #4735.


Couple of questions regarding windows support and direction of this plugin

Hey there,
I have a couple of questions regarding this protobuf-swift plugin.

Is there any windows support for this? If I want to run this on windows would I be able to?

This is a more general question against the direction of this plugin. Is there any ideas for continuous integration and integration into build systems? Or are end-users expected to write scripts that incorporate this plugin. I'm trying to use this in a larger continuous build system.

Thanks,
Vic

Unfortunately, I can't answer your questions because I do not use windows.

@heromyst
I have a cross-platform app that runs on Mac/Windows/Linux. However, my Swift code only runs on Mac, so I only need protobuf-swift on Mac.
I use CMake to manage the build process of all the supporting libraries (ie. protobuf itself), but conditionally only compile protobuf-swift for Mac.
Unless you have Swift code running on Windows (which I think is experimental-only state by Microsoft?) you shouldn’t need to ever compile protobuf-swift on Windows.


Support all dependencies succeeding condition

I don't think this condition is actually possible. I've emailed the following to Dave DeLong:

Hi Dave, sorry to bother you again...

I’m still going through the Advanced NSOperations stuff, as I’ve said, and I’ve been writing unit tests to aid my understanding.

I’m looking at the NoCancelledCondition which isn’t used in your example app, so, trying to infer a little bit how you imagine it to work. My issue is that if a dependency is cancelled, the operation itself never evaluates its conditions - as the parent NSOperation never enters the ready state - so, the expected error cannot be produced. In other words, NSOperation by itself already implements the concept of a no cancelled condition. Right?

My implementation, with unit tests is up here: https://github.com/danthorpe/Operations/pull/7

I’d really appreciate your thoughts - because I’m thinking that the NoCancelledCondition while it sounds nice in practice isn’t actually possible with the way NSOperation’s dependencies work.

Cheers,
Dan

Had some contact with Dave, and he's confirmed that this is a current bug with the Operation implementation in the sample code.


Proposed fix to issue #77 Build Fail on Fedora

(https://github.com/OpenRTX/dmrconfig/issues/77)
Provides BSD strnstr() function if not defined by build environment's C library.

IMO strnstr(haystack, needle, strlen(haystack)) is quite silly.  strstr() would stop when it finds a null terminator.  There is no point in scanning the string first to find the null terminator, and then telling strnstr where to stop while it scans it again.  Just use strstr(), which is more portable in the first place.
It may be true that strnstr() is "safer" (prevent buffer overrun in case the null terminator is missing or got overwritten due to some other bug), but then you give a constant: the maximum limit for the string size, such as the size of a fixed buffer into which it is stored.  And yeah for some reason libc doesn't include strnstr().


Persist Locked Districts

We don't persist locked districts so when you refresh the locked districts disappear. We should persist the locked districts so if you refresh or come back to your map later, we still maintain if they were locked. Save the locked district to the database and show the spinner when we make the call.

@tgilcrest We might want to consider persisting some other aspects as well. A few that come to mind:

Selected geounits
Map position
Population label
Selected district

I think those would be good to consider. However I think they should be done separately for a couple of reasons:

The length of persistence for those state-related items is shorter than I think it needs to be for locking. It's useful to keep those consistent on a session basis, whereas it would be useful to keep locking consistent on a project-basis. Besides just preventing edits, locking is a way for the user to indicate the district is "done" so they can mentally move on from it. That kind of progress marker should be kept on a project-basis so you don't lose your place if you start a new session later. Therefore, we want to save this in the database vs. in local storage so the implementation will be different.
@kshepard mentioned there's some complexity to the ones you suggested that we should talk through before we tackle them

@tgilcrest makes sense to me.

Should we show locked state to read-only view?

@tgilcrest on our call, there was consensus that "no" we should not show locked state in read-only view.

While backend support for this was added in #484, the frontend piece is dependent on reworking undo/redo since we would like to make it so that undo/redo history is retrained farther back than your last save (see #489). As such, we opted to hold off on this until that work is completed since it will be affected by it.

@pcaisse After doing some testing on staging, the undo/redo changes in #498 work great, but it doesn't seem that the lock status of a district is persisted. Locking a district and refreshing the page clears the locked state from the district.

@tgilcrest Yup, I think I just referenced the wrong issue number. Good catch!


Homework 8

Topics:
Spring Rest
Spring Rest Request Param and Path variable
HTTP Request Method Types
Drift Video Link: https://video.drift.com/v/abA38q7RDjCBDtnzALcSrDOm6u9PeLsGUijkBSssKTmA/

Snapshots:

Metric
Value

alert_status
:white_check_mark: OK

bugs
0

code_smells
10

reliability_rating
A (0 Bugs)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0


feat: add support for environment variables in the project configuration

This would be nice e.g. for secrets that should not be committed in the configuration file. This would allow deploying configurations from github actions etc. via a secret store (e.g. github action secrets).
You could access them like this:
admin_api:
    username: ${SHOPWARE_API_USERNAME}
    password: ${SHOPWARE_API_PASSWORD}

Possible side effects are:

Environment strings are now parsed and this could be problematic with some configurations where such strings or part of them (${}, ${SOME_VAR}, $SOME_VAR) are willingly used as values

Looks good thank you!


Variable batch taco2

This adds the variable shape batches to Tacotron 2. The return batch is a dictionary instead of a tuple, so it is easier to call specific tensors in the batch and makes order of parameters irrelevant. I have also updated other Tacotron 2 files that use the dataset, let me detail the changes:

tacotron_dataset.py:

change tuple batch to dict
reads always from raw features and computes normalized features only if use_norm is enabled. This means that stats_path is a necessary argument when normalizing

train_tacotron.py:

simplify stop_gtscomputation with tf.sequence_mask, instead of using max_mel_length
use a common function to reset metrics
add Griffin-Lim audio output if data_config_pathis provided
name plots using utt_id

decode_tacotron2.py:

use a simple dataset for batching, since the class has a lot of boilerplate not necessary for this specific case
add option to decode from sentences in a file
add audio output

README and notebook have also been updated. I've checked training works for both fixed and variable shapes and different values of reduction factor TB.dev (the ones without description are variable shape).
I have changed some argument names (rootdir -> data_dir), because I think are easier to identify, but let me know if I should change it back. Also, some arguments can be added to the config file instead of passing them through command line (train_dir, `outdir', etc.)

@myagues thank you for ur great PR. Let say that this PR will have some confict with the new PR that i will open in this weekend. My pr is a big changes, support multiGPU/singleGPU for base_trainer, all dataset also return batch dictionary rather than tuple. Is that ok if this PR can modify to adapt with my PR ?

Yes, no problem, I'll wait and make modifications after you merge your PR.

@myagues seem you are working with Tacotron-2 for a month :)), can you share ur result :v .

@myagues can you solve a confict :v

Lots of changes :) Give me some time to solve them.

seem you have been working with Tacotron-2 for a month :)), can you share ur result :v .

I am not very familiar with TTS other than Tacotron2, so I have been reading the papers for FS and MelGan with the code for the moment.

I have updated the changes, everything works on my end.
Please, check that imports work on your end, I think you can get rid of sys.path.append by changing the imports.
Mostly cosmetic changes (add GL output, name output files with utt_id), bucket dataset (slightly faster than fixed shape, but may be more noticeable for people with large input sentences) and add text file input in decode.
If you want some further changes, or roll back some others, please let me know.

@myagues thank, i will take a look and merge it :D.

I see there are further conflicts, and many changes to the repo since I pulled the request. Let me close this one and split the changes in smaller pulls so it is easier to merge.

@myagues hi, i want to ask you a question. As you see in a dataloader for tacotron2 (https://github.com/TensorSpeech/TensorFlowTTS/blob/master/examples/tacotron2/tacotron_dataset.py#L136-L137). Can we move this np.load to datasets.map(load_fn) so the data loading can be parallel ?.

I do not know of any way of loading npy files in parallel using such tools. This SO question gives some hints, but we cannot use tf.data.FixedLengthRecordDataset since our features are of variable size, and I have not seen any improvement using tf.pyfunction wrt sequential read with a for loop. Then there is tfio, but it is designed to be used with a single npy file instead of many single ones.
I did a test with map, but was unable to use interleave because it requires a dataset as the return type.
import os
import time

import numpy as np
import tensorflow as tf

def read_npy_file(item):
    data = np.load(item.numpy().decode())
    return data

file_pattern = os.path.join(
    "/data/ljs_dump/train/norm-feats",
    "*-norm-feats.npy",
)

ds_files = tf.data.Dataset.list_files(file_pattern, seed=0)
ds = ds_files.map(
    lambda item: tf.py_function(read_npy_file, inp=[item], Tout=tf.float32),
    num_parallel_calls=tf.data.experimental.AUTOTUNE
)

t_start = time.perf_counter()
for item in ds_files.take(1000):
    _ = read_npy_file(item)
print("Numpy loop:", time.perf_counter() - t_start)

t_start = time.perf_counter()
for item in ds.take(1000):
    pass
print("TF loop:", time.perf_counter() - t_start)

I do not know of any way of loading npy files in parallel using such tools. This SO question gives some hints, but we cannot use tf.data.FixedLengthRecordDataset since our features are of variable size, and I have not seen any improvement using tf.pyfunction wrt sequential read with a for loop. Then there is tfio, but it is designed to be used with a single npy file instead of many single ones.
I did a test with map, but was unable to use interleave because it requires a dataset as the return type.
import os
import time

import numpy as np
import tensorflow as tf

def read_npy_file(item):
    data = np.load(item.numpy().decode())
    return data

file_pattern = os.path.join(
    "/data/ljs_dump/train/norm-feats",
    "*-norm-feats.npy",
)

ds_files = tf.data.Dataset.list_files(file_pattern, seed=0)
ds = ds_files.map(
    lambda item: tf.py_function(read_npy_file, inp=[item], Tout=tf.float32),
    num_parallel_calls=tf.data.experimental.AUTOTUNE
)

t_start = time.perf_counter()
for item in ds_files.take(1000):
    _ = read_npy_file(item)
print("Numpy loop:", time.perf_counter() - t_start)

t_start = time.perf_counter()
for item in ds.take(1000):
    pass
print("TF loop:", time.perf_counter() - t_start)

@myagues yeah, i also finish implement it in local, i use tf.numpy_function for np.load. I notice that the reading speed is 1x faster :))). So let say, a generator function should just return path, load and preprocess function will use dataset.map.


refactor: use lazy injection token for defaults

Issue or need
Same as #902 for defaults

Proposed changes
Same as #902 for defaults

Quick reminders

🤝 I will follow Code of Conduct
✅ No existing pull request already does almost same changes
👁 Contributing docs are something I've taken a look at
📝 Commit messages convention has been followed
💬 TSDoc comments have been added or updated indicating API visibility if API surface has changed.
🧪 Tests have been added if needed. For instance, if adding new features or fixing a bug. Or removed if removing features.
⚙ API Report has been updated if API surface is altered.

#908  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @davidlj95 and the rest of your teammates on  Graphite


monodroid & monotouch configured with FX_NO_BIGINT & FX_NO_STRUCTURAL_EQUALITY

fix fsharp/fsharp#363

I downloaded and tested the nupkg build by AppVeyor. Xamarin Studio is able to compile and run our iPad app successfully with these changes.
https://ci.appveyor.com/api/buildjobs/k0i2ux6r8tx6lib6/artifacts/FSharp.Core.Nuget/FSharp.Core.<IP_ADDRESS>.nupkg


Bot permission check doesn't work

I run several docker instances of the musicbot of yours.
yesterday i wasn't able to get one bot to connect to the channel.
It always told that it hasent the permissions, but it had everything that it needed.
I removed the following code:

if not chperms.connect:
self.safe_print("Cannot join channel "%s", no permission." % author.voice_channel.name)
return Response(
"Cannot join channel \"%s\", no permission." % author.voice_channel.name,
delete_after=25
)

elif not chperms.speak:
self.safe_print("Will not join channel "%s", no permission to speak." % author.voice_channel.name)
return Response(
"Will not join channel \"%s\", no permission to speak." % author.voice_channel.name,
delete_after=25
)

and the bot connected to the channel without any problems.
Here is the config needed to debug.
Bot-Role

Permissions for bot for voice channel

Everyone Permission for voice channel

It is not a bug. The everyone role is the lowest role and every other role overrides it's settings.

Yea, i know that?
If you look at the pictures carefully you should see, that "everyone" is not allowed to connect while members with the "Bot" permissions are able to connect, so i dont see the problem?
And even if we dont look at that at all.
After i removed the code i posted above, the bot joined the channel without problems.
And you try to tell me it's not a bug, when the bot tells me, that it hasn't got enought permissions, i remove this "permission check" from the code, rebuild the docker image with another tag and start the bot with the changed code, and it works without problems?

Ups, looks like I did not read carefully enough. I actually thought the bot joined and you do not want him too.

Can confirm, bot only wants to connect when I give it the server-wide admin permission. It ignores both role and user channel overwrites.

Ok so I duplicated your permissions exactally (no admin perms or anything but ones you have selected.
While I got the same error on bot start up of "will not join, no permission to speak"
After giving the bot-role speak it joined successfully
I believe this issue may not be a bug, just coded to check for speak permission over connect.
If no connect permission the bot returns

Seems not to work.
The Bot, with the Permissions above displays:
[Command]<PHONE_NUMBER>15540224/Alexander (¬summon) Cannot join channel "The Real OGs", no permission.
If i want him to connect. He does not say, that he hasn't got permissions to speak.
If i set the permissions like to did above, the bot displays the same message (obviously)
Sooo, i cannot see where this is not a bug. The Bot can join and speak and tells me it has no permissions.
Again, if i remove the lines you mentions above, the bot works perfectly fine. Even without the explicit "Speak" permissions.

I made sure to test in depth before posting here.
If you would Like to DM me on Discord, (name is the same as here)
By removing the code that checks for the permissions, then it'll most likely do the same, just won't give you the error on the console.

These matter and the bot checks for these

Bot doesn't care if these don't exist

The bot checks both the Connect and Speak permissions for the bot in the channel.  You need both of these to be ☑ for the channel in order for the bot to function correctly.

Like i said... I've already done that.
It still shows that message:

[Command]<PHONE_NUMBER>15540224/Alexander (¬summon) Cannot join channel "The Real OGs", no permission.

I attached into the docker container and started the bot manually.
That way i was sure whats exactly happening.

Drop me a DM with an invite to your server   shall come and take a look (just to prove what i have said and Jayden has confirmed)

The bot is open source. This means that you can edit, and modify the Python code to do what you want with it within reason. We are totally fine with this - but please note we will not help you in our help server on Discord, if your problem appears to be directly caused by your changes.

^ since you admited to removing code from the bot (bot has the checks scripts for the autojoin AND summon command)
But because im stubben as a mule, I'll still help just to prove a point.

if no connect or speak
return no permission
if connect BUT no speak
connect and say no permission to speak
if no connect BUT has speak
return no permission
if HAS BOTH
work successfully

@Kedakai I guess we were right and it's not a bug? Just a permissions issue your end?

@KingGold171 , nope, still a bug. I just had no time to reply or make further steps.
I will be at home around 8pm (Timezone UTC+1).
Will send you a message then.

We can garentee it's not a bug....
Just make sure bot has the required permissions for the voice channel you want it to join.

I am 100% absolutely sure that the permissions are setup in the right way.
I'm only the one hosting the Bot in a Docker Container. If my opinion itn't enough't, the admin of the discord server can talk with you. I've invited him to join this conversation here. Maybe you want to believe me then.

@KingGold171 , we just setup a new server to investigate the problem further.
We found out, that the permission error is not connected to the permissions of the voice chats.
The problem is that he is not allowed to see the messages in the general channel. If thats the case the bot won't join any voice channel even through he still responds in the bot test channel.
If you want to test it by yourself: https://discord.gg/5FZjQyV
Note: This is the unchanged code of yours.

I'll attempt to help you with this today if you give me proper permissions to manage channels and roles

These are the steps for 100% repro:
1: Create new server (because i didn't want to mess up anything)
2: Create bot text channel
3: Create bot voice channel
4: uncheck "read Messages, send messages" in server-wide permissions for "everyone"
5: allow everyone to send, write and read older messages in the bot text channel
6: allow everyone to connect, and to speak in bot voice channel
Now, if you join the voice channel "bot" and try to summon the bot he cannot join.
Error: "Cannot join channel "bot", no permission."
If you set Server-wide permissions for everyone to "read messages, write messages" = allow the bot can join.
If the modified code is used, bot can join even if server-wide "everyone" permissions: read Messages, write messages are unchecked.
This works in any case not depending of which role the bot has. If the role is not allowed to read or write into general, the bot permission check thinks, that the bot is not able to join, although he has permission to join.

Now we have repro steps, this has helped to finally agree with you.  It's wierd why it's going of the read and send for everyone when it's scripted to look for connect and speak.
`        if not author.voice_channel:
raise exceptions.CommandError('You are not in a voice channel!')
    voice_client = self.the_voice_clients.get(channel.server.id, None)
    if voice_client and voice_client.channel.server == author.voice_channel.server:
        await self.move_voice_client(author.voice_channel)
        return

    # move to _verify_vc_perms?
    chperms = author.voice_channel.permissions_for(author.voice_channel.server.me)

    if not chperms.connect:
        self.safe_print("Cannot join channel \"%s\", no permission." % author.voice_channel.name)
        return Response(
            "```Cannot join channel \"%s\", no permission.```" % author.voice_channel.name,
            delete_after=25
        )

    elif not chperms.speak:
        self.safe_print("Will not join channel \"%s\", no permission to speak." % author.voice_channel.name)
        return Response(
            "```Will not join channel \"%s\", no permission to speak.```" % author.voice_channel.name,
            delete_after=25
        )`

Hi
I just found out what seems to be the reson.
Apparently the bot doesnt just need connect and speak, it also needs send messages in all text channels. This is therefore a legit bug.

If this is still an issue in the latest version, please open a new issue.


Traffic Ops - golang API servers CRUD tests

CRUD tests for servers golang endpoints

Can one of the admins verify this patch?

Can one of the admins verify this patch?

test this please

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/1410/
Test PASSed.


Download "All Files" not Working

Usually in Quasar when trying to download a Torrent cotaining many files, just searched for it, chose it and then by hitting Cancel the full torrent is downloaded.
With Elemenetum 1.81 when doing the same having "Download All Files" it just download a few random parts from different files and then sais the download is complete.

works on my environment.
make log file
http://elementum.surge.sh/contribute/log/

okay, i lied.
we do have an issue.
torrent content
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E01.WEBRip.x264-ION10.mp4 (160.6 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E02.WEBRip.x264-ION10.mp4 (110.8 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E03.WEBRip.x264-ION10.mp4 (111.5 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E04.WEBRip.x264-ION10.mp4 (168.5 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E05.WEBRip.x264-ION10.mp4 (123.6 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E06.WEBRip.x264-ION10.mp4 (57.97 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E07.WEBRip.x264-ION10.mp4 (158.8 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E08.WEBRip.x264-ION10.mp4 (167.0 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E09.WEBRip.x264-ION10.mp4 (101.2 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E10.WEBRip.x264-ION10.mp4 (152.8 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E11.WEBRip.x264-ION10.mp4 (91.92 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E12.WEBRip.x264-ION10.mp4 (92.91 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E13.WEBRip.x264-ION10.mp4 (137.1 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E14.WEBRip.x264-ION10.mp4 (96.24 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E15.WEBRip.x264-ION10.mp4 (79.66 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E16.WEBRip.x264-ION10.mp4 (96.22 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E17.WEBRip.x264-ION10.mp4 (72.07 MB)
  Love.Death.and.Robots.S01.WEBRip.x264-ION10/Love.Death.and.Robots.S01E18.WEBRip.x264-ION10.mp4 (156.1 MB)

vs
FS content
$ ls -s1 --block-size=MB
0MB Love.Death.and.Robots.S01E01.WEBRip.x264-ION10.mp4
0MB Love.Death.and.Robots.S01E02.WEBRip.x264-ION10.mp4
2MB Love.Death.and.Robots.S01E03.WEBRip.x264-ION10.mp4
169MB Love.Death.and.Robots.S01E04.WEBRip.x264-ION10.mp4
2MB Love.Death.and.Robots.S01E05.WEBRip.x264-ION10.mp4
58MB Love.Death.and.Robots.S01E06.WEBRip.x264-ION10.mp4
159MB Love.Death.and.Robots.S01E07.WEBRip.x264-ION10.mp4
167MB Love.Death.and.Robots.S01E08.WEBRip.x264-ION10.mp4
102MB Love.Death.and.Robots.S01E09.WEBRip.x264-ION10.mp4
153MB Love.Death.and.Robots.S01E10.WEBRip.x264-ION10.mp4
2MB Love.Death.and.Robots.S01E11.WEBRip.x264-ION10.mp4
93MB Love.Death.and.Robots.S01E12.WEBRip.x264-ION10.mp4
138MB Love.Death.and.Robots.S01E13.WEBRip.x264-ION10.mp4
97MB Love.Death.and.Robots.S01E14.WEBRip.x264-ION10.mp4
3MB Love.Death.and.Robots.S01E15.WEBRip.x264-ION10.mp4
97MB Love.Death.and.Robots.S01E16.WEBRip.x264-ION10.mp4
3MB Love.Death.and.Robots.S01E17.WEBRip.x264-ION10.mp4
157MB Love.Death.and.Robots.S01E18.WEBRip.x264-ION10.mp4

if you choose some file and then cancel buffering or stop video - then it works correctly.
also this issue affects "Download" menu item from context addon.

from UX point of view we actually should delete torrent if user cancelled choice dialog. (and even for "download" menu item it will be ok - you will have to choose something, but this is ok since you can download 1 file if you set to download only chosen file in settings.)
if we want to support described legacy behaviour from quasar - then i am not sure how to fix it gently, since we make choices about what to download (1 file, all files, season files) on buffering stage.

@antonsoroko I have no idea if the behavior in Quasar was designed that way or not.
In Elementum I wanted to make sure to download only selected files. If you selected option to always download all files - they should be downloaded regardless of your selection. If you cancel selection and you don't have enabled option to download all file - nothing should be downloaded.

@elgatito
the thing is that right now if user has "download all" and cancel selection - elementum downloads some files (or parts of some files).

Thanks all for your replies.
Exactly, if you choose "All files", select a torrent and then cancel the download and later select "Continue downloading" it won't work. Elementum will download random parts of some files.
Even choosing "Download Complete Torrent" from torrent list won't fix this.

@antonsoroko I believe torrent is dropped from current torrents, because file selection was aborted and that is why you ahve only random parts, because download was cancelled.


FIX: Split aCompCor into aCompCor, cCompCor, wCompCor

Fixes #2384.

Hello @effigies! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file fmriprep/interfaces/confounds.py:

Line 122:9: E124 closing bracket does not match visual indentation

Also visible here: https://circle-production-customer-artifacts.s3.amazonaws.com/picard/forks/5d730ad8a6f141375eae36c4/78558509/612e2df12788b45e41dd37de-0-build/artifacts/tmp/ds210/derivatives/fmriprep/sub-02/func/sub-02_task-cuedSGT_run-1_desc-confounds_timeseries.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20210831T142808Z&X-Amz-SignedHeaders=host&X-Amz-Expires=60&X-Amz-Credential=AKIAJR3Q6CR467H7Z55A%2F20210831%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=53682363bf33f3cd5e85aa213e9d90c9d0135367b3327d17a130b6e44335739b
Note: there are all these dropped_X metadata fields. Is there any advantage to having them in, or should we filter them out?


Add sign and notarize for macOS. Closes #35

Closes #35
TODO

[ ] figure out which certificate exactly to use, or issue a new one. (In mail thread) -> get a new certificate
[ ] test artifacts on intel and silicon macs

Latest error:
  ⨯ release failed after 3m11s               error=sign: gon failed: exit status 1: ==> ✏  Signing files...
    Code signing successful
==> 📦  Creating Zip archive...
    Zip archive created with signed files
==> 🍎  Notarizing...
    Path: ./dist/saturn-L2-node.zip
    Submitting file for notarization...
    Error notarizing

❗ Error notarizing:

1 error occurred:
	* 1 error occurred:
	* Unable to upload your app for notarization. (-1011

at least signing the x86_64 works so far

@bajtos you can check out the release artifacts here: https://github.com/filecoin-saturn/L2-node/actions/runs/3099194083

I think it's better to work with gon maintainers to help everybody understand what changes are need to make gon work for darwin/arm64.

I reached out here: https://github.com/mitchellh/gon/issues/40#issuecomment-1258177627
I also cleaned up the branch, could you review please? 🙏


OLM: enable support for OperatorGroup

/cc @nicolaferraro

Let's defer this a bit.
Apart from enabling support for multiple namespaces, there are multiple places where we use the NAMESPACE env variable as if it contains "" or a single namespace, while it should be parsed to check if it contains multiple namespaces.
I think it's not mandatory to have it in 1.0.0.


[feature] add configurable src access list to Load Balancer

I have had several requests from users to be able to add a firewall to their container, so that they can restrict access to certain subnets.
The easiest way to do this would seem to be to add an optional item to Load Balancer configuration so that you can configure a list of subnets from which connection is allowed.
It may be possible to do this using the defaults section of the custom haproxy.cfg (if so, documentation would be nice), but having the feature built-in on a per-proxy basis would make it much easier to use.

This would fall under https://github.com/rancher/rancher/issues/2179 .. there are a hundred options everybody that needs customization needs a different 2.  So we want 1st class API/yaml fields for the most common things and options to put in your own haproxy config for everything else, rather than being in the business of supporting all hundred.

Closing in favor of #2179


[SPARK-32688][SQL][TESTS] Add special values to LiteralGenerator for float and double

What changes were proposed in this pull request?

The LiteralGenerator for float and double datatypes was supposed to yield special values (NaN, +-inf) among others, but the Gen.chooseNum method does not yield values that are outside the defined range. The Gen.chooseNum for a wide range of floats and doubles does not yield values in the "everyday" range as stated in https://github.com/typelevel/scalacheck/issues/113 .
There is an similar class RandomDataGenerator that is used in some other tests. Added -0.0 and -0.0f as special values to there too.
These changes revealed an inconsistency with the equality check between -0.0 and 0.0.
Why are the changes needed?

The LiteralGenerator is mostly used in the checkConsistencyBetweenInterpretedAndCodegen method in MathExpressionsSuite. This change would have caught the bug fixed in #29495 .
Does this PR introduce any user-facing change?

No
How was this patch tested?

Locally reverted #29495 and verified that the existing test cases caught the bug.
Added an UT for the -0.0 equality check to avoid counting on the random consistency checks to catch this every time.

Test build #127816 has started for PR 29515 at commit 2dce36e.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/32441/
Test PASSed.

Test build #127816 has finished for PR 29515 at commit 2dce36e.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/127816/
Test FAILed.

There is a org.apache.spark.sql.RandomDataGenerator, that does pretty much the same thing as the LiteralGenerator. Perhaps they should be unified?

This is a good catch! Let's fix the found bugs one by one and merge this PR at the end.
@tanelk is this the only bug we found so far? https://issues.apache.org/jira/browse/SPARK-32110

This is a good catch! Let's fix the found bugs one by one and merge this PR at the end.
@tanelk is this the only bug we found so far? https://issues.apache.org/jira/browse/SPARK-32110

Currently yes, the -0.0 inconsistency is the only bug.
I would add to the jira that there is also inconsistency in the code gen and the interpreted code paths: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/127791/testReport/org.apache.spark.sql.catalyst.expressions/PredicateSuite/AND__OR__EqualTo__EqualNullSafe_consistency_check/

Test build #127840 has started for PR 29515 at commit 9a3b983.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/32466/
Test PASSed.

Test build #127840 has finished for PR 29515 at commit 9a3b983.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/127840/
Test FAILed.

Test build #127840 has finished for PR 29515 at commit 9a3b983.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

org.scalatest.exceptions.TestFailedException: Incorrect evaluation (codegen off): [false,0.0] IN ([true,Infinity],[true,7.328233268583497E27],[false,-0.0],[true,2.28620591956394208E17],[true,-1.7155423374193937E-160],[null,7.853276721068246E-75],[null,Infinity],[true,null],[false,null]), actual: false, expected: true
This is a new finding. But also related to the 0.0 == -0.0.

Test build #128299 has started for PR 29515 at commit 529aba8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/32925/
Test PASSed.

Test build #128299 has finished for PR 29515 at commit 529aba8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/128299/
Test PASSed.

retest this please

@cloud-fan, now that #29647 is merged, can this be merged also?

@cloud-fan, now that #29647 is merged, can this be merged also?

Are all the bugs that this PR found already fixed now?

retest this please

Test build #128688 has started for PR 29515 at commit 529aba8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/33311/
Test PASSed.

@cloud-fan, now that #29647 is merged, can this be merged also?

Are all the bugs that this PR found already fixed now?

I believe, that they were the manifestation of the 0.0 != -0.0

Test build #128688 has finished for PR 29515 at commit 529aba8.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/128688/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/33331/
Test PASSed.

Test build #128707 has started for PR 29515 at commit 529aba8.

Test build #128707 has finished for PR 29515 at commit 529aba8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/128707/
Test PASSed.

hmm, does this PR catch https://issues.apache.org/jira/browse/SPARK-32110 ?

hmm, does this PR catch https://issues.apache.org/jira/browse/SPARK-32110 ?

That's more of an umbrella jira, that mainly covers inconsistency between operators.
Here we uncovered an inconsistency within the equality operators codegen and non-codegen paths.

retest this please

Test build #128717 has started for PR 29515 at commit 529aba8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/33341/
Test PASSed.

Test build #128717 has finished for PR 29515 at commit 529aba8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/128717/
Test PASSed.

Merged to master/3.0. To check if no flaky tests happens, I will keep watching Jenkins jobs. Anyway, thanks, @tanelk !


Update forces (labels) in force diagram after changing node

After some modification, the forces should be updated in the force-diagram.
That is, the attribute edge['force'] should be updated in the ForceDiagram and in the visualisation on Rhino.
Usually these forces can be just calculated from the new "lengths" of the force diagram, but there is one special case when these "lengths" involves the length of the "loaded edge" = "independent edge". This is treated in issue #22.

not entirely sure i understand the problem

This basically corresponds to recalculate the loads and redraw the force diagram with the updated values for the forces after a modification is executed in the force diagram.
This is a bug that should be resolved.

With new set up Scene() the refresh works properly. Closing...


Can I run this without using Docker?

I am trying to get LTI 1.3 working as simply as possible. Docker and docker-compose are two things I would rather not learn as they add to the time to get this working.
Please add some instructions for those of us trying to simplify.

The code will work on its own if you already have apache/php on your machine. Just copy the src folder into your web directory and hit it from there.
The docker is advised because it prevents any issues with different configurations/versions of PHP. You can just run the one command in the readme
There is also a composer branch https://github.com/IMSGlobal/lti-1-3-php-library/tree/composer bit the branch is still experimental. There is an example of it being used here https://github.com/IMSGlobal/lti-1-3-php-library/blob/composer/src/game_example/composer.json

Thanks, but I have copied the src folder. What do you mean "hit it from there"? What URL do I hit?
Also, in the README, you say "This can be found in each example tool's code at db/configs/local.json. To configure your registration add a JSON object into the local.json file in the following format."
I cannot find local.json. Do I create it?
Sorry to be a pest, but your project might be the only working example of LTI 1.3 on the net, if I can get it to work.

You will have to configure the tool into the platform you are testing with
The urls will likely be something like
OIDC Login URL http://localhost/game_example/login.php
LTI Launch URL http://localhost/game_example/game.php
Provided that everything is running on port 80
You will have to create the local.json. You can use the same format as https://github.com/IMSGlobal/lti-1-3-php-library/blob/master/src/game_example/db/configs/example.json or just edit that file too
Depending on which platform you are using, you may need to expose the tool over https. Something like ngrok is good for that if you don't have a server

@MartinLenord please answer this questions. I am also looking for a complete solution. And it would be better to have a Laravel package.

@MartinLenord please answer this questions. I am also looking for a complete solution. And it would be better to have a Laravel package.

@roy-at-binate
Did you find anything relative ? as i am also looking for solution to be integrated in Laravel .
@MartinLenord It would be good if we have some more detailed insights to utilize this on Laravel as well.


Add privacyDelete and privacyAccess actions to HygieneOps original PR: #1787

Add new actions to the HygieneOps dataset to support Privacy Service operations.
https://jira.corp.adobe.com/browse/PLAT-170201 "XDM: Update Hygiene Ops Schema to Support Privacy Access"
https://jira.corp.adobe.com/browse/PLAT-170199 "XDM: Update Hygiene Ops Schema to Support Privacy Delete"

Will open after signing CLA

recheck


fix(menu): freeze player after teleport until the collision has loaded

This prevents falling underground if player has slow HDD / low-end PC

Thanks for the PR!
For me it didn't work, apparently FindZForCoords() is always returning 0.

@tabarra FindZForCoords() returning 0 could be another issue, suspect it happens when teleporting to waypoint.
The way I tested this is I entered a server with my main PC and with a low-end laptop (~20 FPS in FiveM on minimal settings), and summoned laptop player to main PC player via txAdmin menu, players were 9km away from each other.
Laptop player always fell underground without this changes, and waiting for collisions to load fixed the issue 100%.

Hmm... I'm testing right now and apparently for the tpToWaypoint HasCollisionLoadedAroundEntity() returns 1 even when it didn't load, so I'm really at a "wtf" stage.
Can you try to solve this issue? What worked for me was:

teleporting the player to the x, z, 0 coords;
waiting 500;
getting the new Z;
teleporting player again, but with the new Z;

Teleporting to z = 0 doesn't work for me in case waypoint is set to high places (e.g. mount Chiliad).
I've also tried teleporting to z = 1000, then decreasing z by 50 and teleporting again, until correct z coords are returned by FindZForCoords() function and player can be teleported to precise terrain height. This did work better for high and low places, still not in 100% cases however. If no better solution is found, I can commit this one. Guess we would have to TP player to z = 1000 and equip him with parachute, when z coord wasn't found after all this manipulations 🙄.

For your code, shouldn't you first check if the player is in the veh, and then freeze the veh instead of the ped?
Apparently FreezeEntityPosition() doesn't work if you freeze the pe and he's in a vehicle.
(also one of the identation is with tabs instead of spaces)

LGTM logic wise and worked well in testing, merged into development branch


Remove skip and fail as well if None

I used the action as is and the check mark in Dark mode is greyed out so I changed it to a better check mark.
Then the red X and the skip parts were too loud and in your face when there were 0 tests skipped and 0 errors so I removed them if it didn't exist.
Can make the None if 0 optional if need be too

Moved PR to feature branch in our fork


fix(user-agent): remove dependency of

Summary
remove dependency on unmaintained library
Description
used new getVersion method of sphere-node-sdk
removed dependeny on load-module-pkg
had to add sphere-node-sdk to main dependency - I guess that's the main debate here
Todo

Tests

[ x] Unit
[ x] Integration
[x ] Acceptance

[ ] Documentation

I guess PS people should review this since they are heavy users

Coverage remained the same at 89.351% when pulling 7da0beefc044d91a55cdb5be4787bca34758dd32 on RemoveDependencyOn-load-module-pkg=#58 into e39b07a188b081346b348bcf31ab95349e300ce4 on master.


[WebToolsE2E][Aspire] After successfully publishing an Aspire project, the Container app Start time doesn't match the current time after restarting the project in the 'Aspire Dashboard'

INSTALL STEPS

Clean machine: Win11 x64 23h2 ENU
Install SDK 8.0.400
Install Aspire 8.1.0
Install latest released azd v1.9.6
Install git v2.46.0

REPRO STEPS

Open CMD, run following command to create an Aspire Starter App project and deploy it

dotnet new aspire-starter -o AspireStarterApp
cd AspireStarterApp/AspireStarterApp.AppHost
azd init
azd up

After successful deployment, open the deployed "Aspire Dashboard" URL

In the Aspire dashboard resources, remember the Container app Start time, then Restart 'apiservice' under Commands

Note:

After refreshing the page, the Container app Start time matches the current time

ACTUAL
During the restart process, the Start time matches the current time. After the restart is complete, the Container app Start time doesn't match the current time

EXPECTED
The Container app Start time matches the current time after the project restart is complete

@snehapar9 Can you take a look?


Allow a different delay per attempt.

This allows progressive delay in Producer.send(). For example:
producer.send(data, {
  retries: {
    attempts: 10,
    delay: 60000,
    delays: [1000, 2000, 5000, 10000, 30000]
  }
});

The send() attempt will happen: immediately, in 1, 2, 5, 10, 30, 60, 60, 60, 60 sec.
This is helpful in case kafka becomes unavailable for some reason, but the produces continue to send new messages. In case the kafka was unavailable for couple of seconds only, we'll make sure to send it sooner than later.
Feel free to review. I'll fix anything ASAP.
Thank you @oleksiyk for the amazing full featured module! Great job :)

While discussing https://github.com/oleksiyk/kafka/issues/59 I decided to add increasing delay for producer attempts. Something like attempt * options.retries.delay. This will probably be enough and easier to use than a implicit list of delays. What do you think?

It depends on the algorithm. If it is simple attempt * options.retries.delay then it is not flexible enough for us. In fact, any algorithm would not satisfy the need for all the people. Thus the delays array is the best solution for most, if not all, the needs.

I don't think it really needs an algorithm, its just a failure retries not something over complicated. And even in case it needs an algorithm I would prefer to provide a callback function option that will return delay for next attempt. Why would you need to it so strictly configured? I can't imagine these delay to be somehow synchronised with app monitoring or something.

I think the backoff approach implemented as part of #59 will be sufficient for most people's requirements including ours. I see no reason to require an array of values.

@oleksiyk if I change this PR from array to a callback (task, attempt) would that be merged?

Frankly, I think this is an over complication. Callback return value should be verified, it should probably be promisified and its errors should somehow be handled. And all this to just calculate the delay? I really hesitate.
Can you please explain why you need it to be so controllable and why attempt * delay won't work for you?
p.s.
It can't be (task, attempt) because there is an array of tasks to retry, its probably (tasks, attempt).

Callback return value should be verified, it should probably be promisified and its errors should somehow be handled.

No, and no. No need value verification. Bluebird does that for us. Promisification is an unnecessary overcomplication too.
About attempt * delay... I just thought of it one more time. Yeah it should work fine for us. :)
So, I'm changing this PR to attempt * delay then?

No, and no.

What I mean is that this is not acceptable:
return Promise.delay(options.retries.getNextAttemptDelay(attempt)).then...

Yes, the program won't crash if callback throws because the callback is called inside the Promise, but you can't verify callback return value here and you can't handle its errors. In order to do so you'll need to either explicitly promisify it  or wrap in a .then() and then attach error handlers. Thats exactly what I meant.

So, I'm changing this PR to attempt * delay then?

Yes, please!

Done. Please check @oleksiyk

I can't merge this.

its not squashed
its a mix of different changes (unrelated typos and code)
its adding absolutely unnecessary private method
the test only checks that at least required number of attempts were performed, not the total number of attempts

GitHub new feature allows you to squash with a single click when you merge a PR.
You got us very surprised with this statement. Sounds like: "Can't accept because you fixed it". Could you please reconsider that?
Removed the method. Unit test had to be removed too as it was testing the method.
The existing tests are complete enough I believe. The delays are tested in the 'should return an error for unknown partition/topic and retry 5 times'.

Could you please merge and publish?
Ми тут були дуже здивовані першому та другому пунктах, Олексію.

Guys, its totally my right not to struggle reading through unrelated changes and commits before I decide to merge the PR.
As I said in my very first comment, I was going to implement progressive delay myself so I'm not open to spend any more time on the two lines code change.


Add VCR::Normalizers::Header#[] for Net::HTTPHeader compatibility

The library I'm using VCR on is accessing headers directly from the response object. For example:
header_value = response['header-name']

The library in question uses Net::HTTP. The Net::HTTPResponse class includes the Net::HTTPHeader module, which defines #[] to access headers directly from the response.
This patch adds support to indexing directly headers from the response object. The code is the same as used in Net::HTTPHeader.
I'm happy to add a spec for this change, but I'll need a bit of direction, I have little experience with RSpec.

Thanks for the Pull Request...but I'm not sure I get why this is needed yet.
VCR::Response is used internally so VCR has a consistent interface to work with regardless of which HTTP library is used.  It's also made available to end users in some of the hooks (before_record, before_playback, after_http_request).
If your project uses Net::HTTP, I would expect it to interact with the the Net::HTTPResponse response object rather than VCR::Response.  Can you paste some example code of how you're using VCR?  Or, better yet, paste a link to your project if it's open source.
Thanks!

OK, I see what you're doing now.  However, it's a use case that I don't think VCR should support.  It's unreasonable to expect a VCR::Response to conform to a different interface that some other library expects because it expects Net::HTTPResponse objects.  It's a slippery slope--once I make VCR::Response duck-type to Net::HTTPResponse, people may start asking to have it duck type to an Excon response or a Typhoeus response--and I definitely don't want to take VCR in that direction.

I have another way around this technique, so I can live without this change. I can always monkey-patch it in if needed.

Ruby actually provides you with the tools to do this in a simple, clean way, with no monkey-patching needed.  Here are two ways you can do it.
With an extension module:
module VCRNetHTTPResponseAdapter
  def [](header_key)
    # ...
  end
end

VCR.configure do |c|
  c.before_record do |interaction|
    response = interaction.response
    response.extend VCRNetHTTPResponseAdapter
    Recurly.do_something_with_response(response)
  end
end

Alternately, you can use a delegate object:
require 'delegate'

class VCRNetHTTPResponseShim < DelegateClass(VCR::Response)
  def [](header_key)
    # ...
  end
end

VCR.configure do |c|
  c.before_record do |interaction|
    response = VCRNetHTTPResponseShim.new(interaction.response)
    Recurly.do_something_with_response(response)
  end
end

Let me know if you have any questions.

No questions, thanks.


fix: Mover should not ignore non-text inputs

The Movercurrent ignores all inputs by using the selector input https://github.com/microsoft/tabster/blob/90ca3718a81fe53730a23d6cddae87cbbf54ff2f/src/Mover.ts#L28

updates the current _inputSelector to be _textInputSelector to be more specific and adds a specific list of exclusions under _nonTextInputSelector

Fixes #211

Closed in favour of #212


params.txt

How do I get this file? What data is stored in it?

you can see https://github.com/ruirangerfan/Three-Filters-to-Normal/blob/master/c_code/data/android/params.txt
the first 4 number is the K of camera.
the 5th number is the number of the data. In the example, only 1 data need to be used.

I have update the C++ code, it is more easily to use. you can have a try.

thanks!!!!


workflows/check-nixf-tidy.yml: init

Description of changes
CC @inclyc @Sigmanificient (I saw you were working on such clean-ups) @rhendric (https://github.com/NixOS/nixpkgs/issues/313981#issuecomment-2232074936)
Here is an example test: https://github.com/Aleksanaa/nixpkgs/pull/1/files
This check will fail on:

Parsing error (Thanks to the recursive decent parser, it is possible to get better error reporting than nix itself) https://github.com/nix-community/nixd/tree/main/libnixf#background--motivation
Unused variables (function arguments, variable definition, unused rec, with, etc). This addresses https://github.com/NixOS/nixpkgs/issues/313981
Escaping with (reference variables outside of with expression). This also partially addresses https://github.com/NixOS/nixpkgs/issues/208242

It uses nixf-tidy in nixf package. The json output is processed by jq to form GitHub workflow messages, which will be rendered in PR's 'Files changed' overview.
Like the workflow of nixfmt check, this workflow only fails when regression occurs (that is, the old file has no errors, but errors occur after the change; or the new file has errors). This is to avoid some larger files that cannot pass nixf-tidy (such as all-packages.nix). A feature that filters errors based on the lines affected (in git diff) may be implemented, but may require nixf improvements and more testing to work well.

Add a :+1: reaction to pull requests you find important.

Well i did't knew about nixf-tidy, used deadnix --json for cleanup, but it can report false negatives

for the CI output, maybe printing the lien in question would be wanted to provide more context than just the affected line/col:
  [line 30, column 38 ~ line 30, column 45] sema-escaping-with: this variable comes from the scope outside of the `with` expression
    [line 5, column 2 ~ line 5, column 9] var-bind-to-this: variable will bind to this definition

would become
[line 30, column 38 ~ line 30, column 45]
`     maintainers = with maintainers; [ version ];`
sema-escaping-with: this variable comes from the scope outside of the `with` expression

  [line 5, column 2 ~ line 5, column 9]
  `  version = "0.35.1";`
  var-bind-to-this: variable will bind to this definition

Ohh! GitHub Actions can actually do this very nicely with a workflow command:
echo "::warning file=app.js,line=1,col=5,endColumn=7::Missing semicolon"

This should highlight the problematic lines in the file view of PRs!

Yeah that would be even better

Ohh! GitHub Actions can actually do this very nicely with a workflow command:
echo "::warning file=app.js,line=1,col=5,endColumn=7::Missing semicolon"

This should highlight the problematic lines in the file view of PRs!

Great idea! It works now: https://github.com/Aleksanaa/nixpkgs/pull/1/files

reported twice?

reported twice?

Yeah, that looks like a bug with nixf itself. I can temporarily remove duplicate lines to solve this problem

I wouldn't worry about that, it's not a big problem imo. I'd prefer having this fixed upstream in nixd, at which point we can just update the version to get it resolved :)

Still another problem, it looks like the old error message is not cleared when the new error message appears. If you change the title or the like, multiple error messages may be generated

will an empty maintainer list mantainers = with lib.mantainers; [] tigger a warning CI?

will an empty maintainer list mantainers = with lib.mantainers; [] tigger a warning CI? We might want to filter this one if it causes problem

Yes, it's unused with. But I want it to report this error because we don't really need that with. Also, it will not throw new errors for files that already contain errors before editing.

Still another problem, it looks like the old error message is not cleared when the new error message appears. If you change the title or the like, multiple error messages may be generated

This is getting more messy, but I believe you should be able to only conditionally output the errors using something like
if [[ "${{github.event_name}}" == 'edited' ]]; then
  echo "Edited the PR"
  if [[ -z "${{github.event.edited.changes.base}}" ]]; then
    echo "But didn't change the base branch, only the description/title"
    # Don't output errors
  else
    # Do output errors, rare case of changing the base branch, which might cause different errors. Can't void the old ones unfortunately though, but should happen rarely.
  fi
else
  # Do output errors
fi

This is getting more messy, but I believe you should be able to only conditionally output the errors using something like

This works now

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/we-added-a-linter-to-nixpkgs-checking-workflows/49722/2


Suggest Apache NetBeans as a candidate

Added Apache NetBeans as candidate

Project URL
http://netbeans.apache.org
Category
IDE, development
Description
NetBeans is both an IDE and a platform for development. NetBeans is an integrated development environment (IDE) for Java, PHP, C, C++, HTML5,[4] and JavaScript. The NetBeans Platform is a framework for simplifying the development of Swing desktop applications. The NetBeans IDE bundle for Java SE contains what is needed to start developing NetBeans plugins and NetBeans Platform based applications; no additional SDK is required.
Why it should be included to Awesome macOS open source applications  (optional)
NetBeans has been accepted by Apache as a top-level project. It has a stable and engaged development community who have been driving development of the application for many years. There is a supportive community for new and experienced users. All Apache NetBeans source code is freely available to build yourself, or you can download (unsupported) daily development builds.
Checklist

[x] Edit applications.json instead of README.md.
[x] Only one project/change is in this pull request
[x] Screenshots(s) added if any
[x] Has a commit from less than 2 years ago
[ ] Has a clear README in English

          1 Warning

:warning:
Found 1 link issue, a project collaborator will take care of these, thanks :)

Link issue by awesome_bot

Line
Status
Link

4902
404
https://raw.githubusercontent.com/michaelvillar/timer-app/master/screenshots/timer.png

  Generated by :no_entry_sign: Danger

@fyodorovich Thank you 👍


Provisioning k8s cluster on amazon/aliyun

Provisioning k8s cluster on amazon and aliyun, with configurations like accessId and accessSecrets.

aliyun
wrap a class AliyunClient base GSClient of aliyun python sdk, provide  create_cluster,  deploy, delete_cluster.

ref: https://help.aliyun.com/document_detail/177423.html?spm=a2c4g.11186623.6.1501.6bbf123eJ18rBk

aliyun
wrap a class AliyunClient base GSClient of aliyun python sdk, provide  create_cluster,  deploy, delete_cluster.

ref: https://help.aliyun.com/document_detail/177423.html?spm=a2c4g.11186623.6.1501.6bbf123eJ18rBk

aws

ref: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html

aws

ref: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html

aliyun
wrap  AliyunClient class base on GSClient of aliyun python sdk, provide  create_cluster,  deploy, delete_cluster.

ref: https://help.aliyun.com/document_detail/177423.html?spm=a2c4g.11186623.6.1501.6bbf123eJ18rBk

aws

ref: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html

For AWS, the kube config could be obtained via https://stackoverflow.com/a/54954302/5080177

aliyun
wrap  AliyunClient class base on GSClient of aliyun python sdk, provide  create_cluster,  deploy, delete_cluster.

ref: https://help.aliyun.com/document_detail/177423.html?spm=a2c4g.11186623.6.1501.6bbf123eJ18rBk

aws

ref: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html

For AWS, the kube config could be obtained via https://stackoverflow.com/a/54954302/5080177

I think we may need to add some parameters for the session for this task. Could you give a proposal here?

I think we may need to add some parameters for the session for this task. Could you give a proposal here?

I think we may need to add some parameters for the session for this task. Could you give a proposal here?

maybe add a cluster_config param to session.  we pass a json to the cluster_config param, it can include:
{
     access_id_key,
     access_id_secret,
      region
}

I think we may need to add some parameters for the session for this task. Could you give a proposal here?

maybe add a cluster_config param to session.  we pass a json to the cluster_config param, it can include:
{
     access_id_key,
     access_id_secret,
      region
}

I think we may need to add some parameters for the session for this task. Could you give a proposal here?

maybe add a cluster_config param to session. we pass a json to the cluster_config param, it can include:
{
     access_id_key,
     access_id_secret,
      region
}

update:
we need four base parameters  cluster_type, access_id_key,  access_id_secret, region to init a client,
a cluster_config parameter to specify a config file of cluster to create.

I think we may need to add some parameters for the session for this task. Could you give a proposal here?

maybe add a cluster_config param to session. we pass a json to the cluster_config param, it can include:
{
     access_id_key,
     access_id_secret,
      region
}

update:
we need four base parameters  cluster_type, access_id_key,  access_id_secret, region to init a client,
a cluster_config parameter to specify a config file of cluster to create.

aliyun cluster config file example:
{
    "cluster_type":"Kubernetes",
    "name":"my-test-Kubernetes-cluster",
    "region_id":"cn-beijing",
    "disable_rollback":"true",
    "timeout_mins":"60",
    "kubernetes_version":"1.12.6-aliyun.1",
    "snat_entry":"true",
    "endpoint_public_access":"false",
    "cloud_monitor_flags":"false",
    "node_cidr_mask":"25",
    "proxy_mode":"iptables",
    "tags":[],
    "addons": [{"name": "flannel"},{"name": "aliyun-log-controller","config": "{\"sls_project_name\":\"k8s-log-c64f6eab6a1764d3dbee3dc2b9e41****\"}"},{"name": "nginx-ingress-controller", "config": "{\"IngressSlbNetworkType\":\"internet\"}"}],
    "node_port_range":"30000-32767",
    "login_password":"test****",
    "cpu_policy":"none",
    "master_count":"3",
    "master_vswitch_ids":["vsw-2ze48rkq464rsdts****","vsw-2ze48rkq464rsdts1****","vsw-2ze48rkq464rsdts1****"],
    "master_instance_types":["ecs.sn1.medium","ecs.sn1.medium","ecs.sn1.medium"],
    "master_system_disk_category":"cloud_efficiency",
    "master_system_disk_size":"40",
    "worker_instance_types":["ecs.sn2.3xlarge"],
    "num_of_nodes":"3",
    "worker_system_disk_category":"cloud_efficiency",
    "worker_system_disk_size":"120",
    "vpcid":"vpc-2zegvl5etah5requ0****",
    "worker_vswitch_ids":["vsw-2ze48rkq464rsdts****"],
    "container_cidr":"172.20.XX.XX/16",
    "service_cidr":"172.21.XX.XX/20",
    "worker_data_disks": [{"category": "cloud_ssd", "size": 500}],
    "master_data_disks": [{"category": "cloud_ssd", "size": 500}],
    "taints":[{"key": "special", "value": "true", "effect": "NoSchedule"}],
}

aliyun cluster config file example:
{
    "cluster_type":"Kubernetes",
    "name":"my-test-Kubernetes-cluster",
    "region_id":"cn-beijing",
    "disable_rollback":"true",
    "timeout_mins":"60",
    "kubernetes_version":"1.12.6-aliyun.1",
    "snat_entry":"true",
    "endpoint_public_access":"false",
    "cloud_monitor_flags":"false",
    "node_cidr_mask":"25",
    "proxy_mode":"iptables",
    "tags":[],
    "addons": [{"name": "flannel"},{"name": "aliyun-log-controller","config": "{\"sls_project_name\":\"k8s-log-c64f6eab6a1764d3dbee3dc2b9e41****\"}"},{"name": "nginx-ingress-controller", "config": "{\"IngressSlbNetworkType\":\"internet\"}"}],
    "node_port_range":"30000-32767",
    "login_password":"test****",
    "cpu_policy":"none",
    "master_count":"3",
    "master_vswitch_ids":["vsw-2ze48rkq464rsdts****","vsw-2ze48rkq464rsdts1****","vsw-2ze48rkq464rsdts1****"],
    "master_instance_types":["ecs.sn1.medium","ecs.sn1.medium","ecs.sn1.medium"],
    "master_system_disk_category":"cloud_efficiency",
    "master_system_disk_size":"40",
    "worker_instance_types":["ecs.sn2.3xlarge"],
    "num_of_nodes":"3",
    "worker_system_disk_category":"cloud_efficiency",
    "worker_system_disk_size":"120",
    "vpcid":"vpc-2zegvl5etah5requ0****",
    "worker_vswitch_ids":["vsw-2ze48rkq464rsdts****"],
    "container_cidr":"172.20.XX.XX/16",
    "service_cidr":"172.21.XX.XX/20",
    "worker_data_disks": [{"category": "cloud_ssd", "size": 500}],
    "master_data_disks": [{"category": "cloud_ssd", "size": 500}],
    "taints":[{"key": "special", "value": "true", "effect": "NoSchedule"}],
}


Refactored code to improve the diffing implementation

Fixes #60.

It looks so much better that way!


The azure-functions-archetype artifact is not an archetype

When I tried to create project for azure functions using azure-functions-archetype in eclipse, I encountered the problem as follows
Unable to create project from archetype [com.microsoft.azure:azure-functions-archetype:1.39 -> https://repo1.maven.org/maven2/]
The defined artifact is not an archetype
Can anyone help me solve the issue?
Thank you

@nowitzkihuang Could you please share your eclipse version and the screen shot of the issue, I tried with Eclipse 2021-03 and it seems works fine.
Besides, if the issue still reproduced, as a workaround, could you please try generate the project with mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype and import the result to Eclipse?

@Flanker32 Hi  the version of eclipse I use is as follows

and the screen shots are these

After I selected the azure functions archetype and jump to the next step, these are no properties as you show above
I also tried to use cmd, but it still failed, the screen shots show as follows, there is no option for azure function archetype can be selected

@nowitzkihuang Thanks for your report, did you use proxy or mirror for maven? If so, could you please try the archetype command without mirror?
Besides, here is the link for functions archetype in maven repository, could you please try whether its reachable in your machine? If so, could you please try clean the cached archetype in {your_m2_home}\repository\com\microsoft\azure\azure-functions-archetype and re-run the archetype command?

@Flanker32 Hi thank you for your reply, I fixed the issue after I got the settings.xml from my colleague and refreshed the maven repository. I think it may get the something wrong when catching the archetype from my computer. Thank you for your help again.


Add check for NPE into first and last functions

Within first and last functions if input is null, NullConverter is used. Then we try to get iterator but we get NPE, which has no detailed context about its cause.

Thanks @zelark!


Sign Up page review

On the sign up page there's an issue with the Complete your personal details page, one can't edit to enter the fields such as the First and Last name. Kindly streamline the sign up process to enhance the fluid registration.

feedback


Boot Linux after running the application

I'm building an application with uefi-rs and if I run it, it exits and then I try to boot Linux it crashes.
Windows works just fine.
The minimal example is:
#[entry]
fn main(image_handle: Handle, mut system_table: SystemTable<Boot>) -> Status {
    uefi_services::init(&mut system_table).unwrap();
    Status::NOT_FOUND
}

Tried on hardware and on QEMU. On QEMU it looks like this right after I select the OS from Grub
!!!! X64 Exception Type - 06(#UD - Invalid Opcode)  CPU Apic ID - 00000000 !!!!
RIP  - 000000003E13F018, CS  -<PHONE_NUMBER>000038, RFLAGS -<PHONE_NUMBER>210246
RAX  -<PHONE_NUMBER>000000, RCX - 000000003E191E98, RDX -<PHONE_NUMBER>000000
RBX  -<PHONE_NUMBER>000004, RSP - 000000003FF0FD08, RBP - 000000003FF28740
RSI  - 000000003E167518, RDI - 000000003FF6A5E0
R8   - 000000003FF27140, R9  - 000000003F4807A0, R10 -<PHONE_NUMBER>000001
R11  -<PHONE_NUMBER>0000E1, R12 - 000000003E191EE0, R13 -<PHONE_NUMBER>000100
R14  - 000000003FF28840, R15 - 000000003E191E98
DS   -<PHONE_NUMBER>000030, ES  -<PHONE_NUMBER>000030, FS  -<PHONE_NUMBER>000030
GS   -<PHONE_NUMBER>000030, SS  -<PHONE_NUMBER>000030
CR0  -<PHONE_NUMBER>010033, CR2 -<PHONE_NUMBER>000000, CR3 - 000000003FC01000
CR4  -<PHONE_NUMBER>000668, CR8 -<PHONE_NUMBER>000000
DR0  -<PHONE_NUMBER>000000, DR1 -<PHONE_NUMBER>000000, DR2 -<PHONE_NUMBER>000000
DR3  -<PHONE_NUMBER>000000, DR6 - 00000000FFFF0FF0, DR7 -<PHONE_NUMBER>000400
GDTR - 000000003F9DE000<PHONE_NUMBER>000047, LDTR -<PHONE_NUMBER>000000
IDTR - 000000003F471018<PHONE_NUMBER>000FFF,   TR -<PHONE_NUMBER>000000
FXSAVE_STATE - 000000003FF0F960
!!!! Find image based on IP(0x3E13F018) (No PDB)  (ImageBase=000000003DF1E000, EntryPoint=000000003DF1F000) !!!!

Root cause is the exit_boot_services hook in init:
        boot_services
            .create_event(
                EventType::SIGNAL_EXIT_BOOT_SERVICES,
                Tpl::NOTIFY,
                Some(exit_boot_services),
                None,
            )
            .map(|_| ())

Even if I define it as
unsafe extern "efiapi" fn exit_boot_services(_e: Event, _ctx: Option<NonNull<c_void>>) {
}

I see the same crash. The only thing that helps is to remove the call to create_event.

Thanks for filing this. I put together a small test that reproduces your crash: https://github.com/nicholasbishop/uefi-rs/tree/bishop-quick-exit
The problem is that uefi-services is geared towards bootloaders, where it's expected that the application won't exit. E.g. if a bootloader app uses uefi-services and launches the Linux kernel, early in startup Linux will call ExitBootServices and the bootloader app will still be in memory and its event handler will be able to run without issue.
In the case you've outlined, the application uses uefi-services to register an event handler, and that handler never gets unregistered when the application exits, and so exiting boot services triggers a crash.
I'm not sure yet how we want to solve this. One option would be to change the API so that the caller does something like let _app = uefi_services::init();, and that returned object has a Drop impl that removes the event handler. That might be to easy to get wrong on the caller side though, by accidentally dropping it too early.

Ohh that makes sense.
Perhaps we could force the user to return object from main and the wrapper drops it.
But actually I noticed this while I'm trying to register my own callback that must run just before the OS boots, not when the app exits.

I modified uefi-services to return the event:
diff --git i/uefi-services/src/lib.rs w/uefi-services/src/lib.rs
index 0b715b1..ee1fd04 100644
--- i/uefi-services/src/lib.rs
+++ w/uefi-services/src/lib.rs
@@ -78,11 +78,11 @@ pub fn system_table() -> NonNull<SystemTable<Boot>> {
 ///
 /// This must be called as early as possible,
 /// before trying to use logging or memory allocation capabilities.
-pub fn init(st: &mut SystemTable<Boot>) -> Result {
+pub fn init(st: &mut SystemTable<Boot>) -> Result<Option<Event>> {
     unsafe {
         // Avoid double initialization.
         if SYSTEM_TABLE.is_some() {
-            return Status::SUCCESS.to_result();
+            return Status::SUCCESS.to_result_with_val(|| { None });
         }

         // Setup the system table singleton
@@ -104,7 +104,7 @@ pub fn init(st: &mut SystemTable<Boot>) -> Result {
                 Some(exit_boot_services),
                 None,
             )
-            .map(|_| ())
+            .map(|e| Some(e))
     }
 }

Then in the app I can run:
#[entry]
fn main(image_handle: Handle, mut system_table: SystemTable<Boot>) -> Status {
    let event: Option<Event> = uefi_services::init(&mut system_table).unwrap();
    let boot_services = system_table.boot_services();

    println!("Hello World");

    if let Some(event) = event {
        // Will creash when Linux boots if we don't call this
        boot_services.close_event(event).unwrap();
    }
    Status::SUCCESS
}

and it will boot to the Linux just fine.

I've merged https://github.com/rust-osdev/uefi-rs/pull/920 for this, and the remaining work is tracked in #943.