Death and recovered data issue

Original issue https://github.com/covidatlas/coronadatascraper/issues/823, transferred here on Wednesday Apr 15, 2020 at 17:47 GMT

US - New York , Death and recovered cases has null values
Eg: Number of death cases are high in New York but the reported here is zero
Issue details
Data correction for death and recovered cases

(Transferred comment)
What file?

(Transferred comment)
timeseries.csv has no death data for New York state. The last relevant line is:
"New York, United States",state,,,New York,United States,19453561,42.762,-75.809,https://health.data.ny.gov/api/views/xdss-u53e/rows.csv?accessType=DOWNLOAD,county,America/New_York,213779,,,,526012,,,,2020-04-15

(Transferred comment)
In the timeseries.csv file mainly for New york ( including all counties ) the total number of  death  and recovered case is reported as 0.

(Transferred comment)
Deaths by borough isn't included in the data source currently used to retrieve cases and tested. It sounds like it's handled by a different department, hence published separately. :woman_shrugging:
They are is however included in daily PDFs available here: https://www1.nyc.gov/site/doh/covid/covid-19-data.page#download
https://www1.nyc.gov/assets/doh/downloads/pdf/imm/covid-19-daily-data-summary-deaths-04182020-1.pdf
The result from pdftotext looks pretty reasonable!
Confirmed

Probable

- Bronx

1917 (22.7%)

457 (19.1%)

- Brooklyn

2490 (29.5%)

801 (33.4%)

- Manhattan

1088 (12.9%)

343 (14.3%)

- Queens

2543 (30.1%)

712 (29.7%)

406 (4.8%)

75 (3.1%)

4 (0%)

10 (0.4%)

Staten Island and Unknown don't make the cut but they're the last 4 values.

(Transferred comment)
I stumbled upon https://covid19tracker.health.ny.gov/views/NYS-COVID19-Tracker/NYSDOHCOVID-19Tracker-Fatalities?%3Aembed=yes&%3Atoolbar=no&%3Atabs=n, showing fatalities per NY county.
NY fatality data is perhaps the most interesting data out there right now, as it offers a lower bound of what everyone else can expect. I would love to have it sourced via coronadatascrapper. [Edit:] Alas, it's a Tableau viz, with no obvious scrapping / download capability.


Reference: prior art

Links to prior art of virtualized tables, for reference:
curated lists of grid/table projects:

awesome-grid

vanilla javascript + DOM (similar to this project):

Clusterize

React-based:

react-table
react-datasheet
Griddle
material-table
rsuite-table
frameworks:

react-sortable-hoc
react-virtualized

for Angular/Vue:

primeng
ngx-datatable

other:

jqGrid
tabulator
tui.grid

Thanks for this!
If this isn't related to a specific issue, lets please keep discussion in another forum.
I'd like to keep Issues for issue reporting and specific user/developer help.


Clean up how to handle Catch

Two related problems:

Catch2 is probably the least common library that we use. Since it is—as we use it—just a single header, it should be easy for a user building the model to specify the location of the Catch 2 header and for it to be located by CMake.
The modern version of Catch2 is not the single header version any more.

Adding a non-system header
One way of specifying the location is to follow the commands on this page under the heading 'Vendoring' (whatever that means).
set(CATCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/extern/include)
add_library(Catch2::Catch2 IMPORTED INTERFACE)
set_property(TARGET Catch2::Catch2 PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CATCH_INCLUDE_DIR}")

where the header itself is at extern/include/catch2/catch.hpp.
Replacing Catch
The header-only library doctest seems to be a replacement for the single header version of Catch2. It is available on Homebrew, at least, and is available in Ubuntu Jammy Jellyfish as doctest-dev. Even so, I would guess it is even less commonly available on HPC than Catch2, so we would need a robust solution to ensure it was always available. As doctest is MIT-licensed, this might be to include it in the source distribution by default.

A few (perhaps disjointed) thoughts on this
Catch2 not being available on HPCs:

We could have an option of disabling unit tests at compile time, eliminating the need for having Catch2 available. The assumption being that these won't be needed on production machines.
We could have cmake download (and compile) Catch2 if it can't find it.
We could include the Catch2 header files in the nextsimdg repository.

I've written these options out in my initial order of preference. It seems to me that option 1 is the easiest but still acceptable, while option 2 is perhaps the most elegant. Option 3 means we have to ensure the Catch2 headers in nextsimdg are up to date, which is extra maintenance work.
To replace or not to replace Catch2:

I understand that moving to the new Catch2 requires substantial reprogramming of the unit tests. Is that correct, and how substantial is it compared to switching to doctest?
Are there other reasons to switch, besides header-only vs. library?
If we take options 1 or 2 above, we don't have to switch to doctest (although we still can).

On the first point:
If we do include the testing library, we could just make sure we have the most up-to-date version as part of the preparation for a release of the model. Instead, that is, of monitoring the library repo for changes. I'm becoming more in favour of option 3 (distribute the library along with the code), as long as we are using a single-header library (doctest or old Catch).
For me, at least, I've liked the simplicity of (old) Catch since I was first introduced to it at UCL. Add one single header and you can write a few tests. The new design of ctah, with a separate compilation and multiple headers that I have to learn what each one does is certainly more of friction point to actually writing tests.
I don't think adapting the tests to nu-Catch will change the logic all that much, just what headers need to be included in each test source file. And also the necessary changes to the CMakeLists files.
Moving to Doctest will likely involve more changes to the test code, less to the CMakeLists files and, importantly to me, no changes at all to how I think about writing test case files.
I also note that Doctest has a MPI enabled version, with an example, which is either non-existent or not obvious on the Catch repo.

So my perspective on this is skewed (generating code and simulating deployment/numerical verification for different embedded hardware) but my (quite general) two cents:
Testing on the customer's platform is quite a useful feature in and of itself. Not only as a baseline for scientific reproducibility but it provides concrete feedback to the user that the build worked correctly on their system. Different hardware can display different behaviours and as we only test on two systems (and currently don't fail on compile warnings) and two compilers, we can't guarantee that our production code works on a customer computer and they would need to establish this. As we add other features like XIOS and MPI where we run on multiple interdependent processes which need to communicate with each other and across nodes, we expose more system-dependent issues where it becomes useful that the user knows their system is configured correctly for our code and vice versa.
If we were to remove tests from the default compile option, we'd still realistic want to provide some kind of debug/test flag for CMake which we'd expose publicly so that users could verify numerical accuracy the above cases. Making it non-default means we'd catch less field bugs (which hopefully they would report back to us and we'd fix) but means field bugs become non-blocking - although this isn't necessarily inherently a good thing.
Given all that, we'd want to continue the current level of support anyway so it's probably to upgrade to new Catch2 (headers are multiple now and some renaming but otherwise not that much visible change - from the documentation anyway), or move to a new framework e.g. doctest but would go to a library based testing framework too as there are many popular ones inclduing Google Test, CppUnit, Boost Test. We already require boost as a library so although re-writing might be harder, this might be the simple option.
In terms of reproducibility, I like the idea of shipping a testing framework in some kind of extern folder (then we have control over the existence of the source files for that framework) but there's nothing stopping us just specifying a version for each of our releases if licensing becomes an issue. If we were to use release versioning on our repo then we could control/specify which version of the test framework is supported for our nextsim-dg release and advance it when we were ready.
If we were to change testing library, doing it sooner is probably better than later in terms of minimising engineering effort although this may impact milestones.
XIOS is probably even more obscure than Catch2 and doesn't use CMake so it requires a few more steps. My thinking was letting the user specify the install location via environment variable or CMake argument if it cannot be found (an error would throw and instructions would be given to do this or we would do this in the first instance). Something similar could be done for Catch2 if it cannot be found on the users system.
CATCH_INCLUDE_DIR would be inferred from a CATCH_DIR set by the user

Ok, let's proceed like this:
First, we include the (outdated) Catch2 in the neXtSIM_DG repository. It's more than just including the single catch.hpp file somewhere, but it shouldn't be too difficult.
Then, we decide what to replace the Catc2 with. The options are

The new version of Catch2: Requires the least amount of rework for current tests(?)
Doctest: Single-header library and easy to include in our repository.
Boost tests: Because we use boost already.
Something else: We can still be open to other options, but that door is closing fast.

As far as the tests I have written go (which is almost all of them), I believe the only changes required to move to doctest will be to:

rename the test definition macro (CATCH_CONFIG_MAIN-> DOCTEST_CONFIG_IMPLEMENT)
replace the header itself ("catch2/catch.hpp" -> "doctest/doctest.h"), and
use a namespace on Approx.

So let's go with doctest since we like it, and implementing Catch2 with doctest is minimal effort. We can also go straight for the Catch2 to doctest switch instead of first including Catch2 v1 in our repository.

This was merged nearly two months ago! Closing.


[416] Offers details view based on participation in the offer

Story / Bug id: https://github.com/CodeForPoznan/volontulo/issues/416
Reference person: @mlipa
Description:
Change appearance of offer details box based on participation in the offer

Codecov Report

Merging #563 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@           Coverage Diff            @@
##           master   #563      +/-   ##
========================================
+ Coverage      93%    93%   +<.01%
========================================
  Files          76     76
  Lines        2573   2575       +2
========================================
+ Hits         2393   2395       +2
  Misses        180    180

Impacted Files
Coverage Δ

backend/apps/volontulo/views/offers.py
74.5% <100%> (+0.25%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ae7a2d5...090df66. Read the comment docs.

Closing, I will raise a new pull request.


Crash in RelativeFormatter

Hello! We recently released an update using 5.0.9 and have started getting crashes.
The issue seems to be line 329 in RelativeFormatter.swift
filteredGradation's force unwrap apparently can be nil, I'm trying to work through what kind of input can result in this now and will update this as soon as I know.
Edit: Here's where the crash is occurring in our code. Style gets made, however once replaceDate.roRelative() is called the crash occurs.
let now: Date = Date().dateRoundedAt(at: .toCeilMins(60))
let style = RelativeFormatter.Style(flavours: [.long], gradation: .convenient(), allowedUnits: [.day])
let relative = replaceDate.toRelative(since: now.in(region: .current), style: style, locale: Locale.current)

In this case,
now = 2018-09-28 18:00:00 UTC
replaceDate = 2018-05-14 04:00:00 UTC
Edit2:
it appears this line:
let i = findGradationStep(elapsed: elapsed, now: referenceInterval, gradation: filteredGradation)

For the above dates, i is -1 which doesn't make sense
guard i >= 0 else {
            return nil
        }

fixed the crash

Can you help me identify the bug? What locale are you using?

Sure! I'm using
SwiftDate.defaultRegion = Region.local
In my app delegate if that's important.
Local.current = "en_US"

And what's the language of the device, the value of local?

en_US

Wooo! Thanks for fixing this! Closing :)


oterm: 0.1.18 -> 0.1.21; fix build; python311Packages.rich-pixels: fix version string

Description of changes
Diff: https://github.com/ggozad/oterm/compare/refs/tags/0.1.18...0.1.21
Changelog: https://github.com/ggozad/oterm/releases/tag/0.1.21

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

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

Result of nixpkgs-review pr 283771 at 02250c7b run on x86_64-linux 1

1 package failed to build:

browsr

3 packages built successfully:

oterm
python311Packages.rich-pixels
python312Packages.rich-pixels


missing m typo

Overview
Noticed a typo, so I fixed it. Missing m in majorScale
Screenshots (if applicable)

Great catch! Thanks!!


Red Window of JS Error

Using Auto Complete on a field value I get the below error.

To reproduce

open https://evidentlycube.github.io/TW5-PluginShowcase
install CodeMirror and save (may have to save locally)
download   Dive into Deep Learning.zip tiddler and unzip and drop into https://evidentlycube.github.io/TW5-PluginShowcase
Open the Dive into Deep Learning tiddler
In one of field start typing [[..
See the error

@kookma Just looking at the error it's certainly not something happening right in my code since I don't ever work with a property named chunkSize. If code mirror is required then I have an idea what might be wrong though. Investigation time!

This should be fixed in latest 1.0.15 release. This was caused by the Code Mirror integration not verifying that the code mirror is focused when handling events.


added section9.7 DenseNet

Thanks for this 😄
Ps. net = net.to(device) is not needed now. It is already inside the train_ch5 func.


fix!: Remove access to the svelte/internal API which is deprecated

FIXES #235
Allows Svelte 5 compatibility.
BREAKING: removes support for the destroy() method on . Alternative: wrap the calendar in an {#if notDestroyed}{/if} block.

@vkurko It would be realy helpfull if you could publish this to the npm registry

@vkurko It would be realy helpfull if you could publish this to the npm registry

Sorry, I wanted to fix some things before publishing the code, but I haven't had enough free time to do it yet. I think I'll definitely finish it this week.


Feature: Support smart SQL batching and import from SQL files

Is your feature request related to a problem? Please describe.

Writing many SQL statements from the command line right now is cumbersome, it would be great if we had a flag or other way to simply ingest SQL statements and push these to tableland
Once we do support multiple statements at once, we'll need to have a nice way to batch and break these statements up into the right size for sending to the smart contract.
Additionally, we should normalize the input statements so that they are more likely to succeed, using our custom parser

Describe the solution you'd like
Something like a --sql flag to would take a local SQL file, and normalize the statements, put them into appropriate sized batches, and then wait for confirmation to send.
Describe alternatives you've considered
Not waiting for confirmation would be ok too, but this feels safer for users. Ideally, you could actually use local files, or remote files, and the cli would just do the right thing.

Building this out a bit further, we should provide a --file /  -f option for anything that takes an input. So read, write, create, etc. Additionally, if a file parameter is given as a hyphen (e.g., -f -), it means grab the data from stdin. This is a common command-line convention which we should adopt.
This would allow things like:
echo "select * from some_table_5_99" | tableland query --file - | jq

Which is useful for piping and chaining tableland commands.

i know i'm late the party here, but this sounds great. there's some overlap with convos we'll have next week, but i think whatever we do around supporting sql files directly, we'll always need batching

Yeh nice, thanks for weighing in here. So there is a PR in flight that adds this basic --file (and stdin input, without the need to specify --file -, but doesn't do the batching yet. I'm actually going to put the rest of the current local first CLI project on hold until we get some more clarity and finalized plans over the next two weeks. In the mean time, the above exact API flow will already be possible via #110.


[Event Request] Codeunit 90 "Purch.-Post" – New Event “OnCheckAssociatedOrderLinesOnBeforeCheckDropShmtError”

Could we please have a new publisher “OnCheckAssociatedOrderLinesOnBeforeCheckDropShmtError” in Function “CheckAssociatedOrderLines”, Codeunit 90 "Purch.-Post”, including a handle pattern?
    local procedure CheckAssociatedOrderLines(PurchHeader: Record "Purchase Header")
    var
        PurchLine: Record "Purchase Line";
        SalesHeader: Record "Sales Header";
        SalesOrderLine: Record "Sales Line";
        TempSalesHeader: Record "Sales Header" temporary;
…
                    TempSalesLine.Insert();
                    if Invoice then begin
*** start new code ***
                        IsHandled := false;
                        OnCheckAssociatedOrderLinesOnBeforeCheckDropShmtError(IsHandled);
                        if not (IsHandled) then begin
*** stop new code ***
                            if Receive and (PurchLine."Qty. to Invoice" <> 0) and (PurchLine."Qty. to Receive" <> 0) then
                                Error(DropShipmentErr);
*** start new code ***
                        end;
*** stop new code ***
                        if Abs(PurchLine."Quantity Received" - PurchLine."Quantity Invoiced") < Abs(PurchLine."Qty. to Invoice")
                        then begin
…
*** start new code ***
    [IntegrationEvent(true, false)]
    local procedure OnCheckAssociatedOrderLinesOnBeforeCheckDropShmtError(var IsHandled: Boolean)
    begin
    end;
*** stop new code ***

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Wrong image content in two scenarios

The images in Scenario 2 and Scenario 3 are wrong. They do not reflect the given scenario.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: a8c0ae74-c84d-8511-7df3-02e192d84178
Version Independent ID: 9e8f4f13-89c4-aec6-b03d-87df494d3759
Content: Blob versioning - Azure Storage
Content Source: articles/storage/blobs/versioning-overview.md
Service: storage
Sub-service: blobs
GitHub Login: @normesta
Microsoft Alias: normesta

@Helpstone
Thanks for your feedback! We will investigate and update as appropriate.

@normesta
Can you please check and add your comments on this doc update request as applicable.

Glad to fix. Question what is scenario 2 & 3? What is incorrect and why?  With more info, I can narrow it down a bit. Alternatively, I can set aside some time to investigate it further. In that case, just assign this item to me and I'll schedule time. Cheers!

Closing out as inactive.
#please-close


tests: move mockstore from p2p package

In order to re-use mockStore in different packages and avoid unnecessary dependencies we should extract it to header/testing.go

The issue is not relevant anymore.


No audit issues in security monkey v0.8.

We are not able to see any audit issues in the security monkey dashboard. Looking at the logs we are getting the following exception.
2017-04-27 16:39:53,599 DEBUG: Logging exception from scheduler-change-reporter-uncaught with location: None to the database. [in /usr/local/src/security_monkey/security_monkey/datastore.py:636]
2017-04-27 16:39:53,602 DEBUG: Completed logging exception to database. [in /usr/local/src/security_monkey/security_monkey/datastore.py:668]
2017-04-27 16:39:53,602 ERROR: Job "run_change_reporter (trigger: interval[0:15:00], next run at: 2017-04-27 16:47:53.818240)" raised an exception [in build/bdist.linux-x86_64/egg/apscheduler/scheduler.py:520]
Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/apscheduler/scheduler.py", line 512, in _run_job
    retval = job.func(*job.args, **job.kwargs)
  File "/usr/local/src/security_monkey/security_monkey/scheduler.py", line 32, in run_change_reporter
    reporter.run(account, interval)
  File "/usr/local/src/security_monkey/security_monkey/reporter.py", line 53, in run
    unique_watcher_results = self.slurp_unique_watchers(mons, account, interval)
  File "/usr/local/src/security_monkey/security_monkey/reporter.py", line 97, in slurp_unique_watchers
    (items, exception_map) = monitor.watcher.slurp()
TypeError: 'NoneType' object is not iterable

Please can you provide guidance on how to debug this further.

did you mange to solve this ?

Interesting I have a similar thing with 0.9.1.
Steps taken:
At the CLI assume role and get creds.
Use aws cli to check system calls, passed (instances reported back to command line).
supervisorctl start securitymonkey securitymonkeyscheduler
(tcpdump running in background)
Can see lots of traffic, I get the error:
reporter.run(account, interval)
File "/usr/local/src/security_monkey/venv/lib/python2.7/site-packages/security_monkey-0.9.1-py2.7.egg/security_monkey/reporter.py", line 56, in run
(items, exception_map) = monitor.watcher.slurp()
File "/usr/local/src/security_monkey/venv/lib/python2.7/site-packages/security_monkey-0.9.1-py2.7.egg/security_monkey/watchers/s3.py", line 79, in slurp
return slurp_items()
File "/usr/local/src/security_monkey/venv/lib/python2.7/site-packages/security_monkey-0.9.1-py2.7.egg/security_monkey/decorators.py", line 151, in decorated_function
itm, exc = f(*args, **kwargs)
File "/usr/local/src/security_monkey/venv/lib/python2.7/site-packages/security_monkey-0.9.1-py2.7.egg/security_monkey/watchers/s3.py", line 68, in slurp_items
for bucket_name in bucket_names:
TypeError: 'NoneType' object is not iterable
I am going to get a hold of the proxy logs to check the response codes.
(SecurityMonkey in this environment requires proxy access)

@RobertNorthard ,and @finalriposte : Is this still an issue?

@finalriposte : The NoneType issue IIRC is related to the Security Monkey user not having access to that bucket (perhaps a deny policy on the bucket)?  It's a bug that we still need to fix (did we fix this yet @monkeysecurity ?).


[ISSUE #5051]Remove GroupCommitService#run synchronized code chunk

Make sure set the target branch to develop
What is the purpose of the change
close #5051
Brief changelog

Remove GroupCommitService#run synchronized code chunk

Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

The putRequest has the same problem?

@echooymxq  Yes, it should be dropped.


Move project from dep to go modules for better dev experience

I would like to move this project from using dep to manage dependencies to Go Modules to improve the development experience.
This would include fixing the makefile and CI steps as needed.

Completed in pr #20

PR #20 is merged and changes are pushed to v0.0.37


Paideia: stay logged in for (ever?)

Description
Figure out the best way to stay logged in to Paideia on the same device, JWT or something else?

Increase JWT timeout from 8hours
Frontend should show appropriate message on status_code=401

UX needs to indicate to user if they've been auto-logged out via JWT token timeout
Research how other platforms keep users logged in

Please add function which notifies user if they've been logged out
Update token to expire after 24 hours


Tests run fine with gradle, fail within Intellij

Added the plugin to our build.gradle file and was able to run ./gradlew clean build kotest without issue.  However when I try to run the kotest task in the IntelliJ gradle panel, or run a kotes with IntelliJ I get the below exception.
Exception in thread "Thread-3121" java.lang.IllegalStateException: id must be defined
at io.kotest.gradle.KotestServiceMessageParserCallback.createDescriptor(KotestServiceMessageParserCallback.kt:40)
at io.kotest.gradle.KotestServiceMessageParserCallback.notifyBeforeTestSuite(KotestServiceMessageParserCallback.kt:72)
at io.kotest.gradle.KotestServiceMessageParserCallback.serviceMessage(KotestServiceMessageParserCallback.kt:33)
at jetbrains.buildServer.messages.serviceMessages.ServiceMessagesParser.parse(ServiceMessagesParser.java:54)
at io.kotest.gradle.Kotest$rerouteTeamCityListener$1.invoke(Kotest.kt:97)
at io.kotest.gradle.Kotest$rerouteTeamCityListener$1.invoke(Kotest.kt:24)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)

Task :kotest
Could not read standard output of command '/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/java'.
java.io.IOException: Pipe closed
at java.base/java.io.PipedInputStream.checkStateForReceive(PipedInputStream.java:260)
at java.base/java.io.PipedInputStream.receive(PipedInputStream.java:226)
at java.base/java.io.PipedOutputStream.write(PipedOutputStream.java:149)
at org.gradle.process.internal.streams.ExecOutputHandleRunner.forwardContent(ExecOutputHandleRunner.java:67)
at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:53)
at org.gradle.internal.operations.CurrentBuildOperationPreservingRunnable.run(CurrentBuildOperationPreservingRunnable.java:42)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)

Do you mean running via the plugin, or running via the gradle tool window ?

If I go to a shell prompt, all works fine.  If I use the graadle tool window it fails,  If I run a test via the run configuration window, they faill.  Both fail with the error above.


Fix issue 713

Fix for issue #713, although really it's just shuffling over the dependency you use for zipping. I'll compare a zip produced by before and after and see that changes.

Thanks for the patch @moritonal!
Going to close however as this was fixed upsteam in gulp-zip


#567: Introduced a router level adaptor TLS setup/encrypt/decrypt api…

… which will be used across adaptors

Codecov Report
Base: 27.58% // Head: 27.39% // Decreases project coverage by -0.19% :warning:

Coverage data is based on head (8603f06) compared to base (ff9b653).
Patch coverage: 0.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #765      +/-   ##
==========================================
- Coverage   27.58%   27.39%   -0.20%
==========================================
  Files         131      132       +1
  Lines       31458    31691     +233
  Branches     5037     5083      +46
==========================================
+ Hits         8679     8681       +2
- Misses      21674    21907     +233
+ Partials     1105     1103       -2

Flag
Coverage Δ

unittests
27.39% <0.00%> (-0.20%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/adaptors/adaptor_tls.c
0.00% <0.00%> (ø)

src/router_core/route_tables.c
16.43% <0.00%> (+0.27%)
:arrow_up:

src/router_core/address_watch.c
89.65% <0.00%> (+1.14%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

OpenSSL and SChannel both assume that naturally grouped TLS sessions would share a single pn_tls_config_t. Partly for sharing resources. Partly for sharing functionality (session tickets/PSKs). You have no grouping possible with a separate pn_tls_config_t per qd_tls_t. Consider if this needs addressing now. Presumably a copy constructor could be used to add the functionality at a later date.

I have raised an issue to keep track of this - https://github.com/skupperproject/skupper-router/issues/773


PostMarked (unread, read, important, etc.)

Add a Post<->User relationship with an intermediate model, which marks a post as

read
unread
important
favourite
read it later
(...)

Implemented in https://github.com/allo-/feedjack/commit/23690410fd27d2e686f1432cc7a03c3212a74c8a
TODO:

Add filtering by marker.
mark all function (for migration and/or new users)
maybe mark automatically when scrolling the article out of view?


Add CLI support for command templates/matrix commands

It would be useful to be able to generate the commands dynamically based on an environment variable. For example:
concurrently --matrix "A B C" "echo {}"

Which would be equivalent to typing:
concurrently "echo A" "echo B" "echo C"

Or with multiple values you could do:
concurrently --matrix "A B C" --matrix "1 2 3" "echo {1}{2}"

Which would be equivalent to writing:
concurrently "echo A1" "echo "A2" "echo A3" "echo B1" "echo B2" "echo B3" "echo C1" "echo C2" "echo C3"

This would be useful for common repetitive tasks that can happen in parallel. For example, let's say I want to download some docker image on a few different servers. I could do:
SERVERS="server1 server2"
IMAGES="python:3.11 node:20"

concurrently --group --matrix "$SERVERS" --matrix "$IMAGES" "ssh {1} 'docker pull {2}'"

This would help making concurrently a drop-in replacement for bash for-loops; the above would replace
for server in $SERVERS; do
    for image in $IMAGES; do
        ssh $server "docker pull $image"
    done
done

It would also make concurrently a drop-in for a lot of gnu parallel usages, eg:
parallel --quote ssh {1} "docker pull {2}" ::: $SERVERS ::: $IMAGES

Another example: processing a lot files in parallel, eg less compiling a number of files:
concurrently --matrix "$(ls *.less)" --group "lessc {}"

Hey, thanks for the suggestion.
We already have the syntax parsing built into concurrently, it's the passthrough args (docs - https://github.com/open-cli-tools/concurrently/blob/8d3f9761bf6269ae9abdd5dbb661314b9980d62d/docs/cli/passthrough-arguments.md), though where it lacks is combining all the input combinations, which is what you're asking for.
As for which flag should activate it, I'm on the fence between reusing --passthrough-arguments/-P with a matrix value, or adding a separate --matrix, even if as a shortcut. Thoughts?
Tagged it as pull requests welcome, if anyone is keen on implementing this!


BotFrameworkAdapter.process_activity_with_identity calls serialize() on dict

Version
4.13.0
Describe the bug
When running, e.g., the fetch task example, an exception is raised when on_teams_messaging_extension_fetch_task is called. The problem is that in bot_framework_adapter.py on line 515, serialize() is called on invoke_response.value.body, which is a python dict.
To Reproduce
Steps to reproduce the behavior:

run the above-mentioned example and add to teams
Trigger bot's 'create card' message extension
A dialog is shown with an error, and an exception is raised in the bot code.

Expected behavior
Expected behavior is that the 'Create Card' example dialog is shown instead of an error. A fix to this error could for instance be to change line 515 in bot_framework_adapter.py to:
return InvokeResponse(
                status=invoke_response.value.status,
                body=invoke_response.value.body   # line 515

@jooste thanks for submitting this, we will investigate and provide a fix in our next release if found necessary.

@axelsrz  any updates on this issue?

@jooste thanks for summitting this issue. We'll prioritize fixing this in the next milestone.


update host and platform support

Also took the opportunity to update dev.office.com links

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/overview/office-add-in-availability.md
:white_check_mark:Succeeded

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 a new work for compressing multimodal Transformers

Hi, @cedrickchee, very thanks for your great list from which I learned a lot!
I am also working on model compression and would like to contribute a new work for compressing multimodal Transformers:
Paper: https://arxiv.org/abs/2301.13741
Code: https://github.com/sdc17/UPop
Project: https://dachuanshi.com/UPop-Project/
Blog: https://dachuanshi.medium.com/compressing-multimodal-and-unimodal-transformers-via-upop-466c11680ac0
Could you please review this pr? Grateful for your time and consideration.
Besides, I also collected a full list of papers and their codes about pruning (10 in total) that are being presented at ICML 2023 if you are interested:

UPop: Unified and Progressive Pruning for Compressing Vision-Language Transformers [code]
Gradient-Free Structured Pruning with Unlabeled Data
Reconstructive Neuron Pruning for Backdoor Defense [code]
UPSCALE: Unconstrained Channel Pruning [code]
SparseGPT: Massive Language Models Can be Accurately Pruned in One-Shot [code]
Why Random Pruning Is All We Need to Start Sparse [code]
Fast as CHITA: Neural Network Pruning with Combinatorial Optimization [code]
A Three-regime Model of Network Pruning [code]
Instant Soup: Cheap Pruning Ensembles in A Single Pass Can Draw Lottery Tickets from Large Models [code]
Pruning via Sparsity-indexed ODE: a Continuous Sparsity Viewpoint [code]

Looking forward to your opinions and please let me know if there is any further information I can provide.

Hi @sdc17 I really appreciate your PR. Sorry for the short delay.

Could you please review this pr? Grateful for your time and consideration.

Sure, I'm reviewing your PR now. I'm still swarmed with work and life. I hope you don't mind some delay.
Can I get back to you in a day or two?

Besides, I also collected a full list of papers and their codes about pruning (10 in total) that are being presented at ICML 2023 if you are interested:

I'm always on the look out for papers.

Hi @sdc17 I really appreciate your PR. Sorry for the short delay.

Could you please review this pr? Grateful for your time and consideration.

Sure, I'm reviewing your PR now. I'm still swarmed with work and life. I hope you don't mind some delay.
Can I get back to you in a day or two?

Besides, I also collected a full list of papers and their codes about pruning (10 in total) that are being presented at ICML 2023 if you are interested:

I'm always on the look out for papers.

Sure, that’s understandable. Please take your time and get back to me whenever you can :)


Govuk Transition signon config

This change will allow transition to use auth tokens defined in hiera when it's deployed.
This should eliminate the need to replace the file each time per environment.

How do these ENV vars get sent to the app? Can we link to that commit please?

Thanks for the added context. Merge away and we can test in integration.


fix tests

fixes https://github.com/gradle/gradle-private/issues/3828

@bot-gradle test ACT

I've triggered the following builds for you:

AllCrossVersionTestsReadyForNightly build

Your PR is queued. See the queue page for details.

I've triggered a build for you.


moveWeights.sh issues

First issue
mv: target 'CelebAMask-HQ/MaskGAN_demo/checkpoints/label2face_512p/' is not a directory mv: target 'monodepth2/models/mono+stereo_640x192/' is not a directory mv: cannot move 'weights/super_resolution/model_srresnet.pth' to 'pytorch-SRResNet/model/': Not a directory
Resolved with mkdir pytorch-SRResNet/model
Second issue
mv: target 'CelebAMask-HQ/MaskGAN_demo/checkpoints/label2face_512p/' is not a directory mv: target 'monodepth2/models/mono+stereo_640x192/' is not a directory
Resolved with mkdir -p mkdir monodepth2/models/mono+stereo_640x192
Third issue
mv: target 'CelebAMask-HQ/MaskGAN_demo/checkpoints/label2face_512p/' is not a directory
Resolved with mkdir -p CelebAMask-HQ/MaskGAN_demo/checkpoints/label2face_512p

@bedna-KU Thanks. moveWeights.sh has been updated.


[New game]: City Builder game

🎮 Game Request
this is an City Builder game made up of happiness and money
Point down the features
Game points are
Money: 1000
Happiness: 100
as you built your happiness and money will be increased are decreased
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

/assign

Hey @pallasivasai ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


watch: Unavailable  many times

the etcd cluster  is the event etcd for kubernetes;
my prometheus show:
grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 50

Deadlock problem, who knows how to solve it?
etcdserver/api/v3rpc/watch.go
	go func() {
		if rerr := sws.recvLoop(); rerr != nil {
			if isClientCtxErr(stream.Context().Err(), rerr) {
				plog.Debugf("failed to receive watch request from gRPC stream (%q)", rerr.Error())
			} else {
				plog.Warningf("failed to receive watch request from gRPC stream (%q)", rerr.Error())
			}
			errc <- rerr
		}
	}()

Recurring problems

start  etcd

./etcd

benchmark watch  in etcd v3

benchmark  watch  --streams 20  --watch-per-stream 50  --watched-key-total 1   --put-total 1000   --put-total 1

benchmark result

benchmark_1.log

curl the metrics

cmd:
curl http://<IP_ADDRESS>:2379/metrics |grep  Unavailable

result:
grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 17

etcd debug log

2018-05-15 20:24:43.842441 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842467 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842486 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842496 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842513 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842702 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842711 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842718 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842727 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842733 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842739 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842744 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842753 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842761 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842766 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842771 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842776 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842781 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842799 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:43.842814 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2018-05-15 20:24:52.124531 D | etcdserver/api/v2http: [GET] /metrics remote:<IP_ADDRESS>:33948

2018-05-15 20:24:43.842441 D | etcdserver/api/v3rpc: failed to receive watch request from gRPC stream ("rpc error: code = Canceled desc = context canceled")

This warning generally happens when your watch client closes. Since you have 20 records above and benchmark  watch  --streams 20 I believe this is expected as I imagine benchmark cleans up after it runs. You can replicate this by setting a watch with etcdctl then Ctrl + C to kill and watch your logs.


Can't create migration for views that depend on other objects in the migration

When generating a migration for a view that depends on a new table, alembic_utils triggers a Postgres error as the dependency doesn't exist yet. This is caused by the code in alembic_utils/simulate.py trying to create the views to see if it can resolve a specific creation order.
E.g. I have an ORM table definition:
class _Foo(Model):
    __table_name__ = "foo"

    id = Column(Integer, primary_key=True)
    created_at = Column(DateTime, default=func.now())
    bar_id = Column(db.Integer, ForeignKey("bar.id"), nullable=False)

and a view that references that table:
from sqlalchemy.sql import select, func

numbered_foo = (
    select(_Foo).add_columns(
        func.row_number()
        .over(
            partition_by=_Foo.bar_id,
            order_by=[_Foo.created_at, _Foo.id],
        )
        .label("number")
    }
)

# registration with PGView("public", "numbered_foo", str(numbered_foo))

where both the table and the view are entirely new to the project.
Instead, we are forced to create two separate migration steps, one that creates the table, the other with the view, after which we can merge the two scripts.
Is there a hook that I can implement to at least create any missing entities inside of the nested transaction, or a way to register what entities the view depends on?
As you can see, I'm defining the view from a SQLAlchemy Select object, if PGView could accept SQLAlchemy selectables directly, dependency resolution could be simpler, based on introspection.

I have no connection in env.py so I cannot check in genereate_views_from_metadata if my dependent tables are already created in the database or not.

For --autogenerate support the view's table dependencies must have been created in a prior migration. So long as that is the case, you should not need a connection to the database in env.py

but if you do need a connection for some reason, you can connect to the DB from anywhere the same way alembic does
from sqlalchemy import create_engine

# env.py
url = config.get_main_option("sqlalchemy.url")
engine = create_engine(url)

0.2.15 is significantly out of date. I wouldn't recommend going back that far
This was never supported by alembic_utils so if its incidentally working on an old release there's no guarantee that it'll be stable

Quite right.
To use the latest library version i had to implement two step migrations:
# env.py
...
# I will register replaceable entities only if x_argument run_replaceable == "true"
if context.get_x_argument(as_dictionary=True).get("run_replaceable") == 'true':
    register_entities(replaceable_entities_list)

def run_table_migrations():
    connectable = engine_from_config(
        config.get_section(config.config_ini_section),
        prefix="sqlalchemy.",
        poolclass=pool.NullPool,
    )

    with connectable.connect() as connection:
        context.configure(connection=connection, target_metadata=target_metadata)
        with context.begin_transaction():
            context.run_migrations()

run_table_migrations()

and then in the automigration script:
# migrate.sh
alembic -x run_replaceable="false" revision --autogenerate
alembic upgrade head
alembic -x run_replaceable="true" revision --autogenerate
alembic upgrade head


Where is the changelog ?

Thank you for your work !
Can you update the changelog and push the tags on github after releasing a new version?
We cannot update knex in a large project without knowing what it involves.

Will do that today. Sorry for the delay.

@bertho-zero All done! Thank you for bringing this up.


Programatically desactivate toastr by level

Hey,
Is there a way to disable programatically some levels of toastr, ex: disable all toastr.error();
Thank you,

Hi.. I'm in search of the same..
@cdanyl Have you figured out a work around for this ?

Somehow I missed the email about this issue.
I don't follow what you need. Disable toasts how? So far sounds like something you could manage from your side. If your app doesn't need error you don't trigger them. Please explain a bit more.


Feature: Replace lStudy in Report_StudyInfo with dfGroups.

Feature Details
Converting dfGroups to a list seems unnecessary - it's presented as a table in the report.  Would be good to drop the column names from the report as well, and update the sort to:

Study ID
Nickname
Status
Site Count
Participant Count

Example Code

Possible Implementation

Additional Comments

Agree. Related to #1799.
@jonthegeek assigning you, but feel free to close if this isn't relevant in the context of the new widget.


feat(strings): add some strings impl and docs

add some inlined docs for strings to improve DX
improved Split that allows for :

more than one character seperator
empty separator will split correctly each character
unions of seprators still work

new functions :

TrimLeft
TrimRight
Trim
Length
ToTuple
Replace
Slice
Repeat
StartsWith
EndsWith
Compare (only ascii)
LessThan
LessThanOrEqual
GreaterThan
GreaterThanOrEqual

Merging so we don't have to rebase


Some (not all) Scrap Not Appearing at all where the Ship Map Screen Shows it at...

When I'm playing with friends, one person most of the time will stay on the ship to help direct me and others around to any scrap around the facilities.  Most of the time, there is a 20% (general guess) or so of the scrap not being where the Ship map says where the scrap item says it should be.  Whether it spawned in the ground, wall, or just not actually spawned is hard to say.  My mod profile list currently with R2MODMAN is " 019363ba-c15f-cf8d-3899-0250c8d0b1a7 " .  I am not sure what is causing the issue, any insight on what could be causing this issue would be greatly appreciated.  As we never had this be an issue before downloading the current late game upgrades mod.

It could be possibly the contract objects. They still spawn regardless of having a contract or not. However, when they check that their contract isn't active or they are not in the right planet to appear, they get destroyed. However, the radar icons seem to be separate to the item so destroying one doesn't destroy the other.
I have added the check to destroy the icon aswell. Hopefully this will solve the ghost radar icons appearing when I make a release afterwards.

3.11.0 release should address this. If you can check, I would appreciate.

I'll check it out as soon as I can, will let you know when I do.

3.11.0 release should address this. If you can check, I would appreciate.

After a couple nights of playing the new update with my Wife, we only had 1 instance of an item not being where it should be.  Though that was in one of Wesley's Interior areas in the Factory looking tile set with the big robots and elevators, so it could've just been a bad spawn.
However basically on everything else Vanilla and a few other modded interiors, had no issues having the items be where the monitor was showing them.
Will do more testing when I can this week, but if I don't reply anything more then I would say the update looks like a success so far, awesome work 👍


Rabin-Karp in Python

Description
Submission description here
Checklist:

[x] I've checked the issue list before deciding what to submit.
[x] I've read the contribution guidelines.
[x] I've edited the README.md link to my code.

References to other Issues or PRs
Fixes #334 -Python part

@AdityaJ7 Perfect.

@AdityaJ7 Perfect.

Thanks

@all-contributors please add @AdityaJ7 for code

@all-contributors please add @AdityaJ7 for code


Implement half-width glyph substitution

TR-B14 and TR-B15 specify that the MSZ control code can be used to make 1-6 rows(区) and alphanumeric, hiragana, and katakana characters halfwidth.
Previously, the MSZ was rendered by shrinking fullwidth characters, which halved the width of the stroke and rendered it terribly.
#9 improved alphanumeric rendering, but requires halfwidth fonts to display properly.
This PR adds the ability to use the hwid feature of a font and replace it with the halfwidth glyphs contained in the font.
This improves rendering if the font is supported.
Most fonts do not contain halfwidth glyphs at all or only partially. For example, MS Gothic and M+ do not contain any at all. Noto Sans and Source Han Sans contain only halfwidth alphanumeric characters.
Adobe-Japan1, a commonly used character collection, defines halfwidth hiragana, halfwidth katakana, and halfwidth symbols. Although it does not cover all of 1-6 rows, Adobe-Japan1 OpenType fonts contain glyphs for commonly used halfwidth characters. Also, even TrueType fonts that are not Adobe-Japan1, such as Meiryo, may contain halfwidth glyphs defined by Adobe-Japan1.

FreeType, モトヤマルベリ Pr6 W4, SetReplaceMSZFullWidthAlphanumeric(false), SetReplaceMSZFullWidthJapanese(false), SetReplaceMSZHalfWidthGlyph(false)

FreeType, モトヤマルベリ Pr6 W4, SetReplaceMSZFullWidthAlphanumeric(true), SetReplaceMSZFullWidthJapanese(true), SetReplaceMSZHalfWidthGlyph(false)

FreeType, モトヤマルベリ Pr6 W4, SetReplaceMSZHalfWidthGlyph(true)

FreeType, Noto Sans JP Regular, SetReplaceMSZFullWidthAlphanumeric(false), SetReplaceMSZFullWidthJapanese(false), SetReplaceMSZHalfWidthGlyph(false)

FreeType, Noto Sans JP Regular, SetReplaceMSZFullWidthAlphanumeric(true), SetReplaceMSZFullWidthJapanese(true), SetReplaceMSZHalfWidthGlyph(false)

FreeType, Noto Sans JP Regular, SetReplaceMSZHalfWidthGlyph(true)

Thank you for your great contribution!
Merged.


Nimbus breaks due to differing ids in responses

When using Nimbus as a passive client (not the controller), it logs errors like the following:

ERR 2022-09-15 01:34:44.096+00:00 Failed to exchange transition configuration topics="eth1" err="engine_exchangeTransitionConfigurationV1(dataProvider.web3.provider,\n    consensusCfg) failed 3 times. Last error: Cannot find message id "1""

This is because openexecution returns messages with the ID used by the canonical CL, which in my case is hard-coded to 1 by Lighthouse.
I think it would be good if openexecution could echo the ID from the request in the response, by mixing it into the response from the database here:
https://github.com/TennisBowling/openexecution/blob/88ca032b4b3be38010d11ce2d03f44976d6051b0/main.cpp#L333-L340
This would need to be done for both exchangeTransitionConfiguration and forkchoiceUpdated, which both read the canonical CL's response from the database.

Can confirm that this is fixed with the most recent changes (plus https://github.com/TennisBowling/openexecution/pull/3)
:tada:


Exception when fetching user

When using the sample from https://github.com/microsoftgraph/msgraph-beta-sdk-python?tab=readme-ov-file#3-make-requests-against-the-service to fetch a user you get the following error (after applying the workaround from #194)
Exception has occurred: ImportError
cannot import name 'alert_record' from 'msgraph.generated.models.device_management' (/home/c/.local/lib/python3.10/site-packages/msgraph/generated/models/device_management.py)
  File "/home/c/pimpy/pimgraph.py", line 37, in
    user = await client.users.by_user_id('ch@back.com').get()
  File "/home/c/pimpy/pimgraph.py", line 41, in <module>
    asyncio.run(get_user())
ImportError: cannot import name 'alert_record' from 'msgraph.generated.models.device_management' (/home/c/.local/lib/python3.10/site-packages/msgraph/generated/models/device_management.py)

Hi @cvs79 ,
Does the issue still exist? If so, could you please share more details about the SDK version and the scenario? Sample code?


Unable to plot since new update

When i try to plot over the gui this error message occours:

Plotting over cli with this command works fine:
chia_plot -n 100 -r 16 -u 256 -t /plotting/ -d /plots1/ -f xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -c xchxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Im using machinaris with Unraid 6.9.2 in the Machinaris Docker container.
Tried the :latest and :test branch. Both spit out the same issue.

Hi, how are you starting the Machinaris container?  As per the Github bug template, please provide Windows/Linux/MacOS, etc.

Describe the bug

To Reproduce
Steps to reproduce the behavior, e.g.:

Start machinaris via the Unraid GUI
Go to Plotting page
Start plotting via the "Start Plotting" button
See error
It also happens when you try to change Plotting settings in the settings menue. Same plotman error occours

Expected behavior

System setup:

OS: Unraid 6.9.2
Docker version number (output of v4.20.1)
Machinaris branch: :test , :latest
Machinaris version number: 0.5.4

Config
Plotting Config:
# Learn more about Plotman at https://github.com/ericaltendorf/plotman
# https://github.com/ericaltendorf/plotman/wiki/Configuration#versions
version: [2]

logging:
        # DO NOT CHANGE THIS IN-CONTAINER PATH USED BY MACHINARIS!
        plots: /root/.chia/plotman/logs

user_interface:
        use_stty_size: False

commands:
        interactive:
                autostart_plotting: False
                autostart_archiving: False

# Where to plot and log.
directories:

        # One or more directories to use as tmp dirs for plotting.  The
        # scheduler will use all of them and distribute jobs among them.
        # It assumes that IO is independent for each one (i.e., that each
        # one is on a different physical device).
        #
        # If multiple directories share a common prefix, reports will
        # abbreviate and show just the uniquely identifying suffix.
          If specified, will be passed to
        # the chia and madmax plotters as the '-2' param.
        tmp2:
                 - /plotting2

        # One or more directories; the scheduler will use all of them.
        # These again are presumed to be on independent physical devices,
        # so writes (plot jobs) and reads (archivals) can be scheduled
        # to minimize IO contention.
        # REMEMBER ALL PATHS ARE IN-CONTAINER, THEY MAP TO HOST PATHS
        dst:
                - /plots1

# See: https://github.com/guydavis/machinaris/wiki/Plotman#archiving
#archiving:
        #target: rsyncd
        #env:
                #site_root: /mnt/disks
                #user: root
                #host: aragorn
                #rsync_port: 12000
                #site: disks

# Plotting scheduling parameters
scheduling:
        # Run a job on a particular temp dir only if the number of existing jobs
        # before tmpdir_stagger_phase_major tmpdir_stagger_phase_minor
        # is less than tmpdir_stagger_phase_limit.
        # Phase major corresponds to the plot phase, phase minor corresponds to
        # the table or table pair in sequence, phase limit corresponds to
        # the number of plots allowed before [phase major, phase minor]
        tmpdir_stagger_phase_major: 2
        tmpdir_stagger_phase_minor: 1
        # Optional: default is 1
        tmpdir_stagger_phase_limit: 1

        # Don't run more than this many jobs at a time on a single temp dir.
        # Increase for staggered plotting by chia, leave at 1 for madmax sequential plotting
        tmpdir_max_jobs: 1

        # Don't run more than this many jobs at a time in total.
        # Increase for staggered plotting by chia, leave at 1 for madmax sequential plotting
        global_max_jobs: 1

        # Don't run any jobs (across all temp dirs) more often than this, in minutes.
        global_stagger_m: 30

        # How often the daemon wakes to consider starting a new plot job, in seconds.
        polling_time_s: 20

        # Optional: Allows overriding some characteristics of certain tmp
        # directories. This contains a map of tmp directory names to
        # attributes. If a tmp directory and attribute is not listed here,
        # it uses the default attribute setting from the main configuration.
        #
        # Currently support override parameters:
        #     - tmpdir_max_jobs
        #tmp_overrides:
                # In this example, /plotting3 is larger than the other tmp
                # dirs and it can hold more plots than the default.
                #/plotting3:
                #        tmpdir_max_jobs: 5

# Configure the plotter.  See: https://github.com/guydavis/machinaris/wiki/Plotman#plotting
plotting:
        # See Keys page, for 'Farmer public key' value
        farmer_pk: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        # ONLY FOR OLD SOLO PLOTS, COMMENT OUT IF PORTABLE PLOTTING!!!
        #pool_pk: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        # See 'Settings | Pools' page, for 'Pool contract address' value, UNCOMMENT IF PORTABLE PLOTTING!!!
        pool_contract_address: xchxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

        # If you enable 'chia', plot in *parallel* with higher tmpdir_max_jobs and global_max_jobs
        # If you enable 'madmax', plot in *sequence* with very low tmpdir_max_jobs and global_max_jobs
        type: madmax

        chia:
                # The stock plotter: https://github.com/Chia-Network/chia-blockchain
                k: 32                # k-size of plot, leave at 32 most of the time
                e: False             # Disable bitfield back sorting (default is True)
                n_threads: 2         # Threads per job
                n_buckets: 128       # Number of buckets to split data into
                job_buffer: 3389     # Per job memory

        madmax:
                # madMAx plotter: https://github.com/madMAx43v3r/chia-plotter
                n_threads: 16          # Default is 4, SLOWLY crank up if you have many cores
                n_buckets: 256        # Default is 256
                n_buckets3: 256       # Default is 256
                n_rmulti2: 1          # Default is 1

Docker Run:
Sice i use the Machinaris Unraid app i don´t have acces to docker run
Additional context & screenshots
https://user-images.githubusercontent.com/84158946/131399877-723a68d5-6591-40d1-a007-f3cb896cd058.png

Hi, as you're on Unraid, please ensure you add -t as an Extra Parameter to the Docker configuration:

This ensure tty mode is enabled for the container which makes Plotman happy. :)

That fixed the Error. Thanks!

That solved the issue. Thanks!


Examples table

Fix #62

Given the examples don't all use the latest version of the action, I was wondering whether this makes sense (as opposed to making the table for a test repo whose workflows would be kept up-to-date). :thinking: At the same time it's nice to see others have adopted it as a complement to GitHub search.

You make a great point but sadly I don't have a clear answer to this. My idea/ vision for the test-repo is to have a packed workflow exploring/testing almost all variant/inputs of the action. The workflow will be triggered by any new release of the action, that way we will be the first to test the action. I am still not sure about how all this will look like once implemented and whether it will cause a conflict against your suggestion, that's why I cannot tell for sure. @vsoch will surely provide a nice input on this.

I didn't even see this! The table is missing some spacers, I checked it's rendering and it's off a bit :)

Oops nevermind, bad copy paste! Here is how it looks

Done! :heavy_check_mark:

I prefer the long name, not everyone know about the abbreviations plus that's the name on the organization page, so i don't see why do we favor the abbreviations? same for r-hub.

Here is the final table! The spacing is just right now, aesthetically pleasing.

The one future tweak we can do is to give that table it's own proper section - in my PR #64 I was calling it "In the Wild" or something like that.

And there could also be a sentence linking to a GitHub search of YAML files mentioning the action. 🤔

Was @superkogito answer above missed?

(R-hub is not an abbreviation though)

I'm a part of us-rse, so I think I can solidly say that it's referred to very commonly as us-rse, especially around documentation for the organization and on GitHub. So that along with how much nicer the table renders is a good call I think. I wrote that original link also, and while it might be appropriate for a single list of names, it makes the table look weird to have it so long!
@maelle that would be a good idea too!

I also don't think people looking for examples care so much about a specific org (they'd rather see an example) and if they do, they can click the link and read the full (extremely long!) name, lol.

I still disagree xD but two votes beat one, so we can to other things ;)


Setup initial github-based CI infrastructure

Currently under the benvanik-ci branch, finishing off the initial work here to get something building (even if suboptimal) will allow us to iterate on it.
The current major blocking requirements to getting things fully end-to-end:

[ ] #1819: installable/consumable LLVM/MLIR (tools like mlir-tblgen, static libraries, headers)
[ ] #1820: installable/consumable IREE compiler for host builds (tools like iree-opt and iree-translate)

If we can get these both working such that on a local machine it's possible to build and install LLVM/MLIR to reuse for IREE compiler builds,and to use prebuilt IREE compiler tools when building runtime bits then getting the CI doing the same is mostly sketched out.
After that, the remaining initial CI work:

[ ] cache the install directories for LLVM/MLIR/IREE host tools
[ ] build commands for each of the above in the right scripts
[ ] runtime configurations for at least android to ensure we can do the cross-compilation

WIP actions config: https://github.com/google/iree/blob/benvanik-ci/.github/workflows/ci-core-hosted.yml
WIP scripts: https://github.com/google/iree/tree/benvanik-ci/.github/workflows/ci

The issues described here seem quite old. In practice I found GitHub actions to be inadequate for regular CI work and extremely slow to debug. I would much prefer we use BuildKite and either way I think we should have more structured discussion about this direction. I'm a bit worried about our proliferation of various infra solutions

The issues described here seem quite old. In practice I found GitHub actions to be inadequate for regular CI work and extremely slow to debug. I would much prefer we use BuildKite and either way I think we should have more structured discussion about this direction. I'm a bit worried about our proliferation of various infra solutions

It's important to be able to bucket things into what is needed for maintenance of the project itself vs what is needed for users of the project (and what are the different types of users). What is inadequate for doing tensorflow builds for pip releases is not always the same as what is useful for someone who just wants to use their own build of LLVM or produce a .jar of the runtime they can use on Android. As is our current problem there is also usability: buildkite means nothing if it doesn't run on forked repos without someone becoming effectively an IREE build engineer (and kokoro is of course the worst because then you have to become a googler). If anything, I'd say that github actions should be the first place we make work for anything a user of IREE or a casual contributor may want to do themselves and only then optimize for our own purposes by using other infra - if that is a burden it means we built things wrong. I've said it many many times, but this should be our goal: it's the commands a user would issue to build, and if we can't "maintain" those files in working order in our repo then we have some major problems.
As a concrete example, someone should be able to use IREE, find a bug in the compiler or runtime, fork IREE, make a change, and see if it passes on their fork without needing to send a PR to do so (and maybe just have the fork with their workaround in perpetuity). Anything less than that is not open source. That doesn't mean rebuilding tensorflow, though, or publishing a package to the pip repository, etc.

It's important to be able to bucket things into what is needed for maintenance of the project itself vs what is needed for users of the project (and what are the different types of users). What is inadequate for doing tensorflow builds for pip releases is not always the same as what is useful for someone who just wants to use their own build of LLVM or produce a .jar of the runtime they can use on Android. As is our current problem there is also usability: buildkite means nothing if it doesn't run on forked repos without someone becoming effectively an IREE build engineer (and kokoro is of course the worst because then you have to become a googler). If anything, I'd say that github actions should be the first place we make work for anything a user of IREE or a casual contributor may want to do themselves and only then optimize for our own purposes by using other infra - if that is a burden it means we built things wrong. I've said it many many times, but this should be our goal: it's the commands a user would issue to build, and if we can't "maintain" those files in working order in our repo then we have some major problems.
As a concrete example, someone should be able to use IREE, find a bug in the compiler or runtime, fork IREE, make a change, and see if it passes on their fork without needing to send a PR to do so (and maybe just have the fork with their workaround in perpetuity). Anything less than that is not open source. That doesn't mean rebuilding tensorflow, though, or publishing a package to the pip repository, etc.

But what you're talking about is all the stuff for building all the parts that a user could then download and install. A user of IREE can do what you describe and run the build locally on their machine. We should definitely have the installable artifacts such that they only need to rebuild the part that they've changed. But it seem you're claiming that unless we also provide a hosting solution that requires zero additional configuration, it's not open source? Since GitHub actions are only a few years old, that would sort of imply that nothing was open source prior to 2018.

But what you're talking about is all the stuff for building all the parts that a user could then download and install. A user of IREE can do what you describe and run the build locally on their machine. We should definitely have the installable artifacts such that they only need to rebuild the part that they've changed. But it seem you're claiming that unless we also provide a hosting solution that requires zero additional configuration, it's not open source? Since GitHub actions are only a few years old, that would sort of imply that nothing was open source prior to 2018.

Not saying that: saying that if our configuration for a user cannot be distilled to something on the scale of "build and run" then we are not an effective open source project (like, say, tensorflow isn't) as no one can use us, and that in response to your "inadequate" statement and worry over multiple pieces of infra that the cost of supporting github actions should be effectively free. If we can't do that we can't expect users to build our project or integrate it into their own CI (regardless of which it is). Remember that the IREE runtime is not a binary artifact but source (or effectively source, like a static library) that is to be linked in to existing projects that have their own existing CIs. We can't tell users to go change their CI or use our docker images instead of their own to build IREE. So again, if we can't get github actions working then we can't expect users to use our project and I'd much rather be able to have github actions like this (or something on that order of complexity) be the thing we use both to ensure we work for user scenarios and a place to point users to for how to configure for their target environments than this or this or this - none of those help us or users ensure the project is actually usable or buildable outside of our own infra. They do help solve other goals (automated releases, automated benchmarking, documentation deployment, etc) but that's a very different set of scenarios and not indicative of how users (both strict consumers or people performing light modifications) interact with IREE.
I was mostly responding to your comment - for this particular issue (which is out of date, but not invalid), we can say things now like we don't need to build integrations and can instead just install the pip binaries for things like iree-import-tf. We can also separate the compiler and runtime components: it'd be acceptable (though not great) for the compiler to come through pip releases and just have the setup for the runtime (the part most people will be directly building, vs. the compiler where only people modifying LLVM/etc will need to change it).
If we can't get the flow down to "pip install the compiler tools and then cmake configure & build to get the runtime" then we have issues - hopefully you can agree with that :)

Not saying that: saying that if our configuration for a user cannot be distilled to something on the scale of "build and run" then we are not an effective open source project (like, say, tensorflow isn't) as no one can use us, and that in response to your "inadequate" statement and worry over multiple pieces of infra that the cost of supporting github actions should be effectively free. If we can't do that we can't expect users to build our project or integrate it into their own CI (regardless of which it is). Remember that the IREE runtime is not a binary artifact but source (or effectively source, like a static library) that is to be linked in to existing projects that have their own existing CIs. We can't tell users to go change their CI or use our docker images instead of their own to build IREE. So again, if we can't get github actions working then we can't expect users to use our project and I'd much rather be able to have github actions like this (or something on that order of complexity) be the thing we use both to ensure we work for user scenarios and a place to point users to for how to configure for their target environments than this or this or this - none of those help us or users ensure the project is actually usable or buildable outside of our own infra. They do help solve other goals (automated releases, automated benchmarking, documentation deployment, etc) but that's a very different set of scenarios and not indicative of how users (both strict consumers or people performing light modifications) interact with IREE.
I was mostly responding to your comment - for this particular issue (which is out of date, but not invalid), we can say things now like we don't need to build integrations and can instead just install the pip binaries for things like iree-import-tf. We can also separate the compiler and runtime components: it'd be acceptable (though not great) for the compiler to come through pip releases and just have the setup for the runtime (the part most people will be directly building, vs. the compiler where only people modifying LLVM/etc will need to change it).
If we can't get the flow down to "pip install the compiler tools and then cmake configure & build to get the runtime" then we have issues - hopefully you can agree with that :)

I'd be open to having this discussion in a more structured way. In addition to the points made above, there are practical considerations with respect to Actions and BuildKite that it would be good to talk through.
My opinion is largely that release pipelines for deployment to the big-3 (Linux, MacOS, Windows), GitHub Actions is the right tool for the job due to its standardization and availability of runners that anyone can use. You can fork the repo, click to generate a release and eventually get a built and tested set of artifacts.
For pre-submits, though, it can be (a lot) more trouble for a project such as ours. It is difficult to scale GitHub Actions to have sufficient resources for effective/timely presubmits that need to build anything but a small project, and GitHub themselves recommends against public projects using custom runners to overcome this for (good) security reasons. Based on my experience with npcomp, we can get a working presubmit flow that lives in the confines of GitHub Actions with (very) creative uses of caching, but it will still suffer from cache-invalidation-costs-an-hour problems. It isn't great. For presubmits, I don't love Kokoro, but a big part of me is inclined to acknowledge that what we have works and we use it for the next 6 months, then checkpoint and see if any of the cloud CI options have better custom runner options for repos such as ours.
I can go either way on release pipelines for oddball platforms. I suspect the right answer for now on that end is to build and publish release artifacts on GitHub Actions and then trigger tests on BuildKite (or whatever is the easiest/most portable for running such agents).
In any case, there is a middle road where most of the CI pipeline is just scripts and docker images, can be run locally, or can be (relatively) easily ported to alternatives without being too tied down. Probably should do that regardless.

I'd be open to having this discussion in a more structured way. In addition to the points made above, there are practical considerations with respect to Actions and BuildKite that it would be good to talk through.
My opinion is largely that release pipelines for deployment to the big-3 (Linux, MacOS, Windows), GitHub Actions is the right tool for the job due to its standardization and availability of runners that anyone can use. You can fork the repo, click to generate a release and eventually get a built and tested set of artifacts.
For pre-submits, though, it can be (a lot) more trouble for a project such as ours. It is difficult to scale GitHub Actions to have sufficient resources for effective/timely presubmits that need to build anything but a small project, and GitHub themselves recommends against public projects using custom runners to overcome this for (good) security reasons. Based on my experience with npcomp, we can get a working presubmit flow that lives in the confines of GitHub Actions with (very) creative uses of caching, but it will still suffer from cache-invalidation-costs-an-hour problems. It isn't great. For presubmits, I don't love Kokoro, but a big part of me is inclined to acknowledge that what we have works and we use it for the next 6 months, then checkpoint and see if any of the cloud CI options have better custom runner options for repos such as ours.
I can go either way on release pipelines for oddball platforms. I suspect the right answer for now on that end is to build and publish release artifacts on GitHub Actions and then trigger tests on BuildKite (or whatever is the easiest/most portable for running such agents).
In any case, there is a middle road where most of the CI pipeline is just scripts and docker images, can be run locally, or can be (relatively) easily ported to alternatives without being too tied down. Probably should do that regardless.

+1 Stella. My two high-level comments about this issue are: it seems over-prescribed to be about GitHub actions vs "make building IREE easy" (which I am 100% behind) and I think we should talk about our goals here a bit more, and that my experience with trying to get GitHub actions working for presubmits was that it was a huge pain because of the resource constraints. I've been wanting to rip up our CI system and rewrite it, but have been fighting that urge because of the "we have something that mostly works" point :grin: If we are going to do so, I want to make sure we have a longer conversation first about where the best direction to go in is.
In the meantime, anything to make building IREE easier (like #4323) seem like the more generic "this helps no matter which direction we go".

+1 Stella. My two high-level comments about this issue are: it seems over-prescribed to be about GitHub actions vs "make building IREE easy" (which I am 100% behind) and I think we should talk about our goals here a bit more, and that my experience with trying to get GitHub actions working for presubmits was that it was a huge pain because of the resource constraints. I've been wanting to rip up our CI system and rewrite it, but have been fighting that urge because of the "we have something that mostly works" point :grin: If we are going to do so, I want to make sure we have a longer conversation first about where the best direction to go in is.
In the meantime, anything to make building IREE easier (like #4323) seem like the more generic "this helps no matter which direction we go".

We're reopening the topic of moving our primary build+test CI from Kokoro to somewhere (likely Buildkite). What shall we do with this issue?

Well I've been not touching it until I write an issue for the other thing and then I was going to close this one :stuck_out_tongue:

@GMNGeoffrey / @benvanik . Want to open a new issue for setting up Buildkite infra and close this now?


Add env param to Subprocess call

I noticed an issue wherein the c.Spawner.environment setting in the JupyterHub config was not being used when spawning the new process. It seems to be so because we are not passing the env to the Subprocess function.
I hope this request can be merged soon and a new release could be created shortly thereafter.

Checking back in on this, cc @minrk

Hi, thanks for the PR! I think this is not the right fix. env in the subprocess command sets the environment for the mediator process, which is not the notebook server process that Spawner.environment should set. This is relayed via passing the args and env fields through the mediator. This is passed to the mediator here and from the mediator to the real process here. I opened #53 to enable some testing, which should include verification that Spawner.environment is indeed passed on to the notebook process.
How are you setting the environment and what are you seeing as a result?

I am setting up the PYTHONPATH in the JupyterHub config under c.Spawner.environment. I have listed the config items related to SudoSpawner below:
c.JupyterHub.spawner_class = 'sudospawner.SudoSpawner'
c.SudoSpawner.sudospawner_path = '/path/to/script'
c.Spawner.environment = {
    'PYTHONPATH': '/some/path/'
}

However, I find that it is not set in the notebook env on the spawned server.

Checking back in on this, cc @minrk

@minrk are there any updates on the testing process?

6 years late is better than never :)
@ssatia the behavior you are seeing is because PYTHONPATH is intentionally not allowed to be set this way - see https://github.com/jupyterhub/sudospawner/blob/adc6298ddf2329bf50161178c91c87c54c637568/sudospawner/mediator.py#L90.
With that, I'm going to close this PR.


ci: generate (some) github actions pipelines

This uses a Dagger pipeline to generate the Github Actions pipelines to run our Dagger pipelines.
To generate, run this command from the root of the repo:
dagger call -m .github config -o .github

FYI @aduermael @gdevillele  :)

@aduermael @gdevillele  I tried to use the same workflow names in the generated config, not sure why the "required checks" config is not matched... Would you mind sharing a screenshot of that setting, so I can understand the problem?

@shykes this ?

Thanks a lot for the PR!!

@shykes could it be related to the "source"?

@gdevillele I checked on another repo, and I don't understand why it doesn't match... Would you mind giving me admin access to the repo temporarily, so I can take a look? I suspect it takes into account the filename, even though the check names look identical in the UI. So I may have to just delete and re-create the required checks.

Ping @gdevillele @aduermael, if you give me (temporary) admin access on the repo I am happy to check on these required checks myself.

ready for review @aduermael :)


let {p} = obj , obj = {p: 42};   in for statement terminates without error

Hello,
Executing these programs below (LexicalDeclaration with array/object pattern in ForStatement) is expected to result in ReferenceError.  However, using GraalJS terminates without error.
for ( let [a, b, c] = arr , arr = [1, 2, 3] ; ; ) break ; // case 1
for ( let {p} = obj , obj = {p: 42} ; ; ) break ; // case 2

According to
evaluation of ForStatement in ECMAScript specification and
evaluation of LexicalDeclaration in ECMAScript specification,
In ForStatement algorithm, step 6 creates uninitialized bindings for identifiers. This binding is initialized in step 7: Evaluation of LexialDeclaration.

In BindingList algorithm, initializations for identifiers are done in left-to-right order; the first LexicalBinding (e.g. let [a, b, c] = arr and let {p} = obj) was initialized before the initialization of the second LexicalBinding (e.g. arr = [1, 2, 3] and obj = {p: 42}).

So I think that a ReferenceError should appear due to uninitialized arr and obj but GraalJS terminates without error.
$ js --version
GraalVM JavaScript (GraalVM CE Native 22.2.0)
$ js
> for ( let [a, b, c] = arr , arr = [1, 2, 3] ; ; ) break ; // no error
> for ( let {p} = obj , obj = {p: 42} ; ; ) break ; // no error

result of NodeJS
$ node
Welcome to Node.js v18.8.0.
Type ".help" for more information.
> for ( let [a, b, c] = arr , arr = [1, 2, 3] ; ; ) break ;
Uncaught ReferenceError: Cannot access 'arr' before initialization
> for ( let {p} = obj , obj = {p: 42} ; ; ) break ;
Uncaught ReferenceError: Cannot access 'obj' before initialization

Hi, Thank you for reporting this issue, We'll take a look into it shortly

Tracked internally on GR 41576

Thank you for the report! Fixed by https://github.com/oracle/graaljs/commit/0e5cc006aafe7c015e178eed2858800fbd11d527.


Filter results

First of all, I wanted to thank you for this app, is very very cool, specially if you love CLI's :)
After messing with it a little, and given you already have a data structure for each book, it would be super useful to filter any given results by one (or many) of the fields in the data structure (exact value, sub-string with lower caps comparision, or whatever method you think best).
I dont know about how to develop in the particular CLI you are using, but if it were too difficult CLI wise, just some sort of extra argument in the search command would do, for instance:
? Search : My Book Name --Author "Arthur" --Lang "English"
This would search for My Book Name and show only those results with the word Arthur in the author field and the word English in the field Lang.
Otherwise, we need to get into the description of each book result to know wether or not they are in english.
I understand if you dont have the time to get to it, and want to thank you for what you have already done.

Hi @Armagedoom !
First, you are welcome! Thanks for these kind words! I am happy to you love the app.
Second, thanks for this very well explanation of the feature. It is cool idea! Actually nowadays I am thinking about refactoring some piece of code with the Ink to make the user interface more stable and the code base much more maintainable. So this feature can be a part the next release. It is probably not going to be quickly but I will certainly try to add this feature if something not gone wrong or unexpected.
Again, thanks for using the app and thanks for your kind words!

Hello again @Armagedoom,
After your suggestion, I added a separate section with in the new release to below of the search bar to be able to filter results. So I will close this issue after I merged the branch of the new release. If you see any issue in the new version please feel free to open another new issue. I hope the new version meets your expactations.
Take care, Kind regards!

@obsfx Is it possible to persist the filters in between searches?
For example, if I was only ever interested in epub?


OpenVPN server wizard always asks to create a new CA

When you use the OpenVPN server wizard to create a new server you are always asked to
create a New Certificate Authority (CA) Certificate.
You can not use an already existing CA. There should be an option to select an existing CA.

@fichtner can this be closed now?

fixed in https://github.com/opnsense/core/pull/3614 thanks to @johnaheadley 👍


Red trust proved ?

Hey, i tested this application, it works  perfect, however it is unknow if it will cause the account to be red trust factor, please advise.
And how can i contact you for technical exchange.

If VAC flags programs that you used when playing game as cheat program, you may get banned in couple of weeks or get permanent red trust.
It's recommended to use VAC Bypass to bypass anti-cheat scan and drastically reduce the likelihood of a VAC ban.It may help reducing red trust possibility.

wechat:yobanihcc

Thank you for replying


Set output rank for squeeze op

@Honry Please verify the example again with the PR, thanks.

@please try it again, thanks.

Thanks @fujunwei, it works!

Thanks much for helping to verfy.


SAA-180 AM Events Endpoint: Client for (prison api) visits endpoint

New client for prison api visits
Added prison api visits call to ScheduledEventService#getScheduledEventsByDateRange Added visits attribute to PrisonerScheduledEvents model Removed @Autowired annotation from ControllerAdvice - implicit constructor injection should make this annotation superflous.

Are you going to add the ControllerTestBase class to address the comments on the previous PR?

Codecov Report
Base: 61.55% // Head: 61.78% // Increases project coverage by +0.22% :tada:

Coverage data is based on head (d21f2a3) compared to base (177c0f6).
Patch coverage: 89.47% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##               main      #78      +/-   ##
============================================
+ Coverage     61.55%   61.78%   +0.22%
- Complexity      390      393       +3
============================================
  Files           103      103
  Lines          2094     2109      +15
  Branches         37       38       +1
============================================
+ Hits           1289     1303      +14
  Misses          783      783
- Partials         22       23       +1

Impacted Files
Coverage Δ

...activitiesmanagementapi/util/TransformFunctions.kt
92.02% <33.33%> (-0.50%)
:arrow_down:

...agementapi/client/prisonapi/api/PrisonApiClient.kt
100.00% <100.00%> (ø)

...activitiesmanagementapi/config/ControllerAdvice.kt
62.96% <100.00%> (ø)

...tiesmanagementapi/model/PrisonerScheduledEvents.kt
94.11% <100.00%> (+0.78%)
:arrow_up:

...tiesmanagementapi/service/ScheduledEventService.kt
89.47% <100.00%> (+1.97%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


nvim-0.3.3 hangs at start with non-existing haskell file

Information
VIM version
NVIM v0.3.3
Build type: Release
LuaJIT 2.0.5
ale is commit 4d426bf2873c6e1cd2c71e478c756903307628d3
Operating System: Gentoo Linux
What went wrong
When I launch nvim with nvim path/to/non-existing.hs, nvim hangs at launch with cpu at 100%.
If I disable ale in vim's config file nvim launches normally.
Interestingly it seems to be something specific to haskell since I can't reproduce the same behavior with other languages (tried python, perl, c, bash)
Similarly, nvim non-existing.hs also works fine. The non-existing path/to makes a difference.
Reproducing the bug
/tmp/testrc is:
call plug#begin('~/.vim/bundle')
Plug 'w0rp/ale'
call plug#end()

and plug is https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim installed into nvim's autoload/.

nvim -u /tmp/testrc path/to/nowhere.hs in urxvt
nvim hangs in the terminal
Press Ctrl+C and it resumes with some errors.

:ALEInfo
 Current Filetype: haskell
Available Linters: ['cabal_ghc', 'ghc', 'ghc_mod', 'hdevtools', 'hie', 'hlint', 'stack_build', 'stack_ghc']
   Linter Aliases:
'cabal_ghc' -> ['cabal-ghc']
'ghc_mod' -> ['ghc-mod']
'stack_build' -> ['stack-build']
'stack_ghc' -> ['stack-ghc']
  Enabled Linters: ['cabal_ghc', 'ghc', 'ghc_mod', 'hdevtools', 'hie', 'hlint', 'stack_build', 'stack_ghc']
 Suggested Fixers:
  'brittany' - Fix Haskell files with brittany.
  'hfmt' - Fix Haskell files with hfmt.
  'hlint' - Refactor Haskell files with hlint.
  'remove_trailing_lines' - Remove all blank lines at the end of a file.
  'stylish-haskell' - Refactor Haskell files with stylish-haskell.
  'trim_whitespace' - Remove all trailing whitespace characters at the end of every line.
 Linter Variables:
let g:ale_haskell_ghc_mod_executable = 'ghc-mod'
let g:ale_haskell_ghc_options = '-fno-code -v0'
let g:ale_haskell_hdevtools_executable = 'hdevtools'
let g:ale_haskell_hdevtools_options = '-g -Wall'
let g:ale_haskell_hie_executable = 'hie'
let g:ale_haskell_hlint_executable = 'hlint'
let g:ale_haskell_hlint_options = ''
 Global Variables:
let g:ale_cache_executable_check_failures = v:null
let g:ale_change_sign_column_color = 0
let g:ale_command_wrapper = ''
let g:ale_completion_delay = v:null
let g:ale_completion_enabled = 0
let g:ale_completion_max_suggestions = v:null
let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%code: %%s'
let g:ale_echo_msg_info_str = 'Info'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 1
let g:ale_fix_on_save = 0
let g:ale_fixers = {}
let g:ale_history_enabled = 1
let g:ale_history_log_output = 1
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_filetype_changed = 1
let g:ale_lint_on_insert_leave = 0
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'always'
let g:ale_linter_aliases = {}
let g:ale_linters = {}
let g:ale_linters_explicit = 0
let g:ale_list_vertical = 0
let g:ale_list_window_size = 10
let g:ale_loclist_msg_format = '%code: %%s'
let g:ale_lsp_root = {}
let g:ale_max_buffer_history_size = 20
let g:ale_max_signs = -1
let g:ale_maximum_file_size = v:null
let g:ale_open_list = 0
let g:ale_pattern_options = v:null
let g:ale_pattern_options_enabled = v:null
let g:ale_set_balloons = 0
let g:ale_set_highlights = 1
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = 0
let g:ale_sign_error = '>>'
let g:ale_sign_info = '--'
let g:ale_sign_offset = 1000000
let g:ale_sign_style_error = '>>'
let g:ale_sign_style_warning = '--'
let g:ale_sign_warning = '--'
let g:ale_statusline_format = v:null
let g:ale_type_map = {}
let g:ale_use_global_executables = v:null
let g:ale_virtualtext_cursor = 0
let g:ale_warn_about_trailing_blank_lines = 1
let g:ale_warn_about_trailing_whitespace = 1
  Command History:
(executable check - success) cabal
(finished - exit code 1) ['/bin/zsh', '-c', 'cabal exec -- ghc -fno-code -v0 ''/tmp/nvimRcX7mT/1/nowhere.hs''']
<<<OUTPUT STARTS>>>
/tmp/nvimRcX7mT/1/nowhere.hs:1:1:
    The IO action ‘main’ is not defined in module ‘Main’
<<<OUTPUT ENDS>>>
(executable check - success) ghc
(finished - exit code 1) ['/bin/zsh', '-c', 'ghc -fno-code -v0 ''/tmp/nvimRcX7mT/2/nowhere.hs''']
<<<OUTPUT STARTS>>>
/tmp/nvimRcX7mT/2/nowhere.hs:1:1:
    The IO action ‘main’ is not defined in module ‘Main’
<<<OUTPUT ENDS>>>
(executable check - success) ghc-mod
(finished - exit code 1) ['/bin/zsh', '-c', '''ghc-mod'' --map-file ''path/to/nowhere.hs''=''/tmp/nvimRcX7mT/3/nowhere.hs'' check ''path/to/nowhere.hs''']
<<<NO OUTPUT RETURNED>>>
(executable check - success) hdevtools
(finished - exit code 1) ['/bin/zsh', '-c', '''hdevtools'' check -g -Wall -p ''path/to/nowhere.hs'' ''/tmp/nvimRcX7mT/4/nowhere.hs''']
<<<NO OUTPUT RETURNED>>>

https://stackoverflow.com/a/12216578/1836507 Follow the steps here and attach a profile log. Usually problems with Vim hanging are caused by other plugins.

As I mentioned above I used a vimrc that only has ale in there and it still hangs.
I also tried:
nvim --startuptime /tmp/timeCost.txt path/to/nowhere.hs

and the last line printed before hanging is:
233.867  000.123  000.123: sourcing /data/bundle/ale/autoload/ale/path.vim

Profiling hangs after:
:e path/to/nowhere.hs
I then press Ctrl+C and quit.
Attached is the profile log

120155              0.414002         while empty(matchstr(l:cabal_file, '^\(\/\|\(\w:\\\)\)$'))
120155              0.210120             let l:cabal_file = fnamemodify(l:cabal_file, ':h')
120155              3.175341             let l:paths = l:paths . l:cabal_file . ','
120155              0.053781         endwhile

That's the issue. It looks like someone a loop which can run forever. Someone should fix that.

CC'ing @Luxed as author based on the git log.
Any chance you could have a look at this?

I should have fixed this now. Give it a try.

Yup that works. Thanks!

:p woops, my bad, my knowledge of vim script and the weird way HIE works compared to other lsp (I discovered after pushing my changes that HIE scans for the project itself).
Anyway, thanks for the fix :beers:


Update Portfolio Page

Codecov Report

Merging #225 (4257137) into master (36263a9) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #225   +/-   ##
=========================================
  Coverage     80.36%   80.36%
  Complexity      983      983
=========================================
  Files           146      146
  Lines          2832     2832
  Branches        334      334
=========================================
  Hits           2276     2276
  Misses          478      478
  Partials         78       78

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 36263a9...4257137. Read the comment docs.