Create manual test plan for end to end testing

Description
This task is created to make manual test plan for end to end testing of Audit log component.
Test cases to be covered
Test cases to be tested should be listed here. Test cases should cover component level testing and full flow testing. Both positive and negative tests should be listed.
**Instantiation of different apps by different users to verify logs in authentication **

[x] Login with TestID login method for SSN user who is Instantiating app and verify events are logged in Audit log
[x] Login with BankID login method for SSN user who is Instantiating app and verify events are logged in Audit log
[x] Login with Altinnpin login method for SSN user who is Instantiating app and verify events are logged in Audit log
[x] Verify events are logged when EC_user tries to login and instantiate app
[ ] Verify events are logged when user logged in via API using maskinporten token and instantiates an app

**With feature toggle on and off **

[x] Verify events are logged when Audit log feature toggle is on.
[x] Events should not be logged in database when feature toggle is off.

**Verify logs for org and Changes made by different users on app after instantiation **

[ ] SSN user who has rights on another SSN make changes after Instantiating app
[ ] SSN user who has limited rights on organization make changes after instantiating app
[ ] SSN user who has key role on organization make submits app after instantiating
[ ] Verify SSN-2 user who has rights on instantiated app which is instantiated by SSN-1 logged with BankID and makes changes in instantiated events should be logged
[ ] Org user who has limited role on another org make changes after instantiating app on behalf of another org
[ ] Verify events should be logged when org user who keyrole on sub-org make changes after instantiating app
[ ] Sub-org who has limited roles make changes on behalf of main org and events should be logged
[ ] Events should be logged when SSN user who has signing rights make changes in app and submits app on behalf of org and sub-org
[ ] Events should be logged when unauthorized user tried to make changes in app which is instantiated
[ ] User logged in with maskinporten token after got logged out saves refresh event in event log.

Delegations

[ ] Org user who sends request for API delegation and events should be logged in Audit log.
[ ] User who has no rights sends request for API delegations.
[ ] Verify events are logged when SSN user sends request to perform some actions on resources.
[ ] Verify events are logged when Org user sends request to perform some actions on resources.
[ ] User who is not authorized tries to perform some actions on resources and events are logged in audit log.

If I understand this correctly, we dont need to test login and check it in audit log.
Audit log should be checked for instantiation of apps accompanied with login, but we can discuss this with @acn-dgopa
Test case -  SSN user who sends request for API delegation and events should be logged in Audit log --> this is not a valid scenario. SSN never gets panel for API delegering

what if user tries to instantiate app before login and credentials failed in that case events are logged or not logged?


Mr setting up server

In order to accomplish MVP and get the server up and running I have implemented a pretty inneficient server.
It is fetching all the information needed before returning it so this makes the website render about a second slower than it would otherwise.
Structure of the Object the server returns
{
  info: {},
  styles: {},
  related_ids: [],
  reviews: {},
  meta: {},
  questions: {},
  cart: [],
  answers: {},
  related: {}
}

(Trello Ticket)[https://trello.com/c/ZFlSl7ln]

I also made some changes to the ProductContext and the RatingBreakdown as I was testing to make sure everything worked.

 Server Endpoint for Product Information


add instagram buttons

as per #239
there is no "share on instagram" feature offered by facebook that I could find, so I've omitted that addition.

@rau can you pull this PR and make sure that the social media icons are all spaced correctly?


Just want to ask, the best way to add condition, to generate an Og-image or just specify an image cover.

Details
I am working on a blog site, I created an island component for my OG, and currently, I am using v-if in the component. But is there a better way to add a conditional? or I am doing it right?

Yup, that sounds right, you just call the component or add the component on whatever page you want the og image to be generated.
If you provide a code sample I can provide further guidance.

I did it like this. So basically in the useHead method,,, I added a condition to check if cover image is defined, if not use og image as default meta og image.
useHead({
    ...setMeta({
        title: data.value.title,
        description: data.value.summary,
        path: `/blog/${data.value.slug}`,
        keywords: data.value.keywords,
        lang: "en",
        ...(coverImageLink.value
            ? {
                  image: coverImageLink.value,
              }
            : {}),
    }),
});

And then I added a condition like the code bellow that way, if cover image is defined the cover image will be used as og image.. and if no cover image defined, it will use the OgImageStatic component to create default og image.
<OgImageStatic
        v-if="!coverImageLink"
        component="DefaultOgImage"
        :path="route.path"
        :title="data.title"
        :description="data.summary"
        appName="www.BroJenuel.com"
    />

This is how I would do it :+1: Feel free to re-open if you need anymore guidance


Consolidate logic

Which issue this PR addresses:
Fixes
What this PR does / why we need it:
Test plan for issue:
Is there any documentation that needs to be updated for this PR?

Closed in favour of: https://github.com/Azure/ARO-RP/pull/3392


MXNet cu100 nightly release breaks Horovod integration tests

Description
For detailed reproducible steps and environment information, please refer to: https://github.com/horovod/horovod/issues/1217

This should be fixed by #15551

Got into another issue:
mxnet-cu100==1.5.0b20190717
(mxnet_p36) ubuntu@ip-172-31-21-35:~$ pip install mxnet-cu100 --pre
Collecting mxnet-cu100
  Downloading https://files.pythonhosted.org/packages/b7/c4/1e0c4d21ed6dca0890a9db3e23f78c9d8df1651330547c7778aa1a974ea6/mxnet_cu100-1.5.0b20190717-py2.py3-none-manylinux1_x86_64.whl (540.1MB)
    100% |████████████████████████████████| 540.1MB 136kB/s
Requirement already satisfied: numpy<2.0.0,>1.16.0 in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from mxnet-cu100) (1.17.0rc2)
Requirement already satisfied: requests<3,>=2.20.0 in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from mxnet-cu100) (2.20.0)
Requirement already satisfied: graphviz<0.9.0,>=0.8.1 in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from mxnet-cu100) (0.8.4)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from requests<3,>=2.20.0->mxnet-cu100) (3.0.4)
Requirement already satisfied: idna<2.8,>=2.5 in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from requests<3,>=2.20.0->mxnet-cu100) (2.6)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from requests<3,>=2.20.0->mxnet-cu100) (1.23)
Requirement already satisfied: certifi>=2017.4.17 in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from requests<3,>=2.20.0->mxnet-cu100) (2019.3.9)
Installing collected packages: mxnet-cu100
Successfully installed mxnet-cu100-1.5.0b20190717
You are using pip version 10.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Horovod master branch
(mxnet_p36) ubuntu@ip-172-31-21-35:~$ HOROVOD_GPU_ALLREDUCE=NCCL HOROVOD_WITHOUT_TENSORFLOW=1 HOROVOD_WITHOUT_PYTORCH=1 HOROVOD_WITH_MXNET=1 pip install --no-cache-dir ~/horovod
Processing ./horovod
Requirement already satisfied: cloudpickle in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from horovod==0.16.4) (0.5.3)
Requirement already satisfied: psutil in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from horovod==0.16.4) (5.4.5)
Requirement already satisfied: six in ./anaconda3/envs/mxnet_p36/lib/python3.6/site-packages (from horovod==0.16.4) (1.11.0)
Installing collected packages: horovod
  Found existing installation: horovod 0.16.4
    Uninstalling horovod-0.16.4:
      Successfully uninstalled horovod-0.16.4
  Running setup.py install for horovod ... done
Successfully installed horovod-0.16.4
You are using pip version 10.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Unit test failed due to undefined symbol introduced in #15551.
(mxnet_p36) ubuntu@ip-172-31-21-35:~$ ~/anaconda3/envs/mxnet_p36/bin/mpirun -np 2 -H localhost:2 pytest horovod/test/test_mxnet.py
============================= test session starts ==============================
platform linux -- Python 3.6.5, pytest-3.5.1, py-1.5.3, pluggy-0.6.0
============================= test session starts ==============================
platform linux -- Python 3.6.5, pytest-3.5.1, py-1.5.3, pluggy-0.6.0
rootdir: /home/ubuntu/horovod, inifile:
rootdir: /home/ubuntu/horovod, inifile:
plugins: remotedata-0.2.1, openfiles-0.3.0, doctestplus-0.1.3, arraydiff-0.2
plugins: remotedata-0.2.1, openfiles-0.3.0, doctestplus-0.1.3, arraydiff-0.2
collected 0 items / 1 errors
collected 0 items / 1 errors

==================================== ERRORS ====================================
_____________________ ERROR collecting test/test_mxnet.py ______________________
horovod/test/test_mxnet.py:20: in <module>
    import horovod.mxnet as hvd
anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/horovod/mxnet/__init__.py:25: in <module>
    from horovod.mxnet.mpi_ops import allgather
anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/horovod/mxnet/mpi_ops.py:29: in <module>
    _basics = _HorovodBasics(__file__, 'mpi_lib')
anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/horovod/common/basics.py:27: in __init__
    self.MPI_LIB_CTYPES = ctypes.CDLL(full_path, mode=ctypes.RTLD_GLOBAL)
anaconda3/envs/mxnet_p36/lib/python3.6/ctypes/__init__.py:348: in __init__
    self._handle = _dlopen(self._name, mode)
E   OSError: /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/horovod/mxnet/mpi_lib.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN5mxnet7Context13CudaLibChecksEv
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!
=========================== 1 error in 1.52 seconds ============================

==================================== ERRORS ====================================
_____________________ ERROR collecting test/test_mxnet.py ______________________
horovod/test/test_mxnet.py:20: in <module>
    import horovod.mxnet as hvd
anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/horovod/mxnet/__init__.py:25: in <module>
    from horovod.mxnet.mpi_ops import allgather
anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/horovod/mxnet/mpi_ops.py:29: in <module>
    _basics = _HorovodBasics(__file__, 'mpi_lib')
anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/horovod/common/basics.py:27: in __init__
    self.MPI_LIB_CTYPES = ctypes.CDLL(full_path, mode=ctypes.RTLD_GLOBAL)
anaconda3/envs/mxnet_p36/lib/python3.6/ctypes/__init__.py:348: in __init__
    self._handle = _dlopen(self._name, mode)
E   OSError: /home/ubuntu/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/horovod/mxnet/mpi_lib.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN5mxnet7Context13CudaLibChecksEv
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!
=========================== 1 error in 1.54 seconds ============================
-------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
-------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:

  Process name: [[34828,1],0]
  Exit code:    2
--------------------------------------------------------------------------

@DickJC123

I am working on a PR to fix this.

Fix has been merged in Horovod.


fix: clang compilation warnings with -Wstrict-prototypes

Change fixes this kind of compilation warnings with clang-17:
proto/if_python3.pro:13:20: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
   13 | int python3_version();
      |                    ^
      |                     void

Interesting how do you compile vim?
I have made a PR to get clang-17 on the CI but it runs fine on latest patch.:
https://github.com/vim/vim/pull/12745

@pheiduck  asked:

Interesting how do you compile vim?
I have made a PR to get clang-17 on the CI but it runs fine on latest patch.:
https://github.com/vim/vim/pull/12745

To reproduce the warning with clang-17, I had uncommented out this line to enable -Wall -Wmissing-prototypes:
$ git diff
diff --git a/src/Makefile b/src/Makefile
index 4d0a5ebad..a5c0d9dea 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -602,7 +602,7 @@ CClink = $(CC)
 #CFLAGS = -g -O2 -fno-strength-reduce -Wall -Wmissing-prototypes
 #CFLAGS = -g -Wall -Wmissing-prototypes
 #CFLAGS = -O6 -fno-strength-reduce -Wall -Wshadow -Wmissing-prototypes
-#CFLAGS = -g -DDEBUG -Wall -Wshadow -Wmissing-prototypes
+CFLAGS = -g -DDEBUG -Wall -Wshadow -Wmissing-prototypes
 #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes

 # Use this with GCC to check for mistakes, unused arguments, etc.

I now see that the warning is not specific to clang-17 actually, it also happens with clang-14, clang-15, gcc-9, gcc-11 for example, so I'll reword the commit message.

I think if certain warnings are important, such as -Wmissing-prototypes and -Wstrict-prototypes, we should turn them on in ci/config.mk.sed or ci/config.mk.gcc.sed or ci/config.mk.clang.sed. This way it will actually checked in CI.
Otherwise it's just whack-a-mole every time. We should either decide if such warnings are important (in which case we check them in CI), or unimportant (in which case we don't bother fixing them).

Hmm, I tried adding this to CI and seems like GTK and Ruby headers don't really like them, so it would be a little annoying to just add them in unless we also add warning suppression when including those headers…


Merged master

Docs Build status updates of commit 63ccfab:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

SkiaSharpAPI/SkiaSharp/SKBitmap.xml
:white_check_mark:Succeeded

SkiaSharpAPI/SkiaSharp/SKCodec.xml
: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.


[POA-2410] When apidump returns an error, do not exit.

This avoids causing a boot-loop when the POSTMAN_API_KEY environment variable is missing or incomplete, or a command-line parameter is bad.
I don't think we can distinguish initialization from non-initialization errors entirely, but almost all errors that are returned will be config problems.

If you use this hide whitespace setting, the diff does not show apidumpRunInternal function change

The diff after applying that setting


BUG::Loader NOT VISIBLE #351

NOW OLD LOADER IS WORKING FINE
https://github.com/Anushkabh/krishiconnect/assets/101548649/89117c85-161f-4977-9483-f38c64992a41

@nishant0708 From next time mention issue number also

Fixes #351


Error while changing package name

I was changing the package name in the flutter project and got following error :
Overlay manifest:package attribute declared at AndroidManifest.xml:2:5-34 value=(com.olps.schoolerp1)
	has a different value=(com.olps.schoolerp) declared in main manifest at AndroidManifest.xml:2:5-33
	Suggestion: remove the overlay declaration at AndroidManifest.xml 	and place it in the build.gradle:
		flavorName {
			applicationId = "com.olps.schoolerp1"
		}

According to #35976 I changed package name in following files
1.) src/profile/AndroidManifest.xml
2.) src/debug/AndroidManifest.xml
3.) src/main/AdroidManifest.xml
4.) build.gradle
5.) MainActivity.kt ( as MainActivity.java was missing )
But I am still getting same error. Also I tried rebuilding app after flutter clean

Hi @Vaibhavck
It seems you are asking for assistance on personal code. Please see https://flutter.dev/community for resources and asking questions like this, you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
I suggest you to read about how to change your application ID on Android:
https://developer.android.com/studio/build/application-id
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


Fail early when incorrect file is used for csv tasks

We had a user attempt to use a tsv file instead of a csv for our maintenance task.
The task continued to attempt to process the file and fail.
We should fail earlier and indicate that the input is incorrect.

We should be able to use ActionDispatch::Http::UploadedFile#content_type at the controller layer.
But we could probably add the validation at the Run layer, we would need to change the test and CLI to provide a content type to the attachable: https://github.com/rails/rails/blob/v<IP_ADDRESS>/activestorage/lib/active_storage/attached/one.rb#L28


Same chain configuration imported by different HELM layouted differently (anyway - both are wrong)

Steps to Reproduce

Go to Macro - Snake mode
Load from HELM using paste from clipboard: RNA1{R(A)P.R(A)P}|RNA2{R(C)P.R(C)P.R(C)P}$RNA1,RNA2,5:pair-2:pair$$$V2.0
Load from HELM using paste from clipboard: RNA1{R(C)P.R(C)P.R(C)P}|RNA2{R(A)P.R(A)P}$RNA2,RNA1,5:pair-2:pair$$$V2.0

Actual behavior
First HELM:

Second one:

Expected behavior
Both cases should be layed out same way

Versions

Ketcher Version 2.28.0-rc.1 Build at 2024-12-03; 17:04:52
Indigo Version 1.27.0-rc.1.0-g8d656a341-wasm32-wasm-clang-19.0.0
Chrome Version 131.0.6778.109 (Official Build) (64-bit)
Win10

Issue found while testing - https://github.com/epam/ketcher/issues/5712

Verified.

Versions

Ketcher Version 2.28.0-rc.2 Build at 2024-12-10; 18:40:08
Indigo Version 1.27.0-rc.1.0-g8d656a341-wasm32-wasm-clang-19.0.0
Chrome Version 131.0.6778.140 (Official Build) (64-bit)
Win10


Update Prometheus Data Source Docs for Grafana

What type of PR is this?
/kind documentation
What this PR does / why we need it:
On this existing documentation, the below sentence exists.

Add the Prometheus data source, http://host.docker.internal:9090, on Grafana

While setting up Prometheus, using the above URL to access the host port didn't work on my Ubuntu machine running on AWS, I had this error Error reading Prometheus: Post "http://host.docker.internal:9090/api/v1/query": dial tcp: lookup host.docker.internal on <IP_ADDRESS>:53: no such host.
According to this Stackoverflow answer, the URL doesn't work by default, you'd have to use this flag --add-host=host.docker.internal:host-gateway when creating the container.
I opted to use my host's IP address. In my case, this was the public IP address of my host.
My suggestion is to specify that users either use http://host.docker.internal:9090 or http://hostIP:9090
The documentation then becomes the below:

Add the Prometheus data source, http://host.docker.internal:9090 or http://hostIP:9090, on Grafana, replacing hostIP with the IP address of your host.

I also added full stops where necessary on other ordered lists.
Which issue(s) this PR fixes:
Fixes #1078
Does this PR introduce a user-facing change?
NONE

/ok-to-test

/approve
/lgtm


OLS-89: LLM loader configuration cleanup

Description

Addressed outstanding review items from https://github.com/openshift/lightspeed-service/pull/261
In the LLM loader, distinguish between providers not in configuration and configured, but unsupported providers.
Cleaned up test configurations for LLM loader tests

Type of change

[x] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Related Issue # https://issues.redhat.com/browse/OLS-89
Closes #

Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] PR has passed all pre-merge test jobs.
[ ] If it is a core feature, I have added thorough tests.

Testing

Please provide detailed steps to perform tests related to this code change.
How were the fix/results from this change verified? Please provide relevant screenshots or results.

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

:exclamation: No coverage uploaded for pull request base (main@5b7155f). Click here to learn what that means.

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #339   +/-   ##
=======================================
  Coverage        ?   95.29%
=======================================
  Files           ?       32
  Lines           ?     1041
  Branches        ?        0
=======================================
  Hits            ?      992
  Misses          ?       49
  Partials        ?        0

/lgtm
/approve


Incorrect initial position of dom element

Version

Phaser Version: Master

Operating system: Mac OS

Browser: Chrome/Safari

Description
I am trying to use dom elements using master code. I'm using scale manager with WIDTH_CONTROLS_HEIGHT. The scaling of the dom elements works fine. However the initial position of the dom elements is not correct. It is only correct if the initial width of the window matches the passed game width.If the initial width is different then the elements are to the left or right depending on initial window width. Once positioned the scaling works correctly with resize.
Example Test Code
I modified one of the examples in phaser labs on dom elements and I can reproduce this issue. Code below.
var config = {
type: Phaser.AUTO,
width: 800,
height: 600,
backgroundColor: '#2d2d2d',
parent: 'phaser-example',
dom: {
createContainer: true
},
scene: {
preload: preload,
create: create
},
scale: {
parent: 'phaser-example',
width: 500,
height: 500,
mode: Phaser.Scale.WIDTH_CONTROLS_HEIGHT,
autoCenter: Phaser.Scale.CENTER_BOTH,
expandParent: false
},
};
var game = new Phaser.Game(config);
function preload ()
{
this.load.image('einstein', 'assets/pics/ra-einstein.png');
}
function create ()
{
this.add.image(250, 250, 'einstein');
var div1 = document.createElement('div');
div1.style = 'background-color: lime; width: 220px; height: 100px; font: 48px Arial; font-weight: bold';
div1.innerText = 'Phaser 3';

var element1 = this.add.dom(250, 250, div1);

}
Additional Information
Looks like the intial dom element position is using the game size and not the window size.  The scaling part however works fine.

Thank you for submitting this issue. We have fixed this and the fix has been pushed to the master branch. It will be part of the next release. If you get time to build and test it for yourself we would appreciate that.

Also, DOM Elements inside of Containers should now scale and position correctly.

Tested this fix. Works as expected. Thanks Rich!


SW-5150 Use Dropdown Option as selected option

#2464  👈
main

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

Join @tommylau523 and the rest of your teammates on  Graphite

Hi @karthikbtf, I updated the logic on how the correct option is found. Will be worthwhile for another look.

Merge activity

Apr 3, 9:04 PM EDT: @tommylau523 merged this pull request with Graphite.


feat: load csb data hook

  Open in CodeSandbox Web Editor | VS Code

What kind of change does this pull request introduce?
Add a hook to load codesandbox data, mainly used for testing and quickly creating reproducibles
Closes CSB-3849

This feature will land soon on the next major Sandpack release 🚀


chore(tests): add --template . to git init calls

This fixes issues with tests, if local system has git templates defined, commit-msg hooks which should confirm that commit messages are valid etc. causing tests to fail.

I don't understand. Are you saying if there is a commit-msg hook in your project this would fail?

Just IMO I think git-related tests are mainly for CI. Reasons are:

Users might not have git installed.
Users have different versions of git and different environments setup.

As you can see now CI fails so I can't merge this.

If you think what you have changed reflects to most scenarios, fix the CI test and provide more details on why tests would fail before the changes. Thanks.

This is a rare case, but given example based on my configuration, then:

I have ~/.git_template/hooks/commit-msg

This commit-msg does check to third party tool using CURL to confirm that commit message has a correct syntax. Now when i first checked out this project and ran "npm test" i had failing tests, because all my .git_template/hooks also get added to test case "git init" generated repositories.
I might not be a common case, but it definitely saves some debugging time why tests are failing for other developers who have similar setups using commit message validations.

Looks good to me otherwise :)

Well, Travis build now fails. Looking at logs<EMAIL_ADDRESS>deps<EMAIL_ADDRESS>cannot match " - deps<EMAIL_ADDRESS>- because there is a whitespace missing. On my local setup all tests pass but on Travis somehow whitespace goes missing.

I did checkout based on Travis log and it now fails locally too.

I think i have narrowed it down why express test fails. I downgraded parser from v0.1.0 to v.0.0.19 - then express test passed, but ember test begin to fail.  This clearly confirms that something has changed within the parser.

lgtm

can you squash the commits?

Squashed.

Merged. Thanks @raido


Snapshot / Backup maintenance

It would be nice to:

have the ability to delete multiple backups / snapshots at once
qualify those multiple backups / snapshots by criteria like age, or tag or field

Currently I'm working on a python script that does a system call to convoy and parses the json output to get the various fields and then work based on that. But it would be great if I could either use the convoy cli directly or have a rest api to make calls to.
I understand thats a large scope so I can break this out into multiple requests if desired; however, I figured that some of this is (API) is probably on the roadmap or even exists already in some form.

We're think about adding multiple deletions for volume/snapshot/backup in the near future, make it easier for user to use cli.
The filter of listing is on the roadmap.
I would open two issues to track them.

Opened #29 and #30 .


Deploy Checklist: New Expensify 2023-09-08

Release Version: 1.3.66-1
Compare Changes: https://github.com/Expensify/App/compare/production...staging
This release contains changes from the following pull requests:

[x] https://github.com/Expensify/App/pull/24360
[x] https://github.com/Expensify/App/pull/25814
[x] https://github.com/Expensify/App/pull/25906
[x] https://github.com/Expensify/App/pull/26154
[x] https://github.com/Expensify/App/pull/26215
[x] https://github.com/Expensify/App/pull/26231
[x] https://github.com/Expensify/App/pull/26238
[x] https://github.com/Expensify/App/pull/26244
[x] https://github.com/Expensify/App/pull/26356
[x] https://github.com/Expensify/App/pull/26467
[x] https://github.com/Expensify/App/pull/26642
[x] https://github.com/Expensify/App/pull/26672
[x] https://github.com/Expensify/App/pull/26720
[x] https://github.com/Expensify/App/pull/26749
[x] https://github.com/Expensify/App/pull/26789
[x] https://github.com/Expensify/App/pull/26815
[x] https://github.com/Expensify/App/pull/26844
[x] https://github.com/Expensify/App/pull/26859
[x] https://github.com/Expensify/App/pull/26863
[x] https://github.com/Expensify/App/pull/26865
[x] https://github.com/Expensify/App/pull/26891
[x] https://github.com/Expensify/App/pull/26919
[x] https://github.com/Expensify/App/pull/26965

Deploy Blockers:

[x] https://github.com/Expensify/App/issues/26953
[x] https://github.com/Expensify/App/issues/27054

Deployer verifications:

[x] I checked the App Timing Dashboard and verified this release does not cause a noticeable performance regression.
[x] I checked Firebase Crashlytics and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found here.
[x] I checked GitHub Status and verified there is no reported incident with Actions.

cc @Expensify/applauseleads

Locking the checklist. Team is not awake yet. We will start QA at EST morning.

:rocket: All staging deploys are complete, @Expensify/applauseleads please begin QA on version https://github.com/Expensify/App/releases/tag/1.3.66-1 :rocket:

Checked off what was already QAed

Regression is ongoing. ~40% to go.
https://github.com/Expensify/App/pull/26919 is failing https://github.com/Expensify/App/issues/27042. repro in PROD. checking off

@mountiny Regression is completed.
One open deployblocker #27054

https://github.com/Expensify/App/issues/27054 marked NAB, so checking off

Firebase

One Android issue -- exists in multiple prior versions ✅
iOS is clear ✅

App timing nominal
Github is ⬆

:shipit:

This issue either has unchecked items or has not yet been marked with the :shipit: emoji of approval.
Reopening!

:shipit:


Why does the memory increase after smoothquantization?

I use the smoothquant to quant llama-1B.
Before smoothquant,I run  xxx.py:
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained("saibo/llama-1B", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("saibo/llama-1B")
inputs = tokenizer('who are you?', return_tensors="pt")
model.to(device)
inputs.to(device)
output_ids = model.generate(inputs.input_ids)
output = tokenizer.decode(output_ids[0])
The memory is about 3GB,But when I use smoothquant to quant llama follow the TensorRT-LLM/examples/llama/README.md ,and the memory is about 8GB.
When I build the engin, there are some warnings in the terminal log:
[10/26/2023-08:29:25] [TRT] [W] Missing scale and zero-point for tensor LLaMAForCausalLM/SHUFFLE_18_output_0, expect fall back to non-int8 implementation for any layer consuming or producing given tensor
[10/26/2023-08:29:25] [TRT] [W] Missing scale and zero-point for tensor LLaMAForCausalLM/lm_head/CONSTANT_0_output_0, expect fall back to non-int8 implementation for any layer consuming or producing given tensor
[10/26/2023-08:29:25] [TRT] [W] Missing scale and zero-point for tensor logits, expect fall back to non-int8 implementation for any layer consuming or producing given tensor
...
[TensorRT-LLM][WARNING] Cannot profile configuration 18 (for m=1, n=12288, k=4096). Skipped
[TensorRT-LLM][WARNING] Cannot profile configuration 19 (for m=1, n=12288, k=4096). Skipped
[TensorRT-LLM][WARNING] Cannot profile configuration 22 (for m=1, n=12288, k=4096). Skipped
[TensorRT-LLM][WARNING] Cannot profile configuration 23 (for m=1, n=12288, k=4096). Skipped
[TensorRT-LLM][WARNING] Cannot profile configuration 0 (for m=2, n=12288, k=4096). Skipped
[TensorRT-LLM][WARNING] Cannot profile configuration 18 (for m=2, n=12288, k=4096). Skipped
Did quant the model fail or other reason make the memory increase?

Hi @runbaozha ,
Are you comparing the memory consumption between HuggingFace (without SmoothQuant) and TensorRT-LLM with SmoothQuant? If that's the case, can you tell me if you see a difference in memory between TensorRT-LLM without SmoothQuant and TensorRT-LLM with SmoothQuant, please?
Thanks,
Julien

Hi @runbaozha ,
Are you comparing the memory consumption between HuggingFace (without SmoothQuant) and TensorRT-LLM with SmoothQuant? If that's the case, can you tell me if you see a difference in memory between TensorRT-LLM without SmoothQuant and TensorRT-LLM with SmoothQuant, please?
Thanks, Julien

Yes, the memory of HuggingFace(without SmoothQuant) and TensorRT-LLM without SmoothQuant are both 3GB,but TensorRT-LLM with SmoothQuant is 8GB. I am confused and want to know what causes, thank you.

For TensorRT-LLM, is it the engine created by TensorRT that is much bigger or the TensorRT-LLM runtime? To be honest, we will have to investigate why it is bigger. We may not have the time to do it right now but we will work on it in the future. Thanks.

@runbaozha could you please share the version and the commands you run TRT-LLM such that we can repro and debug your case? Thx

@runbaozha we had recently fixed serveral bugs related to smoothquant memory usage. Could you try if the latest main branch works for this case.
I am closing this. If you still see the issues on latest main, please help to update and reopen the issue, and provide commands you are using. Thanks.


Viewer list cannot be loaded

Checklist

[X] I'm reporting a problem with Chatterino
[X] I've verified that I'm running the most recent nightly build or stable release
[X] I've looked for my problem on the wiki
[X] I've searched the issues and pull requests for similar looking reports

Describe your issue
i click on the "Two people icon on chatterino to view viewer list"
its loading..........
Screenshots

OS and Chatterino Version
Windows 10 7.4.2 version of chatterino

Unfortunately, Twitch has shut down the service that Chatterino used. See https://github.com/Chatterino/chatterino2/issues/4494.


Adopt MSPileup data into PileupFetcher

Fixes #12195
Status
not-tested
Description
Summary of changes is:

provide a new utilitarian getDomainName to parse the cmsweb endpoint url
adopt MSPileup data for pileup location in PileupFetcher (we missed it when unifying pileup location across WMCore!!!)
if a custom pileup is defined, use it to list all the blocks available in Rucio; otherwise use the standard pileup name
Patch PileupFetcher with MockMSPileup
Update some of the Rucio and MSPileup emulators
Finally, updated some of the Rucio mocked data (manually somehow, given that some of those data are no longer in Rucio...)
lastly, DBS blocks not present in Rucio will get removed from the pileupconf.json file

Is it backward compatible (if not, which system it affects?)
YES
Related PRs
None
External dependencies / deployment changes
None

test this please

I am running the following testbed tests (in vocms0193)
amaltaro_SC_MultiPU_Agent237_Val_241206_045937_5318
amaltaro_SC_PU_5Steps_Agent237_Val_241206_050012_2817
and hopefully the failing unit tests have now been sorted as well.
I fear that to properly test it though, we will need to have an agent connected to production Rucio and MSPileup. @hassan11196 I might have to ping you tomorrow to inject the workflow that failed as a backfill (in a backfill agent..)

The unit test failing:
    WMCore_t.Storage_t.StageInMgr_t.StageInMgrUnitTest:testStageInMgr changed from success to error

seems to be unrelated (maybe these CVMFS is no longer mounted in these jenkins nodes?):
Unable to find site local config file:
/cvmfs/cms.cern.ch/SITECONF/T1_US_FNAL/JobConfig/site-local-config.xml

@d-ylee are you aware of any changes that might have impacted this? If I am not wrong, at some point we asked Shahzad to mount cvmfs in all Jenkins nodes, no?
Even though I am still to check my tests in the agent, I think these changes are ready for a review.

Just pushed in a 5th commit which is supposed to resolve failures like:
2024-12-06 11:53:18,388:139638026835712:ERROR:WMBSHelper:Failed to create subscription. Error: <@========== WMException Start ==========@>
Exception Class: WMRucioDIDNotFoundException
Message: Data identifier not found in Rucio: /RelValMinBias_14TeV/CMSSW_11_2_0_pre8-112X_mcRun3_2024_realistic_v10_forTrk-v1/GEN-SIM-V4. Error: Data identifier not found.
Details: Data identifier 'cms:/RelValMinBias_14TeV/CMSSW_11_2_0_pre8-112X_mcRun3_2024_realistic_v10_forTrk-v1/GEN-SIM-V4' not found
        ClassName : None
        ModuleName : WMCore.Services.Rucio.Rucio
        MethodName : isContainer
        ClassInstance : None
        FileName : /usr/local/lib/python3.8/site-packages/WMCore/Services/Rucio/Rucio.py
        LineNumber : 804
        ErrorNr : 0

Traceback:
  File "/usr/local/lib/python3.8/site-packages/WMCore/Services/Rucio/Rucio.py", line 801, in isContainer
    response = self.cli.get_did(scope=scope, name=didName)

  File "/usr/local/lib/python3.8/site-packages/rucio/client/didclient.py", line 424, in get_did
    raise exc_cls(exc_msg)

which happens because testbed/preprod MSPileup talks to Integration Rucio, meaning the custom containers MSPileup don't exist in Production Rucio.
Nonetheless, it also fails with the Integration database, maybe because the integration with Rucio Int in WM is very incomplete and fragile... We need to revisit this ASAP.

Together with Ahmed, we have been validating these changes in a backfill agent and the workflow injected is:
I still see a high failure rate, but the problem is because this workflow was injected with secondary AAA enabled, so it will run everywhere in the site list - and not only at FNAL and CERN
I have copied parts of this workflow above, from the WorkQueueManager cache area, under the following directory:
cmst1@vocms0254:amaltaro $ pwd
/data/srv/amaltaro

and indented the following 2 files (located at WMSandbox/SUS-RunIISpring21UL18FSGSPremixLLPBugFix-00065_0/cmsRun1/pileupconf.json):

inside_sandbox_pu.json: it contains the content of pileupconf.json from inside the Sandbox.tar.bz2 file
outside_sandbox_pu.json: it contains the content of the pileupconf.json from outside the sandbox tarball

My observations are:

WorkQueueManager created a pileupconf.json file with all 35 Neutrino blocks, but only 10 of them have the FNAL+CERN set under PhEDExNodeNames --> GOOD! It is the expected behavior
WorkflowUpdater noticed differences and updated the Sandbox tarball, which now contain only the 10 blocks existent in the custom pileup with FNAL+CERN set under PhEDExNodeNames --> This is OKAY for disabled secondary AAA. This is BAD for enabled secondary AAA though, as it now limits the files that it can read at runtime. Is it a valid use case though?
WorkflowUpdater will - I am still waiting for the next cycle - update the sandbox again and again and again, as it compares MSPileup information against the pileupconf.json outside of the sandbox, which is never updated. --> BAD!!! Wasting resources and making the component less robust.

TODO: create a new ticket for observation 3) above.

My previous commits were all on the mock data and emulator, instead of changing any of the logical implementation.
With all unit tests succeeding now, feel free to proceed with code review.

A snippet of the WorkQueueManager logs in the backfill agent (vocms0254) are:
2024-12-09 23:44:25,153:140168095241984:INFO:PileupFetcher:Found 35 blocks in DBS for dataset /Neutrino_E-10_gun/RunIIFall17FSPrePremix-PUFSUL18CP5_106X_upgrade2018_realistic_v16-v1/PREMIX with 17208 files
2024-12-09 23:44:25,231:140168095241984:INFO:PileupFetcher:Pileup dataset /Neutrino_E-10_gun/RunIIFall17FSPrePremix-PUFSUL18CP5_106X_upgrade2018_realistic_v16-v1/PREMIX with:
        custom name: /Neutrino_E-10_gun/RunIIFall17FSPrePremix-PUFSUL18CP5_106X_upgrade2018_realistic_v16-v1/PREMIX-V1,
        current RSEs: ['T1_US_FNAL_Disk', 'T2_CH_CERN']
        and container fraction: 0.28
2024-12-09 23:44:25,286:140168095241984:INFO:PileupFetcher:Found 10 blocks in container /Neutrino_E-10_gun/RunIIFall17FSPrePremix-PUFSUL18CP5_106X_upgrade2018_realistic_v16-v1/PREMIX-V1 for scope group.wmcore
...
2024-12-09 23:44:25,287:140168095241984:WARNING:PileupFetcher:Block /Neutrino_E-10_gun/RunIIFall17FSPrePremix-PUFSUL18CP5_106X_upgrade2018_realistic_v16-v1/PREMIX#cfd725d2-939b-4f38-97a3-e3b7c4770632 present in DBS but not in Rucio. Removing it.
...
2024-12-09 23:44:25,288:140168095241984:INFO:PileupFetcher:Final pileup dataset /Neutrino_E-10_gun/RunIIFall17FSPrePremix-PUFSUL18CP5_106X_upgrade2018_realistic_v16-v1/PREMIX-V1 has a total of 10 blocks.

so it is all looking good to me.

@amaltaro thank you for working on this. This looks great to me, I have a minor comment for your consideration. Then, I am fine with approving the PR

Thank you, Andrea. I will improve the docstring for getDomainName, which I just noticed to be incomplete (bad job from my IDE) and squash the commits accordingly.


github repository open fails...for characters in file?

* [log] Fetching file list...
* [error] Could not load file: /content/redacted.md {
  stack: "Error: Failed to execute 'btoa' on 'Window':
The string to be encoded contains characters
 outside of the Latin1 range.\n    at Error (native)\n    at chrome-
extension://pfmjnmeipppmcebplngmhfkleiinphhp/js/fs/github.js:387:50"

This was a markdown file i (unwisely) copied to google docs editor for spellcheck (current spellcheck plugin failed to do anything meaningful once i installed it).
Copying back the spellchecked result to zed seemed to work, but then zed saw no "changes" to the edited file.
Meanwhile, I committed the edit via the github.com website editor.
Now whenever i sync the repository, I get that error in the log. visual inspection doesn't show any funky characters in the document (but i assume they must be there).
Is this purely a problem with my file? Or should zed be able to handle this? (the github.com website shows it fine).
When i can, I will open the file in a desktop editor and see if i can strip out any weird characters...will post back if that fixes this up.
p.s.
Probably not relevant, but there is another error in the log:
[error] Error while emitting configchanged
Cannot read property 'css' of undefined TypeError:
Cannot read property 'css' of undefined
    at setEditorTheme (chrome-extension://pfmjnmeipppmcebplngmhfkleiinphhp/js/theme.js:79:39)
    at null.<anonymous> (chrome-extension://pfmjnmeipppmcebplngmhfkleiinphhp/js/theme.js:29:25)
    at EventEmitter.emit (chrome-
extension://pfmjnmeipppmcebplngmhfkleiinphhp/js/lib/events.js:47:30)
    at chrome-extension://pfmjnmeipppmcebplngmhfkleiinphhp/js/config.js:308:26

I have a lead.

Yep, that was it. Google docs automagically added "matched" quotes, which were "outside of the Latin1 range"
I opened the file in notepad++ (/ht @donho), with the TextFx plugin (/ht @severach) and ran "zap all non-printable characters to #"
This, with the diff, showed me the matched single and double quotes that had been sprinkled without. Thanks google docs! :angel:

That's really odd, it should just all be parsed as UTF8...


Live streaming support

Would it be possible to get chunks of muxed data for live streaming? I use webm streaming created from ffmpeg (to an icecast2 server) and it works fine (I can play in a html5 video ou audio tag without problem), even thou the webm standard was not really conceived for live streaming...

There already is a streaming target, documented in README, which is a callback that regularly gets called as new muxed chunks become available. Only gotcha is that the offsets it gets called with are not monotonically increasing (since it goes back to rewrite old parts), which is not what you'd want for streaming. But, if you ignored those, have you tried using that for streaming?
If it doesn't work, I could add an option that ensures that all data is written sequentially.

Sorry I did not realized that. I'll take a look and test. But I don't know if I understand about the offsets. I control the offsets written to the media chunks block in the code, right?

The offset is the byte offset at which the data passed is written. It works like this, remember:
let muxer = new WebMMuxer({
    target: (data, offset, done) => {
        // Do something with the data
    },
    ...
});

Every time the function is called, you'll get some bytes in form of a Uint8Array in data, and an integer byte offset in offset. This means that you'll have to write the bytes in data to your location (final "file") at position offset. If you're just interested in live streaming, you can try to ignore offset and simply send everything that you receive in data. However, remember that the writing is not sequential, since I jump back and forth to patch things I already wrote. That's why, if you want to live stream, you'll need to ignore any call of target with an offset smaller than the maximum of what you've received.
Again, you can see if this works. WebM actually was designed with live-streaming in mind, it just required me to mux it slightly differently (never jump back, set "size" fields to unknown, etc.).

Got it, thanks for the explanation. I think I can connect to an icecast2 server directly using PUT (I'm using this [1] as reference). Lemme see if I manage to write something fast to test live streaming.
[1] https://github.com/social-dist0rtion-protocol/wasm-stream/blob/master/src/icecast.js

How's it going? Do you still need something, or can I close this issue for now?


Update Analytics folder in Dovetail

Folder contains summaries of all tickets, links to github tickets, sharepoint spreadsheets and code in repository.

Folder now up to date.


:robot: Reset test is very flaky

Kairos version:
master
CPU architecture, OS, and Version:
all
Describe the bug
Reset test is failing a lot lately, we should check to see if we can improve it somehow to be less flaky or identify if there is a corner case where it makes it fail due to some specific issue.
To Reproduce
check reset jobs on build PRs pipeline
Expected behavior
doesnt fail all the time
Logs

Additional context

Let's wait until master CI is green ( to avoid debugging irrelevant issues ), then let's create a PR that only runs this test (disabling the rest) and finally let's keep triggering this until it fails, because this was not reproducible locally and we no longer have a link to a failed job.
We want the make sure there isn't something wrong with our reset workflow, that's why we are insisting on this one.

The test has been consistently green in the past 10 runs ... will try to run multiple times locally to validate

still green on every master run and for many local runs ... we've been merging changes on peg, upgrading packages so hard to tell if one of this changes fixed it, we also have the faster runners which might have made the test more reliable. Closing for now but feel free to re-open


Missing label  place-holder or display label as default paper-input elements

Description
I'm using paper-input default behavior on my form  ( having the label as a place holder until the user types ). Date-picker label is always floating
Expected outcome
Seamless behavior with paper-input component
Actual outcome
Date-picker label is always floating
Live Demo
add place-holder property
Steps to reproduce
Browsers Affected

[ x] Chrome
[ x] Firefox
[x ] Safari
[ x] Edge
[x ] IE 11
[ x] iOS Safari
[ x] Android Chrome

Hi there!
We're going to address this issue in #269, so I'm going to close this ticket as duplicate.


pycurl: libcurl link-time version (7.29.0) is older than compile-time version (7.36.0) and sqlite3.OperationalError: unable to open database file

I have tried #472 to solve the first problem.However when I use "pip3 uninstall pycurl",I cant uninstall it since it's a distutils package.And for the second problem i dont figure out why it occur.
my system is Centos which is on AliCloud and I have install python2.7 and python3.7
i am just a newcomer, Can somebody please help me?

I have solve my problem to remove the old version of pyrcurl and install the new version. refering to:https://my.oschina.net/crazyharry/blog/341718


Parsing issue in API version via route

This is the same issue as here. I was instructed to open the issue here as well.
Describe the bug
Api versioning via the URL Path fails when the status contains the same character as the literal.
Assumption
I read over the API Version Format documentation to see if there were any constrains on the values that Status in [Version Group.].[-Status] can take, but did not find anything. I assumed that this is not desired behavior.
In our case we have a v1-preview version for some of the routes, which fails even when there is a match.
To Reproduce
Repo with a simple Web API project to reproduce the issue.
I have included an insomnia config file with all the following calls. No postman config as I do not use it ¯_(ツ)_/¯.
Either way the following cURL calls will work just as good once the app is running:
Version Parsed and matching route
Routes with literal A
curl -X GET -d "" https://localhost:5001/a1/WeatherForecastVersionLiteralA

curl -X GET -d "" https://localhost:5001/a1-preview/WeatherForecastVersionLiteralA

Routes with literal V
curl -X GET -d "" https://localhost:5001/v1/WeatherForecastVersionLiteralV

curl -X GET -d "" https://localhost:5001/v1-status/WeatherForecastVersionLiteralV

Version parsed but no matching routes with that version
curl -X GET -d "" https://localhost:5001/a1-sts/WeatherForecastVersionLiteralA

{
  "error": {
    "code": "UnsupportedApiVersion",
    "message": "The HTTP resource that matches the request URI 'https://localhost:5001/a1-sts/WeatherForecastVersionLiteralA' does not support the API version '1-sts'.",
    "innerError": null
  }
}

curl -X GET -d "" https://localhost:5001/v1-sts/WeatherForecastVersionLiteralV

{
  "error": {
    "code": "UnsupportedApiVersion",
    "message": "The HTTP resource that matches the request URI 'https://localhost:5001/a1-sts/WeatherForecastVersionLiteralA' does not support the API version '1-sts'.",
    "innerError": null
  }
}

Version not parsed (there is a matching route but that does not really matter cause it cannot that far)
Routes with literal A
curl -X GET -d "" https://localhost:5001/a1-statusWithAIn/WeatherForecastVersionLiteralA

{
  "error": {
    "code": "ApiVersionUnspecified",
    "message": "An API version is required, but was not specified.",
    "innerError": null
  }
}

Routes with literal V
curl -X GET -d "" https://localhost:5001/v1-statusWithVIn/WeatherForecastVersionLiteralV

{
  "error": {
    "code": "ApiVersionUnspecified",
    "message": "An API version is required, but was not specified.",
    "innerError": null
  }
}

Culprit
The app uses serilog and is configured to log debug messages from the middleware.
The following messages provided good insight into where the issue was:
[Debug] ({ Id: 1002, Name: "CandidateRejectedByComplexSegment" }) Endpoint '"RouteVersioningIssue.Controllers.WeatherForecastVersionLiteralVController.Get (RouteVersioningIssue)"' with route pattern '"v{version:apiVersion}/WeatherForecastVersionLiteralV"' was rejected by complex segment '"v{version:}"' for the request path '"/v1-statusWithVIn/WeatherForecastVersionLiteralV"'

[Debug] ({ Id: 1003, Name: "CandidateRejectedByConstraint" }) Endpoint '"RouteVersioningIssue.Controllers.WeatherForecastVersionLiteralVController.Get (RouteVersioningIssue)"' with route pattern '"v{version:apiVersion}/WeatherForecastVersionLiteralV"' was rejected by constraint '"version"':'"Microsoft.AspNetCore.Mvc.Routing.ApiVersionRouteConstraint"' with value 'null' for the request path '"/v1-statusWithVIn/WeatherForecastVersionLiteralV"'

[Debug] ({ Id: 1004, Name: "CandiateNotValid" }) Endpoint '"RouteVersioningIssue.Controllers.WeatherForecastVersionLiteralVController.Get (RouteVersioningIssue)"' with route pattern '"v{version:apiVersion}/WeatherForecastVersionLiteralV"' is not valid for the request path '"/v1-statusWithVIn/WeatherForecastVersionLiteralV"'

After some debugging I think the issue is at the following line.
After LastIndexOf(literal.Content, StringComparison.OrdinalIgnoreCase) the literal ends up being the corresponding matching char in the Status instead of the first character. The parameter is determined at this line. As a result the condition at this line is not satisfied and the complex segment is not matched, hence the behavior.
Further technical details

Microsoft.AspNetCore.Mvc.Versioning 4.0.0

ASP.NET Core version

Microsoft.AspNetCore.App 3.0.0

Include the output of dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.0.100
 Commit:    04339c3a26

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17763
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.0.100\

Host (useful for support):
  Version: 3.0.0
  Commit:  7d57652f33

The IDE (VS / VS Code/ VS4Mac) you're running on, and it's version

Microsoft Visual Studio Professional 2019, Version 16.3.9

Note that matching in complex segments works from right-to-left non-greedy based on the appearance of literals. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-3.0#complex-segments

Apologies for the delay. I've been out of the country for the last 3 weeks.
I can confirm that I can repro the behavior. I'm not convinced this is necessarily an issue with the segment matcher. What I'm seeing is that if the status component of the API version (in this context) contains any of the characters in the segment literal, then the route template does not parse the route constraint segment. In debugging, I can see that the ApiVersionRouteConstraint does not receive a value for the version parameter at all.
As illustrated in detail above, given the template v{version:apiVersion}/action, the results can be simplified as:

Route
Value
Comment

v1/action
Success
No status

v1-status/action
Success
Literal status does not contain v

v1-preview/action
Failure
Literal status contains v

I also confirmed that if the values were extracted and handed to the ApiVersionRouteConstraint they would parse as expected. There are restrictions on the status; however, this is imposed after parsing and would result in a predictable 400 response. It must be alphabetic and optionally have a trailing number (ex: preview or preview1). Since the value is never observed or parsed by the route constraint and set to the IApiVersioningFeature, it has the appearance that no API version was specified at all.
@rynowak I hate to jump to this being a bug, but surely this can't be the expected behavior. It's not clear to me if this scenario qualifies as a complex segment. The example referenced shows a token in the middle of two literals, which is not this scenario. What seems more odd to me is that the route constraint receives no value at all. I suspect we can provide a more general purpose repro that illustrates this problem, even without API versioning (as I would expect this could happen with any custom route constraint). Before investing the time and effort to do so, is there something we're missing about how templates and route constraints are parsed or does something seem awry here?

@commonsensesoftware - v{version:apiVersion} is a complex segment.
So based on my reading of this, we are trying to match the complex segment v{version:apiVersion} to the URL path segment v1-statusWithVIn.
We line up {version:apiVersion} and VIn, and then reject the match because v is not a match for v1-statusWith.
This matches the documented behavior. I recognize that looking at this case it seems really bad. This behavior is super old (2008), so I'm not certain off the cuff what the impact would be on changing it.

@rynowak  thanks for confirming. I'm still not 100% sure I have my brain wrapped around why it matches that way, but it's irrelevant; this is, in fact, the expected behavior. As any change would likely be far off anyway, the best option might be to revisit this behavior in some future release of the platform. I'd expect this to have pretty low priority though and not change anytime soon - if ever.
@bderveni this was a really interesting find. it appears as though your best option here is to simply not use a v in your status. this shouldn't be the worst thing in the world as many statuses have the form of something such as 1.0-beta1, 1.0-rc2, and so on.  The status of preview has become more popular in NuGet packages of late, but it seems you're out of luck with this style of versioning.
Of course, the other option is to use another style of versioning. Despite it's popularity, versioning by URL segment is the least RESTful of all methods. Versioning by media type or query string would negate this problem and let you use virtually any status, including preview. It may not be feasible for you, but it's an option.

@commonsensesoftware - is the API for parsing versions extensible?
It might be a better experience to write routes as foo/{version:apiVersion}/bar and steer people to totally avoid complex segments. That can help in the mean time.
I've reopened the issue on ASP.NET Core to track this feedback.

@rynowak in the strictest of technical sense - yes, the ApiVersion class is extensible and could support custom parsing, but it's unlikely anyone would ever do so. The ApiVersion is a fundamental type that supports parsing, comparison, formatting, and more. It's considerable work to for someone to change that. An interface doesn't work because then operator overloads would not work (ex: ==, !=, >, etc). Some additional abstractions that could lift out parsing to a custom implementation is possible, but not something that is currently supported. Comparison could probably still be largely refactored with some support IEquatable<ApiVersion> or something like that.
Ultimately, the v is not part of the API version. My goal was always to keep other literals out of the way. To my knowledge, this is the only scenario where this arises. Another approach would be to get rid of the v altogether. Per your suggestion, that is another route that @bderveni  can take. It may not be as cosmetically appealing, but your proposal suggests that foo/1/bar, foo/1-status/bar, and foo/1-preview/bar would all work using that approach. It might be more desireable to move the v into it's own segment as well; for example, foo/v/1-preview/bar.
A final, but more advanced scenario, would to be author your own route constraint that will accept the v, strips it off, parses the value, and then sets the API version via the IApiVersioningFeature. This is effectively all that the ApiVersionRouteConstraint does anyway. It's lame that you have to do that yourself, but the amount of work is relatively low. You can then replace the default route constraint key or add it side-by-side (ex: {version:customApiVersion}).

A final, but more advanced scenario, would to be author your own route constraint that will accept the v, strips it off, parses the value, and then sets the API version via the IApiVersioningFeature. This is effectively all that the ApiVersionRouteConstraint does anyway. It's lame that you have to do that yourself, but the amount of work is relatively low. You can then replace the default route constraint key or add it side-by-side (ex: {version:customApiVersion}).

This is what I was suggesting, thanks for finding the words 👍 - @bderveni - this would be a shorter path to getting this to work the way you want.

@rynowak and @commonsensesoftware thanks for getting back on this and providing all the suggestions. I will discuss the options with my team.
I would like to add one more edge case to the table above:
| Route  | Value | Comment |
| v1-preV/action | Success| Literal status contains v at the end|

As illustrated in detail above, given the template v{version:apiVersion}/action, the results can be simplified as:
Route 	Value 	Comment
v1/action 	Success 	No status
v1-status/action 	Success 	Literal status does not contain v
v1-preview/action 	Failure 	Literal status contains v

There seems to be a workaround for this issue. Since the behavior is intrinsic to the routing system, there isn't anything more API Versioning can do about it. Perhaps the routing system will improve the behavior in the future. Thanks.


Contribution: PHP convert images to raw ILI9341 bitstream (image proxy)

Please find attached my attempt to make a PHP "image proxy" for the ILI9341.
Basically the php-script takes any url as parameter gets and convert the image to a RGB565 raw format suitable for the ILI9341. simple file-caching included.
the first 16-bit = width of image, next 16-bit = height of image. the remaining bit are raw bitstream in RGR 565 format directly for the display.
Inside the php-script is a function to but into ESP8266 to directly stream the image from the imageproxy onto the ILI9341-based display.
espimages.php.zip

The above enables this product:

Any image from the web can be viewed.

Hi, thank you for this contribution!
FYI, here are similar converters:

To RGB565 - like yours
To custom SQUIX 2-bit color format
I adapted the 1) to 2-bit version. It could be done from your php file as well ...


Add implicitAccountCreationFee option

companion of https://github.com/MinaProtocol/mina/pull/10842

merged this into https://github.com/o1-labs/snarkyjs/pull/500 because develop now has both Mina PRs, closing


Implement back pressure on mempool tx processing

Describe what you want implemented
We should limit the rate at which mempool verifies and respectively re-propagates messages.
Example results:
Recently noticed on test-harness with 20 provisioners,  block time increased 10 times when all 20 nodes start sending txs.
level=info msg="Measured TPS 0.10 (1/10)" average_block_time=4 cumulative_txs_count=33 height=22
level=info msg="Measured TPS 0.08 (1/12)" average_block_time=5 cumulative_txs_count=34 height=23
level=info msg="Measured TPS 0.07 (1/15)" average_block_time=5 cumulative_txs_count=35 height=24

...

level=info msg="Measured TPS 24.67 (2886/117)" average_block_time=13 cumulative_txs_count=2923 height=27
level=info msg="Measured TPS 56.59 (2886/51)" average_block_time=15 cumulative_txs_count=5809 height=28
level=info msg="Measured TPS 11.20 (224/20)" average_block_time=15 cumulative_txs_count=6033 height=29

{"hash":"e9cc013fe6...4e224c6b43","level":"info","msg":"consensus_achieved","phase":"agreement","process":"consensus","round":27,"short-circuit":true,"step":12,"stepvotes":[{"BitSet":4060,"Signature":"hIwVwq9cheyVw2BpSzHCMcta3Vb5UAXObBpnK8kLQlf32V2MGu5RVcXX+Age8+YF"},{"BitSet":6051,"Signature":"r6xnV935oDLqIFjmpKSCkfqTe8svsDlMsRW9oyZjrCp0unL9+dx6DO68xGZA6lPm"}]}
{"hash":"2d94730a91...e80c952e76","level":"info","msg":"consensus_achieved","phase":"agreement","process":"consensus","round":28,"short-circuit":true,"step":6,"stepvotes":[{"BitSet":15586,"Signature":"lfqGBZt5YlBluE9mXMDnTR+mzok0uKo74YbQ26iFH2VHN2WuyESgd+Rw0j14sKB0"},{"BitSet":12703,"Signature":"thX22lgxYAN6TaVKCtGF+Iu8bVhkRendy6Mf1RZ+tBz638lK0+I1FIS319oFcS6O"}]}

Describe "Why" this is needed
This would allow Network consensus to maintain a steady block time and mainly finalize a block at first iteration. This should also mitigate the pressure on Rusk grpc.VerifyTransaction.

The best approach for now would be to give consensus messages priority over transactions, and at the same time introduce rate limiting over transaction propagation. Maybe it would make sense to resurrect/merge #1206

Introducing simple rate limiting + queue demonstrates a huge improvement on local test-harness:
level=info msg="Measured TPS 0.07 (1/15)" average_block_time=9 cumulative_txs_count=42 height=31
level=info msg="Measured TPS 69.14 (968/14)" average_block_time=9 cumulative_txs_count=1010 height=32
level=info msg="Measured TPS 73.41 (1248/17)" average_block_time=9 cumulative_txs_count=2258 height=33
level=info msg="Measured TPS 87.64 (1928/22)" average_block_time=10 cumulative_txs_count=4186 height=34
level=info msg="Measured TPS 34.94 (629/18)" average_block_time=10 cumulative_txs_count=4815 height=35
level=info msg="Measured TPS 38.10 (762/20)" average_block_time=10 cumulative_txs_count=5577 height=36
level=info msg="Measured TPS 0.28 (5/18)" average_block_time=11 cumulative_txs_count=5582 height=37
level=info msg="Measured TPS 30.25 (484/16)" average_block_time=11 cumulative_txs_count=6066 height=38
level=info msg="Measured TPS 0.40 (8/20)" average_block_time=11 cumulative_txs_count=6074 height=39

Pending is to confirm perf improvment on devnet.


d1: changelog new functions & D1Meta type

This PR adds a new changelog entry for D1.

New SQL functions
Updates to the D1Result type from https://github.com/cloudflare/workerd/pull/1320

Suggestion: update this https://github.com/cloudflare/cloudflare-docs/blob/87d206a2501e33e5b966e3caa30de4ffb4ba9882/content/d1/platform/pricing.md#L61-L68 too?

Note: I mentioned this PR in Discord for context
https://discord.com/channels/595317990191398933/992060581832032316/1197489963290345562

Superseded


passing ptr::null() for pcstr is allowed now

Hi @ThreadedStream, can you please open an issue describing the issue you're running into? Does the Default trait impl on PCSTR not cover your needs? (i.e. PCSTR::default())

Hi @riverar, issue has been successfully opened


Name change: Plural Ownership Tokens

In alignment with RadicalxChange's re-branding of Partial Common Ownership, the name of this repository will be changing to Plural Ownership Tokens.

A year later, we're still referring to PCO by the old name, so this change is unnecessary.


FIX: escape single quotes when writing json file

Codecov Report

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

@@            Coverage Diff             @@
##           master      #91      +/-   ##
==========================================
+ Coverage   86.52%   86.53%   +<.01%
==========================================
  Files          41       41
  Lines        1989     1990       +1
  Branches      178      178
==========================================
+ Hits         1721     1722       +1
  Misses        204      204
  Partials       64       64

Impacted Files
Coverage Δ

neurodocker/dockerfile.py
98.29% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


SSL support for postgres

✓ Checklist:

[ ] This PR has been added to CHANGELOG.md (at the top of the list);
[ ] Tests for the changes have been added (for bug fixes / features);
[ ] Docs have been added / updated (for bug fixes / features).

Codecov Report

Merging #62 (ea24e26) into main (514006e) will increase coverage by 0.70%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #62      +/-   ##
==========================================
+ Coverage   75.12%   75.83%   +0.70%
==========================================
  Files          40       41       +1
  Lines        2203     2280      +77
==========================================
+ Hits         1655     1729      +74
- Misses        548      551       +3

Impacted Files
Coverage Δ

cli/pg_datanymizer/src/main.rs
6.66% <0.00%> (-1.03%)
:arrow_down:

datanymizer_dumper/src/postgres/row.rs
91.48% <0.00%> (-0.82%)
:arrow_down:

datanymizer_dumper/src/postgres/escaper.rs
100.00% <0.00%> (ø)

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 514006e...ea24e26. Read the comment docs.


Update tsconfig.json to exclude any . files

the compiler will pick up . files in src/**/  can be a problem for example when local editors create . files

closing cause i make dumb requests.


Could not attach to MCP server filesystem

Describe the bug
I'm trying to implement various MCP servers, including the filesystem server, the memory server, and the playwright server. However, I keep getting failures.

I've uploaded a screenshot of the errors I get in the app. In the dev tools console, I see:
Could not attach to MCP server filesystem: eE: MCP error -2: Request timed out
  at https://claude.ai/_next/static/chunks/foo.js:1:4404
  at r (https://claude.ai/_next/static/chunks/bar.js:15:2950)
(anonymous) @baz.js:18

This is my config.json content:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "@modelcontextprotocol/server-filesystem",
        "/Users/myusername/code/"
      ]
    },
    "mcp-obsidian": {
      "command": "uvx",
      "args": ["mcp-obsidian"],
      "env": {
        "OBSIDIAN_API_KEY": "reallylongkey"
      }
    },
    "@modelcontextprotocol-server-memory": {
      "runtime": "node",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "playwright": {
      "command": "npx",
      "args": ["-y", "@automatalabs/mcp-server-playwright"]
    }
  }
}

Note: MCP Obsidian DOES work--the other three do not.
To Reproduce
Steps to reproduce the behavior:

Set up config.json
launch Claude desktop app
Wait for error message to appear

Expected behavior
I expect to see something like this:
MCP Obsidian Server running on stdio
Allowed directories: [ '/users/myusername/code/pathtovault/vaultname' ]

Logs
This is what appears in the file /Users/myusername/Library/Logs/Claude/mcp.log:
2024-12-08T08:23:21.820Z [info] Attempting to connect to MCP server filesystem...
2024-12-08T08:23:21.823Z [info] Attempting to connect to MCP server mcp-obsidian...
2024-12-08T08:23:21.823Z [info] Attempting to connect to MCP server @modelcontextprotocol-server-memory...
2024-12-08T08:23:21.824Z [info] Attempting to connect to MCP server playwright...
2024-12-08T08:23:21.843Z [info] Connected to MCP server mcp-obsidian!
2024-12-08T08:23:21.845Z [info] Connected to MCP server filesystem!
2024-12-08T08:23:21.852Z [info] Connected to MCP server @modelcontextprotocol-server-memory!
2024-12-08T08:23:21.853Z [info] Connected to MCP server playwright!

Additional context
Like I said, it's working for obsidian, not for the other 3. Also, I AM able to connect to the filesystem server using MCP Inspector:

I had the file system working along with Brave search, now nothing is working.

It is very random. I also had file system + Brave search working in one instance. Then, after a restart of the Claude desktop without any changes in the configuration file, it stopped working. Now, rarely does the server filesystem work.

Its happening to me as well, even with just the fileserver installed.

I fixed my problem.  I had a file listed in with the directories.  That makes accessing the filesystem fail.  I removed it, restarted the claude app, and file access reactivated through MCP.

What kind of file @MikeyBeez? - and did it fail if you just ran
npx -y @modelcontextprotocol/server-filesystem /users/whaever/documents in a console?

I had included the claude desktop config json file in the list of allowed directories.  I didn't get an error message except failure to connect via MCP.


Curation.yml Configuration Capability Enhancement Request

Description:
During the analysis, we found there are multiple ways of curating license(s) using either curation.yml or .ort.yml. Can "License Finding", "Policy Rule Violation" and "License Choices" also be part of curation.yml as well?
Reason:
As the developers are not aware of the license model(s) and what to curate, this is a dedicated responsibility of curation team in conjunction with Legal team which will allow curation team to configure the license finding using Curation.yml
Understanding:
If there is already a way to conclude multiple licenses in Curation.yml, then we would like to understand how?
Proposal:

Hi @porsche-rishisaxena, do I understand you correctly that you differentiate between the project-local .ort.yml and an ORT-global configuration possibilty?
Or is it really important for you that the curations.yml is being used?
License Choices
License choices for the .ort.yml were implemented in this PR (for reference).
In discussions in the corresponding issues we were already talking / planning to provide global license choices. But this is not yet implemented.
IMO this shouldn't be done in a curations.yml but rather in a separate licenseChoices.yml.
Resolutions
Can already be set globally: https://github.com/oss-review-toolkit/ort/blob/master/docs/config-file-resolutions-yml.md.
License finding curations
Can be set globally using package-configurations: https://github.com/oss-review-toolkit/ort/blob/master/docs/config-file-package-configuration-yml.md.

Understanding:
If there is already a way to conclude multiple licenses in Curation.yml, then we would like to understand how?

Not sure if I understand this correctly. You can conclude one SPDX license expression per package ID.
You can either conclude licenses for every package in a single curations.yml file and use ORT's analyzer with --package-curations-file
- id: "Maven:com.example:package:1.2.3"
  curations:
    comment: |
      Example curation
    concluded_license: "(GPL-2.0-only OR MIT) AND Apache-2.0"

- id: "Maven:org.oss-review-tookit:another-package:0.0.0"
  curations:
    comment: |
      Another example curation
    concluded_license: "Apache-2.0"

Or use multiple yaml-files in a directory structure using ORT's analyzer option: --package-curations-dir
(the helper-cli has a function to create curations in this directory structure: https://github.com/oss-review-toolkit/ort/blob/master/helper-cli/src/main/kotlin/commands/packagecuration/CreateCommand.kt)

Hi @MarcelBochtler,

Yes, we clearly differentiate between the project local and global config. The reason being, in Porsche context - we have decoupled logically the responsibility between development teams (responsible for running the analyzer) vs curation team (responsible for curating for example: packages, license findings, in-correct copyright holder names, concluding licenses).

Introducing LicenseChoices.yml can also be a viable solution for us. Our intent is to have a global config file controlled centrally to handle multiple license choices, part of curation process as curation team is working very closely with legal team for setting up the configuration and higher degree of re-usability on the configurations by our developers.

For Concluding licenses, thank you for the hint. We will test this in order to see expected results.

@porsche-rishisaxena is there anything left to be done / discussed as part of this issue, or can we close it?

After talking to @porsche-rishisaxena, my understanding is that the only feature request left is a global unconditional license choice, like given: MIT OR GPL-2.0-only apply always choice: MIT independently of the package or project.


Fix quic_client integration tests

Apparently the output format of the quic_client changed.

Codecov Report

Merging #547 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #547   +/-   ##
=======================================
  Coverage   90.79%   90.79%
=======================================
  Files          79       79
  Lines        5406     5406
=======================================
  Hits         4908     4908
  Misses        318      318
  Partials      180      180

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 325eef5...a896e81. Read the comment docs.


Please fix tip

In the tip for "Table and column scoping" the second sentence is wrong. It should read >> Using '==' will not include records where Source has values such as "error code 404" or "Error". <<

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

ID: deb37cee-0e7c-06ad-3053-d05d49378b26
Version Independent ID: a1dae060-7ee3-c6a7-52ca-5a17249a81f3
Content: Search queries in Azure Monitor logs
Content Source: articles/azure-monitor/log-query/search-queries.md
Service: log-analytics
GitHub Login: @bwren
Microsoft Alias: bwren

@dduensch Thanks for the Comment. We are actively investigating and will get back to you soon.

@dduensch a PR has been successfully initiated to resolve this issue. The fix will be live in a few hours.
Thanks again for catching this. We will now close this issue.


AWS S3 Support

Would an open source contribution for AWS storage (e.g. S3) support be considered?

cc @tiziano88 @thmsbinder
cheers/thanks


@NativeCoroutinesState and StateFlow

Hi, I'm migrating to KMP-NativeCoroutines and things are working really well so far.
I'm a bit confused on how to use @NativeCoroutinesState with StateFlow.
I have a Kotlin class with the following members:
    private val _foo = MutableStateFlow<Double>(1.0)

    @NativeCoroutinesState
    val foo = _foo.asStateFlow()

in my Swift view model I have the following:
        let myFoo: Double = node.foo // this works
        createPublisher(for: node.fooFlow)
            .sink(
                receiveCompletion: { completion in },
                receiveValue: { newValue in
                    let myFoo2: Double = newValue // this fails with error: Cannot convert value of type 'KotlinDouble' to specified type 'Double'
                }
            )
            .store(in: &cancellables)

I was expecting node.fooFlow to give me a type Double, not KotlinDouble.
Also, I'm not sure how to use @NativeCoroutinesRefinedState. If I try using @NativeCoroutinesRefinedState in the above code the member is simply removed.

Hi!

I was expecting node.fooFlow to give me a type Double, not KotlinDouble.

Yeah there are some edge cases in the Kotlin-ObjC interop when used with callbacks (which are being generated by KMP-NativeCoroutines).
You could indeed make this a little nicer with @NativeCoroutinesRefinedState.

Also, I'm not sure how to use @NativeCoroutinesRefinedState. If I try using @NativeCoroutinesRefinedState in the above code the member is simply removed.

Correct, the refined annotations effectively hide the declarations from autocomplete.
The declarations still exist, but are prefixed with __. Something like the following should work:
extension MyClass {
    var foo: Double {
        self.__foo
    }
    var fooPublisher: AnyPublisher<Double, Error> {
        createPublisher(for: self.__fooFlow).map { $0.doubleValue }
    }
}


Build and test PyWavelets Pyodide wheels in CI

This PR adds and configures a CI job to test wasm32 wheels for Pywavelets compiled via the Emscripten toolchain. Almost all tests pass, and some of them are skipped because of the current lack of threading for Pyodide (please refer to https://github.com/pyodide/pyodide/issues/237).
It is likely that Pyodide has issues with file system access which was evident through OSErrors when trying to access .npy files, it's likely that this is a bug and I shall file it accordingly in the Pyodide issue tracker. The current workaround that has been adopted in this PR is to save the arrays loaded from these .npy files to compressed .npz file formats, which do not cause issues related to file permissions.
An IS_WASM check has been added to check for the platform and allow pytest to skip the concurrency-based tests after collection, as noted above.

Pyodide wheel builds are succeeding and tests are passing on my fork, see here: https://github.com/agriyakhetarpal/pywt/actions/runs/8003758318

Okay, so importlib.resources.files() is available on Python 3.9 and later, we might have to revert this change or look at other ways to access the data folder without the use of __file__, or reintroduce it and check if this was one of the issues that caused test failures earlier.

Thanks for the prompt review, @rgommers! It did take a bit of back and forth with the experiments – I don't have a strong opinion on rewriting history as such; it would be great if we can squash merge the PR, it's much easier


Adding a .varci.yaml

This may not be necessary for this repo as the amount of change requests is usually low, but is very cool nevertheless 💃
This should at least help automate some of the tedium of maintaining the list and communicating with contributors.

Let's give this a try :+1:

Do we need some docs/readme update or some contribution file explaining what to do here?

Woohoo!! 🚀
@dereuromark docs can be found here for now: https://github.com/VarCI/support/blob/master/pages/documentation.md. Let me know if you had something else in mind and I will get it PR'd later today.
Thanks for giving it a shot!

I mean for people making a PR for this repo. They would need the info in a texual way to know what are the requirements for the PR to pass :)

I think the messages set for message keys is what will be shown to users.


fix: ModuleNotFoundError as in #162

Hey @LeslieLeung. Could you please also sign the CLA as mentioned above?

Hey @LeslieLeung. Could you please also sign the CLA as mentioned above?

I already did.


Question about exercise 3.9

Hi,
I have a question regarding the "compute_velocity" function in exercise 3.9.
If I understand correctly in the brackets of the Trapezoidal rule it is a[0]/2+a[k]/2+sum(a[1:k]). However, when I use that in the code and check the calculation it shows as incorrect final solution (both acc_array  and time_array are confirmed to be correct).
On the other hand if I use a[0]/2+a[k]/2+sum(a[0:k] the test confirms that function is calculated correctly, but in this case isn't a[0] double counted, since sum() will start from a[0]?
Thank you

Of course, you can find my email on this webpage: https://www.imperial.ac.uk/people/m.beg

Hi @acse-e9c6b196, thank you for your patience. We investigated this question, and we agree with you. This is a mistake in our tests because we assumed finite-difference-like discretisation instead of finite-element-like.
The tests are now modified and will be released soon.


Kite Avro SDK: Merge Can Create 'type' Lists with Default Not as First Element

From the Avro spec

Note that when a default value is specified for a record field whose type is a union, the type of the default value must match the first element of the union. Thus, for unions containing "null", the "null" is usually listed first, since the default value of such unions is typically null.

However, merging two record schemas does not always enforce this rule. For example: "type":["string","null"], "default":null which should be "type":["null", "string"], "default":null. I can reproduce this bug with the following:

A Json String with a null value for key X
A Json String with a non-null value for key X
A Json String with no entry for X (DNE)
Schemas inferred from each of the sample Json Strings
The schemas merged in the following way: merge(non-null, merge(null, dne)) or merge(non-null, merge(dne, null))

scala> val nul = """{"key":null}"""
nul: String = {"key":null}

scala> val dne = """{"other":3}"""
dne: String = {"other":3}

scala> val str = """{"key":"hello"}"""
str: String = {"key":"hello"}

scala> def stream(s: String): InputStream = new ByteArrayInputStream(s.getBytes("UTF-8"))
stream: (s: String)java.io.InputStream

scala> val nulSchema = JsonUtil.inferSchema(stream(nul), "com.example", 1)
nulSchema: org.apache.avro.Schema = {"type":"record","name":"example","namespace":"com","fields":[{"name":"key","type":"null","doc":"Type inferred from 'null'"}]}

scala> val dneSchema = JsonUtil.inferSchema(stream(dne), "com.example", 1)
dneSchema: org.apache.avro.Schema = {"type":"record","name":"example","namespace":"com","fields":[{"name":"other","type":"int","doc":"Type inferred from '3'"}]}

scala> val nPlusDne = SchemaUtil.merge(dneSchema, nulSchema)
nPlusDne: org.apache.avro.Schema = {"type":"record","name":"example","namespace":"com","fields":[{"name":"other","type":["null","int"],"doc":"Type inferred from '3'","default":null},{"name":"key","type":"null","doc":"Type inferred from 'null'","default":null}]}

scala> val strSchema = JsonUtil.inferSchema(stream(str), "com.example", 1)
strSchema: org.apache.avro.Schema = {"type":"record","name":"example","namespace":"com","fields":[{"name":"key","type":"string","doc":"Type inferred from '\"hello\"'"}]}

scala> val merged = SchemaUtil.merge(strSchema, nPlusDne)
[WARNING] Avro: Invalid default for field key: null not a ["string","null"]
merged: org.apache.avro.Schema = {"type":"record","name":"example","namespace":"com","fields":[{"name":"key","type":["string","null"],"doc":"Type inferred from '\"hello\"'","default":null},{"name":"other","type":["null","int"],"doc":"Type inferred from '3'","default":null}]}

The final merge produces "type":["string","null"], "default":null, despite the type of the default value needing to be the first element of the type list.

@jake-greene issues for Kite are usually tracked on the projects JIRA instance.[1]
[1] - https://issues.cloudera.org/projects/KITE

Thank you, @mkwhitacre. Should I create an issue there and close this one?

Probably would be good so this issue doesn't get forgotten.


Method for overriding cached/checkpointed results

Is your feature request related to a problem? Please describe.
This is not necessarily a feature request, only a question of whether this feature exists but is difficult to find in the documentation. I am curious if there is way override or dynamically bypass the use of cached or checkpointed results at runtime.
For instance, in a large workflow that has been run on an input set of data, but a bug has been found that affects a small portion of the task graph for a subset of the input data. Does there exist an API that would allow me to decide on the fly to not use the cached/checkpointed results?
In my current project, I can imagine this happening frequently. i.e. The vast majority of the task graph is correct, but one branch for one part of the data contained a bug or needs to be rerun. It would be nice to be able to do that programmatically instead of creating an ad hoc task graph just for that portion of the data.
Describe the solution you'd like
Information about whether such an API exists, and where in the documentation to read about it.
Describe alternatives you've considered
Currently just making use of caching and checkpointing.

There isn't an exposed API for this, but I've talked about "different kinds of checkpointing" with @WardLT and I think its is definitely interesting to get practical experience about what that really means...
In the codebase, there are two interesting places for checkpointing:
When a task completes, the 10 lines starting here are the code that stores the result inside the checkpointing system:
https://github.com/Parsl/parsl/blob/13ae8e502371daf82c9cf4054da1360fe0e5c546/parsl/dataflow/dflow.py#L570
and then on a subsequent run, to decide if a result has been stored already and can be reused, the DFK makes this call followed by an if statement:
https://github.com/Parsl/parsl/blob/13ae8e502371daf82c9cf4054da1360fe0e5c546/parsl/dataflow/dflow.py#L732
So if you wanted to try out your ideas, these two places would be a place to start editing in your own policies directly into your own version of Parsl. I don't know what that would mean for you - for example, perhaps you need to store more information in each checkpoint to make your decisions later on...

Alright, I see what you mean. I would prefer not to have to maintain my own version of parsl, but I believe I understand your point. Thanks for indicating the relevant parts of the code - I very much appreciate it!


Better constructor support

Currently shillelagh will pass in null for each parameter of the constructor. This is works great if there are no constraint checks, but if there are you will need to either provide an empty constructor or remove the constraints.
There is probably a better way of doing this, like how gson or objenesis does it.

#27