feat: bigtest

Motivation
Implementing BigTest to help us confirm that the links between pages work as expected. Also a natural place to test and serve as an example.

@jbolda that's a strange error. It looks like the app isn't running on <IP_ADDRESS>:8888?

@jbolda that's a strange error. It looks like the app isn't running on <IP_ADDRESS>:8888?

Yea, I think I might need to separately start up the gatsby server? I wasn't having BigTest do that because it takes forever to start up and it was faster to leave it running.

Well, I think I have taken this to the point of working as best as we can right now. It runs locally, but seems to fail in CI. I am going to disable the CI run until we get this issue resolved. At least we can move forward merging this in and come back around and update when it is fixed.

Wonderful! how did we end up managing the screen size? it seems that the tests are against the desktop version or is it reaching into the collapsed nav?

Wonderful! how did we end up managing the screen size? it seems that the tests are against the desktop version or is it reaching into the collapsed nav?

We can't really manage it right now. Locally you can run it in chrome and manually adjust the size. In CI, I have it run in chrome.headless which appears to use a window size small enough that it enables the mobile menu. On the test, you can see that I click on the menu button after navigating to the page. The unfortunate effect of this is that if we run it locally with a window big enough the test will likely fail (unless we comment out the menu button click).


Resource Manager: update API from v1beta1 to v3

Python: 3.5.3
Operating System: Debian GNU
Pip Freeze:
google-api-core==1.3.0
google-api-python-client==1.7.4
google-auth==1.5.1
google-auth-httplib2==0.0.3
google-cloud-container==0.1.1
google-cloud-core==0.28.1
google-cloud-resource-manager==0.28.1
google-cloud-storage==1.11.0
google-resumable-media==0.3.1
googleapis-common-protos==1.5.3
Stacktrace:
Traceback (most recent call last):
File "/usr/local/google/home/epad/.local/share/virtualenvs/django-gke-0KxaOTFM/bin/django_gke", line 11, in
load_entry_point('django-gke', 'console_scripts', 'django_gke')()
File "/usr/local/google/home/epad/Projects/django-gke2/django-gke/django_gke/django_gke.py", line 253, in main
args.func(args.debug)
File "/usr/local/google/home/epad/Projects/django-gke2/django-gke/django_gke/django_gke.py", line 173, in new
project_id = goog_client.create_project_workflow()
File "/usr/local/google/home/epad/Projects/django-gke2/django-gke/django_gke/cli/google_client.py", line 111, in create_project_workflow
project_id, project_name)
File "/usr/local/google/home/epad/Projects/django-gke2/django-gke/django_gke/cloudlib/project.py", line 40, in create_and_set_existing_project
self._create_project(project)
File "/usr/local/google/home/epad/.local/share/virtualenvs/django-gke-0KxaOTFM/lib/python3.5/site-packages/backoff/_sync.py", line 99, in retry
ret = target(*args, **kwargs)
File "/usr/local/google/home/epad/Projects/django-gke2/django-gke/django_gke/cloudlib/project.py", line 55, in _create_project
project.create()
File "/usr/local/google/home/epad/.local/share/virtualenvs/django-gke-0KxaOTFM/lib/python3.5/site-packages/google/cloud/resource_manager/project.py", line 138, in create
data=data)
File "/usr/local/google/home/epad/.local/share/virtualenvs/django-gke-0KxaOTFM/lib/python3.5/site-packages/google/cloud/_http.py", line 293, in api_request
raise exceptions.from_http_response(response)
google.api_core.exceptions.Forbidden: 403 POST https://cloudresourcemanager.googleapis.com/v1beta1/projects: The caller does not have permission
Steps to reproduce: Using Gcloud auth login with a non corp account and the attempting to project.create() will throw this error.
We are able to get this to work with corp accounts but will be doing external users soon and found that this fails.
I believe changing the version here to v1 would fix this.

The client for v3 will be merged today however we're going to wait until next week to publish the release candidate. The release candidate version will be 1.0.0-rc1 and once it is published it should only be available to users who install the pre-release version using pip install --pre python-resource-manager


Quic Support

Quic Retina Support
Adds support for subscribing to Quic V1 and V2 packets into Retina. Allows the ability to subscribe to core aspects of Quic headers such as header type (short/long) and packet type (initial, 0-RTT, ...)
New Features

Adds Quic to streams module
Includes a sample quic application
Includes a sample pcap of quic traffic in traces
Includes the corresponding quic.toml for sample quic application in /configs/quic.toml

Testing Process:

Tested across various pcaps of real Quic traffic
Validated with custom test application to verify parsed quic packets match wireshark on the same pcap
Prior to merging, should ensure a successful run on Stanford tap

Assumptions and Design Decisions:
Note: These are also included at the top of the /core/src/protocols/stream/quic/mod.rs file as well. However, further logic/rational provided here:

Assumption: that the Quic version is one as listed in the QuicVersion Enum in the /core/src/protocols/stream/quic/parser.rs  file

Currently only support Quic V1 and V2, however adding new versions should only require adding to version enum as the parser relies on mostly invariant parts of quic packets. QUIC-INVARIANTS

Design Decision: To resolve what the connection id for a short header is, we only match with connection ids that have been resolved from long headers.

This decision was made because there is no indicator what the length in bytes of a short header's connection id is and thus the only way to resolve it is to search within the range of possible lengths and try to match to existing known connection ids.

Assumption: that the destination connection ids of a short header is a maximum of 20 bytes.

Quic V1 and V2 both use a maximum 20 bytes for the connection ids however, this is not an invariant feature and the invariant length would be a total of 255 bytes.
Adding support for 255 byte length would add unnecessary slowdown when searching short header connection ids because it isn't used in practice yet.

Assumption: that the packet will not try to grease the fixed bit.

Variants of Quic (QUIC-GREASE) have designed ways to grease the fixed bit, however, we make the assumption this does not occur.

Design Decision: The payload bytes count is a lazy counter. This means it does not try to exclude tokens used for tls or other parts that may not be directly considered parts of the payload. This results in a computed payload bytes count different from Wireshark.

If this makes the implementation of the payload bytes field not helpful then it can certainly be removed.

With these changes, I was able to run log_conn filtered on quic with hardware filtering support at at least 80 Gbps throughput on our network for 2 minutes with no loss.

Here are the latest in throughput results as of 26210e3:
configs/online.toml was modified to run for 120 seconds with hardware filtering disabled, but otherwise kept the same.
Using a modified spin to subscribe to Connection records filtered on quic:
#[filter("quic")]
fn main() -> Result<()> {
    env_logger::init();
    let args = Args::parse();
    let config = load_config(&args.config);

    let cycles = args.spin;
    let callback = |_: Connection| {
        spin(cycles);
    };
    let mut runtime = Runtime::new(config, filter, callback)?;
    runtime.run();
    Ok(())
}

sudo env LD_LIBRARY_PATH=$LD_LIBRARY_PATH RUST_LOG=error ./target/release/spin -c configs/online.toml --spin 100000

online.toml modified to be 120s duration and hardware filtering turned off.

AVERAGE Ingress:<PHONE_NUMBER>2.520 bps / 12205610.113 pps
AVERAGE Good:<PHONE_NUMBER>2.299 bps / 12205572.156 pps
AVERAGE Process:<PHONE_NUMBER>2.299 bps / 12205572.156 pps
DROPPED: 0 pkts (0%)

Main done. Ran for<PHONE_NUMBER>59s

Using log_quic:
AVERAGE Ingress:<PHONE_NUMBER>7.130 bps / 11949421.481 pps
AVERAGE Good:<PHONE_NUMBER>6.729 bps / 11949419.159 pps
AVERAGE Process:<PHONE_NUMBER>6.729 bps / 11949419.159 pps
DROPPED: 0 pkts (0%)

Main done. Ran for<PHONE_NUMBER>38s
Done. Logged 39175955 Quic stream to "quic.jsonl"

@thegwan and @thearossman I think all requested changes should be included. Please let me know if there's any other action items to get this merged.

LGTM! (Assuming it still runs with good performance and outputs sensible parsed results on the live traffic.)

LGTM! Please rebase on the main branch, I just submitted a fix for the CI failure.

I think I just rebased properly and it should be good to merge. As always, let me know if there are any issues.

Can you run cargo clippy with at least Rust 1.75.0 and fix the warnings that show up? These should all be relatively minor lints.

I just merged changes fixing my clippy warnings. I am still seeing quite a few clippy issues from files unrelated to my changes, so I'm not sure if that's an issue?


Removed extra folder

Removed extra folder created in directory and moved it to proper place

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

@Asjas


Support having workspaces in package.json

Currently construct writes the workspace information to lerna.json that works but doesn't allow e.g. typedoc creation from whole repo at once (see https://typedoc.org/guides/monorepo/ and TypeStrong/typedoc#2071).
If using escape hatches and adding workspace information to package JSON, output throws warning:
lerna WARN EWORKSPACES Workspaces exist in the root package.json, but Lerna is not configured to use them.
lerna WARN EWORKSPACES To fix this and have Lerna use workspaces to resolve packages, set `useWorkspaces: true` in lerna.json.

Currently there's no direct way (except escape hatches) to add that info to lerna.json, but it probably could be flag so that packages are not put to config but just useWorkspaces: true.

I think that is a good idea


Generated File doesnt have images that were present on the webpage.

The 2nd one is webpage where the options of the question are images.

It would be a CORS issue. Maybe this can help you.

This unfortunately not works. I'm not sure why but the image itself is hosted on S3 with appropriate permissions. This is the error I got:
from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Any idea how to fix this?

I solved this issue with converting my external images to base64 in the page


download youtube is failed

F:>annie https://www.youtube.com/watch?v=vCyD1vzKDkk Downloading https://www.youtube.com/watch?v=vCyD1vzKDkk error: invalid character ';' after top-level value
when I download the video, it always failed. How to solve it?
the URL is https://www.youtube.com/watch?v=vCyD1vzKDkk

Me too
Downloading https://www.youtube.com/watch?v=yMxPBPcdLUI error:
invalid character ';' after top-level value

youtube profile info has been changed. Need check from more detail refer to https://github.com/rylio/ytdl/pull/92
https://github.com/kkdai/youtube/issues/26

Try 0.10.0


Upstream pugl branch – Backward incompatible changes

Here are a few backward incompatible changes I've noticed when building my plugin with the upstream pugl branch:

[x] NanoWidget has been replaced with NanoSubWidget
[x]  getParentWindow().addIdleCallback has been replaced with getApp().addIdleCallback
[x] The Widget::MouseEvent struct has been moved to Events::MouseEvent; I had to remove the Widget:: specifier in some parts of my code
[ ] The pos field in MouseEvent is now a Point<double> instead of a Point<int>, and the button field is now a uint instead of a int
[ ] Window::onClose now has a return type of bool (instead of void)
[x] Upstream pugl now includes glu by default: https://github.com/DISTRHO/pugl/blob/b0a018a006c5d7d7796074b86c1b69f8671d2d83/include/pugl/gl.h#L38-L47 It seems like we can disable this dependency by setting -DPUGL_NO_INCLUDE_GLU_H

As of right now, only 2 of those items remain.

Need some feedback on this, the mouseEvent stuff should now be usable as-is with both old and new DPF.
If you could confirm, would be great!
The onClose change cannot be escaped. It was not being called on plugins anyway, so it is not important.

Here is a reduced test case which would compile on old DPF, but does not compile on new DPF:
void doSomethingWithPos(const Point<int> &pos) {
    // do interesting stuff with pos here
}

bool UISimpleGain::onMouse(const MouseEvent &ev) {
    doSomethingWithPos(ev.pos);
    return false;
}

UISimpleGain.cpp: In member function ‘virtual bool DISTRHO::UISimpleGain::onMouse(const DGL::Widget::MouseEvent&)’:
UISimpleGain.cpp:136:27: error: invalid initialization of reference of type ‘const DGL::Point<int>&’ from expression of type ‘const DGL::Point<double>’
  136 |     doSomethingWithPos(ev.pos);
      |                        ~~~^~~
UISimpleGain.cpp:131:43: note: in passing argument 1 of ‘void DISTRHO::doSomethingWithPos(const DGL::Point<int>&)’
  131 | void doSomethingWithPos(const Point<int> &pos) {
      |                         ~~~~~~~~~~~~~~~~~~^~~

As for the button field, I think it would simply generate some warnings in existing code in some circumstances:
bool UISimpleGain::onMouse(const MouseEvent &ev) {
    int someButton = 1;

    if (someButton == ev.button) {
        return true;
    }

    return false;
}

UISimpleGain.cpp: In member function ‘virtual bool DISTRHO::UISimpleGain::onMouse(const DGL::Widget::MouseEvent&)’:
UISimpleGain.cpp:134:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘const uint’ {aka ‘const unsigned int’} [-Wsign-compare]
  134 |     if (someButton == ev.button) {

Right, for the first case an easy enough solution is to provide a point-double to point-int automatic conversion.
2nd one is pretty minimal and won't be changed, old dpf was wrong.

ok this is as far as we go regarding backwards compatibility.
the old master branch remains untouched and will be kept that way.
move to the new default main branch to get new stuff. develop will keep being while new stuff is added for testing, and then things are merged into main.


Don't use this, you will get permabanned.

Blizzard upgraded warden within the last month, it can detect pretty much anything including this.
You will get permed.

Read the disclaimer


Pydantic 2.9->2.10 changes schema

Via test failures, I noticed that the latest, 2.10+ versions of Pydantic change the metamodel schema being generated as e.g.,
+++ b/mira/metamodel/schema.json
@@ -348,9 +348,6 @@
         "type": {
           "const": "ControlledConversion",
           "default": "ControlledConversion",
-          "enum": [
-            "ControlledConversion"
-          ],
           "title": "Type",
           "type": "string"
         },

This appears to be related to this change https://github.com/pydantic/pydantic/pull/10692

Fixed in #398


How to understand which ability killed?

Hi,
There is no chance to get ability handle which killed someone as far as I can understand? No information in life state changes or combatlog. Dying or Dead life state doesn't matter. I tried to log begin and end of ability casting but delay in hero death announcing through messages could be equal up to 0.3 second. So I have such picture:
[1.0 s] hook casted
[1.4 s] hook casting done
[1.7 s] hero killed
This is example when Pudge killing someone with hook. My idea was to catch hero death between hook begin/end steps. It also impossible to get hook modifier on victim when Pudge killing him with that hook: damage applied first and no hook modifier applied.
Maybe you have ideas?
Thank you.

Do you have a sample of your code and how you're getting this data? If you listen for CombatLog entries using @CombatLogEntry, then you can look for DOTA_COMBATLOG_DEATH specifically or DOTA_COMBATLOG_ABILITY, and then the CombatLogEntry object will contain a method getInflictorName() which returns the name of whatever killed the hero, in this case it would be Pudge's Hook. The name will be something like pudge_hook or modifier_pudge_hook. You can probably use the ComatLog along with your current code to tie the two together and get accurate event times.
So something like this:
@OnCombatLogEntry
public void onCombatLog(Context ctx, CombatLogEntry cle) throws UnsupportedEncodingException {
    if (cle.getType().equals(DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DEATH)) {
        Entity proxy = ctx.getProcessor(Entities.class).getByDtName("CDOTAGamerulesProxy");
        float time   = (Float)proxy.getProperty("m_pGameRules.m_fGameTime") - timeBeforeGame;
        String abilityName  = cle.getInflictorName();
        String attackerName = cle.getAttackerName();
        String targetName   = cle.getTargetName();

        System.out.println(attackerName + " killed " + targetName + " with " + abilityName + " at : " + time);
    }
}

timeBeforeGame is the time right up until the first Hero spawns and the game time starts. This is needed because the time given by CDOTAGamerulesProxy's m_fGameTime includes the ban/pick phase, so it's not very useful for accurately linking events during the game. The best way I know to get the timeBeforeGame is to listen for a PropertyChange in CDOTAGamerulesProxy and grabbing the property m_pGameRules.m_flGameStartTime when it's no longer 0. Then simply subtract the time from the current Context by this, as I did in the example above, and you'll get the exact in-game time.
Also, the CombatLog contains events such as DOTA_COMBATLOG_MODIFIER_ADD and DOTA_COMBATLOG_MODIFIER_REMOVE if you want to get Pudge's hook modifier as well. The modifier name will also come from the getInflictorName() method. Hope this helps!

I will check this out! Thank you!


Spawning many tabnine processes

I just have one file open and sometimes I open others but I delete that buffers and then there is one left but tabnine processes seems not killed and causes slowdowns in my entire computer.

(There are more processes not shown in the screenshot)
btw: when I exit neovim, all process get killed. Also I get this everytime I want to enter the hub:

Details
os: Windows
nvim version: NVIM v0.9.0-dev-55-gedc8a1f04
nvim gui: Neovide 0.10.1

This plugin opens up a new tabnine process only in the following cases:

when starting a new instance of neovim
when there was an error communicating with the running tabnine process
Tabnine itself is prone to open new instances, especially when updating to a newer version (tabnine does that itself).

try running with the following patch, and lets see if the plugin is the culprit:
diff --git a/lua/cmp_tabnine/source.lua b/lua/cmp_tabnine/source.lua
index 329b212..2d8cb97 100644
--- a/lua/cmp_tabnine/source.lua
+++ b/lua/cmp_tabnine/source.lua
@@ -270,6 +270,7 @@ function Source.on_exit(self, job, code)
   end
   self.tabnine_version = version
   self.pending = {}
+  dump('starting a new tabnine process. reason:', code)
   self.job = fn.jobstart({ bin, '--client=cmp.vim' }, {
     on_stderr = nil,
     on_exit = function (j, c, _) self:on_exit(j, c) end,

I would also try to disable the cloud option and see if it helps.

Thanks, I'll try but I can't disable cloud because of the above capture, I get it everytime I want to access the hub

I can't reproduce now the multiple instances but I found that at startup, 2 are spawned:

I guess that only 1 should be spawned.
Also I'm getting delay when typing, but seems related to tabnine maybe? My pc isn't too good, thats I why use cloud but it's weird anyway

Something like a keystroke debounce may help?

Something like a keystroke debounce may help?

This can be set in cmp.

Edit: Ok, I noticed that I should use require("cmp_tabnine.config").setup" instead of require("cmp_tabnine").setup, now one instance is spawned

yes, the second one is internal to cmp. you should use the first option

Seems more related to tabnine than this plugin, but I still can't access the hub

@lopi-py try running :CmpTabnineHubUrl and clicking the link.
Running CmpTabnineHub prefixes with Tabnine's actual website, which doesn't work
(Assuming that there was a GET param which used to handle redirect and has since been disabled on Tabnine's end, but just a random guess)
What I see when I run :CmpTabnineHub:

What I see when I run :CmpTabnineHubUrl (and click the link that pops up via vim-notify):

@alechp Ah thanks! I'm able to enter the hub, closing this since its related to tabnine

@lopi-py Just checked and default link generated by :CmpTabnineHub breaks when using Brave. Tested in Firefox and it works fine without the URL workaround
Tabnine docs: https://support.tabnine.com/hc/en-us/articles/9115214579601-Tabnine-hub-is-showing-Lost-conenction-Please-reopen-the-Tabnine-Hub-
What I see in Brave:

What I see in Firefox:

@alechp Oh, I was using brave too, I just tried with opera and it works, thanks for the info 😄


1.3.0 causes build to fail with - Cannot read property 'range' of null

Bug Report or Feature Request (mark with an x)
- [x ] bug report -> please search issues before submitting

Versions.

ng --version: 1.3.0
npm --version: 5.3.0
node --version: 8.1.4
Repro steps.

I have lazy loaded routes and feature modules
ng build --aot --prod
The log given by the failure.

ERROR in chunk 7
[id].[chunkhash:20].chunk.js
Cannot read property 'range' of null
TypeError: Cannot read property 'range' of null
    at enterNode (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:118:14)
    at getPathInAst (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:97:24)
    at getPathInAst (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:106:24)
    at enterNode (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:121:18)
    at getPathInAst (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:110:25)
    at enterNode (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:121:18)
    at getPathInAst (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:97:24)
    at getPathInAst (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:106:24)
    at enterNode (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:121:18)
    at getPathInAst (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:97:24)
    at getPathInAst (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:106:24)
    at enterNode (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:121:18)
    at getPathInAst (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:110:25)
    at enterNode (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:121:18)
    at getPathInAst (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:110:25)
    at enterNode (C:\Users\fabriece\Documents\GitHub\hapi\orange\node_modules\webpack\lib\optimize\ConcatenatedModule.js:121:18)

Desired functionality.

Aot build without errors
Mention any other details that might be useful.

I am also experiencing this issue, as compared to a build --prod in 1.2.7

I have the same problem.  I tried npm install webpack --save-dev and got another error.
An error occured during the build:
Error: No module factory available for dependency type: ContextElementDependency
    at Compilation.addModuleDependencies (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:210:21)
    at Compilation.processModuleDependencies (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:199:8)
    at _this.buildModule.err (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:340:13)
    at building.forEach.cb (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:144:27)
    at Array.forEach (native)
    at callback (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:144:13)
    at module.build (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:171:11)
    at resolveDependencies (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/ContextModule.js:160:4)
    at ContextModule.result.resolveDependencies (/home/gabu/Projects/tester/node_modules/@ngtools/webpack/src/plugin.js:261:25)
    at ContextModule.build (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/ContextModule.js:105:8)
    at Compilation.buildModule (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:146:10)
    at factoryCallback (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:329:11)
    at /home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/ContextModuleFactory.js:96:13
    at /home/gabu/Projects/tester/node_modules/tapable/lib/Tapable.js:268:11
    at done.then (/home/gabu/Projects/tester/node_modules/@ngtools/webpack/src/plugin.js:263:28)
No module factory available for dependency type: ContextElementDependency
Error: No module factory available for dependency type: ContextElementDependency
    at Compilation.addModuleDependencies (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:210:21)
    at Compilation.processModuleDependencies (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:199:8)
    at _this.buildModule.err (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:340:13)
    at building.forEach.cb (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:144:27)
    at Array.forEach (native)
    at callback (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:144:13)
    at module.build (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:171:11)
    at resolveDependencies (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/ContextModule.js:160:4)
    at ContextModule.result.resolveDependencies (/home/gabu/Projects/tester/node_modules/@ngtools/webpack/src/plugin.js:261:25)
    at ContextModule.build (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/ContextModule.js:105:8)
    at Compilation.buildModule (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:146:10)
    at factoryCallback (/home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/Compilation.js:329:11)
    at /home/gabu/Projects/tester/node_modules/@angular/cli/node_modules/webpack/lib/ContextModuleFactory.js:96:13
    at /home/gabu/Projects/tester/node_modules/tapable/lib/Tapable.js:268:11
    at done.then (/home/gabu/Projects/tester/node_modules/@ngtools/webpack/src/plugin.js:263:28)

I am getting this issue when trying to upgrade from version 1.2.0 to 1.3.0.
I have tried deleting the node modules, clearing the node cache and trying again.
The updated version of webpack is 3.4.1

Hi, it's failing for us with the same errors.
We're working around it by switching off aot compilation - "ng build --prod --aot false".  Hoping a CLI fix could resolve though as it's not something we'd want to do long-term

It is weird that some people are getting this error and some are not.
We are getting this issue and our work around involved downgrading:
"@ngtools/webpack": "1.1.1"
 "@angular/cli": "1.2.7"
Hopefully we have a some one from the CLI team looking into it soon.

We are also working around this issue by locking the CLI version: "@angular/cli": "1.2.7"
Hopefully some light is shed on this at some point, as the error messages coming from webpack are impossible to decipher

I am not using aot compilation (I use ng build --prod --aot false) and I get this error. I managed to get it working on my development machine, but I have not been able to get it working on the build machine, despite it having the same settings, doing 'npm cache clean' and deleting all node modules first.
I tried changing to the webpack version explicitly stated as above (1.1.1) and this wanted<EMAIL_ADDRESS>but I am on version 4.2.5

Same here. In my case it is related to DI of FormBuilder:
constructor(private _fb: FormBuilder) { } = FAIL
constructor() { } = COMPILE SUCCESS

This seems to be partly some sort of caching issue. I have it working on my development server. On the build server, I've reinstalled the global version of the @angular/cli to be 1.2.8 (same as on development), reinstalled all project node packages, and released. npm cache clear has been used. I have made sure both environments are using the same version of npm.
However, I get this error on the build server, but not on the development server.
I have seen the issue come up on development and both are now reverted to be using 1.2.8 of the cli, globally and within the project. This fixed the issue on development, but not on the build server,

Looks like it's related to UglifyJS. I ran ng build --build-optimizer --aot true --output-hashing all --sourcemaps false --extract-css true and it compiled successfully.
Then I ran ng build --target production --build-optimizer --aot true --output-hashing all --sourcemaps false --extract-css true and got the same error.
I don't have a service worker configure and I have no use of NODE_ENV so according to https://github.com/angular/angular-cli/wiki/build#bundling--tree-shaking UglifyJS is the only difference between the two builds.

localhost-1502908329170.txt
Yesterday I upgraded to version 1.3.0, after that I starting getting Error: No provider for AuthenticationService!, today I reverted to version 1.2.8 and the error is now gone.  I have included the output from Chrome in case it may help you.  If I compile it gives a similar error but with a different provider.  Please let me know if there is something I can test from my side that may help you debug this issue.  Thank you
Manny

Facing same issue with 1.3.1 as well

I have also tried 1.4.0-beta.1 and 1.4.0-beta.2 and the problem is still there.

same here

same here
@angular/cli: 1.3.0
node: 7.5.0
os: win32 x64
@angular/animations: 4.3.2
@angular/common: 4.3.2
@angular/compiler: 4.3.2
@angular/compiler-cli: 4.3.2
@angular/core: 4.3.2
@angular/forms: 4.3.2
@angular/http: 4.3.2
@angular/platform-browser: 4.3.2
@angular/platform-browser-dynamic: 4.3.2
@angular/platform-server: 4.3.2
@angular/router: 4.3.2
@angular/cli: 1.3.0

@rodolfojnn Thanks! Same issue.

Hi all, I'd like to look into this but am having trouble reproducing it. Can someone give me steps I can follow in a new project to see the error?

@filipesilva,  my project has customer modules from another application, I use npm to install and than use them in the application.  I will try to create a sample application to see if I can replicate.  It may take me a few days to create it, someone may have a smaller application which they can shared it sooner.

This might be related to https://github.com/angular/angular-cli/issues/7408, users there also seem to be having some trouble related to the upgrade in Webpack internal plugins.

@filipesilva I just tested my application using<EMAIL_ADDRESS>and I not longer get the error.  I tried testing it using just ng serve and  ng serve -prod --aot with no issues. I also tested using ng serve -prod --aot  --build-optimizer, which saved a few bytes from the chunks. Whatever place existed with 1.3.0 is now fixed in 1.3.2.
Thank you

after testing, @rodolfojnn suggestion worked for me.  I had to change
fb.       email: [, Validators.compose([Validators.required, Validators.email])     });
with
fb.       email: [undefined, Validators.compose([Validators.required, Validators.email])     });
But only in the main bundle, other feature modules still have the former form. I wonder why this is the case.

Same issue here on 1.3.0, .1, and .2. @rodolfojnn's suggestion worked as a solution.

Like everyone else is saying @rodolfojnn's solution worked for me as well.

I had the same error but the problem was an unnecessary comma in validators array:
'city': [null, [Validators.required, , Validators.pattern(/[a-zA-Z\'\- ]/)]]
changed it to
'city': [null, [Validators.required, Validators.pattern(/[a-zA-Z\'\- ]/)]]
and everything compiles with ng build --prod --build-optimizer

@tzachov Many thanks, exactly the same solution for me.

Why is this issue closed?
Isn't this a bug of angular-cli?

@kimamula the solutions provided here were sufficient for me. That's why I closed the issue. 😂

Enabling vendor-chunk solve the issue temporarly
ng build --prod --aot --vendor-chunk=true
Tested with:
Angular CLI: 1.6.7
Angular: 5.2.3
Node: 9.3.0

@akhedrane Here is an open issue regarding this: https://github.com/angular/angular/issues/21809 They are working on a solution.

As a note, if you switch to module: 'commonjs' instead of module: 'es2015' in your tsconfig.app.json, it will also fix this as a temporary workaround until https://github.com/angular/angular/pull/20624 (which simply changes locale modules to commonjs) is in.


JSONTrace returns a structured object, not just a string.

Improve the testing with Zipkin utilities:

JSONTrace returns a structured object, not just a string.
JSONTrace no longer sleeps, it retries until a specified timeout.
Document how CleanupZipkinTracingSetup.

/assign @srinivashegde86

/approve
Thanks for fixing this.

/uncc


npm test errors

When I run npm test command I get this errors: :(
Yes, I created file test-config.json according to instructions.
Can you help me, please?
><EMAIL_ADDRESS>test /home/stety/node_modules/facebook-chat-api
> mocha

  Login As Page:

/home/stety/node_modules/facebook-chat-api/src/getFriendsList.js:15
  5: 'mixed_plural',
  ^
    1) "before all" hook

  Login:
    2) "before all" hook

  0 passing (7s)
  2 failing

  1) Login As Page: "before all" hook:
     SyntaxError: Duplicate data property in object literal not allowed in strict mode
      at index.js:97:14
      at Array.map (native)
      at buildAPI (index.js:96:16)
      at mainPromise.then.then.error (index.js:299:19)
      at tryCatcher (node_modules/bluebird/js/main/util.js:26:23)
      at Promise._settlePromiseFromHandler (node_modules/bluebird/js/main/promise.js:507:31)
      at Promise._settlePromiseAt (node_modules/bluebird/js/main/promise.js:581:18)
      at Async._drainQueue (node_modules/bluebird/js/main/async.js:128:12)
      at Async._drainQueues (node_modules/bluebird/js/main/async.js:133:10)
      at Async.drainQueues (node_modules/bluebird/js/main/async.js:15:14)

  2) Login: "before all" hook:
     SyntaxError: Duplicate data property in object literal not allowed in strict mode
      at index.js:97:14
      at Array.map (native)
      at buildAPI (index.js:96:16)
      at mainPromise.then.then.error (index.js:299:19)
      at tryCatcher (node_modules/bluebird/js/main/util.js:26:23)
      at Promise._settlePromiseFromHandler (node_modules/bluebird/js/main/promise.js:507:31)
      at Promise._settlePromiseAt (node_modules/bluebird/js/main/promise.js:581:18)
      at Async._drainQueue (node_modules/bluebird/js/main/async.js:128:12)
      at Async._drainQueues (node_modules/bluebird/js/main/async.js:133:10)
      at Async.drainQueues (node_modules/bluebird/js/main/async.js:15:14)

npm ERR! Test failed.  See above for more details.
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! not ok code 0```

What mean this error, please?
[SyntaxError: Duplicate data property in object literal not allowed in strict mode

This error refers to a duplicate key in an object.  For example:
{
   key1 : val1,
   key1 : val2,
   key2 : val3
}

Here key1 is seen twice.  This used to be the case in a utils function in our code.  This has since been fixed.  I would recommend updating to the newest code on github and trying again.

The latest code from github works, thank you.  :)


Per-project metadata

Preflight Checklist

[X] I could not find a solution in the existing issues, docs, nor discussions
[X] I have joined the ZITADEL chat

Describe your problem
Metadata can be attached to organizations, but not to specific projects.
Describe your ideal solution
A metadata table should be added for projects, that can be queried and set through the API and edited in the console, similarly to organization metadata.
Version
No response
Environment
Self-hosted
Additional Context
Discussed in https://discord.com/channels/927474939156643850/1019895518383583323/threads/1145727952093458553, but no issue was created here.

Hei @lukaslihotzki-f
Thanks for adding the issue. This is certainly something we'd like to add to ZITADEL.
But we do not have an ETA/priority yet, we will do according to our customer/community needs.
For now I will add it to the product backlog.
Of course if you like to contribute, feel free to send a PR.
I will mark the issue as good first issue as it is basically the same as implemented on the organization/user.

Additionally the same functionality would be required for applications.
@stebenz @eliobischof to consider for the new APIs / resource structure

+1 for allowing the storage of metadata at the application level. Project metadata would be nice as well.
Context: We have an API responsible for creating applications in Zitadel. This API generates its own application IDs for each application created. We would like to store this application ID as part of the Zitadel application so we can retrieve it during user login and add it to the ID and access tokens.
We also have another entity that we associate with Zitadel Projects that would benefit from the same.

Also relevant for me, @hifabienne please assign me, would try to implement backend part of this.


[Feature Request] Add MouseOn & MouseLeave Events

Can you please add MouseLeave event to facilitate fancy media player toolbar development?

It's duplicated. I have to close it.


direct CLI example for PDLP

Provides an example of calling PDLP's API directly from C++.
solve.cc is a bad experience for PDLP users because of the solution validator (e.g., this discussion).
As a side effect, the SolveLog is now accessible to CLI users.
Example usage:
bazel run -c opt --cxxopt=-std=c++17 examples/cpp:pdlp_solve -- \
--input=/path/to/file.mps --solve_log_file=/tmp/solvelog.json --sol_file=/tmp/solve.sol

CC @dapplegate

Is pdlp_solve still the preferred way to invoke PDLP rather than using the default solve binary built by cmake (according to the standard installation instructions from C++ source: https://developers.google.com/optimization/install/cpp/source_linux) and provided in ~/or-tools_main/or-tools/build/bin?

To be honest currently pdlp_solve.cc is not tested as well as it should.
In CMake: we currently lack of data input support so it is disabled (shame on us)
https://github.com/google/or-tools/blob/053742add375895f4f61a005cab094e24d7baa82/examples/cpp/CMakeLists.txt#L55
In Bazel: We don't test the binary_cc() but at least we compile it...
Concerning linear_solver/solve.cc at least it is build in both supported build system but again not tested as much it should be...
https://github.com/google/or-tools/blob/053742add375895f4f61a005cab094e24d7baa82/ortools/linear_solver/CMakeLists.txt#L60-L66
https://github.com/google/or-tools/blob/053742add375895f4f61a005cab094e24d7baa82/ortools/linear_solver/BUILD.bazel#L384-L386
Side note: we should also rename them so in the cmake install export it will be more clear which is which, we already start internal discussion on a loosy naming convention: <component>_solve.
https://github.com/google/or-tools/blob/053742add375895f4f61a005cab094e24d7baa82/ortools/sat/CMakeLists.txt#L52-L58

solve.cc is a bad experience for PDLP users because of the solution validator

I believe this statement is still true.

Is pdlp_solve still the preferred way to invoke PDLP

It's an example of how to invoke PDLP through its direct API, though I wouldn't say it's "the preferred way". Depending on what you want to accomplish, you may want to modify and build on this example.


Closes #1532 Removed library(tibble) and changed tribble() function calls to tibbl…

…e::tribble() in test-derive_joined.R.
Thank you for your Pull Request! We have developed this task checklist from the Development Process Guide to help with the final steps of the process. Completing the below tasks helps to ensure our reviewers can maximize their time on your code as well as making sure the admiral codebase remains robust and consistent.
Please check off each taskbox as an acknowledgment that you completed the task or check off that it is not relevant to your Pull Request. This checklist is part of the Github Action workflows and the Pull Request will not be merged into the devel branch until you have checked off each task.

[X] Place Closes #<insert_issue_number> into the beginning of your Pull Request Title (Use Edit button in top-right if you need to update)
[X] Code is formatted according to the tidyverse style guide. Run styler::style_file() to style R and Rmd files
[X] Updated relevant unit tests or have written new unit tests - See Unit Test Guide
[X] If you removed/replaced any function and/or function parameters, did you fully follow the deprecation guidance?
[X] Update to all relevant roxygen headers and examples
[X] Run devtools::document() so all .Rd files in the man folder and the NAMESPACE file in the project root are updated appropriately
[X] Address any updates needed for vignettes and/or templates
[X] Update NEWS.md if the changes pertain to a user-facing function (i.e. it has an @export tag) or documentation aimed at users (rather than developers)
[X] Build admiral site pkgdown::build_site() and check that all affected examples are displayed correctly and that all new functions occur on the "Reference" page.
[X] Address or fix all lintr warnings and errors - lintr::lint_package()
[x] Run R CMD check locally and address all errors and warnings - devtools::check()
[x] Link the issue in the Development Section on the right hand side.
[x] Address all merge conflicts and resolve appropriately
[x] Pat yourself on the back for a job well done! Much love to your accomplishment!

Passing on the automated PR checks:

But failing tests within RStudio:


When using UglifyJs, there reports error; After using babel to transfer es6 to es5, there is anthor error

When using UglifyJs, there reports error; After using babel to transfer es6 to es5, there is anthor error.

This module is anot an ES5 module. If it does not work properly with a particular pipeline for transpiling the code to ES5, then you will need to look at the issues you are having with that pipeline, which are probably not with sanitize-html itself.
As I recall, older versions of UglifyJs do not support ES5. Babel should support compilation to ES5, but issues with that pipeline aren't really in the scope of sanitize-html.


运行报错，麻烦大佬给看看啥原因

 cargo run
Blocking waiting for file lock on package cache
Blocking waiting for file lock on package cache
Finished dev [unoptimized + debuginfo] target(s) in 2m 09s
Running target/debug/replit-xray
thread 'main' panicked at 'exec command failed, "./x": Os { code: 26, kind: ExecutableFileBusy, message: "Text file busy" }', src/server.rs:171:14
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
exit status 101

大佬用了最新的更新，还是报以下的错误
warning: field uuid is never read
--> src/server.rs:30:5
|
25 | pub struct Server {
|            ------ field in this struct
...
30 |     uuid: Option,
|     ^^^^
|
= note: #[warn(dead_code)] on by default
= note: Server has a derived impl for the trait Debug, but this is intentionally ignored during dead code analysis
warning: replit-xray (lib) generated 1 warning
Finished dev [unoptimized + debuginfo] target(s) in 5m 53s
Running target/debug/replit-xray
thread 'main' panicked at 'write uuid to db failed: ()', src/server.rs:163:22
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
exit status 101

后来再次运行以后，出了以下log，但貌似无法连接，请大佬指点
 cargo run
Blocking waiting for file lock on package cache
Blocking waiting for file lock on package cache
Blocking waiting for file lock on package cache
warning: field uuid is never read
--> src/server.rs:30:5
|
25 | pub struct Server {
|            ------ field in this struct
...
30 |     uuid: Option,
|     ^^^^
|
= note: #[warn(dead_code)] on by default
= note: Server has a derived impl for the trait Debug, but this is intentionally ignored during dead code analysis
warning: replit-xray (lib) generated 1 warning
Finished dev [unoptimized + debuginfo] target(s) in 2m 05s
Running target/debug/replit-xray
xxx.replit.co/c49ced89-aa87-46e5-ab07-b3ad86bfa2eb
Bad Request
Bad Request

报告大佬，0.1.4部署没有报错，也出了密码，但用v2rayN创建新连接以后，没连上。
不知道是否有设置错误。
用的是torjan，ws协议，path是 /uuid的字符，端口443

下载release，修改二进制程序名字不要出现xray trojan之类的东西，上传replit，增加执行权限，运行二进制即可
还请进一步说明一下，改的是哪个文件，不太懂。谢谢

用v0.2.0。刚测试可以跑。正式完工了

大佬NB，测试成功


[minor] Remove unused arg in macro in Inlist

Which issue does this PR close?

Closes #.
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

Nice cleanup @Ted-Jiang


Add a blank line at the end of the Search results view.

VSCode's Explorer file view has a blank line at the end to alow deselecting the current file. Unfortunately the Search results view does not have it, and it can be frustrating because almost always one file's match count will be hidden.

Sure, easy enough

That was super fast, thank you!


Update to Protobuf 3.0.2

I updated to Protobuf 3.0.2 for gRPC which requires Protobuf 3.  I also made a few changes, mostly simplifications.  I'm not sure if they are things you'd want but I figured I'd PR it anyway so you could take a look.
I didn't test on Windows but I did test using Protobuf's CMake setup and it worked.  The biggest change was removing the customized CMake files.  I was concerned that they would would get out of sync with changes made by Google.   I don't know all of the reasons that these were split out, so I'm probably breaking something by removing them, but I'm interested to see if ultimately the build can do without them.
Also I tweaked change_dylib_names.sh so the package client wouldn't need to make any dylib changes beyond copying the dylibs to the executable directory.
Man, dylibs are a mess on Macos.

Hi Eric!
Thanks for keeping working on this. I have merged it to my branch: release/3.3.0, and I am iterating over it, trying to pass CI. Specifically:

Solved conflicts
Windows: added Dprotobuf_MSVC_STATIC_RUNTIME to account for runtime
Windows: Added suffix "d" to library names
Linux: Using new AutoToolsbuildEnvironment instead of the deprecated ConfigureEnvironment
Linux: use system_requirements() to install necessary system packages for building.

Lets see how CI goes. Please branch from this new branch if you intend to do further improvements. Thanks very much!

Cool!  I was doing some work on Mac and had to update some packages to
Apple Clang 8.1. That's great about your progress!  I will branch from
release/3.3.0
-- Eric
On Fri, May 5, 2017 at 5:43 AM, James<EMAIL_ADDRESS>wrote:

Hi Eric!
Thanks for keeping working on this. I have merged it to my branch:
release/3.3.0, and I am iterating over it, trying to pass CI. Specifically:

Solved conflicts
Windows: added Dprotobuf_MSVC_STATIC_RUNTIME to account for runtime
Windows: Added suffix "d" to library names
Linux: Using new AutoToolsbuildEnvironment instead of the deprecated
ConfigureEnvironment
Linux: use system_requirements() to install necessary system
packages for building.

Lets see how CI goes. Please branch from this new branch if you intend to
do further improvements. Thanks very much!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/memsharded/conan-protobuf/pull/8#issuecomment-299424021,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEBjBJJZbvE6hwyFr3AYm5jIC3wBWanTks5r2u9NgaJpZM4LWccy
.


license

This project appears to lack a license notice.  I would appreciate it if you would add a prominent licensing notice (e.g. a LICENSE file).  I noticed you use the MIT/X11 License and the Revised BSD License on other projects, and I like both of those licenses well enough, so I would be happy to see you apply one of those to this project -- especially the MIT/X11 License, which I favor over the three-clause Revised BSD License.
Thanks in advance for your time and consideration of this issue.

Added.

Thank you!


Added Functionality For API Call By Query Params In URL for GET

Now You Can Query By
curl -X GET "http://localhost:8000/api/users?property=value"
Signed-off-by: Mohammed Azhar<EMAIL_ADDRESS>

@adrianobrito In order for the build to pass .. test cases has to be changeed ... :)

@adrianobrito ....Hi .. I am working on this issue ... pls neglect the above PR .. .
I jst need one more clarification...
Like ... Do we need both type of querying or is it like we can completely avoid .. /api/users/123 form and only allow users to query in the form /api/collection?property=value
I prefer that /api/users/123 should be removed ...
What is ur decision ??

Like ... Do we need both type of querying or is it like we can completely avoid .. /api/users/123 form and only allow users to query in the form /api/collection?property=value

I think we should keep /api/users/123 because it's something related with RESTful archictecture and the server aims to be a tool that mock RESTful web services. The /api/collection?property=value is a way of extract a subcollection that matches with some query criteria specied in query string.  The /api/users/123 form is a way to get an individual JSON object that has 123 as id, instead a subcollection like it should have to be in a HTTP GET that has some criteria in query string.
P.S: I checked the file changes you did in this pull request and I checked that you just add the implementation code in the already existent implementations. In the issue, I warn about create a new component and compose the server with this in order to keep uncoupled code. If is possible to you, we can have a little talk or something to help you in this journey.
Thank you, after all
😃

@adrianobrito  Hi ,
Yea ... I got it ... so we need both implementations ...
I jst nw completed the test suite and implementation for  onlu /api/collexn?prop=value type .. completely avoiding the existing form .. now will integrate both into one .. .
But, i didnt understand what u meant by creating a new component ??
Thanx...


Documentation Update: Add instructions to Status and Availability.

Fixes #29415.

Added a "Via Personal Settings" tab.
Added relative link in self-user-card.md.
Added "Clear a Status", where the user is told to press the X button.

Here's what the new documentation would be as opposed to the old documentation:

@JohnLu2004 thanks for working on this issue!
You're going to need clean up the commit history here. See commit discipline, using git as you work and git troubleshooting documentation for help on that.
Also, for documentation pull requests, you'll definitely need to include a screenshot of the updated documentation in the pull request comment, as well as a link to the current documentation. See tips and best practices for reviewable PRs.

Use help: as the prefix for commits to the help center. A good technique is to run git log <path> on a file that you're editing to see what other commits to that file look like.

I'll use help and git log  to see what they look like. Could you point out what the problem seems to be? I'm assuming it's because of this:
Merge branch 'zulip:main' into Status-and-Availability-Document-Update

I'm sorry.

@JohnLu2004 Has @laurynmm 's feedback been addressed? If so, you need to post a comment to indicate this.

@JohnLu2004 Has @laurynmm 's feedback been addressed? If so, you need to post a comment to indicate this.

I will post a comment to indicate this. Thank you for the comment.

I don't see a reply here: https://github.com/zulip/zulip/pull/29423#discussion_r1544516557

I don't see a reply here: #29423 (comment)

I believe I replied with the following for that comment:

I'll look up PR documentation on more of how to reply to comments.

Updates:

Added svg for mobile instructions on clearing a status.
Updated text to be clearer and better align with the spec from #29415.

Questions:

For the user card "Clear a status" instructions, do we want the parenthesis around "clear" or should it just be the word?

Screenshot of user card with status set

In the user card the string is "Set a status" and in the personal menu the string is "Set status". Do we want these to be different or should we update them to be the same?

I noticed a few inconsistencies when testing these instructions ...

If the user only has an emoji set for their status, then the text in the user card is still "Set a status" and not "Edit status".
If the user clears the status (with text) via the user card, then the text in the card doesn't live update from "Edit status" to "Set a status".

Updated screenshots:

User card instructions

Personal menu instructions

Mobile instructions

#30663 (hot off the presses!) impacts some of these questions.

For the user card "Clear a status" instructions, do we want the parenthesis around "clear" or should it just be the word? The current version has "(clear)" in the instruction text.

Doesn't really matter for now, as this UI is getting replaced. We could even update this PR immediately for the new UI, which matches the avatar menu.

Screenshot of user card with status set

In the user card the string is "Set a status" and in the personal menu the string is "Set status". Do we want these to be different or should we update them to be the same?

Updated to "Set status" in #30663.

I noticed a few inconsistencies when testing these instructions ...

If the user only has an emoji set for their status, then the text in the user card is still "Set a status" and not "Edit status".

Fixed in #30663.

If the user clears the status (with text) via the user card, then the text in the card doesn't live update from "Edit status" to "Set a status".

In #30663, the user card when the status is cleared, so this becomes moot.

I think it's fine to update this PR with the assumption that we'll integrate https://github.com/zulip/zulip/pull/30663 soon.

Cool! That's exciting about #30663!
Updates:

Instructions for setting/clearing status are updated for changes in #30663.
Adds some help include files for duplicate instructions.

Updated screenshots:
Including mobile instructions even though they haven't changed.

Via user card instructions

Via personal menu instructions

Mobile instructions

Looks great!

Merged, thanks @JohnLu2004, @laurynmm and @alya!


Inform the user about the current project type somewhere on the UI

With the work in https://github.com/spyder-ide/spyder/pull/13280, now developers can register custom project types to enhance the capabilities of Spyder.
@nerohmot thinks it would be a good idea to display the current type of the project somewhere in the UI.
Some options include:

Title bar (Red).

This is already displaying the project name

Project Pane toolbar (Orange).

Downside is this panel could be hidden...

Status bar (Blue).

Downside is we are low on real state on that part

@spyder-ide/core-developers thoughts?

It is not clear to me how important the project type is. What can the new project types do? I assume that the project type determines which files the project is populated with originally, but are there any other effects?

It is not clear to me how important the project type is. What can the new project types do? I assume that the project type determines which files the project is populated with originally, but are there any other effects?

A project type for now defines open close and create actions, open and close could add new items on different places of the UI.

A project type for now defines open close and create actions, open and close could add/hide items on different places of the UI.

Could you expand on this by giving a concrete example?

Until now we have only one project type, I call it "python un-managed".

Python = the language (now that LSP is extended others can follow)
un-managed = one populates the project as one likes

Together with Gonzalo I am implementing the "ATE plugin" that provides the "ATE Project" type, it is what I would call "python ATE managed"

Python = the language
ATE managed = one populates/maintains the project by a series of wizards (instead of using the "new module/package/file/folder context menus in the project pane)

It stands to reason that now that we have more than one project type, it should be marked somewhere with what kind of project type we are working ... (initial question from Gonzalo)
Title bar (Red), already displaying the project name, and I think that suffices.
Project Pane toolbar (Orange) that is a good place to indicate the project type (this space is empty now anyway) as Gonzalo notes, the project pane can be hidden (and in ATE Project we will do so, there is auto generated files that we don't want the user to mess with) never the less, if one enables the project pane it is good to see the type!
Status bar (Blue) that is a perfect place that is always visible.
Conclusion: I think the project type should be visible in both the project pane "title" AND the status bar.

Thanks for your explanation. As I understand it, having an ATE Project open will be a considerable change in how Spyder is used, in that users should not add files willy-nilly to the project but instead use the wizards provided by the ATE plugin. Therefore you want to have an indicator of the project type. I guess the ATE pane itself indicates that an ATE project is open, but it may be hidden. So I get why you want an indicator in the status bar.
On the other hand, many users will not have the ATE plugin installed and they will thus have (at least at present) only one project type, which means that it is not necessary to have an indicator. As the screen is already cluttered enough as it is, in this case I would prefer not to have any indicator of project type in the status bar.
I can think of the following possibilities which achieves both goals:

Spyder puts the project type in the status bar. If only one project type is defined, then Spyder does not put anything in the status bar.
Spyder puts the project type in the status bar. If the default project type is selected, then Spyder does not put anything in the status bar. This is only a small change from 1.
The ATE plugin is responsible for putting the project type in the status bar. In this case, the plugin writers can decide themselves what is best for the situation that they have in mind. I don't know how hard this is technically, but I think it would be a good option in general to allow plugins to add indicators to the status bar.

I am less bothered about what happens to the project pane title. It's acceptable for me to always display the project type there, but it also makes sense to do the same as for the status bar in order to be consistent.
Incidentally, I am not sure that we need different project type for different programming languages. This would make it more difficult to mix different languages. But this is not relevant for the current issue.

I agree with @jitseniesen . If and when custom project types are more common, we can reconsider, but given we estimate Spyder is used by somewhere on the order of 10^5 and 10^6 worldwide, and the currently sole proposed plugin, still under development, that implements a non-default project type will likely be in use by 10^1-10^2 users, adding extra visual clutter to the remaining 99.9-99.999% of Spyder users does not appear justified. However, Jitse's suggestions above (particularly option 2) appear to solve the problem without incurring a significant tradeoff for the use cases for which a project type becomes meaningful.

I don't know how hard this is technically, but I think it would be a good option in general to allow plugins to add indicators to the status bar.

If I recall our discussions accurately, this should be possible with the new plugin architecture in Spyder 5 that @goanpeca is developing as part of this project. Is that right, @goanpeca ?

I am less bothered about what happens to the project pane title. It's acceptable for me to always display the project type there, but it also makes sense to do the same as for the status bar in order to be consistent.

The project pane title is certainly much less prime real estate, but I would favor being consistent with the status bar and avoiding extra clutter if the project type is the default (which also avoids us having to come up with a fancy name for it :smile: )

On the other hand, many users will not have the ATE plugin installed and they will thus have (at least at present) only one project type, which means that it is not necessary to have an indicator. As the screen is already cluttered enough as it is, in this case I would prefer not to have any indicator of project type in the status bar.

Spyder5 will already include a SpyderProject Plugin (based on cookie-cutter) so let's assume for this discussion that there will be more than one project type for sure.

Thanks for the quickly reply, @goanpeca !

@jitseniesen and @CAM-Gerlach Spyder5 will already include a SpyderProject Plugin Type (based on cookie-cutter) so let's assume for this discussion that there will be more than one project type for sure.

True, though the percentage of users using Spyder to develop a Spyder plugin is also likely to be a very small fraction of the total userbase. As more project types are added that will hopefully change, but a large fraction if not the majority of users are likely to be still using the default project, as many if not most Spyder users today don't even use projects at all—and if no project is open, we'd naturally not want to show the statusbar item either. As such, I'm thinking Jitse's option 2 might make the most sense, since if users are actually using a project type Spyder will show it, while if they are using the default type (which has no special effect) it will not. If and when a larger minority of users are using a project type, then maybe it would make more sense to show it even if it is the default...I'm not sure.

A project type is currently very simple as it provides a create/open/close methods.

I understand the create methods, but could you explain what the custom open/close methods do? Do you mean file open/close or project open/close? In @nerohmot 's example, what would that correspond to?

open/close are actions to perform when a project that has been created already is loaded. Close is similar.
In the example, opening a project will do a lot of stuff under the hood to display things in the extra Panel + show or hide some toolbars or panes. Closing would probably just hide the panel and extra toolbar.

Okay, thanks. Its clear now; my confusion was over the unclear object of the actions (a file vs. the project). Similarly, I'm guessing the the create action refers to creation of the whole project (e.g. setting up a custom cookiecutter), as opposed to creating a new files within a project (via a custom wizard/individual file cookiecutter)?

Okay, thanks. Its clear now; my confusion was over the unclear object of the actions (a file vs. the project). Similarly, I'm guessing the the create action refers to creation of the whole project (e.g. setting up a custom cookiecutter), as opposed to creating a new files within a project (via a custom wizard/individual file cookiecutter)?

Correct.
A new project type could be a DjangoProject using a Cookiecutter under the hood to use the well known templates out there + maybe specifying (eventually) HTML/CSS/JS/Python Language servers.

I agree with @jitseniesen that the best place to put the project should be the status bar.

@ccordoba12 As I understand it, @jitseniesen 's main point was that the project type shouldn't be shown on the status bar unless it is actually distinct from the default, which doesn't do anything special. As far as I've gathered, it seems we all mostly agree agree that if there is a project with a specialized project type open, the status bar is probably the best all-around place to show it, but what is being discussed is whether to show anything if one is not (either no project is open, or it is of the default type that doesn't currently do anything).
So, @ccordoba12 What do you think of @jitseniesen 's proposal? @goanpeca and @nerohmot , would that be a good compromise or does it pose serious problems for your use case? If the latter, could an extra status-bar warning the plugin could inject on the statusbar that an ATS project is not activated be an equal or better solution? Thanks.

I do not consider that there will be a "default project". We had an empty project as a simple thing but it is pretty much useless and I foresee that Spyder 5 will already include more than just an empty or a Spyder Plugin one, so I do not see any value if giving the very lacking "Empty Project" any special treatment. I see all projects equal and I would not special case showing one or not. The question is more: Where to show it from the options (if any of those apply) or any other suggestion of location?
I think the status bar is too crowded but that is another discussion where items in there should be closer together and maybe a tad smaller.

The problem is, I have no idea what a project type is supposed to do, except for what is explained for the ATE managed project type. If a project type only sets up some files when creating the project and does not do anything else (which is what I imagine you mean with projects based on cookiecutter), then I see no need to display the project type.

Unfortunately, in my experience, most of the Spyder users I know don't use projects at all, and those IRL and on here that do, often report they just use them for their workspace/session-switching features or work on multiple related Python projects in one Spyder project (including myself at times), and many if not most scientific Python users (unlike us) unfortunately mostly work interactively or on scripts rather than on Python packages or similar structures that these project types seem designed for. As such, I'd be surprised if users who A. Use projects, B. Use them for more than just session/workspace management and C. Use a special project type, will ever constitute a majority or even more than modest minority of Spyder users.
@goanpeca I understand you don't want to special-case an empty project, but since it is more the general/null case that doesn't involve any "special treatment" of creating, opening and closing projects, and the only one a large majority of users are likely to make much use of, I think it deserves consideration here.
Also, just to be clear, what do you propose to do if no project is open? You do agree with not showing the project type statusbar item in that scenario, right?

If a project type only sets up some files when creating the project and does not do anything else

I suppose different project types could do things like show the appropriate window layouts and panes for a Python package, Django web app, Spyder plugin, interactive use, etc. (basically automatically switching the existing window layout presets) or launching a console with certain default settings (e.g. a Cython project type could load Cython by default in the IPython console). However, on the other hand I'm not sure how big of a value add these are for most use cases when these could be done in a few clicks with existing features, as opposed to relatively radical overhauls like what is being done for the ATE project type.

Also, just to be clear, what do you propose to do if no project is open? You do agree with not showing the project type statusbar item in that scenario, right?

If no project is open why would we show a project type 🙃 ?

as opposed to relatively radical overhauls like what is being done for the ATE project type.

Not really radical.

Indeed : no project open, nothing to show, project open show the type :-)

I do not see any value if giving the very lacking "Empty Project" any special treatment. I see all projects equal and I would not special case showing one or not. The question is more: Where to show it from the options (if any of those apply) or any other suggestion of location?

I see the blank canvas of "Empty Project" as a feature :smile: In fact, I think it is exactly what I need for most of my use cases.
If we don't want to special case "Empty Project", then how about adding a field to the project type definition which specifies whether the project type should be displayed in the status bar? Based on what is said here, I don't see why the SpyderPlugin project type needs to be displayed prominently. It can be displayed somewhere in the Project pane, or in a project info dialog or preference page which I assume will be added at some point.


Optimize the Build Process

Overview
This change mirrors the work being done on PixiJS v5. Rollup now manages the build process instead of Lerna. This makes build/watch times MUCH faster can consume fewer system resources.
Before
Running time npm run lerna -- run build
real	0m13.671s
user	0m37.891s
sys	0m3.796s

After
Running time npm run build:prod
real	0m3.117s
user	0m3.474s
sys	0m0.218s

Changed

The pixi-filters package produces a bundle file as well as unbundled main/module suitable for treeshaking

Wow

I desire that PIXI v4 could use Rollup as soon as possible.


Default layout not recognized on render

I'm trying to set up a simple grid with two columns on large size and one column on small size.
On large it should look like this:
ITEM ONE || ITEM TWO
And one small it should look like this:
ITEM ONE
ITEM TWO
However, for some reason, it doesn't recognize the initial x position of item two on large size (x=1). It does however work when I drag it there and the callback on layout change properly displays x=1. What instead happens is that it arranges the items like so:
ITEM ONE || (EMPTY)
ITEM TWO || (EMPTY)
I.e. x=0 for both items.
Here's my code:
/* npm imports */
import React, { PropTypes } from 'react';
import { connect } from 'react-redux';
import { Responsive, WidthProvider } from 'react-grid-layout';
import { createStructuredSelector } from 'reselect';

/* component imports */
import PageWrapper from '../../components/PageWrapper';
import ContentWrapper from '../../components/ContentWrapper';

/* other imports */
import makeSelectDashboardPage from './selectors';

const Grid = WidthProvider(Responsive);

export class DashboardPage extends React.PureComponent { // eslint-disable-line react/prefer-stateless-function
  render() {
    const UPDATE = 'update';
    const DISK = 'disk';

    const sm = [
      {
        i: UPDATE,
        x: 0,
        y: 0,
        w: 1,
        h: 1,
        static: true,
      },
      {
        i: DISK,
        x: 1,
        y: 0,
        w: 1,
        h: 1,
        static: true,
      },
    ];

    const lg = [
      {
        i: UPDATE,
        x: 0,
        y: 0,
        w: 1,
        h: 1,
        static: true,
      },
      {
        i: DISK,
        x: 1,
        y: 0,
        w: 1,
        h: 1,
        static: true,
      },
    ];

    return (
      <PageWrapper>
        <ContentWrapper>
          <Grid
            onLayoutChange={(layout) => console.log(layout)}
            className="grid"
            layout={{ lg, sm }}
            breakpoints={{ lg: 1200, sm: 768 }}
            cols={{ lg: 2, sm: 1 }}
          >

Update

Disk

          </Grid>
        </ContentWrapper>
      </PageWrapper>

    );
  }
}

From what I can see I have declared my default layouts according to the specifications (array of objects) and I'm using the same variable to identify the key/id of each grid item.
Any idea what could be wrong?
Thanks!

Found the error after hours of pulling my hair out. I sent the prop "layout" instead of "layouts" (plural). Shouldn't there be props validation for that? @STRML
Thanks for an awesome library btw!

I'm actually having this problem and also have been trying a ton of variations. It only shows items as being in the first row.
If I drag them around and then go to React console and save the exact layout, then pass it in as a prop, it doesn't work. Tried about 10 different layouts and prop combos.


Drop down treeview should not be hidden after TreeviewItem array is loaded

I get the TreeviewItem array from a remote call onInint. When the component is displayed it simply shows the All button and only shows the tree only upon click. It also hides on focus change. Is there a way to override this behavior to: Display the tree as soon as the TreeviewItem array is populated ? Also, it shouldn't auto-hide.

@narsivc code please

Closing this. Using "ngx-treeview" instead of "ngx-dropdown-treeview" solves the problem for me.


MDX / Sub-items bullet not indented (react-server / docs)

Describe the bug
Sub-items in markdown bullet lists are not indented when displayed in the browser.
Reproduction
No response
Steps to reproduce
Markdown:
* Item 1
  - Level 2 / Item 1
  - Level 2 / Item 2
    - Level 3 / Item1
  - Level 2 / Item 3
* Item 2
* Item 3

will render this correct html:

Item 1

Level 2 / Item 1

Level 2 / Item 2

Level 3 / Item1

Level 2 / Item 3

Item 2

Item 3

but because of wrong styling the browser will display:

System Info
System:
    OS: macOS 15.2
    CPU: (12) arm64 Apple M4 Pro
    Memory: 4.65 GB / 48.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 23.4.0 - /opt/homebrew/bin/node
    Yarn: 1.22.22 - /opt/homebrew/bin/yarn
    npm: 10.9.2 - /opt/homebrew/bin/npm
    pnpm: 9.15.0 - /opt/homebrew/bin/pnpm
    bun: 1.1.40 - /opt/homebrew/bin/bun
  Browsers:
    Chrome: 131.0.6778.141
    Safari: 18.2
    Safari Technology Preview: 18.2
  npmPackages:
    @lazarv/react-server: link:packages/react-server => 0.0.0

Used Package Manager
pnpm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion.
[X] The provided reproduction is a minimal reproducible example of the bug.

This is now fixed, and existing lists have been updated. If you need to render a file tree, then a nested list seems more like a temporary workaround. Eventually, there should be a component to render a file tree nicely.

No - ist my AWS deployment docs and I need only one sub level


Has anyone reproduced SQuAD 1.1 score(90.2/83.2) on albert-base V2?

Hi, I downloaded pre-trained ALBERT base V2 model at the link in README.md and tried to fine-tune it on SQuAD 1.1 dataset without using albert hub module.
However, I got f1=16.14 and exact match=7.34 as my final result, which is significantly lower than scores(90.2/83.2) reported at README.md.
Here is the command that I used for fine-tuning

ALBERT_ROOT is the directory path where I keep my albert-base-v2 model
train_feature_file, predict_feature_file, predict_feature_left_file were created in SQUAD_DIR after I ran the following command

python -m run_squad_v1
--albert_config_file="${ALBERT_ROOT}/albert_config.json"
--output_dir=./output_base_v2/SQUAD
--train_file="$SQUAD_DIR/train-v1.1.json"
--predict_file="$SQUAD_DIR/dev-v1.1.json"
--train_feature_file="$SQUAD_DIR/train.tfrecord"
--predict_feature_file="$SQUAD_DIR/dev.tfrecord"
--predict_feature_left_file="$SQUAD_DIR/pred_left_file.pkl"
--init_checkpoint=""
--spm_model_file="${ALBERT_ROOT}/30k-clean.model"
--do_lower_case
--max_seq_length=384
--doc_stride=128
--max_query_length=64
--do_train=true
--do_predict=true
--train_batch_size=48
--predict_batch_size=8
--learning_rate=5e-5
--num_train_epochs=2.0
--warmup_proportion=.1
--save_checkpoints_steps=5000
--n_best_size=20
--max_answer_length=30

@YJYJLee May I ask you what is the memory size of your GPU? my RTX with 24GB memory can only train the model with batch_size=16, which leads comprised F1 of 77 significantly lower than yours.

@YJYJLee is that possible we just evalute the model without train it with squad dataset?

@wenhuchen  sorry for the late response. My GPU is Quadro GV100 with 32GB memory.

@YuHengKit  You can evaluate the model, but it will produce a terrible result without training. You need to fine-tune the model with the above script to get 90.29634675 f1 score.

@YJYJLee thanks for reply. do u try with square v2 with same configuration? I tried on colab with TPU which obtained only f1 =75.19.
@wenhuchen batch size will jsut make the training slower but it shdnt affect the accuracy right?


Code hotspots

A significant portion (5.5%) of the cron job is spent in raw.isText
https://github.com/ossf/scorecard/blob/1fa791043273aae2dfce4ee54cf4035be6802486/checks/raw/binary_artifact.go#L170-L180
There's some experimental code that also does this, and has better performance. I plan to import/copy the implementation over.
// IsText reports whether a significant prefix of s looks like correct UTF-8;
// that is, if it is likely that s is human-readable text.
func IsText(s []byte) bool {
	const max = 1024 // at least utf8.UTFMax
	if len(s) > max {
		s = s[0:max]
	}
	for i, c := range string(s) {
		if i+utf8.UTFMax > len(s) {
			// last char may be incomplete - ignore
			break
		}
		if c == 0xFFFD || c < ' ' && c != '\n' && c != '\t' && c != '\f' {
			// decoding error or control character - not a text file
			return false
		}
	}
	return true
}

Should be an easy performance win, but would change the behavior slightly as it only checks the first 1024 bytes.
Since you implemented the heuristic, thoughts @laurentsimon ? I know the code was introduced to reduce false positives, so should still be valid for that.
Benchmarking shows a 2x speedup on small files (1KiB). 6x speedup on medium files (3KiB). And on gigantic files (like our 50MB projects.csv file), the difference is 5-6 orders of magnitude.
cpu: Intel(R) Xeon(R) CPU @ 2.20GHz
BenchmarkIsText-8                     79         295087760 ns/op
BenchmarkExternalIsText-8       13462120              1763 ns/op

Do you know why it is faster? What's the source of slowdown in the current version?
Looking at the first 1k byte would be OK of we have data (from cron) that the results are the same?
Btw, how did you perform the benchmark?

Thanks for the additional info. So inlining code is what speed things up. I'm surprised there's a 2x speedup on 1k files due to that. In fact that seems weird to me because there's a single stack frame created to call the function...
It would be great to have cone numbers confirming we're not making things worse. Maybe we can add some logging code temporarily to call both function in the cron (gated with an env variable) and mine the logs for different results?

In fact that seems weird to me because there's a single stack frame created to call the function...

In a loop, called for each rune in the file contents.

Maybe we can add some logging code temporarily to call both function in the cron (gated with an env variable) and mine the logs for different results?

👍 SGTM.
env gated variable, enabled in the release test. the repos get shuffled daily, so should be able to test over the week


Bump ddg-netguard-android to 1.6.4

Task/Issue URL: https://app.asana.com/0/488551667048375/1205675418279581/f
Description
Bump version to the one that contains https://github.com/duckduckgo/netguard/pull/27
Steps to test this PR
AppTP/NetP smoking tests

Current dependencies on/for this PR:

develop

PR #3646   👈

This comment was auto-generated by Graphite.


Move the AppDispatcher to an ES6 class

Awesome - thanks!  I want to migrate everything else to ES6 soon, this is a great starting point.


[fbsync]

i see "no new changes" — is that expected?

Yeah this week there is no diff comes out. The PR is just for keeping the weekly merge from fbsync to main branch.


Configurable use of ref instead of oneOf for polymorphic types

Added configuration to use ref intead of oneOf, for better support of code generation tools, that can not handle oneOf correct

@xDDDx thanks for putting this together. As it happens, I'm in the middle of a refactor to the schema generator that will address your issue along with some other issues related to polymorphic / inheritance based schema structures. So, with respect, I'm going to decline this PR but will hopefully have a similar solution in place soon with the larger refactor. Thanks


NTR: oligosaccharyltransferase complex binding

Hi,
From annotation review ticket (co-localizes_with complex terms): geneontology/go-annotation#1940
I need a term to indicate 'oligosaccharyltransferase complex binding' based on
PMID:12887896
(Oligosaccharyltransferase isoforms that contain different catalytic STT3 subunits have distinct enzymatic properties.)
Thanks,
Penelope

GO:0008250 oligosaccharyltransferase complex

Added in:
https://github.com/geneontology/go-ontology/pull/16317


Record transfer limit for data refresh

Fixes

Fixes #472 by @AetherUnbound
Description

This PR adds a new variable, DATA_REFRESH_LIMIT, and some additional logic for interpreting an appropriate limit based on the environment the ingestion server is deployed in. In prod or production, the default limit is removed and all records are copied. In any other environment, at most 100k records are copied by default (although more or fewer can be specified using the aforementioned environment variable).
I also split the unit tests up and added tests for the altered query. This was a huge pain, because trying to convert the psycopg2.SQL objects into strings requires a database connection which is way too much overhead for such a simple test.
Testing Instructions

just ing-testlocal
Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[x] I added or updated tests for the changes I made (if applicable).
[x] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

So I ran into that issue where it hangs on the cleaning step again, and I was able to resolve it by removing the garbage collection steps :upside_down_face: I'll have to do a deep dive on that at some point


Reset singletons after app reset (EXPOSUREAPP-1750)

New PR to dev: https://github.com/corona-warn-app/cwa-app-android/pull/901


Support per-participant area in collaborative objects

Already implemented in beta version:
SMap private = object.getPrivateArea();


BCR pipeline bugfixes

Fixes for NT and AA distances calculation

Moving to draft: this PR will be affected by repGermline update


Style curvy layout

Homepage layout is complete, located here.

The picture above shows the curvy layout implemented in html


server: loosen json format constraints

Closing for #8130

For the record: Silently failing (e.g.g providing no feedback to clients at runtime) should be avoided in most cases.


Firewall rules deployment strategy with HDFS DataNode as example

Which issue(s) this PR fixes:

Partially fixes #422
Additional comments:

This PR is a follow up on PR #452 and #481
Work in progress: the firewall rules are only implemented for HDFS DataNode. The goal of this PR for now is to get feedback on the implementation.
The implementation proposed here inherits the concepts of firewalld: zones and services. A service corresponds to a list of ports (+protocols) and a zone corresponds to a list of sources (~= IPs) and the rules that apply to them when accessing services on the host.
Possible negative impacts
Deploying erroneous firewall rules on hosts can have disastrous consequences, notably forbidding node operators to connect via SSH. I suggest that we implement a check that determines if Ansible will still be able to connect after the firewall rules deployment and if not abort it (see #480).
firewall role
A new firewall role is added to TDP. This role will always have to be run prior to services deployment. The role has been written to support multiple firewall services as a backend. For now only firewalld is supported. One can change which firewall service is used with firewall_service and the routing logic is managed in firewall.generic.
roles/firewall
├── firewalld
│   ├── handlers
│   ├── tasks
│   └── templates
└── generic
    └── tasks

Cluster level firewall
firewall_tdp_managed controls if TDP should generate firewall rules on the cluster nodes:

If yes, TDP ensures that all rules defined in firewall_rules are created on the right hosts and that firewalld is started.
If no, TDP does not interfere with firewalld.

https://github.com/TOSIT-IO/tdp-collection/blob/14809dd1a1c8c91778bf5ebe99b60a7daa0649fb/tdp_vars_defaults/firewall/firewall.yml#L5-L10
Firewall zones
By default, TDP will create 2 zones:

public: This zone corresponds to all the hosts outside of the TDP cluster that need access to its client endpoints (e.g. HDFS Web UI, Hive JDBC/ODBC).
internal: This zone corresponds to all the TDP cluster hosts. Internal ports need to be opened inside the cluster.

https://github.com/TOSIT-IO/tdp-collection/blob/14809dd1a1c8c91778bf5ebe99b60a7daa0649fb/tdp_vars_defaults/firewall/firewall.yml#L16-L26
Each zone has 4 properties:

name: A name for the zone
short: A short description of the rule that will be used in the firewalld zone definition
groups: The Ansible groups that are part of this zone. TDP will take care of mapping these groups to firewalld ipsets.
addresses: The other addresses that are part of this zone. Can be in the format address or address/mask.

Firewall rules
All open port rules are listed in the firewall_rules variable, with one list for each component. E.g. for hdfs_dn (HDFS DataNode):
https://github.com/TOSIT-IO/tdp-collection/blob/14809dd1a1c8c91778bf5ebe99b60a7daa0649fb/tdp_vars_defaults/firewall/firewall.yml#L40-L48
Each rule has 5 properties:

short: A short description of the rule that will be used in the firewalld service definition
port: The port to open and secure
protocol: The protocol authorized on this port
zones: The zones from which the port will be accessible.
state: present or absent. If absent, TDP will make sure that the port is removed from all rules.

Trying this out
If you want to try this on a TDP cluster, run playbooks/meta/firewall.yml. This will deploy firewall rules on hdfs_dn hosts and start firewalld. Note that other services installed on the same hosts (e.g. YARN RM) will stop functioning as no firewall rules will exist for them.
Low level implementation
TDP uses firewalld ipsets, services, and zones to set firewall rules (all generated files are prefixed with firewalld_files_prefix):

Firewalld ipsets: each Ansible group that is used in firewall_zones will be mapped to an ipset in /etc/firewalld/ipsets. E.g. /etc/firewalld/ipsets/tdp_tdp_cluster.xml:
<?xml version="1.0" encoding="utf-8"?>
<ipset type="hash:net">
  <short>tdp_cluster Ansible group</short>
  <entry><IP_ADDRESS></entry>
  ...
  <entry><IP_ADDRESS></entry>
</ipset>

Firewalld services: each TDP component has 1 service (in /etc/firewalld/services) for each of its firewalld_rules. A service contains the port number and protocol. E.g. /etc/firewalld/services/tdp_hdfs_dn_data_port.xml:
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>HDFS DataNode data transfer port</short>
  <port protocol="tcp" port="9866" />
</service>

Firewalld zones: Each zone in firewall_zones has 1 zone in /etc/firewalld/zones that defines the sources allowed to the zone's services. E.g. /etc/firewalld/zones/tdp_internal.xml:
<?xml version='1.0' encoding='UTF-8'?>
<zone>
  <short>TDP cluster internal zone</short>
  <source ipset="tdp_tdp_cluster"/>
  <service name="tdp_hdfs_dn_data_port"/>
  <service name="tdp_hdfs_dn_ipc_port"/>
  ...
</zone>

License agreement
To make clear that you license your contribution under
the Apache License Version 2.0, January 2004 and that you give permission to TOSIT,
you have to acknowledge this by using the following check-box.

[x] I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004

[x] I hereby agree to grant TOSIT a copyright license to use my contributions.

meta/all.yml is missing

meta/all.yml is missing

Done

Force pushed after rebasing 422-all-firewall-rules on master

@leopaul36 @gboutry @mehdibn are you ok to merge this?
As discussed Friday, this PR does not go to the master branch so we can still discuss where to put the firewall rules later on (e.g. move them to a dedicated collection or to tdp-extras).

@leopaul36 @gboutry @mehdibn are you ok to merge this?
As discussed Friday, this PR does not go to the master branch so we can still discuss where to put the firewall rules later on (e.g. move them to a dedicated collection or to tdp-extras).

Ok for me