Improve support for the Component.Evidence.Identity field in CycloneDX 1.6

In CycloneDX 1.5, the Component.Evidence.Identity field was specified as a single Identity object. In CycloneDX 1.6 this has been deprecated in favor of an array of Identity objects.
The specifications can be compared here:
1.5: https://cyclonedx.org/docs/1.5/json/#components_items_evidence_identity
1.6: https://cyclonedx.org/docs/1.6/json/#components_items_evidence_identity
cyclonedx-go still defines Identity as *EvidenceIdentity so it fails to unmarshal SBOMs which have an array of identities in place of a single one; the error is: cannot unmarshal array into Go struct field Evidence.components.evidence.identity of type cyclonedx.EvidenceIdentity.
This currently happens with some SBOMs generated by cdxgen (https://github.com/CycloneDX/cdxgen) when using the --spec-version 1.6 argument. This is an SBOM affected by the issue. It was generated from a skeleton Poetry project, with just pytest added, using this command:
docker run --rm -v /tmp:/tmp -v $(pwd):/app:rw -t ghcr.io/cyclonedx/cdxgen -r /app -o /app/bom.json --spec-version 1.6`

We also run into that issue, trivy inherits this issue :/

Hi everyone!
I'm working on this task.
Can you assign it to me?
I'll try to finish it today or next week.

Created #204

Just my thoughts as a user of the library, regarding @DmitriyLewen's approach:

Existing code using the Identity field will need to be refactored
If the Identity field is populated, marshalling will only create CycloneDX 1.6 compliant files, which, depending on the case, may not be desired (OK, I know this is explicitly mentioned in the readme)
The logic for decoding and converting between versions is getting increasingly complex

@nscuro Perhaps it could make sense to consider introducing different BOM structures for different versions (or range of versions) of the specification, with the possibility of explicitly converting one to the other (most likely from a version to the next one).
Of course, this means some duplication in the structure definitions, but overall I think it would make the implementation and the use of the library clearer:

No breaking changes: the user chooses the version of structure to use and has a well defined upgrade path if needed
No workarounds in the JSON/XML decoders
All logic to convert between versions would be in clearly defined, separate conversion functions (JSON/XML agnostic) with clear semantics
Overall, it would be more straightforward for both maintainers and users to support newer CycloneDX versions in the future

One of our use cases (probably a typical one) is decoding an external JSON/XML file, which might be of any version, and use it via a specific version of the structure (which may or may not be the latest). To support this, there could be a helper function which decodes the file to the correct structure, matching the file version (e.g. extracted with gjson), and then converts it using the conversion functions, possibly multiple times, until the version wanted by the user is reached.
Note that a similar approach has been taken for SPDX files: https://github.com/spdx/tools-golang

I agree with your thoughts @darioandre.
Your solution seems more correct.
But this problem exists now. We have a problem - users can't scan the CycloneDX file (https://github.com/aquasecurity/trivy/issues/6902), so we want to fix this problem as soon as possible.

see also: https://github.com/CycloneDX/cyclonedx-go/issues/207

It surprises me that the schema authors are able to change the type of a field from object to array when going from 1.5 to 1.6.  This is the kind of breaking change I would expect going from 1.x to 2.x.  Thanks to whomever is working on this.

It surprises me that the schema authors are able to change the type of a field from object to array when going from 1.5 to 1.6.

@esnible, Where did this happen? Could you point me tp the lines in the schema?

@darioandre Perhaps it could make sense to consider introducing different BOM structures for different versions (or range of versions) of the specification, with the possibility of explicitly converting one to the other (most likely from a version to the next one).
Of course, this means some duplication in the structure definitions, but overall I think it would make the implementation and the use of the library clearer:

No breaking changes: the user chooses the version of structure to use and has a well defined upgrade path if needed
No workarounds in the JSON/XML decoders
All logic to convert between versions would be in clearly defined, separate conversion functions (JSON/XML agnostic) with clear semantics
Overall, it would be more straightforward for both maintainers and users to support newer CycloneDX versions in the future

One of our use cases (probably a typical one) is decoding an external JSON/XML file, which might be of any version, and use it via a specific version of the structure (which may or may not be the latest). To support this, there could be a helper function which decodes the file to the correct structure, matching the file version (e.g. extracted with gjson), and then converts it using the conversion functions, possibly multiple times, until the version wanted by the user is reached.

This sounds reasonable, however I don't currently have the bandwidth to perform such a major refactoring. If anyone would like to give this a go (pun intended!), it would be much appreciated.

@jkowalleck I found the schema changes difficult to follow.  Do these help?

https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.schema.json#L277
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.xsd#L2471
and
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.schema.json#L575
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.xsd#L575

@nscuro , would it be possible to change https://github.com/CycloneDX/cyclonedx-go/blob/464d4260e584e132c6c6bcf49792d8bc115043bb/cyclonedx.go#L626 to something like
	RawIdentity    json.RawMessage     `json:"identity,omitempty" xml:"identity,omitempty"`
	Identity    *EvidenceIdentity     `json:"-"`
	Identity1_6    []EvidenceIdentity     `json:"-"`

... possibly with a custom deserialize to populate Identity and Identity1_6?  I am not using the Identity fields in my code but I can't deserialize some of the 1.6 SBOMs I'm seeing from cdxgen because of this.

@jkowalleck I found the schema changes difficult to follow. Do these help?

https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.schema.json#L277
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.xsd#L2471
and
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.schema.json#L575
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.xsd#L575

Are you sure you found the correct line numbers? they don't even describe the same JSON-path nor XPaths.

https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.schema.json#L277 is
$.declarations.claims[].evidence
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.schema.json#L575 is
component.evidence

and

https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.xsd#L2471 is
componentEvidenceType/identity
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.xsd#L575 is component/evidence

Maybe it helps if you'd compare the structures in a more human-readable form.
for example https://cyclonedx.org/docs/1.6/json/ VS https://cyclonedx.org/docs/1.5/json/

I am really interested in learning about any undocumented or unexpected schema changes, since I invested much effort in documenting any changes, while gate-keeping unexpected/breaking changes. See for example this extensive change log: https://github.com/CycloneDX/specification/releases/tag/1.6
Please don't hesitate to report unexpected or questionable schema changes here: https://github.com/CycloneDX/specification/issues

@jkowalleck I found the schema changes difficult to follow. Do these help?

https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.schema.json#L277
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.xsd#L2471
and
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.schema.json#L575
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.xsd#L575

@esnible ,
Are you sure you found the correct line numbers? they don't even describe the same JSON-path nor XPaths.

https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.schema.json#L277 is
$.declarations.claims[].evidence
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.schema.json#L575 is
component.evidence

and

https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.xsd#L2471 is
componentEvidenceType/identity
https://github.com/CycloneDX/specification/blob/master/schema/bom-1.5.xsd#L575 is component/evidence

Maybe it helps if you'd compare the structures in a more human-readable form.
for example https://cyclonedx.org/docs/1.6/json/ VS https://cyclonedx.org/docs/1.5/json/

I am really interested in learning about any undocumented or unexpected schema changes, since I invested much effort in documenting any changes, while gate-keeping unexpected/breaking changes. See for example this extensive change log: https://github.com/CycloneDX/specification/releases/tag/1.6
Please don't hesitate to report unexpected or questionable schema changes here: https://github.com/CycloneDX/specification/issues


Only applies theme (and not items) to other applications

Shell currently does not apply any of the static/dynamic customizations to other applications' context menus. It only applies the theme. I tested this with Tablacus Explorer and Explorer++.
Windows Explorer works as expected (with my custom menus and a couple of moved items)

Tablacus doesn't have that; just the theme (although my screenshot makes it hard to tell). "Open in new tab" and "Open in background" are part of Tablacus.

Hi @ThePython10110 Please test this build
Set * in the type property to show the item in all menus
dynamic
{
    item(type="*" title='hello from any menu' image=#f00)
    item(type="*" where=window.is_start title='hello from Winx menu' image=#00f)
    item(title='hello from normal menu' image=#0f0)
}

Now it applies dynamic customization, but nothing static.

static
{
    item(type='taskbar' find='search' vis=disabled)
    item(type='*' where=window.is_start find='search' vis=disabled)
}

Some things do work, but changing the parent apparently doesn't. I'm trying to make Git Bash appear under "Terminal." It works great in Explorer, but not in Tablacus.
item(type='*' find='Git Bash here|Powershell' parent='Terminal')
menu(type='taskbar' title='Terminall' image=\uE0D6)
		{
			item(title='CMD' icon='cmd.exe' admin=@key(key.shift) cmd='cmd.exe')
		}

Explorer:

Tablacus:

static
{
    item(type='*' find='Git Bash here|Powershell' parent='Terminal')
}

dynamic
{
    menu(type='*' title='Terminal' image=\uE0D6)
    {
        item(title='CMD' admin=key.shift() image cmd='cmd.exe')
    }
}

To remove all disabled items
static
{
    item(type='*' where=this.disabled vis=remove)
}


Timeout on port "/dev/ttyACM1" after 1.0 s

It runs normally, but there will always be "timeout" occasionally, resulting in incomplete data reading. Even if I set timeout=0.0, it still happens. How to solve this?

Can you describe the setup and what commands you are sending to /dev/ttyACM1?

Ok, I set up a GNSS receiver to output 1hz gga information, and read the gga statement through the serial port /dev/ttyACM1;
"com1": {
"port": "/dev/ttyACM1",
"baudRate": 115200,
"byteSize": 8,
"stopBits": 1,
"parity": "none",
"timeout": 0.0,
"softwareFlowControl": false,
"hardwareFlowControl": false,
"maxAttempts": 1
}

What happens when you increase the timeout value?

The number of characters read is incomplete and missing

Is the responseDelimiter of your observation set to \r\n to match the end of each response? This is most likely an issue with a wrong regex (responsePattern) or a wrong delimiter.


Request: Use current location for weather forecast

I spend weekends in the North of England and week days in the South. Rather than me input my current location twice a week, it would be much nicer if it used the phone's current or last known location from Android's location API.
Also, rather than use Google's undocumented weather API (which only works with named cities), the app ought to use some other, more stable API (for example Yahoo! Weather)

I agree this needs to be added to the Metawatch/Metawatch Manager base code -- or created as an option to set local/fixed locations.  I, too, travel to a lot of different places during any given month...

This is one of the enhancements I'm planning on adding - I just need to find a decent free/open geolocation web service that I can plug into a suitable weather api
geonames.org looks promising, but its free service is limited to 30k queries a day, so would eventually get swamped when too many people's watches start updating (1250 requests/hr) - I suppose I could make people sign up for their own free account, unless someone at metawatch wants to stump up for a commercial license?
I'll try and get something working this weekend, and will post back here

Cool
There's no real need to resolve the location to a place name unless the GPS coordinates have changed by 30 miles or more, so I doubt we'd ever hit the 30k/day limit if the location name was cached.

I can report I've got some prototype code working - It needs some good testing, and I need to work out the deal with the Weather Underground api key, but hopefully I should be able to release something soon.

You can find my "RM2" build of my modified version of metawatch here:
http://www.metawatch.org/forums/thread/267/craig-s-metawatch-v1-1-4?page=3#dis-post-1606
(code in my fork here on github)


CI: cran broken

[2020-04-13T16:57:58.011Z] W: GPG error: http://cran.rstudio.com/bin/linux/ubuntu trusty/ Release: The following signatures were invalid: BADSIG 51716619E084DAB9 Michael Rutter<EMAIL_ADDRESS>
[2020-04-13T16:57:58.011Z] W: The repository 'http://cran.rstudio.com/bin/linux/ubuntu trusty/ Release' is not signed.

[2020-04-13T16:57:58.011Z] E: Failed to fetch store:/var/lib/apt/lists/partial/cran.rstudio.com_bin_linux_ubuntu_trusty_Packages.gz  Hash Sum mismatch

http://jenkins.mxnet-ci.amazon-ml.com/blue/organizations/jenkins/mxnet-validation%2Fclang/detail/PR-17984/35/pipeline

Suggest to use system provided R instead of relying on external repos on CI.
To test newer versions of R, we can switch Ubuntu 16.04 -> 18.04.
In general, relying on the system dependencies will enable us to make our CI more reliable

Fixed by https://github.com/apache/incubator-mxnet/pull/17984, specifically
https://github.com/apache/incubator-mxnet/blob/fb73a1717acad61caeaeef010faed9e9fcc05f0e/ci/docker/install/ubuntu_r.sh#L49-L50


Add repeated-write methods to I2C, SPI engines

Methods to repeatedly write the same byte, word, or long to the device should be added to the I2C and SPI engines. This is useful e.g., for fast fills in a display driver, when a large display buffer can't be used.

added in cfacd4727f1f66bf704dec3bd9cabb0fbfe23267 and 2d8c8678c149e0f2233b5c220ab89e9fc5c0a578


1v1 ladder games pops up in Play tab for a split second.

I was watching what games was hosted, and I saw a game pop up and disappear almost immediately
named "PlayerX" vs "PlayerY". The game was hosted on Ranaoke abyss. I quickly suspected it was a ladder game. And indeed it was checked the replay 1v1 ladder rating of players.
TL;DR
Ladder matches shows up on hosted games tab for split second.
I guess you can filter them out of popping up somehow? Maybe from the featured mod in the data?
Not a huge issue but hey I report what I find lol

Oh and yeah you CAN join games like that

Not sure if I broke that game or if the reason I could join was that it was broken...


A false positive reentrancy vulnerability in contract spank_chain_payment

code:
function LCOpenTimeout(bytes32 _lcID) public {
require(msg.sender == Channels[_lcID].partyAddresses[0] && Channels[_lcID].isOpen == false);
require(now > Channels[_lcID].LCopenTimeout);
     if(Channels[_lcID].initialDeposit[0] != 0) {
         // <yes> <report> REENTRANCY   //Line 426
         Channels[_lcID].partyAddresses[0].transfer(Channels[_lcID].ethBalances[0]);
     }
     if(Channels[_lcID].initialDeposit[1] != 0) {
         // <yes> <report> REENTRANCY  //Line 430
         require(Channels[_lcID].token.transfer(Channels[_lcID].partyAddresses[0], Channels[_lcID].erc20Balances[0]),"CreateChannel: token transfer failure");
     }

     emit DidLCClose(_lcID, 0, Channels[_lcID].ethBalances[0], Channels[_lcID].erc20Balances[0], 0, 0);

     // only safe to delete since no action was taken on this channel
     delete Channels[_lcID];
 }

The code at Line 426 use "transfer" to send  ether. Therefore, the gas can be used for this call set to 2300. This amount of gas cannot trigger reentrancy.

Thanks for explain how to attack the contract. You are correct.

If you want more information, the original victim of this attack wrote a blog post: https://medium.com/spankchain/we-got-spanked-what-we-know-so-far-d5ed3a0f38fe


Message::SetLength and Message::ResizeMessage Bug Fix

This updates Message::SetLength and Message::ResizeMessage to handle running out of buffers.

Good catch!  Thanks.  Just a minor code-style comment inline.

LGTM 👍
Please sign the CLA so that we can merge this PR.

Unfortunately, I am still awaiting approval on my side. I will sign when that goes through.

I signed it!

LGTM 👍


Shopify CLI Command Execution Issue

I created an app using shopify cli (3.6 < my app version < 3.67) , and it was running properly, after I updated the cli to 3.67, and trying to run the in app in dev mode, it's showing me this login prompt, but even with correct credentials it shows incorrect password. another weird thing, I created another app using 3.67, and in that one it's not asking for store credentials.

I used shopify auth logout, then run the app in dev, authorized to shopify store using browser but still it's showing prompt to login to the store when running the app from the folder where app was created using shopify cli greater than.

Updated CLI to 3.67.2 and I am getting "Incorrect password provided" even when I enter the correct password exactly as written in the screenshot above. I have tried changing the access password as well, and it will not work


docs: update CN README for new OverlayPlugin

Update to #4809. Add Chinese translation. @quisquous

Thank you!!


Phantomjs path

@scottferg easy resolution. Pulling an upstream branch into master, so there are a few extra diffs.

I was going to suggest going this route last week and then I got distracted

LGTM


Wrong default Transmission directory causes service fail to start

https://github.com/NixOS/nixpkgs/blob/3c4a65f323dd8c6ec34b1c1a63eb968b0ee4fb67/nixos/modules/services/torrent/transmission.nix#L339
Default Transmission watch directory is watchdir without a hyphen.
When setting watch-dir-enabled = true; without the existence of directory watch-dir, then Transmission fails on first start.

Pinging @ju1m (who has done extensive work on the module) and @astsmtl (the maintainer of the associated package).

@Sepero, AFAICS it was fixed in https://github.com/NixOS/nixpkgs/pull/270034 and backported to release-23.11 in https://github.com/NixOS/nixpkgs/pull/272957. Please update, I'm closing the issue, please reopen if the problem remains after that.


Remove core js

We don't need it I guess?

@mosch Are you sure? Our .babelrc says otherwise:
https://github.com/allthings/elements/blob/66d522debb4c93426110730c772db55e7270bf3f/.babelrc#L15-L16


clang-format: Add copyright statement

Every file should have a copyright statement.
Signed-off-by: Reto Schneider<EMAIL_ADDRESS>

Every file should have a copyright statement.

Do we have this policy documented somewhere?

Closed/Abandoned because no, I could not find such a policy.


core, improve polling UT

Two improvement:

Add verifyComplete() (previously seems that step does not do validation at all); fix the expectNextMatches condition.
Use Duration.ofMillis(1) instead of Duration.ofSeconds(1) for polling interval, so UT should run faster

Description
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


Remove null checks for arrays/collections

Null helpers (that are used for arrays/collections) fields can be removed and replaced with direct calls (create*Array, create*List).
As I understand the only reason for this helpers is to safely save and read null values for collection fields.
But such combinations as write*Array/create*Array support nulls by default.

Correct, I will fix that!


add web3dsurvey

Adds anonymous data collection on WebGL support in the wild, for the benefit of all: https://web3dsurvey.com/
Thanks @bhouston!

Thank you!
-ben
On Wed, Apr 5, 2023 at 1:32 PM Emmett Lalish @.***>
wrote:

Merged #4200 https://github.com/google/model-viewer/pull/4200 into
master.
—
Reply to this email directly, view it on GitHub
https://github.com/google/model-viewer/pull/4200#event-8937716044, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEPV7MYG56J3AMOE3YN6DTW7WUBHANCNFSM6AAAAAAWULGBME
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Ben Houston, CTO https://threekit.com
613-762-4113 / http://calendly.com/benhouston3d


not able to install chatterbot

every time when i am installing the chatterbot it is showing error , is it happening because of python version?

I am having the same problem! Did you manage to fix your issue? If so please can you advise me what you did?

Same issue here!


Rerender for correct run-exports

@hmaarrfk was right - turns out also CPU is ABI-sensitive...

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender


Keeping the readthedocs link handy

I would suggest keeping the documentation link in the about section of the repository.

thanks :) should be addressed now


headerRenderer receives wrong dataKey when the column changes its dataKey

I'm using 7.8.3 and am trying to introduce responsive columns, such that a different set appear depending on the width we get from AutoSizer.  I ran into an issue where the headerRenderer was receiving the wrong dataKey after the column of the same index switched to a different column type (when the width changed).
I had to change this:
  <div
    {...a11yProps}
    key={`Header-Col${columnIndex}`}
    className={classNames}
    style={style}
  >
    {renderedHeader}
  </div>

to this:
  <div
    {...a11yProps}
    key={`Header-Col${dataKey}`}
    className={classNames}
    style={style}
  >
    {renderedHeader}
  </div>

Can you provide a reproduction case?
For instance, the FlexTable demo: https://bvaughn.github.io/react-virtualized/?component=FlexTable
If you click the "hide column?" checkbox, the headers and columns are updated.

I just updated my test project locally to swap columns and confirmed that it seems to be working as expected. The headerRenderer is invoked with the updated/correct dataKey.
The only possible source of confusion I see is that...unless some external prop changes (eg rowCount) the table rows won't be automatically updated. This is because react-virtualized components are pure (they don't update unless their properties change). You can tell the FlexTable to update via the forceUpdategrid method though if you'd like.

Actually it looks like your source of confusion may be the parameters. Check out the docs for headerRenderer. It does not receive a columnIndex parameter.
Going to close this for now as it doesn't seem to be a bug (at least not one I can reproduce). Please let me know if you have any questions though! Or if I misunderstood something, please provide me with a reproduction case on Plunkr~
Here is a Plunker you can fork that has React Virtualized loaded and supports JSX syntax: https://plnkr.co/edit/6syKo8cx3RfoO96hXFT1

Hi Brian,
Sorry for the confusion.  The code snippet I provided was from _createHeader of FlexTable.js (https://github.com/bvaughn/react-virtualized/blob/master/source/FlexTable/FlexTable.js#L416).
I created a demo app that tries to make use of dynamic columns w/ column filtering (https://github.com/bgerm/flextable-filter-sort/).  To give an example of the bug, if you run the demo in a large resolution you will see the VERB column.  Enter in some text to filter on that column.  Then resize the browser until the columns change.  In that same column position you will see the filter text still appear, but for a different dataKey (though the label has changed).
A better example is if you you add verb: 'foo' to this line:  https://github.com/bgerm/flextable-filter-sort/blob/master/src/App.js#L19.  It  won't show foo under the verb column.  This is because that column has the dataKey of "created" since that was rendered in the third column position first, which is now occupied by verb.
I hope I didn't make that too confusing.

No worries. Thanks for the extra info and the reproduction case.
If I add logging to your renderHeader method like so...
console.log('renderHeader():', dataKey)

Then when ther are 4 columns I see:
renderHeader(): name
renderHeader(): stateLabel
renderHeader(): verb
renderHeader(): favoritesLabel

And when I resize it so that only 3 show, I see:
renderHeader(): name
renderHeader(): stateLabel
renderHeader(): created

So the correct dataKey is being passed to the header.
The problem seems to be that your FilterHeader component is using defaultValue instead of value for the input. And when filterDisabled is true (as it is for the 3rd column when you've resized) it's not calling getFilterMap to update the value and so the previous, unmanaged value is still there.
This can be confirmed by adding logging to the getFilterMap method. For 4 columns I see:
getFilterMap() name Object {favoritesLabel: "trans", verb: "f"}
getFilterMap() stateLabel Object {favoritesLabel: "trans", verb: "f"}
getFilterMap() verb Object {favoritesLabel: "trans", verb: "f"}
getFilterMap() favoritesLabel Object {favoritesLabel: "trans", verb: "f"}

But when I resize to 3 columns I only see 2 logs:
getFilterMap() name Object {favoritesLabel: "trans", verb: "f"}
getFilterMap() stateLabel Object {favoritesLabel: "trans", verb: "f"}

Thanks a lot for taking the time to go through the code.  I still think there may be a key reconciliation issue.
Since the width is initially 0, the third column starts out as "created" and then becomes "verb" (assuming large resolution).  If in the constructor of FilterHeader you add this.state = { ..., dataKey: props.dataKey }; and then in the render you have console.log('dataKey', this.state.dataKey, this.props.dataKey)  you will see created verb.
The example is slightly more complicated than it needs to be, but I just wanted to show how I was using it.  I am struggling to come up with a way to make this example work without modifying the FlexTable code (which may not be the best solution).

If you want to update your example so that it reproduces the problem you're referring to, I'll take another look.

Cool.  Made the update.

FilterHeader seems to have a bit of a React anti-pattern going on. The dataKey in state is set only once, in the constructor, based on the initial props value. But when the value in props changes (as the component is re-rendered) the state value gets out of sync.
You can see this happening by adding the following to FilterHeader:
  componentWillReceiveProps (nextProps) {
    console.log('<FilterHeader> componentWillReceiveProps() dataKey:', nextProps.dataKey)
  }

Now console will log...
<FilterHeader> componentWillReceiveProps() dataKey: verb
rendering dataKey --> created verb
^^^^^^ mismatch ^^^^^^^^^^^

Still pretty sure FlexTable is doing the correct thing here.
If your components have state that is dependent in any way on props, be sure to use the componentWillReceiveProps lifecycle method to update state accordingly. (Or better yet, just drive everything off of props if you're able and avoid the potential pitfall.)


Impossible to pass --symlink-install=false on command line to suppress a true in defaults.yaml

Here is my defaults.yaml file that is checked in the repository to allow for a quick build (i.e. with symlinks) on user side.
build:
  symlink-install: true
  cmake-args:
    - "-DCMAKE_BUILD_TYPE=Debug"
    - "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"

In the CI pipeline, as I want to publish the install directory, I want a binary release without debug information without symlinks.
For the former I use colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release. How can I do the latter? I cannot add --symlink-install=false.
Currently I'm seding the yaml file in the CI, but maybe there's a more straightforward way.

I now set the COLCON_DEFAULTS_FILE environment variable to point to e.g. defaults-release.yaml with the following content.
build:
  symlink-install: false
  cmake-args:
    - "-DCMAKE_BUILD_TYPE=Release"
    - "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"

(export COLCON_DEFAULTS_FILE=/ros2-pg/defaults-release.yaml; colcon build)

This will be sufficient for my use case, but I leave the issue open to know whether there's a command line solution.
Note that if the pointed-to file isn't found, colcon doesn't stop on the error but goes on. Is that the intended behavior?

Command line argument parsing is done by argparse, and the --symlink-install option is configured using the store_true action[1] [2]. It doesn't appear that there is a way to "undo" a store_true once activated. There is a BooleanOptionalAction added in Python 3.9 that we may be able to switch some of our boolean arguments to, though I'm a little concerned about making the help text longer. It's something to consider.

Note that if the pointed-to file isn't found, colcon doesn't stop on the error but goes on. Is that the intended behavior?

Not sure, that's a pretty old feature. Looks like the implementation is shared with the mechanism that reads the defaults file from COLCON_HOME which must continue to use the current behavior, so we might need to tear some of that apart to get the behavior you're looking for. Consider opening a separate issue or PR to discuss further.
[1] https://docs.python.org/3/library/argparse.html#action
[2] https://github.com/colcon/colcon-core/blob/a74fa97fcea08d1e276a327228c119ce78aa0075/colcon_core/verb/build.py#L100-L103

I had left the issue open only to know whether there's a way to "undo" a setting, and now I know there's none currently. As far as I'm concerned, the solution setting the COLCON_DEFAULTS_FILE environment variable is viable and sufficient, so that I close the issue. Thanks for your input.


Create MAINTAINERS.md and community-membership.md files and update CODE_OF_CONDUCT.md file

Create MAINTAINERS.md and community-membership.md files and update CODE_OF_CONDUCT.md file

squash your change to one commit


Data structure proposal

An example of a proposed data structure has been created, as well as appropriate documentation.

This pull request will be closed as this is an old version of the data structure that is no longer relevant


how to create a new plugin

I wanna expand the crowi, how can I do it?
I don't want to modify the existing code.

Plugin mechanism is to be developed and inform later.
Close this issue at this moment.


Noe/crash on load

Seems to fix the crash on wallet click (version 237 on testflight works for me)
Also fixes local building that was failing on my computer

Rebased with latest main

Made an issue to track in the future, but would like to include these changes in the next build


reordered hint blocked - will need to tweak for mobile

Reordered hint blocks so that 1 and 2 are on the right hand side.

Fixed through another method


Restructure makefile for running e2e tests with prow

What this PR does / why we need it:
Move some logic into the Makefile to make running e2e tests on prow easier
Release note:
NONE

/assign

/test e2e

/test e2e

/retest

/retest

/retest

/test e2e

/test e2e

Needs a rebase once #216 has merged


Adds custom fields to let the user customize how the k8 aspects of their pipeline deploy

LGTM

LGTM

Merging it - please ensure build passed beyond the merge


Fixing issue #1685, "No library '<Browser.browser.Browser object at 0x...>' found."

@aaltat Please review the code here, thanks

The problem described with the if/else is the most important problem to solve. Once that problem is solved, we can look are the rest of the comments/code important to solve.

I removed the if/else block, both python and robot use the same code

There is linting error, please run inv lint command and commit to fix the problem.

Aceptance test cases that use Promise To and Wait For must still pass, for instance "Shows a cat and a dog"

The problem described with the if/else is the most important problem to solve. Once that problem is solved, we can look are the rest of the comments/code important to solve.

Code contains one block for both the robot and the oython interface

Lint is failing due to errors in atest/test/03_Waiting/wait_for_http.robot; I did not change that file

That should have been fixed in upstream, please rebase. It was caused by a  Tidy update.

That should have been fixed in upstream, please rebase. It was caused by a Tidy update.

Thanks, I rebased my repo; all the jobs are green

@allcontributors please add @luchoagomezt for code


Paging is not displayed on chrome browser

Hi Team,
Paging controls are not displayed on chrome browser. On IE it's working as expected.
I am using 'ui-grid - v3.0.0-RC.18 - 2014-12-09' version.
Thanks in advance,
Sunny

No comment for over 2 weeks, closing issue.


Vulnerability roundup 45 (master)

Scanned nixos/release-combined.nix @ dae9cf6. Filtered out previously reported CVEs. May contain false positives.
git-2.17.1 (search, files)

[x] CVE-2018-11235

graphviz-2.40.1 (search, files)

[x] CVE-2018-10196

libsass-3.5.4 (search, files)

[x] CVE-2018-11499
[x] CVE-2018-11693
[x] CVE-2018-11694
[x] CVE-2018-11696
[x] CVE-2018-11697
[x] CVE-2018-11698

postgresql-9.6.8 (search, files)

[x] CVE-2018-1058
[x] CVE-2018-1115

Cc: @joepie91, @phanimahesh, @the-kenny, @7c6f434c, @k0001, @peterhoeg, @nh2, @LnL7, @grahamc, @adisbladis, @fpletz, @vcunat
Contact @ckauhaus for any questions.

git's one was fixed in 2.17.1 and master already has 2.18, see https://github.com/git/git/blob/master/Documentation/RelNotes/2.17.1.txt

libsass CVE-2018-11693 fixed in b5b23b39bebb8f4efe9d2448a10ab9bbfef62683

postgresql CVE-2018-1058 was fixed in the last round of updates: https://www.postgresql.org/about/news/1834/ (7e21fd72ce682c35c78c513a1d2d5336c177a0e1 and parents)

libasass is 3.5.5 in 19.03
graphviz already has patch applied


HELP: jupyter log output : assert 0 < size <= self._size  when i use leafmap

when i use leafmap to draw a rectangle， the jupyter usually output a error.
Traceback (most recent call last):   File "/sdisk/shome/speed/anaconda3/envs/samgeoNew/lib/python3.9/asyncio/events.py", line 80, in _run     self._context.run(self._callback, *self._args)   File "/sdisk/shome/speed/anaconda3/envs/samgeoNew/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 206, in _handle_events     handler_func(fileobj, events)   File "/sdisk/shome/speed/anaconda3/envs/samgeoNew/lib/python3.9/site-packages/tornado/iostream.py", line 702, in _handle_events     self._handle_write()   File "/sdisk/shome/speed/anaconda3/envs/samgeoNew/lib/python3.9/site-packages/tornado/iostream.py", line 976, in _handle_write     self._write_buffer.advance(num_bytes)   File "/sdisk/shome/speed/anaconda3/envs/samgeoNew/lib/python3.9/site-packages/tornado/iostream.py", line 182, in advance     assert 0 < size <= self._size AssertionError

This seems an ipyleaflet/ipywidgets installation issue rather than not a segment-geospatial issue. Try creating a fresh conda env to install the packages.
conda install -n base mamba -c conda-forge
mamba create -n geo segment-geospatial leafmap localtileserver -c conda-forge


Update chart pgadmin4 to 1.23.2

This PR contains the following updates:

Package
Update
Change

pgadmin4 (source)
patch
1.23.1 -> 1.23.2

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


Refactor annotation data passing

Currently we do not expose the entire annotation object to viewer/third-party code, but only the data in this.data. Keeping this.data up-to-date not only requires more code, but it's also a bit error-prone as #6677 shows. I'm therefore proposing to expose the entire object instead as that will make the code easier and also give viewers/third-party code more flexibility (and more data to work with). Does this idea seem fine or are there issues with this approach that I have missed so far?
This would imply an API change as any external code relying on the fields in this.data must be converted to use the actual annotation object instead.

Does this idea seem fine or are there issues with this approach that I have missed so far?

One complication is that annotation.js is executed on the worker side, and the annotation data is then parsed on the main thread. Hence trying to return the Annotation "class" as is might not work correctly, since it's quite possible that there could be issues with cloning such an object.
(But please note that I haven't tested any of it, that's just what comes to mind immediately.)

Good point. I just recall looking into that problem for #5218. What I remember that happened was that the methods were no longer accessible, but the attributes were, so one can no longer use annotation.hasFlag(flag) for example, but one can access annotation.flags. I think that is fine for our purposes though as viewer/third-party code does not need access to the setters or other methods, but only access to the properties of the object. But indeed this is something that needs to be tested to see if it really works this way.

It will be nice if some methods for Annotation class can be shared between worker and UI e.g. hasFlag, viewable and printable.
A possible solution is to create an AnnotationHelper class in src/shared folder so that helper methods can be shared.
  // src/shared/annotation_helper.js
  var AnnotationHelper = (function AnnotationHelperClosure() {
    function AnnotationHelper(data) {
      this.data = data;
    }

    AnnotationHelper.create = function(data) {
      return new AnnotationHelper(data)
    }

    AnnotationHelper.prototype = {
      // methods;
    };

    return AnnotationHelper;
  })();

// src/display/api.js
getAnnotations: function PDFPageProxy_getAnnotations() {
  if (!this.annotationsPromise) {
    this.annotationsPromise = this.transport.getAnnotations(this.pageIndex)
    .then(function(annotations) {
      return annotations.map(AnnotationHelper.create)
    });
  }
  return this.annotationsPromise;
},

// src/core/annotation.js
Util.inherit(Annotation, AnnotationHelper);

I did some more testing for this and it turns out that indeed the methods are lost when the object is cloned. While I like @Snuffleupagus' idea to bring back the getData() method that returns and object with the data to be exposed (since that prevents the double bookkeeping of the this.data object that we have to do now), after some more thinking I don't think that resolves this issue because when we clone the object we would still lose the getData() method.
We might need to some something along the lines of @xlc's comment, but personally I'm not a big fan of extracting the methods of the class only because the worker is not able to clone the object properly. It seems like all that extra code should not be necessary.
Do you have other suggestions to tackle this problem? If it turns out that passing the entire object is simply not possible, then I propose to remove the this.data object altogether as all properties are already in the cloned object (such as this.rectangle and this.flags).

[...] idea to bring back the getData() method that returns and object with the data to be exposed

That suggestion was made in the context of #6699, and without thinking too much about this specific issue. So in the current context I don't thing that getData() would bring us much, if any, value.

[...] but personally I'm not a big fan of extracting the methods of the class only because the worker is not able to clone the object properly. It seems like all that extra code should not be necessary.

Agreed. Also, the Annotation "class" contains a number of methods that doesn't make sense to expose on the main thread either.
Since we're currently only exposing various properties, but not any methods, I suppose the question is how necessary it really is to have methods available too. (Note how e.g. PR #6675 added functionality that enables fetching of viewable/printable annotations through the API).
One thing that might explain why this.data was introduced in the first place, is that when workers are disabled, you'd get the entire Annotation object through the API (complete with methods and everything). So that case is probably worth considering here as well.

I think you are right. We do not need to expose the entire object as third-party/viewer code does not really need the methods, only the properties. Since disabling workers is discouraged because of the performance impact, I don't think we need to worry too much about that case. In all cases though, third-party/viewer code can make use of the available properties of the annotation object without having this.data (e.g., this.data.rect would just become this.rectangle), so I'm in favor of removing it.

Please notice that usage at the core and display modules of the annotations are different -- any future designs shall keep that in mind. The core part shall only perform parsing and providing an IR of the annotations (the different classes/methods can be used for operator list conversion). The display part shall operate with IR only to generate non-operator list representation. There might be some code duplication, but I'm afraid it will not be a big concern.

To address the this.<propertyName> vs this.data.<propertyName> duplication, a possible solution could be something along these lines: https://gist.github.com/Snuffleupagus/62d3e1816db883c0af1a.

IMHO just explicitly assigning properties from data/IR object to the target object will be as efficient. (My worry is that for-each loop might construct different object shape and that will prevent JIT from some optimizations).

I don't think there is much more we can do about this at this point. The structure improved a lot since the last patches and the assignments to this.data are now more clear and grouped where possible (for example https://github.com/mozilla/pdf.js/blob/master/src/core/annotation.js#L170-L176). Other suggestions are either hard/impossible or inefficient, so I'm closing this for now. We can always decide to change this later if we want to, but for now the situation has improved a lot to keep it like this.


Sliver - Failed assertion: line 540 pos 15: 'children != null': is not true.

Flutter (Channel stable, v1.12.13+hotfix.9, on Mac OS X 10.14.6 18G103, locale en-US)
This is a super simple failed assertion that is saying a bug report needs to be filed due to vagueness, but I'm not sure if that's really necessary.
body: _lists.isEmpty ? Center(child: Text('None')) : ListView(
controller: _scrollController,
shrinkWrap: true,
padding: const EdgeInsets.all(2.0),
children: _buildWidgetList(_lists, _onListTap)
),
That's the body of my Scaffold, and if the method to build the children of a ListView returns null, you see this exception:
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following assertion was thrown building ListIndexScreen(dirty, state: _ListIndexScreenState#b12a4):
'package:flutter/src/widgets/sliver.dart': Failed assertion: line 540 pos 15: 'children != null': is not true.
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=BUG.md

Hi @stephenhuey
be sure that _buildWidgetList(_lists, _onListTap) doesn't return null, return empty list if needed.
Please see https://flutter.dev/community or Stack Overflow for resources and asking questions.
Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
Thank you


cloneWithUpdates is duplicating fields in OperationNode

Hi! Awesome package, loving the type inference.
I'm creating a plugin where I need to adjust a field before it's updated. However I'm now stumbling across the thing that cloneWithUpdates is duplicating the fields and therefore throws errors. I'm wondering if this behaviour is on purpose.
code:
const updateNode = UpdateQueryNode.cloneWithUpdates(node, [updates[0]]);

error:
{
    "statusCode": 500,
    "code": "42601",
    "error": "Internal Server Error",
    "message": "multiple assignments to same column \"updated_at\""
}

I'm unable to get it to work and the docs aren't that clear to me about how these nodes need to be updated. I'm trying to update the operation node with adjusted updates that are created like so:
const adjustedUpdates = node.updates?.map((update) => {
    if (ColumnUpdateNode.is(update)) {
        const column = update.column.column.name;

        if (table === "table_name" && column === "column_name") {
            return ColumnUpdateNode.create(update, {
                value: {
                    kind: "ValueNode",
                    value: 'some updated value here based on `update',
                },
            });
        }
    }
    return update;
});

Wondering if the duplication is on purpose or if it's a bug.

P.S. I got it working by resetting the updates on the initial node. See:
const updateNode = UpdateQueryNode.cloneWithUpdates({ ...node, updates: [] }, modifiedUpdates);

But this feels very hacky.

Hey 👋
You're diving into the world of Kysely's internals. Don't expect these things to be fully documented, and stable, or for you to be served as a 1st class citizen. Don't immediately assume there's a bug. Anything you will do will be hacky - that's the nature of altering the AST.
If there's a way to make it better for your use case, without making it worse for regular usage AND without hurting the maintainability of the core project, or hurting other use cases - it will be considered.

@igalklebanov Thanks for your quick response. Good to know hacky is the way to go with this AST!
As response to

or for you to be served as a 1st class citizen. Don't immediately assume there's a bug
I'm not doing both of these things hence why I'm creating this issue.


fix: Shield ignores AuthToken::$authenticatorHeader config

Description
Mentioned in discussion https://github.com/codeigniter4/shield/discussions/1167
Fixes #1168
Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[x] Conforms to style guide

See :
https://github.com/codeigniter4/shield/pull/672#issuecomment-1468658726
https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/signing.md

Signed, thank you.

Please sign all your commits.

Also, we don't like merge commits. Please do not include merge commits in PRs.
You can use git rebase to remove the merge commit.
See https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/workflow.md#updating-your-branch

@alxjzx100 Thank you!


Add back support for supervision trees.

As per the novelle beginning in #557, detailing the pre-history era of Celluloid, circa the discovery of fire:

In the before time, in the long long ago, before getting lost in the sands of time, calling Celluloid::SupervisionGroup.run would spawn the root of the supervision tree, and set this accessor to be the root of the supervision tree:

https://github.com/celluloid/celluloid/blob/master/lib/celluloid/supervisor.rb#L7

Unfortunately grep confirms all of that code has been lost.

Shutdown should start by checking if the supervision tree has a root, and if it does, terminating the root supervisor.

SupervisionGroup's walk their children, shutting them down in the reverse order they started in, and doing this synchronously:

https://github.com/celluloid/celluloid/blob/master/lib/celluloid/supervision_group.rb#L177
Movie renditions of novella ought to star Tom Hanks but somehow not copy the start/end of Cloud Atlas.

celluloid-supervision-tree gem?

Maybe a celluloid-supervisors gem, factoring all of the existing supervision code out of core

I was hoping you'd say that.

That will radically simplify the test situation -- everything is so cramped. @e2 was talking about getting down to "bare bones" and hardening that, then gemming out the rest and I'm tending to think that way. With celluloid-pool gone getting its own issues posted it's a different feeling.

And being able to pin dependencies on older versions of Celluloid versus newer versions of gems, would be tremendous. It's soundtrack would have to be Court of the Crimson King or something.

AHHHHHHHHHHHHH AHHHH AH AHHHHHHHHH ( breathe ) AHHHHHHHHHHHHHHH AHHHHHhhhHHHHHHH AAAAAAhhHHHHHHHHH ( drum solo )

Mostly done, tracked at own gem.


13776 Allow business contact information to be corrected

Issue #: /bcgov/entity#13776
Description of changes:

remove correction filings as a disabled action.
app version 3.8.0 -> 3.8.1

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

@severinbeauvais What version of node are you using? I get all of these deletions when I use 8.19

This ticket overlaps with part of the ticket I'm working on, and the PR is https://github.com/bcgov/business-edit-ui/pull/386

This ticket overlaps with part of the ticket I'm working on, and the PR is #386

I see, closing this PR as overlap with with https://github.com/bcgov/entity/issues/13554

@severinbeauvais What version of node are you using? I get all of these deletions when I use 8.19

Also, if you're using VS Code, disable/uninstall extension Vetur and install/enable extension Volar.


Not able to install on a Pi Zero W

Describe Your Problem:
Have tried several times but have not been able to install.
Logs:
Show the Homebridge logs here, remove any sensitive information.

Plugin Config:
Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

Plugin Version:
Homebridge Version:  1.6.1
Node.js Version:  18.17.0
NPM Version: 9.6.7
Operating System: Rasbian

This appears to be a physical resource issue. Ensure you have enough available memory on board to run Homebridge.


KAFKA-8662; Fix producer metadata error handling and consumer manual assignment

Producer adds a topic to its Metadata instance when send is requested. If metadata request for the topic fails (e.g. due to authorization failure),  we retain the topic in Metadata and continue to attempt refresh until a hard-coded expiry time of 5 minutes. Due to changes introduced in https://github.com/apache/kafka/commit/460e46c3bb76a361d0706b263c03696005e12566, subsequent sends to any topic including valid authorized topics report authorization failures in any topic in the metadata, rather than just the topic to which send is requested. As a result, the producer remains unusable for 5 minutes if a send is requested on an unauthorized topic. This PR fails send only if metadata for the topic being sent to has an error (or there is a fatal exception like authentication failure).
Consumer adds a topic to its Metadata instance on subscribe() or assign(). Even though assign() is not incremental and replaces existing assignment, new assignments were being added to existing topics in SubscriptionState#groupSubscriptions, which is used for fetching topic metadata. This PR does a replace for manual assignment alone.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@hachikuji Thanks for the review. Yes, the current fix takes us back to the behaviour pre-2.3.0. We retain the topic in Metadata after authorization exception, but throw exception only if it corresponds to the topic in the request. The topic is removed only on expiry. I did consider removing it in this PR, but decided it was safer to keep the previous behaviour. In the good path case, when you set an ACL and then produce to a topic, there is a timing window when you can see a TopicAuthorizationException because the cache on the leader broker was not yet updated. In this case, leaving the topic in there means that the next request after ACL was refreshed would succeed. I wasn't sure if removing the topic would cause an unnecessary delay in this case. I also thought I could remove the topic just for InvalidTopicException in this PR, since invalid topics dont suddenly become valid, but then again I wasn't sure if for example a deleted topic would appear as invalid topic. Finally went with the option of retaining old behaviour. It is possible that we used to have that behaviour simply because it was harder to remove the topic from the metadata and propagate the exception in the old code. So it is worth investigating and fixing this. But perhaps in a separate PR?

Yes, I'd suggest restoring pre 2.3.0 behavior, cherry-picking the fix to the 2.3 branch and any other changes to be done via a separate PR in trunk.

@rajinisivaram I pushed a minor change so that maybeThrowFatalException only raises fatal exceptions and does not drop recoverable exceptions. This seemed a little clearer and got around the need to skip checking in awaitMetadata. This resolves the question I had above.

Failures unrelated, JDK 11 with Scala 2.12 failed while checking out repo due to DNS resolution failure

retest this please

@hachikuji Thanks for the review and updating maybeThrowFatalException. Your commit looks good. Merging to trunk and 2.3.


Validation fails on network-traffic:start

If I run the following STIX pattern
"[network-traffic:start = '2018-04-20T12:36:24.558Z']"
it fails validation and gives the following error
"FAIL: Error found at line 1:17. no viable alternative at input 'network-traffic:start'"
The pattern passes validation if I use the end attribute instead of start.

"start" is actually a pattern keyword (e.g. see the start/stop qualifier).  Try putting it in single quotes:
[network-traffic:'start' = '2018-04-20T12:36:24.558Z']

That works, thank you.

@ikiril01 do we cover this in the patterning spec? quoting properties that match keywords in the pattern grammar? If not, should we?

You shouldn't have to put those quotes in there. The lexer should be able to handle this.. 'start' may be a reserved word, but there is no whitespace involved here. @gtback I would suggest reopen...

@chisholm Agree. We could have "start" show up all over the place in a pattern.

I'll re-open this, but I'm not a fan of anything requiring "lexer trickery" 😀 . More generally, @JasonKeirstead , I thought the reason we required quotes around "SHA-1" was to avoid potential ambiguity around the (potential future) subtraction operator. I realize that there's a difference between the proposed arithmetic operators (which are inside an observation expression) and the START/STOP operators (which are outside),  but I can also see why that context sensitivity can lead to more complexity.

@gtback Perhaps something we should bring up to the TC - my question is, we're basically making a decision here on all SCO properties. Should you have to quote any property that is also either an observation or operator? There can be many future collisions.

This is unambiguous that start does not match the keyword start here...  the open bracket [ means that START is not a keyword until it encounters a closing bracket.
If the grammar can get confused by this point, then the grammar needs to be fixed, not working around it like the above.

the open bracket [ means that START is not a keyword until it encounters a closing bracket.

That is context sensitivity, with respect to lexical analysis.  Sometimes "start" is one thing, and sometimes it's another.  Of course we as humans can see the difference and don't get confused.  The lexer is pretty dumb.
If we made every string of letters into some kind of generic "ID" token (i.e. an "identifier"), then you'd have generic parser rules, like:
startStopQualifier : ID StringLiteral ID StringLiteral ;

And then something like hello '2018-06-14T19:16:29Z' world '2018-06-14T19:17:12Z' would be parser-grammar-valid.  You could check that at a higher level, but it's nice if it can be caught earlier in the processing pipeline.  So "start" was lex'd into a special start token and referenced in the parser grammar.  It was like that when I got the grammar(s), and it made sense to me at the time.  I'm no expert on parsing, but it makes sense to me to keep things as simple as possible until there's a demonstrated need for something more complicated.

The fix for this case is simple. The 2.0 Patterning Language spec defines the start literal as START. In the current ANTLR grammar it's [Ss][Tt][Aa][Rr][Tt]. It should only be START, based on the 2.0 spec where text highlighted in light blue is a literal. There's no need to allow StArt or other permutations.

See also https://github.com/oasis-open/cti-pattern-validator/issues/40#issuecomment-351899634

I'll agree w/ requiring START keyword to be all caps.  There is nothing in the spec that allows it to be lowercase.
This doesn't fix the problem as there could be a custom property on a SCO be START, and we still need to allow that to be unquoted.

I don't think that can happen.

Custom Property names MUST be in ASCII and MUST only contain the characters a–z
(lowercase ASCII), 0–9, and underscore (_).

@varnerac is correct. The best way to fix this is to update the grammar (oasis-open/cti-stix2-json-schemas#68) and then incorporate those schemas into this repository.

@chisholm can you add tests and incorporate the new lexer code after fixing oasis-open/cti-stix2-json-schemas#68?

@delliott90 this should be fixed now. We'll be releasing a new version of the library pretty soon that incorporates this change.

Good to know, thank you.


gltfpack: Implement support for disabling resampling when frequency is 0

Using -af 0 now disables resampling and keeps the original time values.
When resampling is disabled, we can still mark tracks as constant and
remove them if they are not necessary, which cuts down on the animation
size. In this mode it is more difficult to support ranges, so we assume track
range will cover the relevant timespan if any tracks with time survive.
Doing this analysis for cubic splines is slightly more difficult as if
tangents are non-zero, an otherwise "constant" track will not result in
constant output, so we disable analysis in that case for simplicity.
Fixes #815.

Hmm, range preservation can be reimplemented more cleanly now as it can be done during processAnimation. This would make it work even if resampling is turned off. Will do this before merging this.


Updated login and User guide docs. Closes #5191

Updated login and User guide docs.

Updated login and User guide docs by giving examples about login without setting environment variable. Closes #5191

Linked Issue
Closes #5191

Merged manually, thank you! 👏


Allow DemandControl entity to be updated

This is some sort of hack to compensate for the fact we never receive a "first" value for this entity (and HA does not want to update a number with a slider when it's original value is None)
Fix #124

Demand control is 1-100% , it's virtually emulated extended board, which works from 1-10V there is 0V is no demand control, or 100%.. so default value for that should be 100. Unfortunately there's no topic for demand control.. and don't think that heishamon saves last value.. so it's set as is, and i think after reboot of heishamon it should be reset to desired value.

Thanks for the precision
https://github.com/Egyras/HeishaMon/blob/master/OptionalPCB.md says it 5 to 100%.
I put initial value at 100% indeed.

Thanks for the precision https://github.com/Egyras/HeishaMon/blob/master/OptionalPCB.md says it 5 to 100%. I put initial value at 100% indeed.

According service manual,

step should go by 5% and last step is 10%.. it's possible that it's allowed to send that to heatpump.. but there is unknown behavior for that, or it might be that precises value's are just ignored by pump logic.. i have setup with extension board, and have 0-10V and didn't noticed any behaviors in 1-30% change.. from 30% it will ramp little bit, but again it will not go to next stage after bugger change.. it's seams that pump have maybe 4-5 work stages.. someone mentioned that pump behaves almost in same way as it set in quiet mode..

Just checked optionalPCB implementation in heishamon. And yes values are saved (every 5min!) to flash memory and reloaded on start. So there is possibility that value will not be saved in flash. and unfortunately for now there is no way to get back current value. So set of this value is risky and only in one way.

One way to get the data (at least from a MQTT view) would be for heishamon to send the value it has in flash memory over mqtt.
It might be incorrect but is likely to be correct most of the time.


feat: brace fences

This supports the brace format in superfences. The blocks are processed the same as normal markdown code blocks. The only difference is the before line.
TODO

[x] support more language classes (I only see .python and .py3 in the superfences docs, but there is probably more.)

So SuperFences is an extension for Python Markdown? I feel like it’s ma bit niche to add support for at this time, and more importantly commit to maintaining.
You’re free to run your fork, of course, and if others chime in saying they use this then I may be more swayed.

That's a fair point that it's niche.
I'll share a bit why they are useful. I'm using superfences in my own documentation as a way to pass metadata about the code block. I run the code in my markdown docs as tests (inspired by koaning/mktestdocs). The extra metadata helps control the test environment.
None of that is relevant for this project, except that I want to keep my docs formatted and need to support superfences. I thought I'd just share my work. I'll get this branch working for my own sake, but feel free to merge if you ever want to support this!

Hi @maxb2,
As requested by @adamchainz on the other issue (#281), I've tried to rebase your fork and update it so that GitHub can update this PR (#274). But it looks like I don't have access.
Message from Git when I try to do git push 👇
remote: Permission to maxb2/blacken-docs.git denied to chrimaho.
fatal: unable to access 'https://github.com/maxb2/blacken-docs/': The requested URL returned error: 403

Can you please implement the changes? Most of the changes needed should be found on my other PR (#282).
Thank you.


Enforce layering_check in Bazel build rules.

Enforcing layering_check ensures that the Build targets do not rely on transitive dependencies. See
https://github.com/bazelbuild/bazel/pull/11440 for a detailed description of the feature.
We also do a style pass on the build files, ensuring that common linters are happy with it.

The bazel builds are failing:
Using bazel-5.0.0

path=/bin/bazel-5.0.0
echo 'Using bazel-5.0.0'
export PATH=/bin/bazel-5.0.0:/bin/clang-10.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PATH=/bin/bazel-5.0.0:/bin/clang-10.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
return 0
unset -f print_glob_matches
unset -f export_tool_to_path
unset -f use_clang
unset -f use_gcc
++ date
echo Tue Dec 20 05:05:59 UTC 2022: Build everything...
bazel build :all
Tue Dec 20 05:05:59 UTC 2022: Build everything...
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
Loading:
Loading: 0 packages loaded
ERROR: Traceback (most recent call last):
File "/tmpfs/src/github/SPIRV-Tools/BUILD.bazel", line 41, column 21, in
generate_core_tables(version = "unified1")
File "/tmpfs/src/github/SPIRV-Tools/build_defs.bzl", line 78, column 26, in generate_core_tables
).format(**(grammars | outs))
Error: unsupported binary operation: dict | dict

Does this change require bazel after 5.0.0?  That's what our bot VM has in it.

dict | dict does not work in Bazel 5.0.0. I added a .bazelversion file to document the version of Bazel to work (and also to make tools like Bazelisk choose the right version) and then I fixed build_defs.bzl.


Error: ERR_CERT_AUTHORITY_INVALID

** How to load a custom or invalid SSL page in Franz**
First of all sorry if this is a easy one, i'm kind of a newbie here.
Thanks in advance for your help.
I'm trying to create a page that is kinda new and doesn't have a valid SSL certificate as a new plugin and want to know how and where to set rejectUnauthorized as false in Franz recepie for only my particular recepie.

Any news about this problem?
Tried to add a self-signed service, but even with this mentioned "trick" (https://github.com/meetfranz/franz/issues/1479#issuecomment-532228031) #1479 it is not possible to load your custom service.
Thanks, Markus

Find a solution for this problem:
Windows: Start certmgr.msc

CA Root certificates > certificates > import:

Now import your CA-Root and your CA-Intermediate certificate.
Apply https://github.com/meetfranz/franz/issues/1479#issuecomment-532228031 to your custom-website recipe in folder C:\Users>username>\AppData\Roaming\Franz\recipes\franz-custom-website.
index.js (modified) must look like this:
"use strict";

	module.exports = Franz => class CustomWebsite extends Franz {

	};

Restart Franz and test again!
Good luck!!!

Sorry. Had no luck - since there is no CA Root certificate available to be imported on the test service I am working on.


Add support for using IAM role credentials if running in AWS

Would like for users to be able to use IAM role credentials instead of having to specify key/secrets.

@pve To support getting the IAM credentials from the instance metadata.  See the rest of the PR at #7.

Note: This isn't ready to merge yet.  I haven't gotten the IAM credentials working at this point.

Never got this working.  Moved on to using AWS cli.


Generated tags list has duplicates

Hello
I was looking at why there are duplicates in the tags list at the top of the directory. Especially in the templates section there are many of them.
The problem I found was that the use of the Ember uniq method does not work as intended.
It does a string comparison, however due to it's case-sensitivity it fails at eliminating dupes. Best example is the 'CoffeeScript' tag. Quick example using Lo-Dash.
I didn't have the time this morning to have a look if a newer version of Ember would fix the problem or if there would have to be some different/new approach of creating the tag collection altogether, similar to what is in the JSFiddle above.
However, having little to no experience with Ember, is that actually something that'd be considered by you, to update Ember?
Thanks & Cheers
Patrik

Good catch. I think we just need to downcase the tags before uniq.

Yeah, that's what I thought might be the best option. For now, I was cleaning up templates.yml. Will have time again in about an hour and will put up a PR with a cleaned up version. The lowercasing alone will not solve it 100% as it does not cater for things like "ZURB Foundation" vs. "Foundation".


namespace-fix

Pull Request: Update 'model' argument and add xacro argument for odometry_source
Description

The first change modifies the 'model' argument of the spawn model node to use the $(arg robot_namespace) value.
The second change adds a new xacro argument called 'odometry_source' to the bcr_bot.xacro file. This argument is utilized for the <odometry_source> tag within the differential drive plugin and can also be modified using a launch argument.
Added .gitignore

File Changes

Modified: gazebo.launch gazebo.xacro bcr_bot.xacro
Added: gitignore

Review Comments:

[ ] Cleanup Commit History
[ ] Fix README for copy-paste-able commands in the config section.
[ ] Fix the odometry source value from 1 to world in the README.


pulumi refresh hangs forever if a Pulumi-managed GCP Storage Bucket was deleted manually

Hello!

Vote on this issue by adding a 👍 reaction
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already)

Issue details

Steps to reproduce

I'm trying Pulumi for the first time and I can't seem to get it to refresh the state from the cloud provider when a manual change was made via the cloud console. I'm using Google Cloud as my cloud provider and the basic TypeScript starter template.
Pulumi version 3.17.0.
The commands I've used to reproduce the issue:

mkdir pulumi-testing
cd pulumi-testing
pulumi new gcp-typescript
pulumi up -y
Manually delete the created bucket via Cloud Console
pulumi refresh --logtostderr -v=9

Expected:
Pulumi notices a change has happened in the cloud and updates the local state.
Actual:
The command hangs forever. The console output suggests it tries over and over again to find the deleted bucket.
     pulumi:pulumi:Stack    issue-test-dev  running
 ~   └─ gcp:storage:Bucket  my-bucket       refreshing
I1110 09:44:38.134246  260271 eventsink.go:59] Retry Transport: Stopping retries, last request failed with non-retryable error: googleapi: got HTTP response code 404 with body: HTTP/2.0 404 Not Found
I1110 09:44:38.134283  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Retry Transport: Stopping retries, last request failed with non-retryable error: googleapi: got HTTP response code 404 with body: HTTP/2.0 404 Not Found<{%reset%}>)
I1110 09:44:38.134716  260271 eventsink.go:59] Content-Length: 171
I1110 09:44:38.134738  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Content-Length: 171<{%reset%}>)
I1110 09:44:38.135191  260271 eventsink.go:59] Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
I1110 09:44:38.135223  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"<{%reset%}>)
I1110 09:44:38.135570  260271 eventsink.go:59] Cache-Control: no-cache, no-store, max-age=0, must-revalidate
I1110 09:44:38.135591  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Cache-Control: no-cache, no-store, max-age=0, must-revalidate<{%reset%}>)
I1110 09:44:38.135935  260271 eventsink.go:59] Content-Type: application/json; charset=UTF-8
I1110 09:44:38.135963  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Content-Type: application/json; charset=UTF-8<{%reset%}>)
I1110 09:44:38.136333  260271 eventsink.go:59] Date: Wed, 10 Nov 2021 07:44:39 GMT
I1110 09:44:38.136362  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Date: Wed, 10 Nov 2021 07:44:39 GMT<{%reset%}>)
I1110 09:44:38.136713  260271 eventsink.go:59] Expires: Mon, 01 Jan 1990 00:00:00 GMT
I1110 09:44:38.136739  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Expires: Mon, 01 Jan 1990 00:00:00 GMT<{%reset%}>)
I1110 09:44:38.137076  260271 eventsink.go:59] Pragma: no-cache
I1110 09:44:38.137102  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Pragma: no-cache<{%reset%}>)
I1110 09:44:38.137439  260271 eventsink.go:59] Server: UploadServer
I1110 09:44:38.137460  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Server: UploadServer<{%reset%}>)
I1110 09:44:38.137766  260271 eventsink.go:59] Vary: Origin
I1110 09:44:38.137786  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Vary: Origin<{%reset%}>)
I1110 09:44:38.138101  260271 eventsink.go:59] Vary: X-Origin
I1110 09:44:38.138127  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Vary: X-Origin<{%reset%}>)
I1110 09:44:38.138570  260271 eventsink.go:59] X-Guploader-Uploadid: ADPycdt69SfSITaLX1C3A51gwDy5RiUOjVcvqgxzujUwZ3no5oYowtPVYqEla7fchooU8TmY39_DHmVlRR-u7FarrYQ
I1110 09:44:38.138606  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>X-Guploader-Uploadid: ADPycdt69SfSITaLX1C3A51gwDy5RiUOjVcvqgxzujUwZ3no5oYowtPVYqEla7fchooU8TmY39_DHmVlRR-u7FarrYQ<{%reset%}>)
I1110 09:44:38.138947  260271 eventsink.go:59]
I1110 09:44:38.138981  260271 eventsink.go:62] eventSink::Debug(<{%reset%}><{%reset%}>)
I1110 09:44:38.139299  260271 eventsink.go:59] {"error":{"code":404,"message":"The specified bucket does not exist.","errors":[{"message":"The specified bucket does not exist.","domain":"global","reason":"notFound"}]}}
I1110 09:44:38.139328  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>{"error":{"code":404,"message":"The specified bucket does not exist.","errors":[{"message":"The specified bucket does not exist.","domain":"global","reason":"notFound"}]}}<{%reset%}>)
I1110 09:44:38.139646  260271 eventsink.go:59] Retry Transport: Returning after 1 attempts
I1110 09:44:38.139696  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Retry Transport: Returning after 1 attempts<{%reset%}>)
I1110 09:44:38.140063  260271 eventsink.go:59] Dismissed an error as retryable. Retry 404s for bucket creation - googleapi: Error 404: The specified bucket does not exist., notFound
I1110 09:44:38.140095  260271 eventsink.go:62] eventSink::Debug(<{%reset%}>Dismissed an error as retryable. Retry 404s for bucket creation - googleapi: Error 404: The specified bucket does not exist., notFound<{%reset%}>)
     pulumi:pulumi:Stack    issue-test-dev  running.
 ~   └─ gcp:storage:Bucket  my-bucket       refreshing.

This looks like it's an upstream issue where the read is willing to take as long as the creation timeout: https://github.com/hashicorp/terraform-provider-google-beta/blob/master/google-beta/resource_storage_bucket.go#L650 -- if you do wait long enough, it will complete (I tested this and the default timeout is 20 minutes, unfortunately) and delete the resource from state.
One workaround is to set the create timeout at creation time (this value needs to persist into state to be used during refresh):
const bucket = new gcp.storage.Bucket("helloworld", {}, {
  customTimeouts: {
    create: "1m"
  }
});

I tested this and confirmed that it does only wait for 1 minute now (instead of 20) during refresh.

This has been changed upstream to use configurable timeouts, 4 minutes by default in https://github.com/hashicorp/terraform-provider-google-beta/pull/3938
There is also a comment "There seems to be some eventual consistency errors in some cases, so we want to check a few times to make sure it exists before moving on".
I'll go ahead and close the issue as done/by design.