[Recorder] [test-utils-ci pipeline] Browser test fails with "Referer" header mismatch in playback

RestError: {
"Message":"Unable to find a record for the request GET https://myappconfig.azconfig.io/kv/test-key?api-version=1.0\r\n

Header differences:\r\n \u003CReferer\u003E values differ,

request \u003Chttp://localhost:9878/\u003E,
record \u003Chttp://localhost:9876/\u003E\r\n

Body differences:\r\n","Status":"NotFound"
}

Observations

Failure observed only in the CI
Succeeds on my codespaces
I thought the "Referer" header was ignored(meaning.. should not match), why is the test failing now and causing the build to fail?
The only difference is that in the CI, we run the "dotnet tool" command for the proxy tool, and in my codespaces, I use "docker run"

Investigated and discussed with @scbedd.
Fix comes with https://github.com/Azure/azure-sdk-tools/pull/2554, tag and version update for the proxy tool.


set_pixels_rgb called the wrong function.

set_pixels_rgb called set_pixel instead of set_pixel_rgb.

set_pixels_rgb didn't work at all, it gave the following error message:

pixels.set_pixels_rgb(10,10,10)
Traceback (most recent call last):
File "", line 1, in
File "/home/pi/proj/juleljus_backend/local/lib/python2.7/site-packages/Adafruit_WS2801/WS2801.py", line 124, in set_pixels_rgb
self.set_pixel(i, r, g, b)
TypeError: set_pixel() takes exactly 3 arguments (5 given)

Hmm, my plan was only to ask for a pull request on the first change.


Create a CMake skeleton

The obvious entry point on how to structure a CMake project is https://github.com/robotology/how-to-export-cpp-library , but also https://github.com/dic-iit/bipedal-locomotion-framework has some quite interesting features.


Add write overload to the writer for table slices

This refactoring simply allows us to port the EXPORTER to table slices
while independently updating writer implementations.

Good idea! Done.


Update whats-new.md

Adding information that the Basic SKU will retire on 30th September 2025.  https://azure.microsoft.com/updates/azure-basic-load-balancer-will-be-retired-on-30-september-2025-upgrade-to-standard-load-balancer/

Learn Build status updates of commit 356ab68:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/load-balancer/whats-new.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@mbender-ms
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Thanks for the suggested addition, @NiklasEMS.
We are currently working on updates across the doc set for adding the retirement notices. I'll review this with the Team and report back.

This change was complete with PR https://github.com/MicrosoftDocs/azure-docs-pr/pull/214290
#Please-close


Release in wrong directory after tar extract

Hi!
I noticed that --strip-components has been removed as an argument to the tar command upon extraction. It seems to have been removed in this commit:
https://github.com/shipitjs/shipit/pull/260/commits/3cf7454dd46ec9fdddf98d85ce40229e2d2d52c2
This broke shipit-deploy deployments (in my case) as the leading directory is no longer being stripped. What was previously extracted to src/... is now being extracted to tmp-12../src/..
Log after 5.3.0:
 Running "cd /home/.../releases/20200323213903 && tar -xzf tmp-42Xp73RZdZvYq3.tar.gz" on host "ssh.example.com".
 @ssh.example.com-err tar: tmp-42ulD5Bg9qK4yf/.gitignore: time stamp 2020-03-23 22:39:00 is 40.005396223 s in the future
...
 @ssh.example.com-err npm WARN saveError ENOENT: no such file or directory, open '/home/..../releases/20200323213903/package.json'

It's looking for package.json in the correct directory, but package.json is now located in tmp-242../package.json.
Log pre 5.3.0:
 Running "cd /home/.../releases/20200317222927 && tar --strip-components=1 -xzf tmp-41PrwQtteALZ5p.tar.gz" on host "ssh.example.com".
 @ssh.example.com-err tar: .gitignore: time stamp 2020-03-17 23:29:24 is 36.715125466 s in the future
 @ssh.example.com-err tar: src/index.ts: time stamp 2020-03-17 23:29:24 is 36.713136291 s in the future

shipitfile.js
module.exports = (shipit) => {
    require('shipit-deploy')(shipit);

    shipit.initConfig({
        default: {
            deployTo: '/home/...',
            repositoryUrl: 'git@example.com:...',
            ignores: ['.git', 'node_modules'],
            keepReleases: 3,
            keepWorkspace: false,
            deleteOnRollback: false,
            shallowClone: true,
        },
        production: {
            servers: 'example@ssh.example.com:2222',
            deployTo: '/home/...',
            branch: 'master',
        },
    });

    shipit.blTask('install', () =>
       shipit.remote(`cd ${shipit.releasePath} && npm install`));

   shipit.on('updated', () => shipit.start('install'));
};

My apologies if this is an issue of misconfiguration from my side! My configuration was working as of the previous release.

I do have the exact same problem - my shipit.releasePath now looks like this:
-rw-rw-r-- 1 usr usr   27 Apr  1 16:15 package-lock.json
-rw-rw-r-- 1 usr usr   41 Apr  1 16:15 REVISION
drwxr-xr-x 4 usr usr 4096 Apr  1 16:14 tmp-31663xXIxG9Ls1APQ

Hello, could you submit a fix for that?

Sure, i could do that. Though, there's probably a reason, that @oleg-andreyev removed the --strip-components=1 from each tar command!?

@schwarmco I had some issues with unit tests, they simply were not working with --strip-components=1
I'll try to review my PR and remember the exact reason.

I've returned --strip-components=1 and now single test is failing
Summary of all failing tests
 FAIL  packages/ssh-pool/tests/integration.test.js (15.512s)
  ● ssh-pool › should copy to remote

    Command failed: ssh -i /Users/oandreyev/Development/shipit/ssh/id_rsa<EMAIL_ADDRESS>"cd ./ && cat test.1587159277564.txt"
    cat: test.1587159277564.txt: No such file or directory

It seems that scpCopyToRemote works okay performing a copy of a folder/, but it does not work okay with a single file.

I had this same problem. I was on 5.3.0. I downgraded and deploy one version at a time until it went away. The first version that correctly un tared the contents was 4.1.4.
https://github.com/shipitjs/shipit/compare/v4.1.4..v5.3.0

@trashhalo you're referring to issue with tar --strip-components=1 or that scpCopyToRemote is not working with a single file?

I do have the exact same problem - my shipit.releasePath now looks like this:
-rw-rw-r-- 1 usr usr   27 Apr  1 16:15 package-lock.json
-rw-rw-r-- 1 usr usr   41 Apr  1 16:15 REVISION
drwxr-xr-x 4 usr usr 4096 Apr  1 16:14 tmp-31663xXIxG9Ls1APQ

me too, my releasepath look like that also. how do you fix that ? i have downgrade to 4.1.4 but doesnt solve my problem

I have the same issue with 5.3.0
In the meantime I just edited my local node_modules/ssh-pool/lib/commands/tar.js file and added back args = [...args, '--strip-components=1'] on line 39 so deployments continue to work.

Hello, open to a PR to fix it.

Has anyone found a fix for this?

I've created #279, which is showing that --strip-components=1 was initially wrong.
When you create a tar from a folder, this folder should be located in tar, and later when you extract it this folder must be present.

I've monkey patched like this:
shipit.blTask('fix-tar', () => {
    shipit.pool.connections.forEach((connection) => {
        const { runLocally } = connection;
        connection.runLocally = function(cmd, options) {
            if (cmd.includes('tar -xzf')) {
                cmd = cmd.replace('.tar.gz', '.tar.gz --strip-components=1');
            }
            return runLocally.call(this, cmd, options);
        }
    });
});

shipit.on('deploy', () => {
    return shipit.start(['fix-tar']);
});

But I have a bad feeling about Shipit when I see such a critical bug unfixed for so long :(


Updated migration guide with typography replacements

Fixes # BLUI-5234

Changes proposed in this Pull Request:

Added mapping table for old typography components in migration guide

Screenshots / Screen Recording (if applicable)

To Test:

Any specific feedback you are looking for?

This is not resolved.
https://github.com/etn-ccis/blui-react-native-component-library/pull/534#discussion_r1473761061


[v5] Updated Benchmark Launch Settings

Proposed Changes
Updated launch.json to work with net8.0 updates. I also set it up where the developer could have more control with the benchmarks using args rather than commenting out various sections of code in the Program.fs
Types of changes

[X] New feature (non-breaking change which adds functionality)

Checklist

[X] Build and tests pass locally
[ ] I have added tests that prove my fix is effective or that my feature works (if appropriate)
[X] I have added necessary documentation (if appropriate)

I'm unsure why the mac build took as long as it did to run and I currently do not have the ability to retry actions. Let me know if you'd like to retry or if there is something I may not be seeing in my code which caused this issue.

🤷♂ github runner be flakey sometimes.


ani-cli: only add the player to the PATH as a fallback, format, add diniamo as a maintainer

Description of changes

Removes the assertation for choosing at least one player. This is questionable, because this should only be done if the user can assure that a player is installed separately, which doesn't sound pure/correct. Should I undo this?
Adds the player as a suffix in PATH, so the user's configuration takes precedence. This important, because for example in mpv, scripts are added through wrapping.
Format with nixfmt-rfc-style
Avoid using with lib;
Avoid using rec

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
[ ] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

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

[x] Fits CONTRIBUTING.md.

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

Thanks


[crypto-awslc] update aws-lc-rs to 1.7.3

Description of changes:
Update to aws-lc-rs 1.7.3 and pin to it so we don't get drifting aws-lc-sys versions again
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT license.

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

Project coverage is 89.61%. Comparing base (f4af668) to head (026b0d9).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #159      +/-   ##
==========================================
- Coverage   89.63%   89.61%   -0.02%
==========================================
  Files         174      174
  Lines       31507    31503       -4
==========================================
- Hits        28240    28231       -9
- Misses       3267     3272       +5

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


scheduler will run out of connections

Rancher versions:
rancher/server: v1.6.3
scheduler: v0.8.1
Steps to Reproduce:
Get the scheduler container ID, maybe xxxxxx.
Expose the container namespace:
mkdir -p /var/run/netns/
CONTAINER_ID=xxxxxx
ln -sv /proc/$(docker inspect -f '{{.State.Pid}}' ${CONTAINER_ID})/ns/net /var/run/netns/${CONTAINER_ID}

Results:
The scheduler will run out of connections. Check with this cmd:
watch -n 2 "ip netns exec xxxxxx netstat -anp | grep ESTABLISHED "

@niusmallnan rancher/scheduler:v0.8.2 has been released. Can you make a new catalog entry into rancher-catalog in the v1.6-development branch? Please separate it into 2 commits (1 with a copy of the previous folder and a 2nd commit with the changes).

@deniseschannon  Done

https://github.com/rancher/rancher/issues/9332

@niusmallnan Can you please not close the issues until QA has tested?

Available with scheduler v0.8.2 in the v1.6-development branch.

Tested with rancher-server 1.6.3 and scheduler v0.8.2 in the v1.6-development branch.
Number of open connections held by scheduler is pretty low:
root@sangee163new-10acre-2:/home/sangeethahariharan1# ip netns exec 79806de4f3d4 netstat -anp | grep ESTABLISHED | wc -l
3
root@sangee163new-10acre-2:/home/sangeethahariharan1#

With scheduler v0.8.2 , number of open connections keeps increasing.
root@sangee163new1-10acre-1:/home/sangeethahariharan1# ip netns exec 0b90f5963f1b netstat -anp | grep ESTABLISHED | wc -l
3980


Doubts regarding pretraining

As I understand from the paper, you pretrained the whole mDETR model on image-text pairs. Did you try pertaining only the encoder model just like the Visual-BERT model?

Hey! No we did not try that, only the backbone and text encoder are pre-trained on uni-modal data. The encoder and decoder are trained only on image text pairs.

Do you think that only training the encoder on tasks like image-text matching might help later on?

yeah an image text matching head could definitely help!


Bees secondary output // Species unreachable

Hi,
Not sure if it's a bug, or a choice. So i prefer to report it
Issue description:

Few bees i tried can't produce their secondary output : Gelid bee don't produce cryotheum dust, Yellorium bee don't produce yellorium comb... ...
Some species can't be breed. There is no oblivion hive, and no infernal hive in the nether (tried a lot of spot with a digiminer). So all species from this two are unobtainable.

Steps to reproduce:

Works with several bees i tried. Gelid / Yellorium / Nuclear / Unstable

Version :
Lastest version of the modpack
Thank you for any answer, and keep doing your great job on this amazing modpack !

Uhm... I think you've reported this to the wrong project. Mekanism doesn't do anything with bees.
Also, "latest" is always a wrong thing to report ;) (and Mekanism is a mod, not a modpack)

Just saw that. Sorry. Have nothing to do with mekanism. I just followed a link which was supposed to take me on a modpack github.


Fix _make_custom_tooltip receiving translated tooltip

Tooltip text could be pure data instead of text-to-display in order to do customization via _make_custom_tooltip(). Thus, we should not translate them immediately through atr().
Tooltips are child nodes of their owner control, so auto translation would do the translation when appropriate.
MRP: tooltip.zip - _make_custom_tooltip() should receive "Before Translation".

Superseded by #97406


Please "abandon" your package on packagist

even if you support it until late 2015 you should mark your package as abandoned, so people don't start using the wrong version.
see https://github.com/composer/packagist/pull/421
live example: https://packagist.org/packages/zenstruck/slugify-bundle

It's not abandoned yet though. :-1:
It should only be marked as abandoned they day you stop fixing bugs all together, and not before.

@GrahamCampbell Well, this issue can be still opened unless guzzle3 will be not maintained anymore. :+1:

As this version of the library is EOL, it should be marked as abandoned, so people may see an informational message when running composer install or composer update, and start upgrading their clients to Guzzle 5 or 6.

It seems like this has happened, per:
$ composer require guzzle/guzzle ^3
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing symfony/event-dispatcher (v2.8.27)
    Loading from cache

  - Installing guzzlehttp/guzzle (v3.8.1)
    Downloading: 100%

  - Installing guzzle/guzzle (v3.9.3)
    Downloading: 100%

symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/event-dispatcher suggests installing symfony/http-kernel ()
Package guzzle/guzzle is abandoned, you should avoid using it. Use guzzlehttp/guzzle instead.

I think this could be closed.


Remove dependency term-ansicolor

Per the thread at http://groups.google.com/group/cukes/browse_thread/thread/4ffa442cdfb7ffac this commit embeds term-ansicolor under the Cucumber namespace and removes it from the gemspec.

@aslakhellesoy I agree we should use the Gherkin AnsiEscapes eventually, but @joefiorini's fix is a step in the right direction.


[PackageEvaluator.jl] Your package JudyDicts may have a testing issue.

This issue is being filed by a script, but if you reply, I will see it.
PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their test (if available) on both the stable version of Julia (0.2) and the nightly build of the unstable version (0.3).
The results of this script are used to generate a package listing enhanced with testing results.
The status of this package, JudyDicts, on...

Julia 0.2 is 'No tests, but package loads.'
Julia 0.3 is 'No tests, but package loads.'

'No tests, but package loads.' can be due to their being no tests (you should write some if you can!) but can also be due to PackageEvaluator not being able to find your tests. Consider adding a test/runtests.jl file.
'Package doesn't load.' is the worst-case scenario. Sometimes this arises because your package doesn't have BinDeps support, or needs something that can't be installed with BinDeps. If this is the case for your package, please file an issue and an exception can be made so your package will not be tested.
This automatically filed issue is a one-off message. Starting soon, issues will only be filed when the testing status of your package changes in a negative direction (gets worse). If you'd like to opt-out of these status-change messages, reply to this message.

Closed as outdated.


Remove rules-runner directory

The code in this directory is superseded by various implementations that work off of the official structure for defining rules.

Fixed by PR #98


Use bsh-property property for profile activation

There is only one integration test sample POM for bsh-property. It does not answer the question if I can use a property defined that way for profile activation. When I tried, it did not work. Are we having a bootstrapping problem there? Is property-based profile activation calculated before Build Helper runs? I am trying to program a custom activator according to this outdated Apache wiki page, if that even still is a viable solution. It is not documented anywhere else, as it seems.
My use case is some rather expensive download, unpack and install option preparing the project for later build steps, which only should be done if a couple of files are missing. Maven profile activation based on missing files only works for a single file, though, and defining a separate profile for each file would be overkill. Hence, I want to return one property value (true or false) based on the result determined by the BeanShell script in bsh-property.

i think this is more a question to maven behavior itself, and not to this plugin.
i've not tested it myself, but i assume maven checks for properties to activate a profile very early in the build, before any plugin is running. so it will not work the way you expect.
maybe you can refactor your POM in a way to skip the other plugins with the expensive download when the property is set, instead of relying on profile activation.

@stefanseifert, I waited for a reply for 8 months. The question is specifically about this plugin. I am sure you know more about it than I do, also about the Maven build lifecycle itself, which this plugin is designed to hook into. If you have not tested it yet, would you mind doing so and explaining your findings, instead of simply playing ping-pong and deflecting the question back to me again?

(please don't be rude, this is an OSS project, we are not payed for working here)
i'm quite sure we cannot fix the plugin to behave the way you expect. please try my hint as alternative (see my last comment to refactor your POM).

I was not rude. Besides, I also contribute to OSS projects and treat my users like customers, trying not to let them wait for replies for too long, despite me doing my OSS work in my spare time and for free too, just like you.

Of course, while waiting for a reply here, I have implemented a workaround in my project, which you can see in this POM:

Use profile activation based on non-existence of a marker file.
At the end of doing all the expensive stuff in that profile, create same marker file using build-helper-maven-plugin:bsh-property, but without defining any properties.
Define an extra Maven Clean action in an special profile, making sure that the expensively downloaded (and unpacked) files can be cleaned up on demand, together with the marker file as such.

This works, but is not what I wanted, because it uses a heuristic workaround and is less than ideal. But I know how to help myself. It would still be nice to improve my POM based on your insights. I gather that you are not feeling so inclined to help, so I guess I am going to keep my current way solving the problem at hand. Thanks anyway. With all due respect, this was a rather chastening support experience, especially given the fact that bsh-property is so poorly documented and even the integration test I found does not really show how to use the defined properties. They simply dangle in the air unused. This kind of situation actually begs for users asking "stupid" questions like mine.


Improve operation workflow definition

Proposed changes
Proposal for improvements on how to specify a custom workflow:

Next step determined by script exit status
Next step determined by script output
Using a script to trigger a restart
New syntax for restart action
Setting step execution timeout
Do we need to explicitly list the next states for each state?

Types of changes

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Improvement (general improvements like code refactoring that doesn't explicitly fix a bug or add any new functionality)
[x] Documentation Update (if none of the other choices apply)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Paste Link to the issue

Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA (in all commits with git commit -s)
[ ] I ran cargo fmt as mentioned in CODING_GUIDELINES
[ ] I used cargo clippy as mentioned in CODING_GUIDELINES
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)

Further comments

Including the previous state also in the payload when a state transition occurs. This helps in defining generic states like a timeout or failure state that can be used to just report the state from which the failure happened. It would also help in defining any cleanup/rollback logics in those states based on the previous state.

Why not. Adding an updated-at timestamp might also be useful to control timeouts.
This has to be considered in a larger scope to fix that issue: https://github.com/thin-edge/thin-edge.io/issues/2495.

Ability to execute custom scripts as part of terminal states: successful and failed: This would enable users to attach any post-workflow cleanup logics to these states, like clearing any temp resources, clearing the command status etc. When combined  with the previous-state info, they can be even smarter.

Here, I'm less convinced. Sure we need to fix https://github.com/thin-edge/thin-edge.io/issues/2484,
but attaching an action to these states leads to a race condition, as both the agent and the mapper will react on those and the mapper clearing the state once done.
My proposal, is to augment the builtin workflows with intermediate states, e.g. successful-software-update and failed-software-update with default transitions to successful and failed. These default transitions can then be overwritten to include clean-up or rollback logic, as you suggest. The difference is a clear ownership: successful-software-update and failed-software-update are handled by the agent, and successful and failed by the mapper.

The following commits will be removed:

https://github.com/thin-edge/thin-edge.io/pull/2496/commits/5074b3f0e42e505fa26ab68f3c68ab3ffc62a202
https://github.com/thin-edge/thin-edge.io/pull/2496/commits/03c8aeaa50b64725c129ef106c5ac813412c054d
https://github.com/thin-edge/thin-edge.io/pull/2496/commits/4db304cc5cbc434dd3a1fca8b47bd4f0f13719c8
https://github.com/thin-edge/thin-edge.io/pull/2496/commits/e5db59d3f61b9337cf10ee7925185020a39ec99a

Indeed, adding an on_error handler along an on_exec handler needs clarification. Indeed,  this creates two threads of execution when an error is detected executing the script. This breaks the main assumption of a single thread of execution per command instance.

This PR improves the way an operation workflow can be specified by a user.

docs: https://github.com/thin-edge/thin-edge.io/blob/main/docs/src/references/agent/operation-workflow.md#user-defined-operation-workflow
tests: https://github.com/thin-edge/thin-edge.io/tree/main/tests/RobotFramework/tests/tedge_agent/workflows


Update metadata specification with datahub concepts and user research fields

User Story
A a developer, i want to  the include of all metadata attributes specified by the user researchers.
As a developer, I want to know how our metadata concepts map to concepts in datahub.
Value / Purpose
This effort is essential for presenting valuable information to users during testing.
Hypothesis
Enabling this functionality will ease the delivery of the frontend to users and foster iterative development through feedback.
Proposal

Create a mapping  table with current metadata with datahub concepts and user research fields.

SEARCH - HIGH
Source dataset name
[[quite broad - could be source system, source service, source table, source AP dataset - all also covered below]]

AP dataset name
eg. common_platform/full

Table name
eg. Finance Remission and Exemptions Table

Column name
eg. finance_person_id

Data field label
prob redundant / same as column label

Keyword/Tag
eg. [[needs guidance]]

FILTER - HIGH
Data domain
eg. Prisoner Facing

Business area
eg. Prison

Source system name (acronym)
eg. NOMIS, LPA

Data location/availability (AP, source, ...)
eg. Analytical Platform

Source system name (long name)
eg. eg. National Offender Management System; Lasting Power of Attorney

MoJ organisation
eg. HMPPS

Sensitivity level
default to official-sensitive?

DPIA Status
eg. [[not required for access but for processing?]]

Definition of Done
The frontend should successfully display metadata requested

https://docs.google.com/spreadsheets/d/1O1EjO96lyqDbyuzFWU8SNBky3b7tKM8dccZVS7-_t9g/edit#gid=784169301
In the v1.1 tab, I have added some extra columns for "DataHub concept" and "Card sort item".
I just talked with Richard and Alex vF a little, and they don't have business definitions for the card sort items they provided. So it might be best to only implement the filter/search on the card sort items already present in the metadata spec.


Update README

This looks really good, just some minor style / tone / grammar updates, feel free to ignore or pick any which work :)

Thanks!


pydeck: Apply Black formatter to code base

For #4103

Background
This is a formatting change. There are no API changes in this PR.
Stacked PR on top of #4453

Change List

Coverage remained the same at 80.192% when pulling e984e9299cb0de78ccaab4cfc4533ad112e9b1e3 on ajd/update-formatting into 529bf49d1969a17739e5d41688eb1b293e553560 on ajd/add-pyproject-toml.


Validation of signature shares

Closes #1075
Summary

Added calculation of group public key shares at the end of GJKR (phase 12) and passing the result to the ThresholdSigner instance.
Validation of incoming shares using BLS verification

@lukasz-zimnoch Can you please update it with the recent master changes?

Can we implement an integration test stressing signature share validation? We can easily intercept a signature share message from one or more members and insert there either incorrect bytes (not deserializing to G1) or valid G1 bytes but with a share that does not pass the validation.

@pdyraga, @nkuba ready for the next shot!

All nitpicks, let's address in a separate PR. No need to block here.


Asciidoctor compatibility

Is this theme asciidoctor compatible ?
Receiving this error even from empty adoc file:
ERROR render: failed to render pages: render of "page" failed: "/root/.cache/hugo_cache/modules/filecache/modules/pkg/mod/github.com/imfing/hextra@v0.8.6/layouts/_default/single.html:3:7": execute of template failed: template: _default/single.html:3:7: executing "main" at <partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" true)>: error calling partial: "/root/.cache/hugo_cache/modules/filecache/modules/pkg/mod/github.com/imfing/hextra@v0.8.6/layouts/partials/sidebar.html:119:15": execute of template failed: template: partials/sidebar.html:119:15: executing "sidebar-toc" at <$page.Fragments.Headings>: nil pointer evaluating *tableofcontents.Fragments.Headings
INFO  build:  duration 166.889711ms
Total in 198 ms
Error: error building site: EXECUTE-AS-TEMPLATE: failed to transform "/json/search-data.json" (application/json): template: /json/search-data.json:17:15: executing "/json/search-data.json" at <partial "utils/fragments" (dict "context" $page "type" $indexType)>: error calling partial: "/root/.cache/hugo_cache/modules/filecache/modules/pkg/mod/github.com/imfing/hextra@v0.8.6/layouts/partials/utils/fragments.html:8:21": execute of template failed: template: partials/utils/fragments.html:8:21: executing "partials/utils/fragments.html" at <$page.Fragments.Headings>: nil pointer evaluating *tableofcontents.Fragments.Headings

Hi, I didn't test asciidoc compatibility. From the error message you got, can you try disabling the search feature and try again?

Closing


Defining get_plugin_icon() in Plugin leads to non stop errors in Output

Godot version
v4.0.alpha1.official [31a7ddbf8]
System information
Windows 11
Issue description
The moment one defines the get_plugin_icon() function and returns an icon the output is flooded with invalid texture messages.
It doesn't matter if one uses an external texture like the default icon.png or internal icons gotten through the editor_interface

.
Steps to reproduce
Create an empty Plugin like first shown in the documentation here:
https://docs.godotengine.org/en/latest/tutorials/plugins/editor/making_main_screen_plugins.html
Minimal reproduction project

@tool
extends EditorPlugin

func _enter_tree():
    pass

func _exit_tree():
    pass

func has_main_screen():
    return true

func make_visible(visible):
    pass

func get_plugin_name():
    return "Main Screen Plugin"

func get_plugin_icon():
    return get_editor_interface().get_base_control().get_icon("Node", "EditorIcons")

After some more testing the error is "suddenly" gone, not sure what fixed it or really lead to it in the first place but I'll close this for now and open it again when I can successfully reproduce it again.


Close button doesn;t adjust with width size

Seems like close button has fixed position. Need to be relative and should always appear at the appropriate position.
If you increase/decrease the width of the Menu, it gets out of the correct position

Was this fixed ? Because whenever I change the width of the menu from the default 400px, the cross remains fixed with right: 250px and nothing works to move it somewhere else.

How do you move it ?


Fixes to SOCmapper

Description
Addressing #81

Add output of soc name if desired (defaults to not output it - so no breaking changes)
Update some READMEs accordingly
more job title cleaning (I'm sure we could do something much more sophisticated..)
test for job title cleaning

Instructions for Reviewer
In order to test the code in this PR you need to ...
Please pay special attention to ...
Checklist:

[ ] I have refactored my code out from notebooks/
[ ] I have checked the code runs
[ ] I have tested the code
[ ] I have run pre-commit and addressed any issues not automatically fixed
[ ] I have merged any new changes from dev
[ ] I have documented the code

[ ] Major functions have docstrings
[ ] Appropriate information has been added to READMEs

[ ] I have explained this PR above
[ ] I have requested a code review

ger - Fashion', 'Marketing managers'), ('Sales Manager', 'Sales managers'), ('Financial Accountant', 'Financial accountants '), ('Marketing Manager B2C eCommerce', 'Business development managers'), ('Graduate Sustainability/Energy Engineering role', 'Civil engineers n.e.c.'), ('Environmental, Health and Safety Assistant', 'Occupational health managers and officers'), ('Management Accountant ', 'Bookkeepers, payroll managers and wage clerks n.e.c.'), ('Digital Marketing Executive', 'Marketing consultants'), ('Fermentation Technician            ', 'Biological laboratory technicians'), ('Graduate Sales and Operations Coordinator', 'Sales administrators'), ('HGV Class 2 Driver - CAT C', 'Large goods vehicle drivers'), ('Weighbridge Administrator - Contract', 'Weighers, graders and sorters '), ('Graduate Sustainability/Energy Engineering role', 'Civil engineers n.e.c.'), ('Packaging Development Manager South', 'Managers in storage and warehousing'), ('Packaging Developer', 'Performance make-up artists'), ('Maintenance Manager', 'Metal working production and maintenance fitters n.e.c.'), ('Engineering Team Leader', 'Skilled metal, electrical and electronic trades supervisors'), ('Senior Sustainability Consultant', 'Sustainability officers'), ('Senior Building Surveyor', 'Building control surveyors'), ('Disability Employment Programme Manager', 'Welfare and housing associate professionals n.e.c.'), ('Sustainability Consultant', 'Sustainability officers'), ('Sustainability Consultant', 'Sustainability officers'), ('Senior Sustainability Consultant', 'Sustainability officers'), ('Digital Marketing Manager', 'Marketing managers'), ('Senior Sustainability Consultant', 'Sustainability officers'), ('Transport Engineer (HGV)', 'Heavy and commercial vehicle technicians'), ('Continuous Improvement Specialist- Manufacturing', 'Industrial and production engineers'), ('Health and Safety Officer, Atherstone', 'Health and safety managers and officers n.e.c.'), ('CHC Senior Community Practitioner', 'Social workers n.e.c.'), ('Senior Estates Advisor Capital Investment', 'Stockbrokers'), ('waste operations manager', 'Waste disposal and environmental services managers n.e.c.'), ('Natural Capital Woodland Creation Officer', 'Forest and woodland officers'), ('Business Analyst', 'Business analysts'), ('Marketing Manager  £48-60K  Sustainability Tech Start-Up ', 'Marketing managers'), ('Business Development Manager', 'Business development managers'), ('Chartered Building Surveyor', 'Chartered surveyors n.e.c.'), ('Environmental Manager', 'Environmental professionals n.e.c.'), ('Senior Consultant', 'Social workers n.e.c.'), ('DevOps / System Administrator', 'Network and systems administrators'), ('CHIEF OFFICER OPERATIONS AND TRADED SERVICES', 'Financial managers and directors n.e.c.'), ('IT Engineering Manager', 'Computer system and equipment installers and servicers'), ('Lettings Administrator', 'Records clerks and assistants n.e.c.'), ('Computer Vision Engineer', 'Photographers, audio-visual and broadcasting equipment operators n.e.c.'), ('Building Surveyor', 'Building control surveyors'), ('Acoustic Consultant - North London', 'Acoustic engineers '), ('Junior DevOps Engineer  - Bristol or Remote', 'DevOps engineers'), ('Accounts Officer', 'Bookkeepers, payroll managers and wage clerks n.e.c.'), ('Sustainability Consultant', 'Sustainability officers'), ('Sustainability and Planning Consultant', 'Sustainability officers'), ('Contact Centre Team Leader', 'Customer service supervisors'), ('Nursery Manager required', 'Early education and childcare services managers'), ('Recruitment Consultant - Health & Safety - London - 30-40k', 'Recruitment consultant '), ('Building Surveyor', 'Building control surveyors'), ('Simulation Engineer ', 'Avionics technicians '), ('EU Sustainability Project Engineering Manager', 'Civil engineers n.e.c.'), ('Senior .Net Developer/Architect', 'Software developers')]

Final commit outputs a dict for the SOC 2020 code to names - handy when linking back


New snippet - interface enhancement

Hi Waldo,
I have two possible enhancements for interfaces

Snippet for interface procedure (just to generate the same thing as a procedure but without begin/end)
New quickfix to generate the body of CU that implements an interface (with all procedures). In my current project, I have already 6 interfaces for enums and this is one of the things that I really miss

If you make the snippet, I'll add it ;-).  Or an example of code?
the quickfix is something I can't do - but may be a good suggestion for this extension:
https://marketplace.visualstudio.com/items?itemName=davidfeldhoff.al-codeactions


CHEBI:139109 misleading synonym

CHEBI:139109 (IP3 receptor agonist) has the synonym "inositol trisphosphate receptor antagonists" which doesn't make sense to me, think this should be removed.
thanks, Emma

Thanks for letting us know. I have changed this to 'inositol trisphosphate receptor agonist'.


Added Obliteration png and ico files.

Added the new Obliteration program icon! Path is src/resources/

Cool!


the newest composer 3.0 RC package can't get container by $this->getContainer()

And will tell you "PHP Fatal error:  Call to undefined method Slim\Container::getContainer()".
I find an old RC package in my VPS, and it has no that problem.
I paste the code which I test this quesion:
<?php
require './vendor/autoload.php';

$container = new \Slim\Container([
    "host" => "hehe"
]);
$app = new \Slim\App($container);
$app->get('/', function ($req, $res, $args) {
    $container = $this->getContainer();
    echo 'aac';
    return $res;
});
//run app
$app->run();

Please check the BC breaks listed in the Release notes for RC3.
Specifically:

#1631 - The route callable is now bound to the Container rather than to the App to be consistent with middleware binding. This means that if you are using $this->subRequest then you now need to use ($app) and then $app->subRequest(…). Also if you were using $this->getContainer()->get(…), you need to change this to $this->get(…). Note that using $this->foo to retrieve a service from the container continues to work.

i.e. in the route callable, $this is the Container now.


chore(main): release 0.27.0

:robot: I have created a release beep boop
0.27.0 (2023-03-26)
Features

history: show 3 seconds ago by default (12ea8bd)

Miscellaneous Chores

deps: update dependency all_lint_rules_community to ^0.0.29 (#263) (7406d41)

Tests

time: add test for TimeOfDay.toLastPastDateTime (e1e00cf)

Code Refactoring

history: make history stateless (a93434e)
history: make swidget function private (61c2642)
history: remove unused imports (83a5164)
move DateTimeToTimeString to utils/time.dart (b1cba80)
router: pass DateTime as extra instead of params (bc0ba94)
router: pass Label as extra instead of params (894a14d)
router: path params to query params (def7ec1)
router: remove unused name (62e13b7)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/CCXXXI/ecg_monitor/releases/tag/v0.27.0 :sunflower:


C stack overflow in error handler

When calling a lua function that errors, the C stack is not cleaned up. If the lua function is called many times, it will eventually overflow the stack. Any further calls to the error handler result in the error "error in error handling" being returned.
This is the smallest test case I could come up with to reproduce it. I'm on Linux using lua 5.1.5 and the most recent version of golua.
error.go:
package main

import "github.com/aarzilli/golua/lua"
import "fmt"

func main() {
    L := lua.NewState()
    L.OpenLibs()
    if err := L.DoFile("error.lua"); err != nil {
        panic(err)
    }

    // 120 worked on my machine, might be different for you
    for i:=0; i<120; i++ {
        top := L.GetTop()
        L.GetGlobal("doError")
        err := L.Call(0, lua.LUA_MULTRET)
        if err != nil {
            fmt.Println("error:", err)
            fmt.Println("stack length:", len(L.StackTrace()))
            // fmt.Println("stack:", L.StackTrace())
        }
        L.SetTop(top)
    }
}

error.lua:
function doError()
    error("something bad")
end

https://github.com/navy1125/golua
I replace panic to error string , it can resolve this problem ugly...
I'm pleasure to put a pull request if nessary

Could you split the go fmt from the changes? It's hard to see what you patched like this. Thank you.

sorry ,last two commits

There are two problems with this approach:

changing the behavior of lua.(*State).RaiseError like you did breaks API backwards compatibility (this could be overlooked or worked around if problem n. 2 didn't exist)
this approach only works for errors raised from go, if lua raises an error and we let lua's error handling continue it will do a longjmp which will make cgo choke. This can be seen by running TestCheckStringFail in lua/lua_test.go.

I have a fix for this issue: https://github.com/aarzilli/golua/pull/70

@aarzilli the correct (but somewhat annoying) solution is to wrap FFI calls in both directions, with wrappers written in the foreign language that handle converting the exception-propagation mechanism appropriately.
Specifically:

Lua->Go calls: for any called Go function that might panic, wrap it in a Go function that recovers the panic, convert it to an error value, return it to the Lua side, and have the Lua code convert it to a Lua error*
Go->Lua calls: in any place where a Lua C API call may trigger a longjmp, you have to wrap that call with a lua_pcall (thus effectively capturing the error and converting it to a value before returning to the Go caller), and have the Go code convert any returned error value to a Go error

I believe this should ensure that the stack is always unwound appropriately, and never incorrectly done across FFI boundaries. This approach is taken by some other existing Lua embedding/binding projects.

*: Or, possibly store the information about the panic in a variant error, and modify Lua's pcall/xpcall so they can't catch these special panic-wrapped-in-errors, and have your Go->Lua wrapper convert them back to panics at the original Go caller


build sql  exist error

System information:

Win10
DBeaver version 6.0
Java version 11
Additional extensions

Connection specification:

Database name and version   MySql 5.7
Driver name                      mysql
Do you use tunnels or proxies (SSH, SOCKS, etc)? no

when table exist primary field and unique key field，build sql->update sql
we can get update sql, but where condition use unique key field ,not primary field

cannot reproduce an issue.
if it is still actual for you - feel free to reopen the ticket


CrashLoopBackOff: exec user process caused "no such file or directory"

Follow the instruction in README, pod has below status:
kubectl get pod | grep lxcfs
lxcfs-admission-webhook-deployment-845cdc8c6-fng4j   0/1     ContainerCreating   0          92m
lxcfs-sfrjv                                          0/1     CrashLoopBackOff    23         94m

kubectl logs  lxcfs-sfrjv
standard_init_linux.go:211: exec user process caused "no such file or directory"

Host System: Debian 9
kubectl version:
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40", GitTreeState:"clean", BuildDate:"2020-05-20T12:52:00Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.1", GitCommit:"206bcadf021e76c27513500ca24182692aabd17e", GitTreeState:"clean", BuildDate:"2020-09-09T11:18:22Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}

遇到同样问题。ubuntu16.04的node上

I'm having the same problem，
kubernetes version v1.18.1 on  Ubuntu 16.04.6 LTS


ADD Cdlhyj.com/六合远教 to powered-by page

Please answer these questions before submitting pull request

Why submit this pull request?

[ ] Bug fix

[x] New feature provided

[ ] Improve performance

Related issues

Bug fix

Bug description.

How to fix?

New feature or improvement

Describe the details and related test reports.

Ref #443


Display file name somewhere

Some feedback:

it would be really nice to have the file name somewhere. I was working through a handful of files and after the 4th or 5th, I couldn't remember which one I was on - and essentially had to guess.

Seems like a good idea. A quick win would be to change the page title, but we could do something in the main UI too. Maybe think about this along with https://github.com/GoogleChromeLabs/squoosh/issues/243.

Hello!
Please feel free to check out my first step to implement the solution #326
Awaiting for your feedback!

Note: follow up with @argyleink about better way to display image title outside of tab title.

The tab title might be enough

tab title is great, hard to tell if it's enough or not unless we did some user testing..
I like @kosamari's type display idea here. This issue (and #101) could adopt her idea by adding the file name and type, like this:

we kinda get 2 birds with 1 PR: reinforce the file name again, inline with the UI (not just page title) and also display the original type. thoughts?

#1354 #1352

#1354


Unable to use vim

Summary
I followed the instructions and I am able to run this code (java -jar checkstyle-10.3.3-all.jar -c cs2030_checks.xml YourFilenameHere.java) successfully. However, I am unable to open vim as shown in the picture. I tried to install vim (which i placed in my CS2030 folder) using the links provided on the official website but it still gives an error when I try to run vim on PowerShell.
Screenshots (if any):

did you follow the instructions to install Unix? you should be running msys.bat, not PowerShell, and if you've completed all steps in the installation you should be able to access vim through that Unix environment


Created MINIMUM_WINDOW_SUBSTRING.cpp

Given two strings s and t of lengths m and n respectively, return the minimum window substring of s such that every character in t (including duplicates) is included in the window. If there is no such substring, return the empty string "".

Add resources not codes
Add resources like courses, certifications, roadmaps, notes, cheat sheet, etc


create Book class

I'd like to give this a try.  What I envision is the ability to instantiate a Book object from multiple data sources (html, txt, epub, etc.), with attributes such as book_title, author, publication date, etc. automatically populating, as well as the sentiment information (i.e. the pandas dataframe) being an attribute.

I like it! I was just thinking something like that would be good yesterday but I didn't get as far in thought as you had yet. go for it and start a new branch for it. not sure where you want to branch off from but probably doesn't matter really.

I am mostly just playing around and learning how this github thing works so feel free to change things if you think I am doing something wrong.

Book class has been added, as well as a method for sentiment analysis, but I'm still a ways from adding the "from multiple sources" capabilities.

Add genre attribute(s) to Book class for easy sorting and comparisons


Single BP Page Design

We need a page to see a specific block producer information and graph.

I've uploaded a design prototype in order to decide what information will be displayer for specific BPs.
Check it out here:
https://app.zeplin.io/project/5a58ea3341f76658994e000c/screen/5bb6aa7f48a15c645a7a1ffe
Also take a look at the new footer!

the project link is not public @murillojorge

I'll just start uploading the prototypes.


Mutiny+ lightning address not useable

Not able to send sats to my Mutiny+ lighting address.
mutiny-logs.txt

What's your address?

<EMAIL_ADDRESS>

Where are you sending from? There's a known issue with some custodians that cannot pay federations and the issue is on their side. I just zapped you just fine.

I'm using Strike for testing. The error message is 'unable to find payment route'. I guess it's an issue with the custodian then. Confirmed that I got your zap to federation.
Although, I did some testing yesterday zapping to self custody/lighting channel and it didn't work as well. Same error message. Could this be the same issue?

Yes it's a strike issue and they are looking into it.

zapping to self custody/lighting channel

What do you mean by this? How are you trying to "zap to self custody?"

I have a lightning channel setup in Mutiny prior to joining a federation. I left the federation yesterday to test if it was an issue with that and I was having the same issue using Strike. At this point, I'm with you it's a Strike issue since I was able to fund the wallet about a week ago just fine.
I'm good to close out this ticket. Thanks for looking into the issue, Tony.

I see, yeah that makes sense, had to make sure that's what you were doing to test it.
One thing to check is whether or not your channel is online. We've also been having issues with our LSP, so the self custodial channel could be on our side.

It was online for sure. I'll play around with it more and see if I can narrow down the issue.

FWIW, I tried to zap you back<EMAIL_ADDRESS>and it's not going through 😞
mutiny-logs (1).txt


add http_api_spec_parser.

Jenkins job mixerclient/presubmit passed

Jenkins job mixerclient/proxy-regression passed

Jenkins job mixerclient/presubmit passed

Jenkins job mixerclient/proxy-regression passed


[operator] Manage Virtual Garden kube-apiserver Exposure

How to categorize this PR?

/area dev-productivity delivery
/kind enhancement
What this PR does / why we need it:
With this PR, gardener-operator manages the virtual garden kube-apiserver deployment.
This PR is still WIP.
Which issue(s) this PR fixes:
Part of #7016
Special notes for your reviewer:

:x: Depends on #7693 (see empty separator commit)
:x: Unit tests missing

Release note:

TODO

/test pull-gardener-e2e-kind-operator
/test pull-gardener-integration

/test pull-gardener-e2e-kind-operator
/test pull-gardener-integration

/assign

/approve

/retest-required


Search within Pages

For tracking purposes.
We have a search bar for various pages that is yet to be wired up. We can track progress here and close the issue once it's done.
Discover Page

Search listings
Search pages
Chat
Search messages
User Page
Search user page listings on store tab
Search followers/following list
Orders Page
Search purchases
Search sales
Search cases

Are the two bullet points for searching chat and searching messages both referring to the same thing?

Fixed.

The two User Page bullet points are complete and ready for QA.

For clarification, what should search messages in chat do?
Currently, the get_chat_conversations API doesn't return anything that can be searched against, other than guid.
Does the search filter the conversation you're looking at?

I thought I already implemented the search for chat which is just by GUID.

Right, is it listed here because there should be more to search by than guid?

I mean it would be nice if we could search conversations but that's not a 1.0. Should probably just consider this completed and defer full search until later.

Happy to see 'search by conversation' bounce to post-v1.
Search by handle to find an open conversation would be great for v1, but probably a stretch goal.

Searching a store page doesn't seem to be working. Can someone confirm?

It's working normally for me in the master branch.

I'm on master, and I can't search for any keywords when I go to a store page; Discover tab is working just fine for search.

I'm closing, @morebrownies or @jjeffryes feel free to re-open if it's premature.

Thanks Sam!


Translate Virtual DOM and Internals

Originally this part was claimed by @mekhanix, but since there was no update from the original claimer, I decided to help out. Please forgive my rudeness. And please review my translation.

@zweimach It's okay! I was about to free up some inactive pages in the master issue tonight, but thank you for jumping the gun.
I'll update the master issue and read into your changes later tonight.

@resir014, thank you for your feedback.

@zweimach Thanks! I'll take a look shortly.
Oh, while you're at it, don't forget to translate the page title as well. Let's use Virtual DOM dan Internal


data cube mix error

When running a policy with two cubes:
1 -> price, client, ts, count
2 -> price, ts, sum
Values in operators are mixed aletorialy.
Seing in the demo

find dimension by name, or update state by key repartition

I couldn't reproduce this error, but we have to pay attention to see if occurs again.

Issue migrated to JIRA.


This package has been privatized

Cant use it having the same problem in react

@NeoPrint3D what do you mean by it has been privatized?

I got my code working but when I try to download this package it says I don't have permission to download it

What package manager are you using? What is the exact error message you're getting?
I'm not able to reproduce it on my end. Would you be able to share some code for me to reproduce the error locally?

Sorry I can't reproduce it thanks for the help though


Make sure PCs appear in invitees, writers and signatures

Added PCs to invitees, writers and signatures of Comments, Reviews, ReviewRebuttal, ReviewRevision and ReviewRating.

One comment:

since the creation of ReviewRebuttal, ReviewRevision and ReviewRating invitations depend on the review's signature, then we end up with invitations like this (because when the PC edits the review, the signature changes):

Additionally, this is a problem if multiple reviews are edited by the PCs before these additional invitations are created.
Not sure if I'm missing something here @melisabok

I think we can do two things:

Allow the PCs to post the review on behalf of the reviewer, that means they could sign the note using the AnonReviewer group.
When creating the invitation that depend on the signature of the review, check if the signature is a unique group id, (eg: is AnonReviewer) and create the invitation otherwise, throw an error or ignore that review.

I think the PCs will use the PCs group to sign the review they want to delete.

These two PRs should allow PCs to edit submissions after the deadline:
https://github.com/openreview/openreview/pull/2247
https://github.com/openreview/openreview-web/pull/327


It seems not compatible with Sonoma 14.0

Hello !
First of all, thanks for this app that I really like !
I have upgraded my Mac OS to Sonoma 14.0. Nothing happens when I click on a bookmark button.  Is it a bug or a security problem ?
Thanks !

I'm not wanting to add to the fire, but it also does not seem to persist across spaces.

Sorry for the wait @ocatteau, I actually released a fix several weeks ago, it should be good now 😀
@douglaslassance yes, can confirm that unfortunately, I'll promise I'll fix it eventually 😅

@douglaslassance Should be fixed in 1.4!

I got the update. It works great.
Thanks.


alert when empty field

on form-view.js:
Phone OR email MUST have data.
If BOTH are missing, show a prompt that tells the user to enter a phone or email.

Done.


android 12 fix

Please merge this small changes for android 12 with build-tools sdk 31.
thank you

@FilippiMatteo @vouillon you need to add android:exported="true/false" at nl.xservices.plugins.ShareChooserPendingIntent
Right now i was handling by adding below code in config.xml
 <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application/activity[@android:name='nl.xservices.plugins.ShareChooserPendingIntent']">
            <activity android:exported="true" />
  </edit-config>

any plan for merge to master?

any plan for merge to master?

I second this question!

Thanks @FilippiMatteo
@EddyVerbruggen any plans to merge his PR?

@EddyVerbruggen Please merge this PR asap.

does anyone know, when this will be merged? i need this feature to support android 12

does anyone know, when this will be merged? i need this feature to support android 12

no one knows... I've already tweeted Eddy but not yet got the reply. The temporary solution is to manually change the code according to this PR every time before building the app in Android Studio, if you use capacitor.

@FilippiMatteo @vouillon you need to add android:exported="true/false" at nl.xservices.plugins.ShareChooserPendingIntent
Right now i was handling by adding below code in config.xml
 <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application/receiver[@android:name='nl.xservices.plugins.ShareChooserPendingIntent']">
            <activity android:exported="true" />
  </edit-config>

May I ask which section should this xml stay?
I tried to put it under <widget> in config.xml and when I remove platform/android folder and do cordova platform add android, I got error says this ShareChooserPendingIntent section not found(see below), I guess the plugin's discovery process is after this edit config process, so how do we deal with this situation?
Subproject Path: CordovaLib
Subproject Path: app
Android project created with<EMAIL_ADDRESS>Unable to graft xml at selector "/manifest/application/receiver[@android:name='nl.xservices.plugins.ShareChooserPendingIntent']" from "/app/platforms/android/app/src/main/AndroidManifest.xml" during config install

Please merge this!

Hi @EddyVerbruggen
Please merge this PR, it's causing a stuck in my project when i updated it to android 12
Thanks bro!

This solution works for me.

Due to the lack of PR merge I forked it and published on NPM as cordova-plugin-x-socialsharing-android12 with the commits done by @FilippiMatteo as v6.0.4.
You can use it by installing as npm i cordova-plugin-x-socialsharing-android12 and cordova plugin add cordova-plugin-x-socialsharing-android12
I think I'll remove it as soon as this will be merged.

Is it merged now ?

@Takkuz How about for Capacitor? How to integrate yours to awesome-cordova-plugin?

@Takkuz How about for Capacitor? How to integrate yours to awesome-cordova-plugin?

Sorry, I'm not used to Capacitor so I don't know how to integrate it.

Hi, i have the same problem.

@Takkuz thanks for this! Any chance you can remove the dependency for es6-promise-plugin in your npm version?
@tomfong there's no issue with using @Takkuz plugin with capacitor - npm uninstall "old-one" && npm i "new-one" && npx cap sync, as usual
You can use it with @ionic-native/social-sharing so that it is an angular injectable serivce.

Due to the lack of PR merge I forked it and published on NPM as cordova-plugin-x-socialsharing-android12 with the commits done by @FilippiMatteo as v6.0.4.
You can use it by installing as npm i cordova-plugin-x-socialsharing-android12 and cordova plugin add cordova-plugin-x-socialsharing-android12
I think I'll remove it as soon as this will be merged.

It works great, thanks. But if someone else like a team member clones the code, it doesn't install the same plugin again. It install the older version of the plugin instead of the new one.
Please, how may we solve this?

Due to the lack of PR merge I forked it and published on NPM as cordova-plugin-x-socialsharing-android12 with the commits done by @FilippiMatteo as v6.0.4.
You can use it by installing as npm i cordova-plugin-x-socialsharing-android12 and cordova plugin add cordova-plugin-x-socialsharing-android12
I think I'll remove it as soon as this will be merged.

It works great, thanks. But if someone else like a team member clones the code, it doesn't install the same plugin again. It install the older version of the plugin instead of the new one. Please, how may we solve this?

Ok, I should have fixed it. It should be due to the ald ID still used inside plugin section. I don't have it because I don't use the plugin section on config.xml.

@Takkuz any chance to remove the es6 plugin dependency while your are at it?

@Takkuz any chance to remove the es6 plugin dependency while your are at it?

I was looking at it but i don't understand native code, so I don't know why it's needed and if it could be removed without affecting the behaviour. Actually I'm on holiday and my company needs a working production of this plugin so I can't take the risk. Sorry.

I'm using your plugin without this dependency and it works as expected. I don't think it's needed anymore as all modern browsers supports promises.

Have the same issue. Guess no one can move this along other than @EddyVerbruggen 😓
I tried the solution frequently suggested here https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin/pull/1158#issuecomment-1103770496 but that creates the Unable to graft xml at selector error @hldh214  mentioned.

The android:exported="true" problem on the main activity, was fixed in the newer versions of the android-cordova (check here in release notes).
Install the newest version will prevent the problem, preventing the need of the edit-config option.
You can install de newest version with:
cordova platform remove android
cordova platform add android@11

Be aware that the newer versions use the java 11 instead of the java 8.
@FilippiMatteo I opened a pull on your branch, it's just a fix, since the min SDK version allowed on cordova-android is 22, and the flag FLAG_IMMUTABLE was added only on SKD 23, to prevent some unexpected behaviour on devices with SDK 22, I only added the flag when needed, if you could check the pull and merge into yours.

The android:exported="true" problem on the main activity, was fixed in the newer versions of the android-cordova (check here in release notes). Install the newest version will prevent the problem, preventing the need of the edit-config option. You can install de newest version with:
cordova platform remove android
cordova platform add android@11

Hi. I have the latest cordova android, installed like you mentioned. However I do have the problem with android:exported="true".
I had to add an edit-config, plus some weird fix in my prepare hook to make the packaging work.
And I still need a fix on this plugin.
And all this is related to the latest cordova android release AND this plugin not being compatible.
Regards.

Weird it didn't work on the main activity with the newer version (the newer version don't fix the plugin problem only on the main activity ploblem), i've had a lot of problems adding/removing plugins and the platform itself, I would recommend to remove entirely the node_modules, plugins and platforms directories and try add the platform again, solved a lot of problems with that...

Weird it didn't work on the main activity with the newer version (the newer version don't fix the plugin problem only on the main activity ploblem), i've had a lot of problems adding/removing plugins and the platform itself, I would recommend to remove entirely the node_modules, plugins and platforms directories and try add the platform again, solved a lot of problems with that...

The problem is not on the main activity. The problem is on the activity of the plugin.
The main activity is fine and doesn't produce an error.

My mistake, I thought was understood that only the android:exported="true" wont be enough, this will allow the app to be built, but once the plugin is called, and reaches the PendingIntent without the mutability flag, will crash your app (on devices with SDK 31+).
Since someone provided an alternative npm package with all the changes, and seen the log on one comment showing that was used the cordova-android 9, I assumed that the problem still happening only could be on the main activity not on this plugin receiver.

Since the last comments on this are very recent... I guess no updates. This is really bad, because now googleplay requires you to target sdk 31, so this needs to work for the app to be uploaded.

Android 12 package mentioned here is working as expected and can be used. I have it in production now.

This fix worked for me. I will also tweet him to merge it

@EddyVerbruggen can you remove the es6 dependency?

finally merged!

Awesome news!

Hi !
As @hldh214 I have the problem below
Android project created with<EMAIL_ADDRESS>Unable to graft xml at selector "/manifest/application/receiver[@android:name='nl.xservices.plugins.ShareChooserPendingIntent']" from "/Users/vagrant/git/platforms/android/app/src/main/AndroidManifest.xml" during config install
I added the differents  for activity and receiver in my config.xml
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application/activity[@android:name='MainActivity']" xmlns:android="http://schemas.android.com/apk/res/android">             <activity android:exported="true" />         </edit-config>         <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application/receiver[@android:name='nl.xservices.plugins.ShareChooserPendingIntent']">             <activity android:exported="false" />         </edit-config>
I also add cordova-plugin-x-socialsharing but the problem is still here.
Do you have an idea for a solution?

@idrisAd with version 6.0.4 you should be able to delete those "edit-config" tags and it should work without them. Also when upping your target SDK to 31 for android make sure you have Java 11 installed. I  had Java 1.8 and it was causing issues building for me.

Thx @saggio89 !
I got errors like error: cannot find symbol import android.support.v4.app.NotificationCompat; but with cordova plugin add cordova-plugin-androidx-adapter I solved them.


Factory before(:create) called AFTER model after_create

Description
The factory's before(:create) callback is called AFTER the model's after_create.
Reproduction Steps
Given a simple model, let's call it Account, with an after_create callback:
class Account < ApplicationRecord
  after_create :do_something

  def do_something
    puts 'Model after_create callback'
  end
end

And a factory for it:
FactoryBot.define do
  factory :account do
    before(:create) do
      puts 'Factory before_create callback'
    end
  end
end

When running a test to create an account using the above factory, the following is printed:
Model after_create callback
Factory before_create callback

Expected behavior
The order of the callbacks should be before_create followed by after_create.
Actual behavior
Callbacks are called out of order.
System configuration
factory_bot version:  5.2
rails version:  5.0
ruby version: 2.4

Turned out to be a bug in my application. Closing.


Quantum number index

Other than using UniTensor.print_blocks(), is there any way to see the quantum number index information of a bond, some bond in a UniTensor?

You can retrieve the bond object from unitensor and print the desired properties.


Updating api docs

Changes done:

Updated the results format
Removed the logo as it was not visible after the deployment
Refactored the response schema

Can one of the admins verify this patch?

ok to test

retest this please


Consider adding a drag & drop event

Original: https://github.com/tomaka/glutin/issues/496

I have a PR for this here: https://github.com/tomaka/winit/pull/244

Closing this in favor of #720


What is the maximum sized of a request?

What is the maximum size of a request?

@jonrosenskispark thanks for reaching out. If you decide you still need help please let me know and provide me with the document you are referring to.


3D Support for Pooling and Convolution

We would really like to have full 3D support for convolutions and pooling (for both GPU + CPU ), and will start contributing the missing pieces. This issue is to track the various tasks and progress, get comment and feedback, and coordinate efforts (if others would also like to contribute). The following needs to be implemented:

[ ] CPU 3D convolution (already have cuDNN GPU)
[ ] CPU + GPU 3D dilated convolution
[ ] CPU 3D Max, Mean + Total Pooling (already have cuDNN for GPU)
[ ] CPU + GPU 3d Pad layer

The strategy: adapt corresponding Torch layers. Everything will be NCDHW format (D = depth, of course the order of the spatial dims doesn't matter).
@piiswrong @sxjscience

maybe caffe layer would be easier to adapt

This issue is closed due to lack of activity in the last 90 days. Feel free to reopen if this is still an active issue. Thanks!


Exemplars support for all time series

Proposal
Right now Exemplars are only supported on counters and histogram buckets. They are not supported for Summary (it has a _count) and Histogram (it also has a _count).
Having Exemplars support for at least _count (Summary and Histogram) would make it possible for the users to use Exemplars for things like request rates and error rates.
There were some discussions about this on the mailing list, this issue is basically for tracking that effort: https://groups.google.com/g/prometheus-developers/c/zgu5hwV_2oo/m/5VfUiOfmAgAJ

I think we should keep the existing tests and add one or two extra example tests to test all code paths. Adding exemplars to all metrics in tests could potentially hide bugs in the future.

I guess you wanted to add this comment to the PR but this is essentially what I did.

See also: https://github.com/OpenObservability/OpenMetrics/issues/241.


Impossible to login Hubic account

Hi,
I can not login with any of y accounts. each time, I get this message: "Authentication failed, please check your credentials", then after few minutes, "Echec de la connexion"
Would you please tell me how to solve that?
Could you please tell me if swift explorer keeps the original dates of the files when donwloading a backup?
Cordially

Hi,
I have solved the problem which is about the password which can not accep special caracters as french ones, "è" for example.


What is the nbProject?

Is it or will it be used by some part of meteoris?
just asking!
Paul

should be ignore when you push.

Agreed, should be in .gitignore.

I'll fix this when I have time, PR are welcome. Thank Guys,


Are projections applied when fitting ICA?

I'm computing ICA on continous raw EEG data. In my pipeline, I set
eeg.set_eeg_reference()

before doing
ica = ICA(method="extended-infomax", random_state=1)
ica.fit(raw)

Does this imply that I fit ICA on average referenced raw data? Or do I need to explicitly invoke raw.apply_proj() before fitting ICA?
Similarly, if I only have the three lines described above, when I call raw.get_data(), is the average reference projection applied automatically?
From what I've seen in the code, it seems that the average reference projection is NOT applied automatically except for in raw.plot (where it can be switched on and off).

I'm computing ICA on continous raw EEG data. In my pipeline, I set
eeg.set_eeg_reference()
before doing
ica = ICA(method="extended-infomax", random_state=1)
ica.fit(raw)
Does this imply that I fit ICA on average referenced raw data? Or do I
need to explicitly invoke raw.apply_proj() before fitting ICA?

you need to call apply_proj AFAIK

Similarly, if I only have the three lines described above, when I call
raw.get_data(), is the average reference projection applied automatically?

look at raw.info['projs']
it will tell you if proj is active (ie applied) or not

From what I've seen in the code, it seems that the average reference
projection is NOT applied automatically except for in raw.plot (where it
can be switched on and off).

yes

Thanks, that's good to know. There's a note in the documentation of set_eeg_reference that average reference is actually the default if nothing else is specified, and that apply_proj needs to be called on preloaded data. However, this makes me wonder which functions actually use the average reference projector with preloaded data. None (i.e. do I always have to apply the projector)?  Would ICA use the average reference projection if I didn't preload the data?

I have no strong feeling here. Please make suggestions of improvements
(code and/or documentation)

Ideally, the docs should state when the average reference projector is automatically applied. Since I don't know if this is the case I can't suggest specific changes. If it is the case that the projector is never applied for preloaded data, the last point in the notes section could be reformulated as "Be aware that on preloaded data, SSP projectors are never automatically applied. Use the apply_proj() method to apply them." (replace "not" with "never").

Hm, just found https://github.com/mne-tools/mne-python/issues/3998 and https://github.com/mne-tools/mne-python/issues/4004. It might just be me, but re-referencing to average reference is still not very intuitive. @hoechenberger do you think your concerns have been addressed?

Hi @cbrnr, #4004 has certainly improved things, personally I still would not call it intuitive. Average-referencing behaves different than other referencing schemes. I believe that is the main issue, and all of my colleagues who have tried out MNE had trouble with this. We all come from an EEG-only background (ok, some of us have done fMRI too; but there's no MEG people here), and without exception we all found this confusing. #4004 has greatly clarified the docs, but the term "SSP projector" alone is unknown to all EEG folks I've asked. I don't know how to solve this issue really.
cc @lorrandal

Thanks @hoechenberger, same here! The single most confusing behavior for me is that raw.set_eeg_reference() does not actually re-reference the data to average reference. What's more, this might only be true if the data is preloaded. I actually wanted to compute ICA on average referenced data, and later noticed that the data was never re-referenced.
Since there still seems to be room for improvement, how could we make re-referencing more intuitive especially for non-MEG folks? The simplest solution seems to be making average reference a true re-referencing operation instead of a projector. What are the arguments in favor of keeping it a projector?

x-ref to related mailing list posting: https://mail.nmr.mgh.harvard.edu/pipermail//mne_analysis/2017-June/004094.html

It's weird that bad channels were causing issues with ICA, because ICA.fit ignores/excludes all bad channels, independent of the reference. I'll respond to this message on the list once I'm subscribed 😄 .

without exception we all found this bit confusing.

Okay so we clearly still have a problem that we need to fix.
One thing we could consider is adding set_eeg_reference(..., apply=True):

Deprecation cycle in 0.15 where default is apply=None. This means True for non-avg and False for avg, with a warning either way. MEG people will probably want to do apply=False and EEG people will probably want to do apply=True for a cycle to avoid the warning.
In 0.16 the default is apply=True. I think everything will still work okay, even for MEG people if they don't remember to do apply=False.

@agramfort WDYT?

If you apply a reference, including average reference, is it possible to undo this (i.e. re-reference to a different ref)?

Yes you should be able to re-reference. I think our API allows it even if you've applied an EEG reference as a projector, but if it doesn't, we can probably make it support it.
Also cc @wmvanvliet about the above proposal for apply=True

If you apply a reference, including average reference, is it possible to undo this (i.e. re-reference to a different ref)?

Yes, this certainly works. Or at least it used to -- haven't tested with the latest master :)

@Eric89GXL
I like your proposal with apply=True, seems much more sensible to me!

What would set_eeg_ref(raw, ['EEG1', 'EEG2'], apply=False) actually do?

Yes you should be able to re-reference. I think our API allows it even if you've applied an EEG reference as a projector, but if it doesn't, we can probably make it support it.

@Eric89GXL - if I'm not mistaken I had a situation recently when I first re-referenced to avg and applied proj, then marked bad channels and interpolated them and wanted to re-ref to avg again and mne told me I cannot because the avg ref is already there... But I could have preformed epoching in the meantime which has proj=True by default (which BTW adds to the confusion). I can check it later today.

What would set_eeg_ref(raw, ['EEG1', 'EEG2'], apply=False) actually do?

This would be an error. apply=False would only be allowed in avg mode.

I could have preformed epoching in the meantime which has proj=True by default (which BTW adds to the confusion).

Yes this is related to #2310, which I started addressing a long time ago but it's a pain

But this still doesn't get rid of treating references based on a list of channels and the average reference differently. After all, we could express the average reference with a list of all channels. I'd vote for treating all references the same under the hood (but shorthand notations can of course remain, such as None for average reference - although this is another rather unintuitive choice and should probably be changed to []).

But this still doesn't get rid of treating references based on a list of channels and the average reference differently.

To the user, or under the hood? Hopefully to the user it's pretty transparent / they won't notice. Under the hood it needs to be different, because the inverse modeling code handles (and requires actually) an average reference projection for EEG data.
In other words, I agree it's not as simple as what you propose, but what you propose unfortunately breaks our inverse code.

OK, if existing code relies on the method/function set_eeg_reference to behave exactly like this, we could introduce a new argument value "average" to mean an average reference which gets applied by default. Just like all other references consisting of a list of channels.
If the behavior can be changed, would a separate function that computes/sets an average reference projection be an option?

If the behavior can be changed, would a separate function that computes/sets an average reference projection be an option?

I'd rather just add a kwarg to set_eeg_reference. I guess this would mean an alternative proposal like set_eeg_reference(..., projection=False) where inverse imaging folks would want to use projection=True (which would also imply it wouldn't be applied immediately), and projection=True would only be allowed with None or whatever we change it to if we do change it (e.g., 'average'). I'm okay with that, too, I suppose.

A projection kwarg makes more sense to me - good idea! This way, all references would behave the same to the user (i.e. they get applied by default). Under the hood, 'average' (or whatever it will be called) in combination with project=False could be implemented by creating a reference with a list of all channels (excluding bads). When project=True, the current implementation would be used. Just let's make sure that all re-referencing operations are reversible (i.e. I want to be able to switch to different references in my pipeline based on the same raw object), but as many of you have already stated this is already possible.

Let's just make sure that all re-referencing operations are reversible

Yes agreed. Although technically this is (hopefully?) an orthogonal issue to the proposed API changes anyway, so I'm happy to punt on that for now :)
So the proposal for set_eeg_reference seems to have converged to:

Add projection=False default (via deprecation+warning, 0.15 None->True). By 0.16 this makes things easier for EEG people, but harder for source localization / inverse imaging people. It unifies how set_eeg_reference works. projection=True only works in avg mode.

Change ref_channels=None to ref_channels='average' to be explicit.

@wmvanvliet @hoechenberger @mmagnuski @agramfort WDYT?

@Eric89GXL This actually sounds very good. The API would become more explicit and more intuitive at the same time. I really like that ;)
@lorrandal What do you think?

can you write down explicitly the new API code for

set avg ref but don't apply a proj (just add it to info['projs'])
set avg ref and apply it (is it always done with a proj?)
set custom reference
undo any of the referencing above

thx

set avg ref but don't apply a proj (just add it to info['projs'])

set_eeg_reference(inst, projection=True) (docs would specify projection=True is special because it does not immediately apply it, and uses projection math during projection application stages instead)

set avg ref and apply it (is it always done with a proj?)

For non-projection method: set_eeg_reference(inst)
For projection method: set_eeg_reference(inst, projection=true).apply_proj()

set custom reference

set_eeg_reference(inst, ref_list)

undo any of the referencing above

This is unchanged, same as in master. You can call set_eeg_reference with whatever arguments you want. We don't currently provide a way to un-reference EEG-referenced data, even though in the case of an unapplied projection vector it is possible (well get it back to the nose ref at least), using this function. But I guess you can do inst.del_proj(...) with the EEG projection vector selected.

ok
what does set_eeg_reference(inst) does? can I still use inst for inverse
modeling?

@Eric89GXL I like what you're proposing, but wanted to ask a related question related to avg proj and inverse modeling (@agramfort too):
I understand that it's better to have avg ref for inverse modelling but why does mne require avg ref to be a projection? And a related question: if I have some data with average ref already applied would mne's inverse accept if I added a fake avg ref proj (fake because the average would be already zero) or would I have to re-ref to some other channel and add avg ref proj?

what does set_eeg_reference(inst) does? can I still use inst for inverse modeling?

Nope, you need set_eeg_reference(inst, projection=True).
This is the unfortunate tradeoff currently for making things consistent with all other set_eeg_reference use cases and making the package more EEG- (and ECoG- and ...) friendly. FWIW to the extent that it makes it less M/EEG / NeuroMag-friendly, it is also making us M/EEG people be more explicit, which I don't mind. The frequency with which this issue of projections comes up is more troubling to me.

why does mne require avg ref to be a projection

From the practical side, all of the inverse code accounts for things using projections (and compensation matrices). Actually come to think of it we could hack together EEG references as a form of compensation matrices I think -- but this would be even uglier than what we have now.
From the theoretical side, I seem to remember someone saying avg ref leads to less error but I can't remember offhand. @agramfort?
If it is possible to make the inverse modeling code handle non-average projections, this would also take care of @agramfort's point about set_eeg_reference(inst) not working, as we could make the code handle this case properly... but it would be a lot of work in practice (we would need to make very sure we did it correctly).

if I have some data with average ref already applied would mne's inverse accept if I added a fake avg ref proj (fake because the average would be already zero)

Well this wouldn't really be "fake" per se -- it would be a real projection operator you'd be adding. Projection operations can be repeated over and over with no effect (beyond small amplification of numerical noise). So although it wouldn't really change the data, it would provide proper accounting for what actually happened to the data during inversion.

Coming back to the question of undoing referencing, EEG data are always measured with respect to some reference. However, if we load a data set this information might not be present in the file, so we should have a way to specify the reference manually. For example, BioSemi records all channels with respect to the CMS electrode (and it uses an additional DRL electrode to improve the CMRR). Other systems might record channels with a different (more conventional) reference such as Fz. Therefore, we should be able to let MNE know which reference is associated with the data. By default, this value could be "unknown" or something. I think currently set_eeg_reference([]) means "don't change anything", which is what we want, but we might want to add some value to specify what this current reference is.

@cbrnr
I just took a look at our latest experimental analysis code -- "experimental" meaning I didn't have time to thoroughly check if everything is actually working as intended. But basically, our situation is the following:
We use an ActiChamp system, usually with Oz set as reference during recording. When we import the data into MNE, the Oz electrode is missing. We would filter and epoch the data, run ICA, and only then try to recover the channel and reference to average:
# Recover Oz electrode, which was used as a reference during recording.
mne.add_reference_channels(epochs, 'Oz', copy=False)
epochs.set_montage(montage=montage)
epochs.info['custom_ref_applied'] = False

# Average reference
epochs.set_eeg_reference(ref_channels=None)
epochs.apply_proj()

Thanks @hoechenberger - adding a reference channel means adding a zero channel called Oz in your case, right? I'm not sure if you want to add a zero channel before calculating the average reference though...

Thanks @hoechenberger - adding a reference channel means adding a zero channel called Oz in your case, right?

Yes.

I'm not sure if you want to add a zero channel before calculating the average reference though...

The reference is always "zero" by definition; applying the avg ref essentially "recovers" that channel's information, if you will. At least that's my understanding :)

Hm, is this procedure compatible with what is described here?

Hm, is this procedure compatible with what is described here?

I think it's essentially identical to what is described in the section starting with Re-referencing data can be more complicated.

😄  yes, this is really true! So essentially you have to decide if you want to put the current reference electrode back in the data or not - in your case, you want Oz to be part of the data, and in my case (Biosemi), I don't want the current reference(s) CMS (and DRL) in the data, so I'd not add any reference channels. Correct?
What does this mean for the proposed API change? Are we still good with introducing a projection argument in set_eeg_reference?

yes, this is really true!

... but also really hard to understand at first, because the EEGLAB docs are ... errm... kind of confusing in this regard.
Will respond to your other points later today.

from a user perspective, if I now want to do inverse modeling and I did
set_eeg_reference(inst, projection=False) I will get an error telling me to
set projection=True? or can we automatically add the eeg avg ref in inverse
code if custom_ref is False? that would make it easier.
and yes avg ref is the standard way for inverse modeling. The reason it's
done with projection is that you need to apply the proj to forward solution
and noise cov in the inverse code.

Agreed. Ideally this should be handled transparently in the inverse code if it always needs to project to average ref anyway. No need to "pollute" the user-facing method to set a reference IMO (that's also how it is done in EEGLAB with DIPFIT BTW).
Where is the information on the currently used (applied) reference (including average reference) stored?

avg proj is on if you have in info['projs'] a Projection instance called
"EEG average reference" marked as "active"

And other refs? Are these stored in raw.info['custom_ref_applied']? Should there be one field containing the currently set reference instead? I think it would be nice if this was not spread across at least two different fields.

We don't have to break any existing code. When doing set_eeg_reference(inst) or set_eeg_reference(inst, projection=False), we need to do the right thing and keep info.custom_ref_applied=False.
The "custom ref" represents something other then an average ref. When doing inverse computations, _needs_eeg_average_ref_proj first checks the custom_ref_applied flag and then proceeds to check for the presence of an average ref proj. Since one is not present, an average ref projection will be added, which is exactly what we want.

@cbrnr @hoechenberger

in your case, you want Oz to be part of the data

This was exactly our situation, since we wanted to compare this dataset with another that was acquired keeping all 64 electrodes -- Oz included.

identical to what is described in the section starting with Re-referencing data can be more complicated.

Should be this, in my understanding information regarding Oz is not lost but simply spreaded across all other electrodes. So adding Oz with zero values and re-referencing would make us able to ricover that data.

@Eric89GXL @agramfort
Thanks for clarifying!

seems like a plan? @cbrnr do you give it a try?

I will need to wrap my head around the existing API first, and I can't do it immediately because I'm a bit swamped with other stuff, but yes, I will try to push a PR to address this (if there are not other volunteers who want to do it right now :-)).

Coming back to the question of undoing referencing, EEG data are always measured with respect to some reference. However, if we load a data set this information might not be present in the file, so we should have a way to specify the reference manually

FYI this currently lives in info['chs'][n]['loc'][3:6]. For Neuromag EEG it's on the nose.

We don't have to break any existing code.

It's good that makes the projection=False change will make things easier for MEG people. The disadvantage is that we've lost any record-keeping that the data are no longer referenced to the nose. Perhaps we need to do something with info['chs'][n]['loc'][3:6] to fix this. Even setting it to zero might be okay. I'd need to check whether it messes with the forward code -- I don't think it should, because the ref is subtracted during forward computation, but then effectively added back in (cancelling this out) during avg ref.

yes, I will try to push a PR to address this

That would be great. I might have time to try at some point, too. We'll see who has time first :)

Related: #4352.

Quick reminder, is the currently applied reference stored somewhere? raw.info["custom_ref_applied"] contains only a boolean value but not the actual channels. For example, if I set raw.set_eeg_reference(["Cz"]), where is this information stored?

For example, if I set raw.set_eeg_reference(["Cz"]), where is this information stored?
Nowhere.

So why not add a field to the info structure?

we'll have to see how to serialize this info when saving data as the writing of the info is quite rigid.
@wmvanvliet @jona-sassenhagen presently there is no way to recover what channel was used for referencing?

Another thing came to my mind. Instead of changing raw.set_eeg_reference as discussed above, why don't we create a new method raw.create_projection (or something like that) to create an average reference projection? This way, set_eeg_reference would always apply any re-referencing and there's no need for a new projection argument. On the other hand, create_projection would always create a projection for average reference which can be used in the inverse modeling. What do you think?

create_projection is not explicit
there are different mne functions that output projections
how do you educate a user who wants to use average ref + then inverse
modelling?
when thinking about API, I step into the shoes of someone who needs to
make/write
a tutorial. That's when you write an example or the doc of your software
that you realise
that what you propose is not clear or too complicated.

there are different mne functions that output projections

Why don't we use an existing function to create an average projection then?

how do you educate a user who wants to use average ref + then inverse
modelling?

It's done automatically in the modeling. How do you tell EEG users how to set average reference? Same problem here.

when thinking about API, I step into the shoes of someone who needs to make/write
a tutorial. That's when you write an example or the doc of your software
that you realise that what you propose is not clear or too complicated.

Right now re-referencing is too complicated because projections are involved. If you think the proposed projection argument is less confusing then let's go for that instead. If the defaults are set accordingly (so projection=False), then everything is fine for EEG people, but you still need to educate inverse modeling people that they need to set projection=True.
Anyway, this was just an idea, I'm happy about any improvement to re-referencing.

I don't have time to structure the ideas here sorry.
We need someone to take the lead on this by:

drafting the planned API (almost done AFAIK)
write the code with proper deprecation if needed and catching potential
user errors with clear warnings
update the documentation

Why don't we use an existing function to create an average projection then?

we do. It's called mne.proj.eeg_average_ref_proj

OK, so why the need to overload the set_eeg_reference function with this projection then?

because we wanted to write "use the set_eeg_reference function to set the desired EEG reference. So, remind me again what the big problem is with the function as it is now?
Is it that an average reference is not applied directly but instead is added as a projection? Having it as a projection actually makes a lot of sense, but we need to have better documentation for it.
Why does it make sense? Well, to do an average reference properly, it is vital that bad channels are properly marked, otherwise all your channels are corrupted. Whenever you use an average reference, it is very important to check the result. A good way to do this is to put the projections in "delayed" mode, so when plotting the evoked potential, you can turn the average reference projection on and off, see the effect of the reference, and verify it behaves properly.
An upcoming tutorial on referencing should do the above, instead of immediately applying the average reference projection without checking.

because we wanted to write "use the set_eeg_reference function to set the desired EEG reference". So, remind me again what the big problem is with the function as it is now?

Is it that an average reference is not applied directly but instead is added as a projection?

Yes.

Having it as a projection actually makes a lot of sense, but we need to have better documentation for it.

Why does it make sense? [...]

True, but a projection is not necessary to do this. If you immediately apply the average reference, but you add the previous reference channels to the data before you apply it, then you can also undo the average referencing. Bad channels can also be excluded.
I think the main problem with the current behavior is that most EEG people have no idea what an SSP projection is, and - this is the real problem - that the average reference projection is not automatically applied. When I say set_eeg_reference I expect that I actually set the reference. I agree that adding a projection=False argument to set_eeg_reference more or less solves this problem once the default is False.

@cbrnr I also don't get what is the remaining problem here: default of projection=False is what Eric suggested (but this will need a deprecation cycle).

Yes, this was just an alternative suggestion that would be cleaner IMO (having one function do projections and the other function do re-referencing).

I prefer having both in one function - this differentiates it from other kinds of projections done in mne.

True, but a projection is not necessary to do this. If you immediately apply the average reference, but you add the previous reference channels to the data before you apply it, then you can also undo the average referencing. Bad channels can also be excluded.

That is all very true, but projections is how this is currently implemented and it works quite elegantly.

I think the main problem with the current behavior is that most EEG people have no idea what an SSP projection is, and - this is the real problem - that the average reference projection is not automatically applied.

I agree. But I'm not sure the best solution here is to automatically apply the average reference, because otherwise users get confused. It would solve the problem of users being confused, but it leaves them with possibly corrupted data.

I agree. But I'm not sure the best solution here is to automatically apply the average reference, because otherwise users get confused. It would solve the problem of users being confused, but it leaves them with possibly corrupted data.

But I though that's what we agreed upon? I think it clears up confusion. How could it leave them with corrupted data? If they want to to inverse modeling and they need an average reference projector, but they applied the projection instead, they will get an error saying that the projector is not found.


New package: MicrosoftCorporation.RemoteToolsforVisualStudio2022 version 17.0.34916.146

Checklist for Pull Requests

[ ] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@microsoft-github-policy-service agree company="Microsoft"

Messed up on the publisher name, it should be "Microsoft" not "Microsoft Corporation". I'll just re-open another one.