Error: spawn ./ShadowEditor ENOENT

when I npm run start.
Program error:   ./ShadowEditor serve --config ./config.toml
Error: spawn ./ShadowEditor ENOENT
Emitted 'error' event on ChildProcess instance;

All the environments are installed， and  npm run build is success

It has been solved， you should  run  npm run set-proxy first  in china.   and you npm run build , it will  Generate file  ShadowEditor.exe  under build floder


MultiOnRetry is ignoring the onFailure predicate

Fix #814.

Draft as I need to see the code coverage.

Raised in https://github.com/smallrye/smallrye-mutiny/discussions/814

🟢

I pushed a few more changes as some conditional branches were useless (the predicate cannot be null).


Turn off val_check_interval

by default it will run validation once per epoch (and save model checkpoint once per epoch during validation)

done


Allow nil fix

I think I found an issue in model_additions.rb where :allow_nil is set to false, even if it isn't explicitly passed in the options hash. As a result, setting :allow_blank => true will result in validates being called with both :allow_blank => true and :allow_nil => false, which I believe is unexpected behavior.
With this patch, only options that are explicitly passed in the validator will be sent to validates.
I also cleaned up some trailing whitespace (friendlier for vim editing) and added the dependency status from Gemnasium in the README.

PS: The diff view is a bit noisy with all the whitespace cleanup. For a cleaner diff of the significant changes, see:
sferik/validates_formatting_of@d6254c7b80ec4ef74401cc4509ad5f318df48e5a.

Thanks @sferik! I really appreciate all the help as I still have lots to learn.


Timestamps in log files. Fix for issue #64

Please review my changes. This will allow the timestamps to be available in log files.

I just merged this locally and it works very well. Would be great if anyone else could also review this before the final merge. @Tordek, @zedshaw, anyone?


docker ecs compose up: send request failed

After successfully running this command a dozen times, as recently as this morning, out of nowhere I'm getting this error:
$ docker ecs compose up
send request failed

How can I begin to troubleshoot this?

Pretty sure this was a network connectivity issue on my end. Switching to VPN resolved it.


CodeAI uses Infer under the hood to find bugs.

CodeAI sifts through false positives in the results using its proprietary AI technology.  In addition, it suggests simple defensive coding fixes based information parsed from the output of Infer.

Hi @benjaminbales, many thanks for your PR. Are you able to sign the CLA so we can incorporate it into our website?

of course.  Where can I find the CLA?

I just signed it.  Sorry for the delay.

Thanks again!


[top] Add testplan item for RMA bootstrap

Tests the rom logic for rma bootstrap.
Test contains two iterations, one positive test and one negative test.

Signed-off-by: Timothy Chen<EMAIL_ADDRESS>

@tjaychen I can create an issue for this test in the rom-e2e project using my script once this is merged (feel free to skip creating now for now).

o sounds good! do you want me to update the tags?


build in parallel in makefile

Description

Fixes #173
The build time is:
$ time make build JOBS=8
real    1m47.211s
user    5m14.661s
sys     0m45.855s

which is similar to:
$ cmake -Bbuild -DBPFTIME_ENABLE_UNIT_TESTING=1 -DBUILD_BPFTIME_DAEMON=1 -DCMAKE_BUILD_TYPE:STRING=Debug
$ time cmake --build build --config Debug -j8
real    1m43.163s
user    5m13.930s
sys     0m36.892s

Documents updated in https://eunomia.dev/bpftime/documents/build-and-test/#compilation-for-bpftime
Type of change

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[X] This change requires a documentation update

Would -j$(nproc) be better?

Seems there are no easy ways for makefile to get -j number.

In a Makefile, the -j option is used with the make command to specify the number of jobs (commands) to run simultaneously. However, within the Makefile itself, you cannot directly retrieve the number passed to the -j option because it's an argument to the make command and not an environment variable or a Makefile variable.
If you want to act on the -j option within a Makefile, you typically have to pass it as a variable. However, GNU make provides a way to detect if the job server is enabled (which happens when you use -j without specifying the number of jobs) via the .NOTPARALLEL special target. But it does not provide a way to get the actual number of jobs specified by the user.

From GPT4


Loading indicator keeps spinning, control not showing

Screenshot of the error:

If I open the page with HTTP, the control is showing just fine. If I open the page with HTTPS, this error occurs.
This is on premise TFS 2017.
I saw in browser console there were two errors when loading vsts-extensions-multivalue-control/1.0.5/assetbyname/dist/index.html:
SEC7111: HTTPS security is compromised by http://mytfsserver/tfs/_apis/public/gallery/publisher/ms-devlabs/extension/vsts-extensions-multivalue-control/1.0.5/assetbyname/dist/index.html
File: Backlog%20items
SEC7111: HTTPS security is compromised by http://mytfsserver/tfs/_apis/public/gallery/publisher/ms-devlabs/extension/vsts-extensions-multivalue-control/1.0.5/assetbyname/dist/index.html
File: Backlog%20items

This tells me that you probably have your TFS instance configured with a public url with the HTTP scheme. You can confirm this in the TFS Management Console.

You need to make sure that public url matches how you hit the site for the extensions to work correctly.


Fix broken links

Signed-off-by: Frank Liu<EMAIL_ADDRESS>

Codecov Report

Merging #1286 (0c05998) into main (912d7a8) will increase coverage by 0.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1286      +/-   ##
==========================================
+ Coverage   69.86%   69.97%   +0.11%
==========================================
  Files         267      267
  Lines       13262    13262
  Branches     2187     2187
==========================================
+ Hits         9265     9280      +15
+ Misses       3416     3399      -17
- Partials      581      583       +2

Impacted Files
Coverage Δ

towhee/engine/operator_runner/runner_base.py
92.16% <0.00%> (+0.60%)
:arrow_up:

towhee/engine/operator_context.py
84.78% <0.00%> (+2.17%)
:arrow_up:

towhee/engine/graph_context.py
90.76% <0.00%> (+4.61%)
:arrow_up:

towhee/engine/task_scheduler.py
71.60% <0.00%> (+11.11%)
:arrow_up:

Continue to review full report at Codecov.

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

/lgtm
/approve


Relative path for cafile isn't working

When cafile is specified in a local .npmrc it's most often as a local path relative to the .npmrc file (In our case it's committed to our git repository)
c:\foo\.npmrc:
registry=https://npm_cache.local/
cafile=cafile

(c:\foo\cafile is our cafile)
Error in console:
gyp ERR! stack Error: ENOENT: no such file or directory, open 'c:\foo\node_modules\gulp-sass\node_modules\node-sass\cafile'
gyp ERR! stack     at Object.fs.openSync (fs.js:638:18)
gyp ERR! stack     at Object.fs.readFileSync (fs.js:540:33)
gyp ERR! stack     at readCAFile (c:\foo\node_modules\node-gyp\lib\install.js:466:15)gyp ERR! stack     at download (c:\foo\node_modules\node-gyp\lib\install.js:438:22)
gyp ERR! stack     at c:\foo\node_modules\node-gyp\lib\install.js:185:19
gyp ERR! stack     at c:\foo\node_modules\mkdirp\index.js:48:26
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:153:5)

(Even when an absolute path is used it now fail as the download URL isn't on an internal server and our cafile contained only our internal root cert, but we could easily fix that)

That isn't something node-gyp can fix, I think.
npm passes the cafile option as an environment variable (npm_config_cafile) to node-gyp but there is no way for node-gyp to know whether it's from .npmrc or from the --cafile option.
That is, node-gyp doesn't know whether it should be relative to the current working directory (--cafile) or to the .npmrc file.
I'd suggest filing an issue with npm.  Maybe they can add some preprocessing step that turns it into an absolute path.


[es2015] Constructor don't call super

Versions
Angular CLI: 6.0.0-rc.1
Node: 8.11.1
OS: linux x64
Angular: 6.0.0-rc.1
... animations, cli, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular-devkit/architect: 0.5.1
@angular-devkit/build-angular: 0.5.1
@angular-devkit/build-optimizer: 0.5.1
@angular-devkit/core: 0.5.1
@angular-devkit/schematics: 0.5.1
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 6.0.0-rc.1
@schematics/angular: 0.5.1
@schematics/update: 0.5.1
typescript: 2.7.2
webpack: 4.5.0
Linux (Debian 8)

Repro steps

ng new project
change tsconfig.json target to es2015
ng serve --prod
run localhost:4200
open browser DevTools console

Observed behavior

Desired behavior
I want to see the demo page, but I see an error in the console.
Mention any other details that might be useful (optional)

I think this happens because Build Optimizer does not support ES2015 yet. This is something we mean to support. Meanwhile you can turn off Build Optimizer in your production configuration in the angular.json file.

@filipesilva is there any urgency to fixing this? Or is it like if we set the output to es6 then it's already "optimized" and we're not losing much by not having Build Optimizer.

Heya, just wanted to mention that we are tracking this problem in https://github.com/angular/devkit/issues/816.
@markgoho I don't have an exact timeframe but it is definitely a 6.x concern.

It only took 6 hours of troubleshooting to find this thread but in the angular.json file this works:
"buildOptimizer": false,


Update label-analytics.md

Typo of 'workspace', line 97.

@chrfox - PR is ready for final review.  This is just a simple typo issue.
Thank you.
cc: @kenwith


allow notifications to appear in the GNOME notification area

Is your feature request related to a problem? Please describe.
Sometimes I miss notifications or they need to be dismissed and that can be distracting.  It might help if they appeared in the gnome notification area.  I have illustrated this in the attached screenshot, i took this after invalidating/reconnecting a db.

Describe the solution you'd like
Add notifications to the gnome notification area.
Describe alternatives you've considered
I am not sure if this is something to do with dbeaver or eclipse.  Many other apps are able to do this in gnome.
Additional context
im on Ubuntu 21.04

@schmitzkr Thank you for the suggestion. It is a very big feature to implement. We will see if it is doable.

Some pointers:
GNOME Developer documentation: https://developer.gnome.org/documentation/tutorials/notifications.html
Java bindings for the GNOME API: http://java-gnome.sourceforge.net/
Notification class: http://java-gnome.sourceforge.net/doc/api/4.1/org/gnome/notify/Notification.html

See also https://bugs.eclipse.org/bugs/show_bug.cgi?id=229823, it's marked as fixed but it's quite unclear to me if they actually implemented a notification API that uses native notifications or what.


Write a R program to convert seconds to hours

Description
Write a R program to convert seconds to hours
1 hour = 60 minutes = 3600 seconds
Input  : 18000
Output : 5

How to contribute

Save the solution in program/convert_seconds_to_hours.r file
Add convert_seconds_to_hours.r file in convert-seconds-to-hours folder

!assign


Importing existing SQL data to index

Hi,
New to elastic. I have an existing laravel project. I have an SQL table with around 60k fields and would like to index them in elastic. How do I index my existing modal using scout? Is there an import option that comes with this package like mention in official scout documentation?
Thanks

I forgot updating the mapping after creating the Model. I added Searchable and mapping to existing model, updated elastic mapping and used scout import. Now all the records are indexed. Great package by the way


[Storage] feat(#955): add support for Iam conditions

Fix: #955

Thanks @jkwlui! Addressed feedback. Pending review from @jsimonweb.


Applying GNN-FiLM to dependency parsing

Hi!
I am just a fan of state of the art, not an NLP researcher.
I found on NLP-progress this SOTA result on dependency parsing using GNN.
https://www.aclweb.org/anthology/P19-1237
Source: https://github.com/sebastianruder/NLP-progress/blob/master/english/dependency_parsing.md
I believe they use a GAT, and they claim to be the first to use a GNN for this fundamental NLP task.
I was thinking that, you made what seems to be like a major, task generic advance in GNNs, and that it would be interesting for you to make a collaboration with those researchers.

They reach 97.3 in POS, 95.97 in UAS and 94.31 in LAS.
I dream of the day NLP tasks will have 99,99 % performance, and this collaboration could (I am maybe saying bullshit) make us closer to that goal: making NLP reliable.

@mmjb

This is an interesting idea, though I don't think that I'll have the time to include this dataset in the evaluation here anytime soon. I tried to have a look at the implementation listed in the paper, but the linked repository (https://github.com/AntNLP/gnn-dep-parsing) seems to not exist / be private. A first step may be to contact the authors to actually publish their code :-)


Literal "order" of Custom Pivot Entity properties breaks the join query

Describe the bug
When using Custom Pivot Entity , the order of the two foreign keys matters.
To Reproduce
Steps to reproduce the behavior:

Create the following entity schema:

export class Price {
  @PrimaryKey({type: 'uuid'})
  id: string = uuid.v4()

  @ManyToMany({ entity = () => Title, pivotEntity: () => SomePivot }, 'prices')
  titles = new Collection<Title>(this)
}

export class Title{
  @PrimaryKey({type: 'uuid'})
  id: string = uuid.v4()

  @ManyToMany({ entity = () => Title, pivotEntity: () => SomePivot }, 'titles')
  prices= new Collection<Price >(this)
}

export class SomePivot {
  @PrimaryKey({type: 'uuid'})
  id: string = uuid.v4()

  @ManyToOne({ entity = () => Title, fieldName: 'title_id' })
  title: Title

  @ManyToOne({ entity = () => Price , fieldName: 'price_id' })
  price: Price
}

Then when you run the following query:

const data = await em.findOne(Price, {id: '<id here>'}, {populate: ['titles']})

it will then return empty array.

However if you reverse the order of the properties in SomePivot:

export class SomePivot {
  @PrimaryKey({type: 'uuid'})
  id: string = uuid.v4()

 @ManyToOne({ entity = () => Price , fieldName: 'price_id' })
  price: Price

  @ManyToOne({ entity = () => Title, fieldName: 'title_id' })
  title: Title
}

The result will be retrieved correctly.
Expected behavior
Should return the related populated data correctly in custom pivot entity solution regardless of the order of the property
Additional context
Upon checking the debug log, you can see the query being done incorrectly:
select
  "t0".*, "s1"."price_id" as "fk__price_id", "s1"."title_id" as "fk__title_id"
from
  "titles" as "t0"
left join "some_pivots" as "s1" on
  "t0"."id" = "s1"."title_id"
where
  "s1"."title_id" in ('<id here>') # <-- where this should be "s1"."price_id" instead

Versions

Dependency
Version

node
16.14.2

typescript
4.6.3

mikro-orm
5.1.2

database
postgres

Yes, the order is important, you need to have the owning side defined first. This is documented:

The pivot table entity needs to have exactly two many-to-one properties, where first one needs to point to the owning entity and the second to the target entity of the many-to-many relation.

https://mikro-orm.io/docs/next/collections#custom-pivot-table-entity
This needs to be explicit, we can't map things based on type, as it is totally valid to have m:n relation targeting the very same entity on both ends.

Also note that your entity definition is invalid, you can't mix the two approaches of decorator signatures. Either use all the parameters, or just the first one as options object. Right now your second parameter is ignored and you have two owning sides defined.

It's true we could match the entities and fix the order in metadata automatically if the types are different, and keep this requirement one for M:N between same entity types. And I will definitely add a validation to the decorators so what you did throws, I though this is obvious but you are the second person in this week who tried to use it wrongly, and its easy to validate this, so let's do that.


DO NOT MERGE YET. Release 0.4

Description
See comments in the makefile for the proposed process of doing releases.
closes: #XXXX

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (master)
[ ] Linked to GitHub issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[ ] Wrote unit tests
[ ] Updated relevant documentation in the code
[ ] Added a relevant changelog entry to the Pending section in CHANGELOG.md
[ ] Re-reviewed Files changed in the GitHub PR explorer

I have a slightly pedantic comment regarding this current approach actually: it would be nice if the commit where a tag was created from matched the one on master, e.g. like the releases in RustCrypto RSA. Currently due to a merge commit, this isn´t happening and the tag's commit is on a release branch only.
I would propose a 2-step release, kind of like outlined here: https://github.com/crate-ci/cargo-release/issues/119
With some changes #54 & #53 to release-pr, it should be possible to add an action to the workflows and automate the first step of the release process. The second step should then be easy to automate too, but initially can be a manual run of (an adapted) make release.

OK. The side effect has been fixed.

(Added the "DO NOT MERGE YET" to prevent incidental merge. I believe that for now this is a tracking PR, and we will merge it to master when everything is finalized.)


Document convox ssh

I don't see docs for the convox instances keyroll and convox instances ssh commands.
-Noah

n/m found them on https://convox.com/docs/debugging/


Labelling Training Set - Bounding Boxes

Hi,
I have a question about training set labelling. Because I'm trying to detect an objects mask, I have been labelling my images as below:

I only selected mask boundaries for mask detection and didn't select any bounding boxes. Do I need to select bounding boxes as well for more proper results? Moreover when I don't select bounding boxes, how the algorithm compares its results with the test set since there is no bounding box in the set?

Maybe you can generate bboxes from masks, referring to
https://github.com/open-mmlab/mmdetection/blob/c72bc707e661d61cf09aca0a53ad21812ef874d0/mmdet/core/mask/utils.py#L68

@Czm369 thanks for your response. However I wonder if it is required to draw bounding boxes as well? I mean does the result of training change when I use a set that only contains mask labels and another set that contains both mask and bounding box labels?


Adyen Web component - upgrading to 5.20.0 or later triggers onError during local development

Describe the bug
During local development we specify an alias in the host file for our localhost:80
<IP_ADDRESS> mysite.local

We have whitelisted http://mysite.local in the list of domain allowlist in the Adyen portal, and everything works as expected when we run 5.19.0 or a previous versions locally
After we upgraded to 5.20.0 or any of the later versions, we end up with the Adyen component being loaded, but onError is triggered and the secure fields all display an error message + logs an error in the developer console.
securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'importKey')
    at securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136:69095
    at s (securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136:137085)
    at Generator._invoke (securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136:136838)
    at Generator.next (securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136:137448)
    at ze (securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136:66163)
    at a (securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136:69278)
    at securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136:69339
    at new Promise (<anonymous>)
    at securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136:69218
    at securedFields.html?type=card&d=aHR0cDovL2hhbGxvbi5sb2NhbA==:136:69382

The issue occurs both when the Adyen session is created from a deployed backend running on https or one running locally on http. Once we run the client deployed on https it works as expected with the 5.19.0 or later.
The hostfile alias setup is just my guess as the root-culprit, hence including that in the bug-description.
To Reproduce
Steps to reproduce the behavior:

Run a local web client, configure it to run against a hostfile alias
Client requests a backend to create a adyen session
Setup the adyen web component with the sessionId
The web component loads but errors are logged in the browser console and the fields display an error.

Expected behavior
The web component should load the fields without any errors
Screenshots

Desktop (please complete the following information):

OS: MacOS 13.0.1 and Windows 11
Browser: All browsers

Hi @ssolders ,
I believe the comment below is related to the problem you are facing:

This is happening because, in v5.20.0 we changed the way we encrypt our fields. We have starting using JSON Web Encryption (JWE).
This relies, internally, on window.crypto, and, more relevant in this case window.crypto.subtle (https://developer.mozilla.org/en-US/docs/Web/API/Crypto/subtle)
As you can see from the above link (> Browser compatibility table), this feature is marked as "Secure context required".
From MDN's docs on secure contexts:
Locally-delivered resources such as those with http://<IP_ADDRESS> URLs, http://localhost and http://*.localhost URLs (e.g. http://dev.whatever.localhost/), and file:// URLs are also considered to have been delivered securely.
In essence, without the localhost an http domain is not considered secure and therefore window.crypto.subtle fails.

(from #1710)
Can you try using alias with localhost ?  or serve your web app through https?

Hi @ribeiroguilherme, thanks for the quick response, we can look into that yea!

Closing this issue for now. Feel free to reach out if the problem persists.


Options for expressing the broader relationship among aspects

@uscholdm @philblackwood
In the new uom model, aspects are organized into a hierarchy.  Options for the linking relationship, including pros and cons:

skos:broader

Note: skos:broader has been proposed, but we actually want the transitive version, skos:broaderTransitive.
Broadly disliked because it doesn't indicate direction.
Up to now we have not wanted to import another ontology into gist. gist is an upper ontology - should it therefore be self-contained?

New property gist:hasBroader

Con: Easily confused with skos:broader? - especially if the gist one is transitive.

New property with some other name

Pro: Addresses problems with both 1 and 2.

Reuse gist:hasSuperCategory

Pro: Doesn't involve using SKOS or defining a new predicate.
Con: Although no domain and range are specified, the name suggests it only applies to categories, and therefore will be confusing to use with aspects.

Rename gist:hasSuperCategory (major change)

Use a name to indicate hierarchical, broader/narrower relationships that does not suggest categories.
Pro: Gets the advantages of 4 and solves the issues with all those above.
This may bring us back to gist:hasBroader.
Con: Changing the name of a long-standing property.

Doug:

We're already using SKOS
SKOS is the ontology of choice in the taxonomy world

Michael: imports are ignored, so import of SKOS isn't a problem
Dave/Rebecca: but we would want to load the imports into a KG
Dylan: Include a stub definition of skos:broaderTransitive?
Rebecca: but then we don't get transitivity
Michael: do transitivity with SPARQL property paths. Transitivity explodes the KG
Doug: Define our own property with an owl:equivalentProperty to skos:broaderTransitive
Jess: show that we work well with others
Peter: Cleaner to make our own property. Use an additional file with the equivalence for optional import, as we do with SHACL.
Rebecca: gist:hasBroader (transitive), gist:hasDirectBroader (intransitive)
Michael: gist:hasBroader (intransitive) and gist:hasBroaderTransitive
Dylan: hasParent?
Scott: don't worry about the SKOS names since we're not using SKOS. Add annotation pointing to SKOS terms.
Imported file would have properties back to skos:semanticRelation and include skos:Concept.
Whatever we decide we should document it.
DECISION:

Define 2 gist properties, transitive and non-transitive, and remove the 2 supercategory properties
Names: gist:hasBroader (transitive), gist:hasDirectBroader (intransitive)
We will not create a file containing the equivalences of SKOS to gist


Pinning a folder with a large number of files times out.

OS: Windows
Version of IPFS Desktop: 2.15.1

I have relatively large tree of files (QmbaRnTcc4qKKuoJ31aooZApoDMNJwahYoSKxBctFmu5Rg). There are about 220,000 files organized into 220 folders with 1000 files each.
I wish to pin it.
Running the pin command on the top level folder will go away for a relatively short time and then terminate with a message indicating the operation has timed out. I can pin the individual subdirectories (of 1000 files each) OK, but it would be tedious. The interface does not allow me to select multiple directories to pin at once.
Using the CLI, I can perform "c:ipfs --api=/ip4/<IP_ADDRESS>/tcp/5001 pin add --progress --recursive QmbaRnTcc4qKKuoJ31aooZApoDMNJwahYoSKxBctFmu5Rg" and while iseems very slow and takes a long time, it does not time out.
Expected behavior
I am pinning a large number of files and expect the operation to take a long time. I do not want the operation to time out in an arbitrary amount of time. If the operation is working correclty, I would like it to finish the requested task  (preferably with some progress indicator like the CLI can give me).

Duplicate of https://github.com/ipfs/ipfs-webui/issues/1991


[WIP] Default to the first usable extension for saving.

Fixes when saving a resource, if you don't have the right extension selected, it won't save correctly.
Sponsored by IMVU.
I think we should somehow split the label from the filter contents. Not sure, because now we filter the browser to the default too.

The problem is, you cannot change extension by writing in the field edit it will use whatever is selected in the picker
so saving a TileSet and renaming the file to res, will still save it as .res.tres
the "All recognized" option did not have this issue i think

"I"
would expect the field edit to update
and change the extension
to what you just picked
or have the dialog not autocomplete the extension in first place

void EditorFileDialog::update_file_name() has the code for the rename

According to reports this isn't a fix.

I don't know if this is usable.


Minor rule issues

I have now run a check over about 800 files - first observation is there are a lot of faults in a lot of PDFs! And I agree with the point you made a few weeks back - the version number in the file is basically fictional.
I did find a few faults in the model, but not looking too bad overall. There are undoubtedly more, but there is just so much noise from actual failures they're hard to spot.

XObjectImageSoftMask - Width and Height only have to be the same as the parent image if Matte is specified.

Collection field View - test should be fn:Eval((@View!=C) || fn:IsPresent(Navigator))

FieldCh field Opt - I read "Each element of the array is either a text string representing one of the available options or an array consisting of two text strings" as saying you can mix the entries - some are strings, some are arrays of two strings. Which is not allowed by ArrayOfArrays_2StringsText

XObjectFormType1 - Resources is set to required, but it's "(Optional but strongly recommended; PDF 1.2)". If the stream  uses no resources, it surely doesn't need to be there if it's empty? So should be optional.

ArrayOf_4BorderThicknessIntegers - these don't have to be integers. "The value of each edge shall be a positive number in default user space units representing the border’s thickness"

VRI - CRL and OCSP are only required if the objects they refer to exist - which sounds like a complicated way of saying "optional" to me.

Signature - the SubFilter field makes "adbe.x509.rsa_sha1" allowed after 1.6, should always allowed (been there since 1.3)

Signature - the SubFilter field makes "adbe.x509.rsa_sha1" allowed after 1.6, should always allowed (been there since 1.3)

ISO 32000-2:2020 Table 255 has an italic "(PDF 1.6)" indicator which is therefore incorrect. ISO 32000-1:2008 is the same presumably because Adobe PDF 1.7 said "PDF 1.6 defines the following values for public-key cryptographic signatures: adbe.x509.rsa_sha1, adbe.pkcs7.detached, and adbe.pkcs7.sha1" . Adobe PDF 1.3 and PDF 1.4 fail to mention any values for SubFilter (even searching for just "x509" returns zero results) - PDF 1.3 Table 7.53 and PDF 1.4 Table 8.60 do not list any values. Adobe PDF 1.5 Table 8.93 was the first PDF reference that explicitly mentioned the 3 values incl. "adbe.x509.rsa_sha". So from a specification-centric PoV the first doco for the value was in PDF 1.5, not PDF 1.6.
I also note that the sentence starting "Other values may be ..." should really be a new para in Table 255 in ISO 32000-2:2020 - it is not PDF 2.0 only.

See Errata #219

For VRI, I don't think purely optional is quite the same. I think it means that if the parent DSS dictionary have non-empty OSCPs or CRLs arrays then those keys are required in the VRI dictionary. I've captured this as fn:IsRequired(fn:ArrayLength(parent::CRLs)>0)

See Errata # for BorderThickness in StandardLayoutAttribute*. I agree it should be a number, but the spec is ambiguous if it is >0 or >=0!

For XObjectFormType1, Resources: clause 7.8.3 was reworded in PDF 2.0 (3rd bullet): "For other content streams, a PDF writer shall include a Resources entry in the stream's dictionary specifying the resource dictionary which contains all the resources used by that content stream. This shall apply to content streams that define form XObjects, patterns, and annotation appearances.". And, yes, that somewhat contradicts / amends Table 93.
I know there are ongoing discussions regarding this wording but, for now (such as Errata #128), I'd like to leave it to reflect the words as currently stated in ISO 32000-2:2020 and not yet corrected by any errata.

For Collection I didn't quite do as you suggest because I always try to keep the wording as per the spec so if the predicates were read aloud they would be an obvious match (rather than an alternate boolean expression). But I think it is correct now...

Everything addressed. Thanks!

Sorry to come back to some of these, but:

fn:Eval(fn:IsPresent(Matte) && (@Width==parent::@Width)) - doesn't this evaluate as false if Matte is not present?

[fn:Eval(fn:SinceVersion(2.0,((fn:IsEncryptedWrapper() && (@View==H)) || (fn:IsPresent(Navigator) && (@View==C)))))] - same, this will evaluate as false if /View/D (which is the default)?

I'm starting to worry I've misunderstood the grammar again, but I can see in the current version of the code that fn:IsPresent will always return a boolean, never null. Same for fn:IsEncryptedWrapper.

It feels like you're reaching for something more like (@Matte && (@Width==parent::@Width)) for the first - if that's where you end up going, a note in INTERNALGRAMMAR.md like (eg) "when evalatued in a boolean context , non-boolean item are equivalent to true" (or whatever you decide the rule is) might be warranted.

I'm after a more logic-predicate-like method for expressing things than a functional programmatic (@Matte && (@Width==parent::@Width)) statement. I will investigate a 2-parameter version of fn:IsPresent(condition1,condition2) so it would become fn:Eval(fn:IsPresent(Matte,(@Width==parent::@Width))) which reads aloud nicely as "Only when Matte is present, then the value of Width shall be equal to ..."
And please don't rely on the code for any significant meaning. It is very much just PoC and thinking out loud...

Collection/View corrected for PDF 2.0 special case


add supervisord

Codecov Report

Merging #2850 into dev will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             dev    #2850      +/-   ##
=========================================
+ Coverage   95.3%   95.31%   +<.01%
=========================================
  Files         73       73
  Lines      13811    13831      +20
=========================================
+ Hits       13163    13183      +20
  Misses       648      648

Impacted Files
Coverage Δ

qiita_db/util.py
95.05% <100%> (ø)
:arrow_up:

qiita_db/test/test_util.py
99.7% <100%> (ø)
:arrow_up:

qiita_db/environment_manager.py
43.12% <100%> (+0.27%)
:arrow_up:

Continue to review full report at Codecov.

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


Inject hypervisor type and volume format on Quota tariffs

Description
This PR adds two new preset variables into the Quota activation rules: hypervisor type and volume format. This allows operators to customize tariffs based on these two properties.
The respective preset variable will be injected into tariffs with the following usage types:

RUNNING_VM: value.hypervisorType;
ALLOCATED_VM: value.hypervisorType;
VM_SNAPSHOT: value.hypervisorType;
SNAPSHOT: value.hypervisorType;
VOLUME: value.volumeFormat;
VOLUME_SECONDARY: value.volumeFormat.

Example of an activation rule using value.hypervisorType:
if (value.hypervisorType=='KVM') {
  1
} else {
  2
}

Example of an activation rule using value.volumeFormat:
if (value.volumeFormat=='QCOW2') {
  3
} else {
  4
}

Furthermore, this PR also fixes the preset variable resourceType being injected into the JavaScript interpreter without quotes, which prevented the activation rules from executing.
2023-10-05 16:43:08,886 ERROR [o.a.c.q.QuotaManagerImpl] (qtp1955920234-22:ctx-d90594cb ctx-6d904941) (logid:5f086162) Failed to calculate the quota usage for account [{"accountName":"fabricio","domainId":1,"id":21,"uuid":"ae254524-854a-4049-9d1b-721cfaffdd71"}] due to [Unable to execute script [ account = {"role":{"type":"User","id":"64b4ca77-26de-11ec-8dcf-5254005dcdac","name":"User"},"id":"ae254524-854a-4049-9d1b-721cfaffdd71","name":"fabricio"}; domain = {"path":"\/","id":"52d83793-26de-11ec-8dcf-5254005dcdac","name":"ROOT"}; resourceType = KVM; value = {"accountResources":[{"domainId":"52d83793-26de-11ec-8dcf-5254005dcdac","zoneId":"8b2ceb16-a2f2-40ea-8968-9e08984bdb17"},{"domainId":"52d83793-26de-11ec-8dcf-5254005dcdac","zoneId":"8b2ceb16-a2f2-40ea-8968-9e08984bdb17"},{"domainId":"52d83793-26de-11ec-8dcf-5254005dcdac","zoneId":"8b2ceb16-a2f2-40ea-8968-9e08984bdb17"}],"computeOffering":{"customized":false,"id":"ab647165-7a0a-4984-8452-7bfceb036528","name":"Small Instance"},"computingResources":{"cpuNumber":1,"cpuSpeed":500,"memory":512},"host":{"tags":[],"id":"3d7d8532-d0cf-476c-a36e-1b936d780abb","name":"cloudstack-lab-host-2"},"hypervisorType":"KVM","osName":"Ubuntu 18.04 LTS","tags":{},"template":{"id":"bb4b7b6f-5249-4c18-a5f6-dd886683b702","name":"Ubuntu Bionic"},"id":"a83ece0c-58e7-4bc5-8564-f70fe8e34fc0","name":"t2"}; zone = {"id":"8b2ceb16-a2f2-40ea-8968-9e08984bdb17","name":"sc-floripa-01"}; if (value.hypervisorType=='KVM') { 1 } else { 2 }] due to [javax.script.ScriptException: ReferenceError: "KVM" is not defined in <eval> at line number 1]].

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[X] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[X] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[X] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?
I created two tariffs through CloudMonkey:
(admin) 🐱 > quota tariffcreate activationrule="if (value.hypervisorType=='KVM') { 1 } else { 2 }" usagetype=1 value=0 name="hypervisor" description="hypervisor"
{
  "quotatariff": {
    "activationRule": "if (value.hypervisorType=='KVM') { 1 } else { 2 }",
    "currency": "$",
    "description": "hypervisor",
    "effectiveDate": "2023-10-04T21:46:19+0000",
    "name": "hypervisor",
    "tariffValue": 0,
    "usageDiscriminator": "None",
    "usageName": "RUNNING_VM",
    "usageType": 1,
    "usageTypeDescription": "Running Vm Usage",
    "usageUnit": "Compute*Month",
    "uuid": "85941d4b-cc6e-4e18-ba85-7708ea3a41eb"
  }
}

(admin) 🐱 > quota tariffcreate activationrule="if (value.volumeFormat=='QCOW2') { 3 } else { 4 }" usagetype=6 value=0 name="volume format" description="volume format"
{
  "quotatariff": {
    "activationRule": "if (value.volumeFormat=='QCOW2') { 3 } else { 4 }",
    "currency": "$",
    "description": "volume format",
    "effectiveDate": "2023-10-04T21:48:42+0000",
    "name": "volume format",
    "tariffValue": 0,
    "usageDiscriminator": "None",
    "usageName": "VOLUME",
    "usageType": 6,
    "usageTypeDescription": "Volume Usage",
    "usageUnit": "GB*Month",
    "uuid": "7b6c9eae-b369-40b7-adc3-0add4abf27bd"
  }
}

Then, I deployed a virtual machine using KVM, called quotaUpdate and verified through the logs that that the calculated value was 1 for the first tariff and 3 for the second.

@blueorangutan package

@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan test

@DaanHoogland a [SL] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

[SF] Trillian test result (tid-8095)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 45061 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr8138-t8095-kvm-centos7.zip
Smoke tests completed. 111 look OK, 2 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

test_02_list_cpvm_vm
Failure
0.05
test_ssvm.py

test_04_cpvm_internals
Failure
0.03
test_ssvm.py

test_12_destroy_cpvm
Error
3.15
test_ssvm.py

test_08_upgrade_kubernetes_ha_cluster
Failure
677.58
test_kubernetes_clusters.py

the gha failure is codecov upload. I don't think the ssvm errors are related. @shwstppr @GutoVeronezi Are we requiring 3rd party testing on this?

the gha failure is codecov upload. I don't think the ssvm errors are related. @shwstppr @GutoVeronezi Are we requiring 3rd party testing on this?

It would be interesting to have 3rd party testing.

the gha failure is codecov upload. I don't think the ssvm errors are related. @shwstppr @GutoVeronezi Are we requiring 3rd party testing on this?

It would be interesting to have 3rd party testing.

I am not using quota, do you have a suggestion for who could test this, @GutoVeronezi ?

@DaanHoogland I'll ask someone to test this.

I am not using quota, do you have a suggestion for who could test this, @GutoVeronezi ?

@DaanHoogland, maybe @hsato03 could test it.

thanks guys


Minification of resources

Guy, thanks and great job.
Is there a plan to add minification for included resources(html, json, etc.)? These are imported and passed through text plugin.
import template from './template.html!text';

That works great for development, but for production build I would like to minify templates.

Template minification is supported in principle, but would need to be handled by the plugin itself. So template plugins could implement their own minification if they check outputOptions.minify flag passed into the bundle function. See the CSS plugin for example - https://github.com/systemjs/plugin-css/blob/master/css-builder.js#L56.
If you're interested on working on a plugin here, just let me know how I can help.


Bad Replace in files for vector2_*

In filesGeneration.py, you replace vector_2 with vector_2 but vector_3 with vector3_... This is by my accounts an error.

Yep, that really seems to be an issue. feel free to open a PR about it!


Docker testing init script has wrong service url

The script was initializing the broker server url with a http url,
using the binary protocol port. This patch fixes that and also logs
the bash commands to make this easier to debug in future.

retest this please // ReplicatorTest.testCloseReplicatorStartProducer


WT_SESSION doesn’t appear in WSL

We did not realize that WT_SESSION wouldn’t appear in WSL because it’s not in WSLENV.
This may also impact VS Code.
/cc @mixmastamyk

@benhillis is it valid for us as a hosting application to prepend to the user’s WSLENV?

Yeah that should be fine.


RequestTransformer determines the wrong url as best match

In some scenarios, the RequestTransformer determines the wrong base url as the most matching url which leads to a 404 error in the frontend. Consider a shop with two sales channels:
SalesChannelA with the domains

https://domain.com
https://domain.com/en

SalesChannelB with the domains

https://domain.com/sub
https://domain.com/sub/en

The error occurs at the end of the function findSalesChannel in the class Shopware\Storefront\Framework\Routing\RequestTransformer where the most matching shop base url should be determined.
If we call the url https://domain.com/sub/en/category, we sometimes get a 404 error, even if the category exists and should be callable. "Sometimes" because it depends on the order the domains were loaded by the domainLoader. In the described scenario, 3 base urls match the url we called. If they are loaded in the following order, the error occurs:

https://domain.com/sub/en
https://domain.com
https://domain.com/sub

The correct domain would be the first, but the last is the one that is returned as the most matching.
This happens because the current url is compared with the last url, not the best match.
At first, _https://domain.com/sub/en_ is selected as bestMatch and set as lastBaseUrl. After this, https://domain.com is compared to the lastBaseUrl and does not fit, so bestMatch is not updated, but lastBaseUrl is set to https://domain.com. At last, _https://domain.com/sub_ is compared with the lastBaseUrl and matches better than https://domain.com, so it is selected as the best matching url, even if the first url would be the best match.
To fix this, the current base url should not be compared with the last base url, but instead with the current best match, so that the best match cannot be overwritten with a less suitable match.

[public] Shopware automated response: This issue is linked to the internal issue: NEXT-31919
[created from NEXT-31919, comment 514967]


Buttons components should not be Capitalized

Hello !
I'm not sure if it is intended or not, but the buttons always capitalize the text inside, and I have to add a normal-case modifier.
Thanks for this lib !
Regards

@RSickenberg This is intended.
In almost all default themes, buttons are capitalize. This is adapted from Material Design buttons.
There are 3 ways to change that:

using normal-case utility class on all buttons
adding a style to your css:.btn{
  text-transform: none;
}

If you're using a custom theme, set the button style in config

Please let me know if you have any questions

I used normal-case indeed. If it's not a bug, it's okay for me! :-)


feat: add Translation Memory API methods

Codecov Report
Attention: Patch coverage is 52.55474% with 65 lines in your changes are missing coverage. Please review.

Project coverage is 53.28%. Comparing base (ddda4a7) to head (4b89701).

Files
Patch %
Lines

crowdin/model/translation_memory.go
0.00%
59 Missing :warning:

crowdin/translation_memory.go
92.21%
3 Missing and 3 partials :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #33      +/-   ##
==========================================
- Coverage   53.34%   53.28%   -0.06%
==========================================
  Files          34       36       +2
  Lines        1633     1770     +137
==========================================
+ Hits          871      943      +72
- Misses        710      772      +62
- Partials       52       55       +3

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


Add link to change dues package in pay dues card

To avoid locking members in after they select a dues package

Fixes #521


Fix data race in RAND_DRBG_generate

Back-port of a83dc59afa2e to 1.1.1-stable.
Fixes #7394

The builds fail.
try to revert the renamings, i.e:

s/reseed_gen_counter/generate_counter/g
s/reseed_prop_counter/reseed_counter/g

then it should compile.

Aargh...

I'll backport the renamings. As far as they don't touch any public interfaces, that should be ok and prevent unecessary conflicts in the future.

Yes, also the comment changes are mostly good.

You could try the following:

revert the cherry-pick
do the renamings and commit them
retry the cherry-pick

Are you working on a PR with the trivial changes from master?
Would be appreciated. I have to leave now.
Thanks

I can do it sometimes later this evening.

If you have enough time to wait for it, I'll fix 1.1.1 such that both your commit a83dc59afa2e0207180d7218efed19b20d48de95 and my pr can be cherry-picked cleanly afterwards. Then this pr will be superfluous.

Yes, thanks!


dont test builds and charts on markdown changes

Initially attempted to skip build tests on .md changes in this PR: https://github.com/packethost/crossplane-provider-equinix-metal/pull/42
The rule provided in this PR was either ignored because the rule was included in a PR from a fork, or it doesn't work.
I'm going with the former.

I should skip golangci too.


[EVM-Equivalent-YUL] Gas return fix for benchmarks

What ❔
This PR makes a fix, it was needed on return to store the remaining gas

Why ❔

Checklist

[x] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[ ] Tests for the changes have been added / updated.
[ ] Documentation comments have been added / updated.

Fix already present in evm-equivalence-yul


[api-minor] Fix completely broken getStats method by returning stats in Objects, rather than in Arrays (PR 11029 follow-up)

With the changes to the StreamType/FontType "enums" in PR #11029, one unfortunate result is that getStats now always returns empty Arrays. Something that everyone, myself included, apparently missed is that you obviously cannot index an Array with Strings :-)
I wrongly assumed that the unit-tests would catch any bugs, but they apparently suffered from the same issue as the code in src/core/.
Another possible option could perhaps be to use Sets, rather than objects, but that will require larger changes since LoopbackPort (in src/display/api.js) doesn't support them.
/cc @brendandahl
/cc @timvandermeij

/botio unittest

Thank you!


Uncaught exception when trying to run mvn

infer --version
Infer version v0.12.0-a5c999db
Copyright 2009 - present Facebook. All Rights Reserved.

infer capture -g -- mvn package
Logs in .../infer-out/logs
Capturing in maven mode...
Uncaught exception:

  Xmlm.Make(String)(Buffer).Error(_, _)

Raised at file "src/import0.ml" (inlined), line 234, characters 22-32
Called from file "src/exn.ml", line 70, characters 6-15
Called from file "base/Utils.ml", line 202, characters 16-20
Re-raised at file "base/Utils.ml", line 202, characters 49-58
Called from file "base/Utils.ml", line 216, characters 2-16
Called from file "integration/Maven.ml", line 133, characters 2-49
Called from file "integration/Maven.ml", line 148, characters 4-39
Called from file "backend/infer.ml", line 36, characters 2-36
Called from file "backend/infer.ml", line 97, characters 6-52

Cause is a pom.xml that has some strange xml tags, apparently not expected by infer.
The issue here (or feature request, please) is that infer will print which part of the xml  #caused parse to fail.

P.S. mvn command without infer succeeds despite unusual xml, it only fails under infer.

Thanks for the report @sinelaw. The exception is raised from the XML library we use; I think the solution will be to wrap each XML file manipulation into a try _ with to catch the error and try to print all the info we have. The exception does contain the position in the file and the type of error, according to the xmlm docs: exception Error of pos * error, so that should address your issue of not having enough information.
Is there a way you could share the offending XML file so that I can try and fix the underlying problem?

Here:
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.acme.foobar</groupId>
    <artifactId>foobar</artifactId>
    <packaging>jar</packaging>
    <version>1</version>
    <name>FOOBAR</name>
    <organization>
    </organization>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ssZ</maven.build.timestamp.format>
        <project.timestamp>${maven.build.timestamp}</project.timestamp>
        <acme.version>${project.version}</acme.version>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <showWarnings>true</showWarnings>
                    <compilerArguments>
                        <Xlint:all/>
                        <Werror/>
                    </compilerArguments>
                </configuration>
            </plugin>
        </plugins>
        <resources>
        </resources>
        <pluginManagement>
        </pluginManagement>
    </build>
    <dependencies>
    </dependencies>
    <repositories>
    </repositories>
</project>

The problematic line is <Xlint:all/> and perhaps also the one following it.

Thanks again for reporting the bug!


add continuous integration

Description
This will ensure our tests are passing on each push to maintain code quality.
Type of change

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

Change Status

[x] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

 Configure continuous integration (CI)


Removed outlines from good-poor-bad rectangles

I think this looks better and is more clear.

lgtm


Postprocessing does not handle camera's viewport correctly

repro: https://playcanvas.com/editor/scene/1103574
forum thread: https://forum.playcanvas.com/t/trouble-with-double-camera/18460/12
related fix: https://github.com/playcanvas/engine/pull/2939
if post processing is applied on camera with smaller viewport (minimap), the postprocessing gets clipped to the viewport which it should not .. it should apply to whole render target

With the engine moving to render pass architecture, this will not be addressed.


Conversion *extensions.Deployment to *v1beta1.Deployment fails

I am trying to covert *extensions.Deployment to *v1beta1.Deployment in go-client 2.0 but it fails (actually since 1.4):
2017/03/19 10:17:05 failed to convert: converting (extensions.Deployment).CreationTimestamp.Time.sec to (v1beta1.Deployment).CreationTimestamp.Time.sec: Cannot set dest. (Tried to deep copy something with unexported fields?)
exit status 1

import (
	"log"

	_ "k8s.io/client-go/kubernetes"
	"k8s.io/client-go/pkg/api"
	"k8s.io/client-go/pkg/apis/extensions"
	"k8s.io/client-go/pkg/apis/extensions/v1beta1"
	"k8s.io/client-go/pkg/runtime"
)

const yaml = `
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: push
`

func main() {

	d := api.Codecs.UniversalDecoder()
	obj, _, err := d.Decode([]byte(yaml), nil, nil)
	if err != nil {
		log.Fatalf("could not decode yaml: %s\n%s", yaml, err)
	}

	src := obj.(*extensions.Deployment)
	s := runtime.NewScheme()
	dst := &v1beta1.Deployment{}
	err = s.Convert(src, dst, 0)
	if err != nil {
		log.Fatalf("failed to convert: %s", err)
	}
}

I have created the same issue in the Kubernetes repository for client-go 1.4 with more info a while ago, but it still looks broken: https://github.com/kubernetes/kubernetes/issues/39864

Instead of instantiating another scheme, using the api.Scheme.Convert(... works for me.

@caesarxuchao Works indeed, thanks.

@caesarxuchao This broke for go-client 4.0.0

@jinankjain could you paste your code?

@caesarxuchao Yeah sure https://github.com/kubernetes/client-go/issues/253#issuecomment-318210890


Improve error message when --project-cache-dir is used together with --watch-fs

Fixes #18635.

OK, I've already triggered QuickFeedbackLinux build for you.

OK, I've already triggered a build for you.


Perform O(1) entry lookups for entries not stored on all servers

Because entries now must be stored on all servers before they can be cleaned from the log (in order to ensure session events are always triggered), we can add some optimizations to perform lookups of log entries in O(1) time. An entry at offset 0 in any segment always be present at position 0 in that segment until the globalIndex Has increased past the segment's lastIndex.
Note that this optimization does not negatively impact membership changes. When a member joins the cluster, the cluster's globalIndex will remain the same. This means the joining node will receive entries and expect that some may be missing from the log.
This optimization should mean huge performance improvements. Essentially, because this optimization affects all entries not stored on all servers, most reads from the Raft implementations should have O(1) lookup time.

16a279dce51c160af252f346fe4b340df9575653


LP Token Icon DFI-BTC for circular design to use a circle split into 2 halfs

What UI/UX improvements would you like to be implemented:
LP Token Icon DFI-BTC for circular design to use a circle split into 2 halfs

Left DFI 0-50%
Right BTC 50-100%

/assign @thedoublejay what do you think?

/triage accepted

Bad idea lol


feat(logging): instrument logging.exception to collect exceptions

:tada: This PR is included in version 1.11.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


emule-cv: Deprecate manifest

Outdated

Duplicate with extras/emule-community

[x] I have read the Contributing Guide.

CI for Powershell 7 works fine, but Powershell 5 fails for every PR.
Looks like related to changes in Scoop ver 0.2.3. I am still finding the problem.


fix(types): utility type removed from RN 0.71

Overview

Updating to react native 0.71, TypeScript errors on this library. The utility type Constructor is private in latest typings. Using this export degrades to any type.
JSX element class does not support attributes because it does not have a 'props' property.
Test Plan

npx tsc runs clean after making this change on a RN 0.71 app.

Just to point out, RN 0.71 is now TypeScript-by-default, so this library will fail for all new projects without this or some other fix.

Can a maintainer please merge this?

any timeframe on merging this?
@Naturalclar :D

@narliecholler thanks for the ping! just released new version with the fix as 2.4.1

⭐


Use jsonify to send responses in REST api

This function is built into Flask for this exact purpose

👍


rosdep key for userspace linux kernel headers

(follow-up of https://github.com/ros/rosdistro/pull/15050)
On Ubuntu linux-headers-generic pulls in files under /usr/src, mainly for buiding kernel modules.
The header files in /usr/include/linux/ are provided via linux-kernel-headers (debian, ubuntu).
On Arch Linux linux-headers provides the kernel headers for modules and linux-api-headers provides userspace headers.
On Fedora kernel-headers provides the userspace headers, and kernel-devel provides the headers for building modules.
For compatibility reasons I have included both for the linux-headers-generic key.
I was not able to find the packages in the package DB, I had do verify it in the docker images.

Thanks @ipa-mdl !

The released version  of  rosdep cannot handle virtual packages, but the source version can.
Should we replace linux-kernel-headers by linux-libc-dev in the mean time?

oh I forgot about that. Yes I think it's safer to switch to linux-libc-dev the time a newer version of rosdep is released. Thanks for reporting it


Support DROP INDEX

Please answer these questions before submitting your issue. Thanks!
Which version of Sharding-Jdbc do you using?
Expected behavior
Actual behavior
Steps to reproduce the behavior
Please provide the reproduce example codes (such as github link) if possible.

finished at 2.0.2


Getting Started Part I fix solution for constraint 2

There is a minor error in the Getting Started Part 1 problem description. Constraint g_2 is satisfied for x_1 not in ]0.4,0.6[, instead of x_1 in [0.4,0.6].

Thanks!


Laser ON/OFF with CNC Relay Module

I have a small 12V laser I've mounted on my gantry and I want to know if it's possible to utilize the relay module installed on slot 3 of my 6 pack to control the ON/OFF off my laser. I'd like it to work with Gcode that's written with for a laser. I don't care about laser strength in terms of the 0 to 255 scale.
I see the example code:
// Relay module as spindle on CNC I/O Module socket #2

#define SPINDLE_TYPE            SpindleType::RELAY // default, check actual $Spindle/Type Setting
#define SPINDLE_OUTPUT_PIN      GPIO_NUM_2 // relay as spindle on module socket #2
// Relay module as spindle on CNC I/O Module socket #3

#define SPINDLE_TYPE            SpindleType::RELAY // default, check actual $Spindle/Type Setting
#define SPINDLE_OUTPUT_PIN      GPIO_NUM_26 // relay as spindle on module socket #3

// Relay module as Mist on CNC I/O Module socket #4
#define COOLANT_MIST_PIN  GPIO_NUM_14 // Relay for Mist on module socket #4

However I'm questioning if it's possible to drive the laser with Gcode written for a laser. How would this be done? Thanks.

It is a bit of a hack, but you could use it like a relay spindle.
Ideally you should use a 5v output module in laser mode.

I'm ok with using the 5V output module. I can come up with some hardware relay circuit to fire the 12V laser with the 5V output module.
Question
What do I need to add in my machine file to turn on the 5V output(output 1 pin) on module slot #5 so that my gcode generated from Fusion 360 using grbl laser post processor turns it ON/OFF.
I've made an example Gcode file below.  Just some test circles. This with the laser manually wired on so it stays on. (The laser moves to the next circle so fast it appears to turn it off but it is on all the time)

It is a bit of a hack, but you could use it like a relay spindle.
Ideally you should use a 5v output module in laser mode.

I'm trying to use the 5V module for this now per your suggestion. However I get some compile errors about "Relay" is not a spindle type. I tried "LASER" also.
My machine definition file...
#pragma once

#define MACHINE_NAME            "XXYZ_4XInput_4XInput_Relay_Spindle_5VOutput_ExtSteppers2"

#define N_AXIS 6

// I2S (steppers & other output-only pins)
#define USE_I2S_OUT
#define USE_I2S_STEPS
//#define DEFAULT_STEPPER ST_I2S_STATIC

#define I2S_OUT_BCK      GPIO_NUM_22
#define I2S_OUT_WS       GPIO_NUM_17
#define I2S_OUT_DATA     GPIO_NUM_21

#define X_DISABLE_PIN           I2SO(0)
#define X_DIRECTION_PIN         I2SO(1)
#define X_STEP_PIN              I2SO(2)

#define X2_DIRECTION_PIN        I2SO(4)
#define X2_STEP_PIN             I2SO(5)
#define X2_DISABLE_PIN          I2SO(7)

#define Y_DISABLE_PIN           I2SO(8)
#define Y_DIRECTION_PIN         I2SO(9)
#define Y_STEP_PIN              I2SO(10)

#define Z_DIRECTION_PIN         I2SO(12)
#define Z_STEP_PIN              I2SO(13)
#define Z_DISABLE_PIN           I2SO(15)

#define STEPPER_RESET           GPIO_NUM_19

// Socket #1
#define X_LIMIT_PIN             GPIO_NUM_33
#define Y_LIMIT_PIN             GPIO_NUM_32
#define Z_LIMIT_PIN             GPIO_NUM_35
#define PROBE_PIN               GPIO_NUM_34

// Socket #5
#define SPINDLE_TYPE            SpindleType::RELAY
#define SPINDLE_OUTPUT_PIN      I2SO(24) // No PWM
#define SPINDLE_DIR_PIN         I2SO(25)
#define COOLANT_MIST_PIN        I2SO(26)
#define COOLANT_FLOOD_PIN       I2SO(27)

// === Default settings
#define DEFAULT_STEP_PULSE_MICROSECONDS I2S_OUT_USEC_PER_PULSE
#define DEFAULT_HOMING_SQUARED_AXES bit(X_AXIS)

Here are the spindle types we support.
enum class SpindleType : int8_t {
    NONE = 0,
    PWM,
    RELAY,
    LASER,
    DAC,
    HUANYANG,
    BESC,
    _10V,
    H2A,
};

They are case sensitive so it must be...
SpindleType::RELAY
I cut and paste the machine definition in your last post and it compiled fine for me.  in both PlatformIO and the Arduino IDE.

I've loaded update grbl esp32 successfully now, but am getting an error when laser mode is enabled and I run the gcode in my post above. I'm not sure what's going on, can you help?
Skipping comment-only line: (%)
Skipping comment-only line: (1001)
>>> G90G94
ok
>>> G17
ok
>>> G21
ok
Skipping blank line #6
Skipping comment-only line: (2D Profile1)
>>> G54
ok
>>> G0S255M4
/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c:1442 (xQueueGenericReceive)- assert failed!
abort() was called at PC 0x4008f9c1 on core 1
Backtrace: 0x400935e4:0x3ffd2c60 0x40093815:0x3ffd2c80 0x4008f9c1:0x3ffd2ca0 0x400f92c7:0x3ffd2ce0 0x400dc82b:0x3ffd2d00 0x400dc6f9:0x3ffd2d20 0x400dc7b5:0x3ffd2d40 0x400dcce2:0x3ffd2d60 0x400d4025:0x3ffd2d80 0x400d77fd:0x3ffd2e40 0x400d820d:0x3ffd2e60 0x400d452f:0x3ffd2fd0 0x400d2c4f:0x3ffd2ff0 0x400fad09:0x3ffd3010 0x4008fd2d:0x3ffd3030
Rebooting...
[MSG:Grbl_ESP32 Ver 1.3a Date 20201022]
[MSG:Compiled with ESP32 SDK:v3.2.3-14-gd3e562907]
[MSG:Using machine:XXYZ_4XInput_4XInput_Relay_Spindle_5VOutput_ExtSteppers2]
[MSG:Axis count 6]
[MSG:I2S Steps, Stream]
[MSG:Init Motors]
[MSG:X  Axis Standard Stepper Step:I2SO(2) Dir:I2SO(1) Disable:I2SO(0) Limits(-2357.000,0.000)]
[MSG:X2 Axis Standard Stepper Step:I2SO(5) Dir:I2SO(4) Disable:I2SO(7) Limits(-2357.000,0.000)]
[MSG:Y  Axis Standard Stepper Step:I2SO(10) Dir:I2SO(9) Disable:I2SO(8) Limits(-1213.000,0.000)]
[MSG:Z  Axis Standard Stepper Step:I2SO(13) Dir:I2SO(12) Disable:I2SO(15) Limits(-150.000,0.000)]
[MSG:Warning: Spindle output pin I2SO(24) cannot do PWM]
[MSG:Local access point GRBL_ESP started, <IP_ADDRESS>]
[MSG:Captive Portal Started]
[MSG:HTTP Started]
[MSG:TELNET Started 23]
[MSG:Flood coolant on pin I2SO(27)]
[MSG:Mist coolant on pin I2SO(26)]
[MSG:X  Axis limit switch on pin GPIO(33)]
[MSG:Y  Axis limit switch on pin GPIO(32)]
[MSG:Z  Axis limit switch on pin GPIO(35)]
[MSG:Probe on pin GPIO(34)]
Grbl 1.3a ['$' for help]
>>> G0X18.6Y-21.744
[MSG:'$H'|'$X' to unlock]
[Error] An error was detected while sending 'G0X18.6Y-21.744': (error:9) G-code commands are locked out during alarm or jog state. Streaming has been paused.
**** The communicator has been paused ****

**** Pausing file transfer. ****

I am not sure why it crashed. I cannot repeat the problem on my end.
You do have a few issues that might contributing to the problem.
[MSG:Warning: Spindle output pin I2SO(24) cannot do PWM]
None of the I2O(xx) pins can do PWM. You can only use $Spindle/Type=Relay with those pins.
It appears you are also trying to use laser mode. That should only be used with $Spindle/Type=Laser (which you cannot use)
Trying to use PWM with a relay will likely damage it.
Try fixing those 2 problems.

I don’t want to use pwm for this laser, I haven’t looked into that as the what’s available to me currently from the laser is a 12v and a ground so I definitely only need discrete on and off from the 6 pack.
So is it assumed that I shouldn’t use laser mode with the I2S0(xx) pins, even though I don’t need to pwm the laser? I could move the module to another slot if that gets me the ability for gcode created for a laser to turn it on/off. Or should I just use type::spindle and keep the module where it is? Thanks.

I  would suggest the following.

Move the module to slot 3 or 4
Change to $Spindle/Type=Relay

Good progress. Everything works as expected with laser mode one $32=1.
The laser turned off in accordance to the bold texts below which is perfect.
%
(1001)
G90 G94
G17
G21

(2D Profile1)
G54
G0 S255 M4
G0 X18.6 Y-21.744
G3 X21.4 Y-18.256 Z0 I1.4 J1.744 F200
G3 X18.6 Y-21.744 I-1.4 J-1.744
**G0 X17.507 Y-23.433**
G3 X22.493 Y-16.567 I2.493 J3.433 F200
G3 X20 Y-15.757 I-2.493 J-3.433
G1 X19.961 Y-15.758
G3 X17.507 Y-23.433 I0.039 J-4.242
**G0 X17.298 Y-24.207**
G3 X25 Y-20 I2.702 J4.207 F200
G1 Y-19.969
G3 X20 Y-15 I-5 J-0.031
G3 X17.298 Y-24.207 I0 J-5
G0 X15.949 Y-25.965
G3 X20 Y-27.211 I4.051 J5.965 F200
G3 X20 Y-12.789 I0 J7.211
G3 X12.789 Y-20 I0 J-7.211
G1 Y-20.025
G3 X15.949 Y-25.965 I7.211 J0.025
**G0 X14.543 Y-27.696**
G3 X25.457 Y-12.304 I5.457 J7.696 F200
G3 X20 Y-10.566 I-5.457 J-7.696
G1 X19.97
G3 X10.566 Y-20 I0.03 J-9.434
G3 X14.543 Y-27.696 I9.434 J0
**G0 X13.808 Y-29.309**
G3 X20 Y-31.18 I6.192 J9.309 F200
G1 X20.035
G3 X31.18 Y-20 I-0.035 J11.18
G3 X8.82 Y-20 I-11.18 J0
G3 X13.808 Y-29.309 I11.18 J0
**G0 X12.221 Y-32.55**
G3 X27.779 Y-7.45 I7.779 J12.55 F200
G3 X20 Y-5.235 I-7.779 J-12.55
G1 X19.962
G3 X5.235 Y-20 I0.038 J-14.765
G3 X12.221 Y-32.55 I14.765 J0
**G0 X11.028 Y-34.474**
G3 X20 Y-37.029 I8.972 J14.475 F200
G3 X20 Y-2.971 I0 J17.029
G3 X2.971 Y-20 I0 J-17.029
G1 Y-20.056
G3 X11.028 Y-34.474 I17.029 J0.056
G1 S0
**M30**
%

However when I disable laser mode $32=0 and go back to cutting wood, the laser turns on and stays on, this makes sense to me I think because I have
$Spindle/Type=Relay

Is there something else I can add to the code to programmatically and truly disable the laser during $32=0 laser mode off? If not I'll add a manual override switch (I might feel better about this) so I don't burn the garage down.

At this time the best way is to add a mechanical switch.
Currently most of the hardware setup is done when you compile the firmware. We are are working on a huge project to allow run time setup of the hardware. This will allow on the fly changes like you want. It will affect virtually every hardware type (switches, spindles, lasers, motors, etc), so it will take some time to finish.

Ok this sounds great.
Hey do you guys have a donation channel?

Thanks,
You can do a one time donation here.
You can also give a few dollars a month via the sponsor link at the top of this page.


[nrf toup] boot: zephyr: Fix build issue for multiple conf files

Change fixes build issue that occurs if CONF_FILE is a list of file paths instead of single file path.

manifest PR https://github.com/nrfconnect/sdk-nrf/pull/2642/files


Update to AGP 8.0.0

Codecov Report

Merging #926 (4c56c22) into main (f4b6d2d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #926   +/-   ##
=======================================
  Coverage   64.63%   64.63%
=======================================
  Files         152      152
  Lines        7918     7918
  Branches     1487     1487
=======================================
  Hits         5118     5118
  Misses       1891     1891
  Partials      909      909

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


IPFS data source

For bulk importing data from IPFS we need a way to support a new IPFS Import data source type.
The IPFS Import data source would point to an IPFS hash in the subgraph manifest and when the node begins indexing that subgraph for the first time it would bulk import that data only once.

Requirements

Must be able to read large files (ENS; we can mandate line-based streaming).
Must support JSON (either on the Graph Node side or in the mapping).
Must be backwards-compatible (i.e., not break existing subgraph manifests or mappings).
Must be resumable (for large files).

Proposed solution

Users define an IPFS data source in the subgraph manifest for bulk imports:
  dataSources:
  - kind: ipfs/file
    name: Districts
    source:
      file:
        /: /ipfs/QmP9DRyHqinwQrknCb7MkioDP7zmGaEAYrVL16wBg58xVt
    mapping:
      kind: ipfs/lines
      apiVersion: 0.0.1
      language: wasm/assemblyscript
      handler: handleLine
      file: ./src/ipfs-mapping.ts

The data source includes a mapping that allows to read the file line by line and process the line (as bytes or string) using an AssemblyScript handler (satisfying the large file support).

The handler can then call e.g. json.fromBytes or json.fromString on the line to parse it as JSON (satisfying the JSON requirement).

After that, it is up to users to turn the JSON data from each line into entities.

Required changes

Add a spec for an ipfs/file source and an ipfs/lines mapping.

The ipfs/file data source allows for a single IPFS file to be indexed.
The ipfs/lines mapping expects the IPFS file to be newline delimited UTF-8 and allows to stream the file one by one.

Graph CLI:

Update the GraphQL schema for validating subgraph manifests in Graph CLI.
Add validations for the ipfs/file data source and ipfs/lines mapping.
Include ipfs/file data sources and ipfs/lines mappings in the build and deploy process.

Graph Node:

Update the subgraph of subgraphs GraphQL schema.
Write meta entities for IPFS data sources and mappings to the subgraph of subgraphs.
Add support for unions to the GraphQL execution. This is needed to support different types of data sources / mappings. (We can also use interfaces here but they won't have much in common beyond kind and name.)
When starting a subgraph in the SubgraphInstanceManager

Only start a block stream if there any ethereum/contract data sources.
For every ipfs/file data source with an ipfs/lines mapping:

Spawn an IpfsFileLinesStream to asynchronously read the lines of the IPFS file.
Forward each line to the subgraph instance via something like instance.process_ipfs_line(&logger, &link, line)

Like block streams, IPFS line streams need to be stateful and resumable. They have to write the number of processed lines, processed bytes and total number of bytes to the database.

Explorer API:

TODO

Graph Explorer:

TODO

Misc:

Document IPFS data sources and mappings.
Nice to have: Add an IPFS data source to the example subgraph.

We now have ipfs.map that does what's outlined above (except for being resumable), and we solved the ENS bulk import differently.


Progress bar doesn't work for NUTS sampler

The following works in Atom+Juno, as the progress bar displays correctly,
chain = sample(est_model, HMC(0.003, 6), n_samples; progress = true)
chain = sample(est_model, MH(), n_samples; progress = true)

But for NUTS sampler, only a bar showing system busy is there and the progress bar doesn't show up.
chain = sample(est_model, NUTS(200, 0.65), n_samples; progress = true)

If you run
chain = sample(est_model, NUTS(), n_samples; progress = true)

the progress bar is fine; but with arguments passed in the progress bar doesn't work any more.

My bad -- my program is too slow so that the progress bar didn't even start.


maint: use dirs::home_dir() instead of deprecated std::env::home_dir()

cargo check warns that std::env::home_dir() is deprecated:
warning: use of deprecated item 'std::env::home_dir':
This function's behavior is unexpected and probably not
what you want. Consider using the home_dir function from
https://crates.io/crates/dirs instead.

Use dirs::home_dir() instead.

Thanks!


Wrong setting of RunNumber in harvesting output for MC MultiRun

Impact of the bug
Output from MC MultiRun harvesting can't upload to GUI due to RunNumber is set to 999999 from production side while it's forced to be 1 in cmsDriver injected with the workflow.
Describe the bug
MC Run-Dependent relvals have been submitted, e.g.
https://dmytro.web.cern.ch/dmytro/cmsprodmon/workflows.php?campaign=CMSSW_11_1_0_pre7__RD_1HS-1588962304
All steps look OK except no histogram is found in GUI. When we check GUI log,

weblog-20200509.log:[09/May/2020:03:02:00]  INFO: saved file /data/srv/state/dqmgui/relval/uploads/0001/DQM_V0001_R000999999__RelValZMM_13UP18_RD__CMSSW_11_1_0_pre7-PUpmx25ns_110X_upgrade2018_realistic_v9_RD_1-v1-315257-324245__DQMIO.root size 119895428 checksum md5:6f6371b7190d61fc495fec25f736e7ed

The filename seems to be wrong. The RunNumber should be 1. We force if to be 1 in cmsDriver of harvesting step in the workflow,
https://cmsweb.cern.ch/couchdb/reqmgr_config_cache/53979640a5175ff795ce39b4522dc8fe/configFile
step4 --conditions auto:phase1_2018_realistic --era Run2_2018 --customise_commands process.dqmSaver.forceRunNumber = 1 -s HARVESTING:@standardValidationNoHLT+@standardDQMFakeHLT+@miniAODValidation+@miniAODDQM+@L1TEgamma --harvesting AtJobEnd --filetype DQM --geometry DB:Extended --mc --io HARVESTUP18_PU25_L1TEgDQM_RD.io --python HARVESTUP18_PU25_L1TEgDQM_RD.py --relval 200000,100 -n 100 --no_exec --filein file:step3_inDQM.root --fileout file:step4.root"

Looking around WMCore, I found
https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/WMRuntime/Scripts/SetupCMSSWPset.py#L546-L547
        if multiRun and isCMSSWSupported(self.getCmsswVersion(), "CMSSW_8_0_0"):
            self.process.dqmSaver.forceRunNumber = cms.untracked.int32(999999)

Is this overwritten the Harvesting cmsDriver we submit with the workflow?
How to reproduce it
I don't know how to reproduce, as it seems problem will happen on production side only and can't reproduce when I run locally. Running locally, I get the proper filename, i.e.
DQM_V0001_R000000001__Global__CMSSW_X_Y_Z__RECO.root
Expected behavior
We expect RunNumber = 1 for MC MultiRun.

@srimanob Hi Phat,
I had a look at the history and here's a reference to the PR that applied this change:
https://github.com/dmwm/WMCore/pull/7525
it also points to the original issue, where we described the feature requirements with Marco Rovere and Federico.
Can you please have a look at those tickets and decide whether a feature change is required? Perhaps you also want to touch base with the DQM experts that proposed it back 3 or 4 years ago.
Thanks

Hi Alan @amaltaro
Thanks. I've sent the message to DQM conveners already last night, hope they will confirm in this report soon.

Dear all,
within DQM we have agreed that it is better to sitkc to the current convention and keep runNumber=1 for MRH MC, since in this case MRH only concerns confDB settings but it is still MC, so this will avoid confusions in the future:
MC -> RunNumber =1
Data-> RunNumber > 1
Run ranges already appear in the DQM dataset number for MC (and Data) MRH, so this convention would be compliant with the present DQM situation, unless this option causes much trouble to WMA.
Thank you in advance

@srimanob @jfernan2 thanks for following this up. I understand there is nothing to be changed in the agent then. Please reopen this issue if I have misinterpreted anything.

@amaltaro
Sorry, I think we need an update on
https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/WMRuntime/Scripts/SetupCMSSWPset.py#L546-L547
Force RUN = 1 for MC, and 999999 for data.

Sorry for missing it, Phat.
So,

MC by run: run number is 1
MC multi run: run number is 1
data by run: run number is whatever run is being harvested
data multi run: run number is 999999 (no longer a run range - with lower and upper limits)

Can you please confirm it?

Hi @amaltaro
Yes, I confirm that. What we would like to change is somehow like:
if multiRun and isCMSSWSupported(self.getCmsswVersion(), "CMSSW_8_0_0"):
if data:
self.process.dqmSaver.forceRunNumber = cms.untracked.int32(999999)
if MC:
self.process.dqmSaver.forceRunNumber = cms.untracked.int32(1)
(as MC in MRH will have RunNumber as in Data, but we would like to ignore it on MC).
Thanks in advance.

@srimanob I expected it to be a simple fix, but it turns out we need to systematically identify data and run-dep MC files in the agent. I will get back to this issue in the next week.

AlCa is currently using a naming convention in which global tags for run-dependent MC have the string "_RD" immediately prior to the version number. From our perspective, files from run-dependent MC workflows can be identified by the string "_RD_v" in the name, such as /store/relval/CMSSW_11_3_0_pre3/RelValZEE_13UP18_RD/DQMIO/113X_upgrade2018_realistic_RD_v3_RunDep_HS-v1/00000/42A72F0A-8B23-11EB-A3E1-19BDE183BEEF.root. Would such a scheme be feasible?

AlCa is currently using a naming convention in which global tags for run-dependent MC have the string "_RD" immediately prior to the version number. From our perspective, files from run-dependent MC workflows can be identified by the string "_RD_v" in the name, such as /store/relval/CMSSW_11_3_0_pre3/RelValZEE_13UP18_RD/DQMIO/113X_upgrade2018_realistic_RD_v3_RunDep_HS-v1/00000/42A72F0A-8B23-11EB-A3E1-19BDE183BEEF.root. Would such a scheme be feasible?

I would like to understand if the obstacles to resolving this issue are:

a matter of resolving the issue in an elegant and/or more general/maintainable way
a matter of determining a solution by any means. For example, is my hackish suggestion to identify run-dependent MC files by a particular string assigned by convention in the dataset name not feasible?
purely a consequence of the lower priority of this issue
something else?

At this point, given the small number of run-dependent MC relval samples, it is feasible to run the harvesting and upload to the DQM GUI manually. So, this issue currently is not particularly urgent. At the same time, I don't want to waste the time of those who would perform these manual actions if a fix on the WMCore side is straightforward.

Hi @christopheralanwest , sorry for the belated response.
Yes, we still have to find out a generic and robust way to distinguish between data and MC. I'm afraid matching the global tag against _RD_ might be risky. Perhaps we could use that runLimits variable and set it to 999999 whenever its limits are different than 1 (thus data). I believe run dependent monte carlo still considers run number 1 inside the agent and DBS, so it should not be a problem.

Clearly we could choose an longer string, such as RunDep or RunDepMC that would be less likely to accidentally match data files. The shorter string _RD_ was chosen simply to keep the global tag names (and therefore dataset names) short, as requested by PdmV.
Run-dependent MC does not have run numbers other than 1 in the GEN-SIM step:
https://cmsweb.cern.ch/das/request?instance=prod/global&input=run+dataset%3D%2FRelValZEE_13UP18_RD%2FCMSSW_11_3_0_pre3-113X_upgrade2018_realistic_RD_v3_RunDep_HS-v1%2FGEN-SIM
But in the DIGI-PREMIX step the lumiblock number is mapped to a run number:
https://cmsweb.cern.ch/das/request?instance=prod/global&input=run+dataset%3D%2FRelValZEE_13UP18_RD%2FCMSSW_11_3_0_pre3-PUpmx_113X_upgrade2018_realistic_RD_v3_RunDep_HS-v1%2FGEN-SIM-DIGI-RAW-HLTDEBUG

Nonetheless, this issue hasn't been added to our todo queue for this quarter, so unless we can make it an hour or two of work, we will likely not be able to work on it before Q3. Perhaps you would like to discuss this with PPD/PdmV group, since they have other WMCore issues that we need to consider as well.

I think it's fine to postpone this issue until run-dependent MC relval production becomes more frequent, which would not happen before Q3.

I know that it may be late, but I don't really see a problem with distinguishing MC and data based on run numbers. At the end run numbers is just a number and someone can choose a range which can be assigned to real data and to MC. For instance, MC run numbers can start from 1M and above, everything below is allocated for real data run numbers. I think it is general issue in CMS and should be discussed separately. From a technical point of view I don't see any issue with such approach.


ADS: SectionHeaderListItem component

Task/Issue URL:
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #2441   👈

This comment was auto-generated by Graphite.


Resolver template generation is broken

This is what I got when trying to generate from killbill-plugin-api:

public class Resolver extends SimpleAbstractTypeResolver {
    public Resolver(){
        this.addMapping(PaymentMethodInfoPlugin.class, PaymentMethodInfoPluginImp.class);
        this.addMapping(PaymentPluginApi.class, PaymentPluginApiImp.class);
    }
}
    this.addMapping(HostedPaymentPageFormDescriptor.class, HostedPaymentPageFormDescriptorImp.class);
        this.addMapping(PaymentTransactionInfoPlugin.class, PaymentTransactionInfoPluginImp.class);
    }
}

Note that it is possible that this problem happened when generating from killbill-plugin-api because of its multi-module structure (need more investigation).
Update 1: Yes, it is likely because of multi-module structure. For example, one of killbill-api generated Resolver looks good. See org.killbill.billing.catalog.api.rules.boilerplate.Resolver, for example.
Update 2: Seems like broken Resolver only affected to killbill-plugin-api module, because it is already exists before. If there's no Resolver class file in particular module before, it will generated correctly.
Update 3: Seems like broken Resolver only affected to payment module, because it is already exists and pojogen try to override that file, but somehow make it broken. If there's no Resolver class in particular module before, it will generated correctly.
This is settings.xml for generating killbill-plugin-api:
<?xml version="1.0" encoding="UTF-8"?>

<Settings>
  <sourceDirectories>
    <sourceDirectory>./killbill-plugin-api/catalog/src/main/java</sourceDirectory>
    <sourceDirectory>./killbill-plugin-api/control/src/main/java</sourceDirectory>
    <sourceDirectory>./killbill-plugin-api/currency/src/main/java</sourceDirectory>
    <sourceDirectory>./killbill-plugin-api/entitlement/src/main/java</sourceDirectory>
    <sourceDirectory>./killbill-plugin-api/invoice/src/main/java</sourceDirectory>
    <sourceDirectory>./killbill-plugin-api/notification/src/main/java</sourceDirectory>
    <sourceDirectory>./killbill-plugin-api/payment/src/main/java</sourceDirectory>
  </sourceDirectories>

  <!--
    The subpackage to place the generated classes.
  -->
  <outputSubpackage>boilerplate</outputSubpackage>

  <outputClassSuffix>Imp</outputClassSuffix>

  <outputDirectory>./killbill-plugin-framework-java/src/main/java</outputDirectory>

  <resourceDirectory>./killbill-plugin-framework-java/src/main/resources</resourceDirectory>

  <testDirectory>./killbill-plugin-framework-java/src/test/java</testDirectory>

  <acceptedPackages>
    <package>org.killbill.billing.catalog.plugin.api</package>
    <package>org.killbill.billing.control.plugin.api</package>
    <package>org.killbill.billing.currency.plugin.api</package>
    <package>org.killbill.billing.entitlement.plugin.api</package>
    <package>org.killbill.billing.invoice.plugin.api</package>
    <package>org.killbill.billing.notification.plugin.api</package>
    <package>org.killbill.billing.payment.plugin.api</package>
  </acceptedPackages>

  <!-- The list of types to use Comparable.compareTo() instead of Object.equals() for equality. -->
  <comparableTypes>
      <type>java.math.BigDecimal</type>
      <type>org.joda.time.DateTime</type>
      <type>org.joda.time.LocalDate</type>
  </comparableTypes>

  <!-- The name of the static inner class implementing the Builder pattern for each generate POJO. -->
  <builderClass>Builder</builderClass>

  <!-- The name of the class extending `com.fasterxml.jackson.databind.AbstractTypeResolver' for each package. -->
  <resolverClass>Resolver</resolverClass>

  <!-- The name of the class extending `com.fasterxml.jackson.databind.Module` for each package. -->
  <moduleClass>Module</moduleClass>

 </Settings>

Run using: java -jar pojogen.jar settings.xml.

Quick note: killbill-api has package named: org.killbill.billing.payment.plugin.api. It is exist.

Fix by this PR: https://github.com/killbill/api-pojos/pull/14


Determine dates prior to template rendering

Changes
Don't pass date objects to template to be evaluated via a filter. Instead return strings and pass to template as a dict.
How to test
Check that times rendered in the csv file are correct. (Previously the long format was reporting the wrong HH:MM:SS.
Who can test
Anyone but @iwootten

👍  Your changes look good to me @ajmaddaford

👍


Alpha into beta

Description
Release portfolio NFT fix + custom type features into beta
Breaking Changes
None
JIRA Link
N/A
Checklist

[ ] Updated the Readme.md (if required) ?

:tada: This PR is included in version 23.0.0-beta.2 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Future payouts calendar

Calendar which shows payouts upcoming in the future.
Useful to see what you need to payout.
Could be interesting to see if this has any part to play in the bulk payouts feature I've been wanted to do for a while.


Implemented UI for completed picklists and added filters for showing user's picklists and hiding completed picklists (#1x699zj)

Related Issues

Closes #82
Short Description and Why It's Useful

Screenshots of Visual Changes before/after (If There Are Any)

IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change
Contribution and Currently Important Rules Acceptance

[ ] I read and followed contribution rules

Currently, the filter for only show my picklist does not work as expected because only the current user's picklists are fetched by API in the first place. This needs to be discussed.


Excessive Memory Consumption

Hello,
I’ve been working on a project with this library and have encountered a significant issue with memory usage. Even in a basic application, the memory footprint seems to be expanding considerably. Upon investigation, I suspect the problem lies in the frequent object instantiation within the game loop, like Vector2 and Rectangle used in the DrawTexture functions. These objects are being created anew in each frame, which could be leading to the increased memory usage.
Does anyone have a workaround or a solution to mitigate this memory growth?
I thought about using Memory Stack, but it only works for primitive types, which would involve significantly changing the source code, or using object pooling, but I don't know if it would be a good idea.

Raylib-J could do something similar that LibGDX does by mutating Vector2s directly instead of replacing them with new all the time. This will decrease Java garbage collection by a lot.
Here is their Vector2 class containing methods like add, scl and mul.
https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/math/Vector2.java
As a general workaround in your game code, you could make all the vectors you need private fields of your class and change their x and y fields directly (or use their setX and setY as much as possible).

Upgrading to code similar to LibGDX would help a lot to reduce memory usage, but there are still other parts that would continue to consume a lot of memory. I did a test using VisualVM on a simple raylib program and this was a snapshot of memory usage (the application ran for about a minute).
public static void main(String[] args) {
        Raylib rlj = new Raylib();
        rlj.core.InitWindow(800, 600, "Raylib-J Example");

        Texture2D texture = rlj.textures.LoadTexture("woman.png");
        rlj.core.SetTargetFPS(60);
        Rectangle source = new Rectangle(0,0, texture.getWidth(), texture.getHeight());
        Vector2 origin = new Vector2(0,0);
        while (!rlj.core.WindowShouldClose()){
            rlj.core.BeginDrawing();
            rlj.core.ClearBackground(Color.WHITE);
            rlj.textures.DrawTexturePro(texture, source,source,origin,0f, Color.WHITE);
            rlj.text.DrawText("Hello World", 10, 10, 35, Color.GREEN);
            rlj.core.EndDrawing();
        }
        rlj.textures.UnloadTexture(texture);
    }

Snapshot: https://github.com/user-attachments/assets/7efb3ba4-6243-4e26-b879-7a226ca68857
Regarding this issue of using private vectors, they would not help much, since the application core would continue to instantiate several objects that would be unusable/unreachable in the next iteration.

Thanks for the profiling. I see that math objects are less impacting memory than I assumed at first (props for me guessing things instead of measuring...), but I'm sure they would start contributing more and more to memory and GC usage as your project grows.
Seeing as byte arrays are the most constructed object we could figure out which ones are constructed every frame and maybe consider re-using them or do some kind of pooling where possible. (Although the latter would add unwanted complexity.)

I guess it's up to the maintainers to decide if this is worth the effort worth on taking a hit at code readability for doing some less GC.
If I get unsatisfied with memory usage in my project, I'll might end up creating a branch and seeing how big or little difference this makes.


pyEPR update into metal

Please be as descriptive as possible, including: what is expected, why is this feature needed, what is the objective, etc.
What is the feature being requested?
When pyEPR is updated, Metal needs to be updated.
What are use cases for this feature?

Metal needs to use the latest commit in pyEPR do avoid a segv.  That would require use of latest tag and published version of pyepr.
In particular, when plotting, there are inf and negative values for data.  The data was being put into a log scale.  Can't take log of negative numbers nor inf values.
Also Metal needs to have some additional error catching for older version of pyepr.

@obrienpja  is working on making EPR standalone, so pyepr will not used in the future.  Also, looks like code was merged and this issue was not closed.


Simplify quickstart tutorials

Description:
Note: Although the following simplifications are discussed in the context  of quick start tutorials,  they affect all the tutorials. This is because steps from the quick start tutorials are re-used in other tutorials. So, while refactoring Quickstart, we need to keep this in mind.

[ ] use builtin metrics
[ ] use synthetic metrics
[ ] eliminate fortio yaml files (since load / metrics will now be handled entirely by the above two)
[ ] eliminate all the prometheus installs (again because of the first two simplifications); given  the popularity of Prometheus, it is worth adding a separate Prometheus & Grafana tutorial for all K8s stacks. But there is no need to sprinkle Prometheus in every tutorial and complicate them.
[ ] use bash instead of exec task -- this will cut out a few lines from experiment  yaml and also make it less cryptic
[ ] separate the platform setup steps  -- a user who already has a K8s cluster with a specific K8s stack installed on it, should be able to start by installing Iter8 and continue with the rest of the tutorial (instead of having to start with fresh cluster)
[ ] introduce helm templates for experiments; our main motivation here is to ensure that a user can start using the quick start tutorial for their own apps/ML models without having to understand anything about Iter8.  Helm templating with well thought out values (and clearly documented assumptions that are made by the template in terms of the app/ML model manifests), can help with this.
[ ] verify that iter8ctl output is adequate in terms of explainability (it probably is sufficient for now; but ensuring loop behavior works as expected; formatting is decent, etc., can help improve the value from this tutorial).

I like these suggestions. In the GitOps tutorial, I was already trying to simplify things, but not to the extend that you are suggesting, so the tutorial can be more focused on GitOps issues.
The GitOps PR is under review, so do you want to hold off on that until all the other tutorials are updated with the proposed change?

I think the GitOps tutorial review can continue. There might be other issues (not simplification related) which may need to be resolved anyway.
I like what you said  -- create an initial version, and continue to Iter8 on it until we feel we've something simple enough and go to town with :)

I would like to suggest that we consider splitting this into multiple issues to make implementation and review simpler. In particular, I would like to see the helm templates done as a separate issue. I think it requires more thought and perhaps design discussion as we figure out what well thought out parameters are.

I like the move towards simplification. But I feel a little that perhaps the user will face the difficulty of figuring out how to make the example practical. Perhaps we need a new page of documentation that addresses this question.  That is, considerations for applying iter8 to a real application/model.

We can  definitely consider adding a new page of documentation... but it would be better if we the helm params are well thought so that it is drop dead simple for the user to try it with their application after reading the tutorial, without having to read yet another documentation on what it means for them.
In other words, it would be preferable to write the tutorial in such a way that it accomplishes the above purpose.

It isn't just helm that I am thinking about. Replacing metrics. Replacing load generation (with live traffic). These are all considerations. We don't have to have formulas. But a list of considerations would be valuable.

Both those considerations (replacing metrics and load generation) make sense.
This is especially true for A/B testing experiments... for SLO validation experiments, builtin metrics + builtin load generation might actually offer more advantages. Anyway, I agree that these considerations are worth documenting.

I'm new to iter8 and I'm having a hard time trying to understand how built-in metrics works.
I must generate fake traffic using collect or I can send live traffic to the experiment?

Hi @SharpEdgeMarshall
Welcome to Iter8.
Built-in metrics already do the job of sending traffic to your applications and collecting metrics. So, you do not have to do any load generation separately. So, the traffic is fake, but the metrics are real (based on how your app performs with regards to this fake traffic).

https://iter8.tools/0.7/getting-started/first-experiment/ is an example of an experiment that sends (synthetic) traffic to an application's API endpoint and collects latency and error rate metrics.
https://iter8.tools/0.7/tutorials/deployments/slo-validation-payload/ is another example where the experiment sends (synthetic) traffic to an application's POST endpoint (HTTP requests with payload) and collects latency & error rate metrics.

Any suggestions you might have in terms of improving the documentation is very welcome. We would love to hear your suggestions.

You might also interested in the upcoming Iter8 community meeting (Wed 11.00 AM Eastern Sep 29th, which is all about Iter8 built in metrics!!).

If you want to use live traffic, the metrics need to be collected in a database (example Prometheus). Iter8 does not "intercept" your live traffic; however, assuming you are collecting metrics for live traffic in a DB, Iter8 does have the custom metrics capability which can utilize metrics from any database during an experiment.

@sriumcp Thank you for your prompt answer.
Yes I was near to understand that built-in metrics works only with metrics/collect but this is not explained very well.
ATM we are evaluating iter8 to do ML canary releases, based on the fact that ML services are idempotent and pure I think that the best testing strategy would be using mirroring but also this part is not explained in v0.7, looking at v0.6 there was some sort of explanation with istio but it's not clear what's the intended approach.

Thank for that comment.
We can certainly builtin metrics better, and will do so shortly.

Re: mirroring, what ingress/service mesh are you using to achieving the traffic mirroring function? Istio?

Iter8 experiments can simply co-exist alongside your service mesh / ingress specs, so you can certainly run an experiment using mirrored traffic in Iter8. I think we can also make this a bit clearer through tutorials. We will do this also soon.


Can't remove properties of a document type

It'd be nice if there was a way that you could remove the property of a document type, something like:
chauffeur> ct remove-property DocTypeAlias PropertyAlias

Released as part of 0.12.0


Refactor fix.py

closes #4
refactored fix.py to use a dictionary structure instead of a list.

:shipit:


Introduce response processing exception listener and generic error page

This issue is imported from pivotal - Originaly created at Aug 9, 2016 by Alex Rothuis
Response time padding and generalized error pages should be added to mitigate oracle attacks.
In order to, upon the throwing of a response processing exception, redirect to a generic error feedback page and add padding to the response time if necessary, a response processing exception listener and a generic error page should be created.
This exception listener pads the response time to a given value for specific exceptions if necessary and redirects to a generic error page.  should be present in this listener as well.
Be sure to add the same logging and error reporting as the RedirectToFeedbackPageExceptionListener.
Response time padding should happen at the last moment before setting the response.

The pre-existing error feedback page for "authentication_feedback_verification_failed" can be used as it is already meant for all kinds of failed response parsing and it already serves the purpose of hiding  application capabilities. (Alex Rothuis - Aug 24, 2016)

Will be verified later, purely administrative action. (Daan van Renterghem - Feb 14, 2017)