Amend Piece Numbers in PARMS that impact NTT

Chris M wrote
I have are four 1881 pieces, all officially under Nottingham as that is where they were administered from, and uploaded as VLD's under Nottingham, but in the case of these four pieces, none actually have any civil parishes that are in Nottingham.
Pieces in question are:
RG11_3308  (all parishes are in Yorkshire West Riding, and should be named RG11_3308A)
RG11_3309  (all parishes are in Derby, and should be named RG11_3309A)
RG11_3314  (all parishes are in Derby, and should be named RG11_3314A)
RG11_3326  (all parishes are in Derby, and should be named RG11_3326A)
As none of these actually need splitting into two, is there something we
can do, such as simply renaming them to get these pieces showing up in
the counties that match where the civil parishes actually are without
the need to re validate the pieces.
I will tell Chris that he has to re-validate these once the change is made.
Geoff

@Geoff - sorry I am obviously missing the point here.
When I look at the pieces (which already exist with the A suffix) - I see the following:

Can you clarify please.

Anne
Sorry, I should have checked. Chris is usually spot on.
Geoff
From: Anne Vandervord @.>
Sent: Thursday, June 15, 2023 8:56 PM
To: FreeUKGen/FreeCENMigration @.>
Cc: Geoff J @.>; Author @.>
Subject: Re: [FreeUKGen/FreeCENMigration] Amend Piece Numbers in PARMS that impact NTT (Issue #1542)
@geoff https://github.com/geoff  - sorry I am obviously missing the point here.
When I look at the pieces (which already exist with the A suffix) - I see the following: https://camo.githubusercontent.com/7a459b37d3db54bb13647ae8ceb849df7d36886b138ba614bc399ff401bf9adb/68747470733a2f2f696d616765732e7a656e68756275736572636f6e74656e742e636f6d2f3630303961656363643630343239636237303038653564332f37343964373561632d666437302d343666322d626331652d313830376664646634366136
https://camo.githubusercontent.com/78162ae095cf2f6b538337912482001b2313c60fdbd54e4ea4d6ad2bd217c606/68747470733a2f2f696d616765732e7a656e68756275736572636f6e74656e742e636f6d2f3630303961656363643630343239636237303038653564332f35656539633838332d306466352d343237352d613763662d663361333330646366343062
https://camo.githubusercontent.com/99ddbb2de9810cbf27db0653e8827e230e7702eb66014daf41eeb93c81c128fe/68747470733a2f2f696d616765732e7a656e68756275736572636f6e74656e742e636f6d2f3630303961656363643630343239636237303038653564332f35393262626339622d623461372d343238362d613165612d376466373034333063663166
https://camo.githubusercontent.com/2144ddd1d190faf374b976627210cbf3df6812e42b203d6e535916bf26be1c10/68747470733a2f2f696d616765732e7a656e68756275736572636f6e74656e742e636f6d2f3630303961656363643630343239636237303038653564332f39663966666266622d643963642d343866612d393262622d636266313930393434663834
Can you clarify please.
—
Reply to this email directly, view it on GitHub https://github.com/FreeUKGen/FreeCENMigration/issues/1542#issuecomment-1592823535 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AKCPIFIMBOV73D3PQQUNFG3XLLS4DANCNFSM6AAAAAAZHLADQU .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AKCPIFM3K2T3GJXBDGNZZKTXLLS4DA5CNFSM6AAAAAAZHLADQWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTS66CHO6.gif Message ID: @.*** @.***> >


Upgrade version.pitest-git 1.1.3 -> 1.1.4

This PR contains the following updates:

Package
Type
Update
Change

com.groupcdg:pitest-git-plugin
build
patch
1.1.3 -> 1.1.4

com.groupcdg:pitest-github-maven-plugin
build
patch
1.1.3 -> 1.1.4

com.groupcdg:pitest-git-maven-plugin
build
patch
1.1.3 -> 1.1.4

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

Suggested commit message:
Upgrade Pitest Git plugins 1.1.3 -> 1.1.4


Minor Issue - begin() should return true when successful

It just took me some time to realize, that the v2.0 version returns false after successful initialization when true is expected.
This was quite confusing for me...and took me some time (as I thought having a Connection issue).

@forKnowYou but this is also wrong in code (begin returns false on success right now).

@janzieg I have fixed the bug。thanks for your support

It seems that after this was corrected in e06b5772275ffc613e0ced21dd532893faadac4c it was changed back in https://github.com/DFRobot/DFRobot_BME680/commit/f2a0e0a31adff5771f95896fd66ca87b6bb86dcd#diff-e659cb54fd070752f5fedba933c0b0c1R66
https://github.com/DFRobot/DFRobot_BME680/blob/f858b4874abecc80a42aa136978b1faa69bcc629/DFRobot_BME680.cpp#L66-L68
Thus begin() now returns true on failure and false on success again.


Split dc_timeout

One function doing different things with different arguments is bad, so it should be split into dc_get_timeout and dc_set_timeout

Fixed in def5686


Render PopupAnnotations even if they have missing or empty /Rect-entries (issue 15012, PR 14439 follow-up)

This only applies to corrupt PDF documents, where Annotations are missing the required /Rect-entry. Rendering PopupAnnotations unconditionally shouldn't be a problem, since we're not using a BaseSVGFactory-instance in that case.

/botio test


panic at index out of bounds

thread 'main' panicked at src/graph/calc.rs:228:5:
index out of bounds: the len is 5 but the index is 5
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::panic_bounds_check
   3: serie::graph::calc::calc_graph
   4: serie::run
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

What repository are you running? I don't know the details so there's nothing I can do.

I am running 0.1.0

Probably the underlying problem is the same as #2.

Same error.  (serie v0.1.0) (installed with brew). Private repository
thread 'main' panicked at src/graph/calc.rs:228:5:
index out of bounds: the len is 47 but the index is 47
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I'm not entirely sure what your specific problem is, but #5 has been merged so that might solve your problem. It hasn't been released yet so please build it if you need it.

Same problem here, but only on some repos.

I had the same issue before the last release (version 0.1.0). With the new update (v0.1.1), here is the new error:

I had the same issue before the last release (version 0.1.0). With the new update (v0.1.1), here is the new error:

If you just post a screenshot, it doesn't tell us anything.

Please clarify the terminal and version you are using, the protocol you are specifying, etc.
Please provide a repository for reproducing the issue.

Does it work with a simple repository?

I'm not entirely sure what your specific problem is, but https://github.com/lusingander/serie/pull/5 has been merged so that might solve your problem.

The fix for #5 was not properly reflected in the release 😢
https://github.com/lusingander/serie/pull/20

Since there is no additional information, we will close this issue for now.
If necessary, please reopen or create a new issue with information to reproduce it.


fixed error thrown when encountering a broken symlink

Fixes
When encountering a broken symlink, a false positive .fileReadNoSuchFile Error was thrown, because we were using FileManager.fileExists() to check file existence. It's perfectly valid (and in my use case essential) to include a broken symlink into a zip archive.
Changes proposed in this PR

Use Url.checkResourceIsReachable() instead

Tests performed
Full test suite on macOS Catalina 10.15.1
Further info for the reviewer
Open Issues
None reported before AFAIK.

Thanks for your pull request.
Didn't think about support for broken symlinks when implementing symlink entry addition - but I get your point. This use case certainly can make sense. I will look over your code as soon as I have some time.
GitHub is indicating a conflict. Your fork seems to be fresh and the base branch hasn't changed -  How could that happen 🤔. Did branch off master or development? Can you please resolve the conflict so that CI can run through.

Hi, thanks! The conflicts are because I based my changes on latest stable release (0.9.9 ~ master), because I am using this is in production. Sorry about that! I'll try to find the time this week to resolve the conflict.

Closing as https://github.com/weichsel/ZIPFoundation/pull/146 is the correct pull request now.


Forecast tab/page crashes with WebView2 error

Describe the bug
With 4500+ work items in a project the forecast tab/page crashes PowerBI Desktop before being able to select an Area Path. If already filtered the Area Path in the transform data section, however I’m not a PowerBI Desktop expert, so I don’t know if all the work items are still loaded under the hood.
This error occurs even after changing PowerBI Desktop’s language to English-US as per previous bug reports.
Desktop (please complete the following information):

OS: Windows 11 64-bit
Browser Latest Edge
Version Latest PowerBI Desktop

Unfortunately there is no way I can account for this big a project for little old me doing this by myself!
There are templates I have that can filter by Area Path  or Team. in their queries - would these be a suitable workaround?

Yeah they were created as one offs that I don't publicly advertise 😬
There is minimal difference between them, only query tweaks and like you spotted, dark mode is missing. I don't intend on adding this in right now just because it's quite an overhead with the bookmarks!
If there are significant changes (eg new charts, significant bug fixes) then I'll publish a new version :)


Log provisioner kubeconfig parameters

Description
there were cases when kyma upgrade failed with using kubeconfig to an SKR from provisioner
"msg":"Process operation failed: failed to create BTP Operator input: invalid configuration: no configuration has been provided, try setting KUBERNETES_MASTER environment variable",

When debugging I have stumbled upon an interesting case when executing graphql query directly to provisioner. Sometimes it returns operational and valid kubeconfig, sometimes it returns nil
$ cat gql_runtime_status.bash
runtime_id=5ecffe9c-7663-4433-b813-705cf70179a0

curl 'localhost:3000/graphql' \
    -H 'Content-Type: application/json' \
    -H 'tenant: e449f875-b5b2-4485-b7c0-98725c0571bf' \
    --data-binary @- << EOF
{
  "query":"query {\n runtimeStatus(id: \"$runtime_id\") {\n runtimeConfiguration{kubeconfig}}}"
}
EOF

$ ./gql_runtime_status.bash | jq --raw-output '.data.runtimeStatus.runtimeConfiguration.kubeconfig'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2236    0  2111  100   125   4275    253 --:--:-- --:--:-- --:--:--  4535
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: **redacted**
    server: https://api.afadf6b.stage.kyma.ondemand.com
  name: shoot--kyma-stage--afadf6b
contexts:
- context:
    cluster: shoot--kyma-stage--afadf6b
    user: shoot--kyma-stage--afadf6b-token
  name: shoot--kyma-stage--afadf6b
current-context: shoot--kyma-stage--afadf6b
kind: Config
preferences: {}
users:
- name: shoot--kyma-stage--afadf6b-token
  user:
    token: **redacted**

$ ./gql_runtime_status.bash | jq '.data.runtimeStatus.runtimeConfiguration.kubeconfig'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   530  100   405  100   125     13      4  0:00:31  0:00:30  0:00:01   104
nil

the successful query takes a few ms, returns no error and working kubeconfig, the unsuccessful query takes 30 seconds, also returns no error and has nil as kubeconfig
Related issue(s)

/retest

lgtm

/retest


Update to kargo-render rc34

kargo-rencer rc.34 introduced significant changes to the kargo-render.yaml file structure.
The underlying error I am trying to work around is:
Error: error loading Kargo Render configuration from repo: error normalizing and validating Kargo
Render configuration: error validating Kargo Render configuration:
branchConfigs.0.appConfigs.testservice.configManagement: Must validate one and only one schema (oneOf);
branchConfigs.0.appConfigs.testservice.configManagement: Additional property path is not allowed;
branchConfigs.0.appConfigs.testservice.configManagement.helm: Additional property valueFiles is not allowed

I believe this is because my kargo-render.yaml file is set up to work with rc.34, but kargo is still importing rc.33.

Hi @moensch. Yes... it's true that Kargo render v0.1.0-rc.34 has a lot of breaking changes in it.
Thank you for opening this PR! It takes chore off my plate!
Please forgive me if this isn't merged right away. I went to make sure the rest of my team is prepared for this to show up in the nightly build and break lots of their examples before pulling the trigger on it.
It'll be just a day or two. Thanks again!


Range tests.

Added tests for various ranges.
Added license and README.

This was manually merged. Closing it.


add tests for VCAP_SERVICES

need to add tests for cloudfoundry additions to increase code coverage.

Included test in bd0f1c0209d6aa586303a93e0ffe50a18d22ed14


bug: syncer end-to-end test does not work on a mac

Describe the bug
See #971
Steps To Reproduce
See #971
Expected Behavior
The syncer end-to-end test works on the Mac.
Additional Context
No response

/cc @yana1205
/cc @francostellari

@francostellari please address item 1 in #971 so that we can close #979 (this issue)

this can be closed - test now works


New version 1.1.0 complains that tag is already existing

If I understood correctly, your script works only if release and related tag already exist.
That's why I create them before.
But using the new version proposed I always have the message telling that the tag already exist, see image below:

Hu sorry that's not the new version that leads to this error, I have the same with previous version. Something must changed in my environment.


adding event generation workflow

This is a first PR to start testing the PDF generation workflow. We will likely want to:

upload a higher definition logo for SORSE
decide on some action beyond saving artifacts to do
ensure that the rendering is okay
and finally, update the version to a release

I'll keep updating the PR if/when things don't work as expected!

Wow, it worked the first time, amazing! It looks like the events don't have dois, so that isn't rendering. I can try adding an if statement to skip it entire if it's not there.

Awesome :partying_face: The Event Website is also not working, and we should remove the Repository link, or should the latter point to the markdown file in this repository? This would also be a possibility

okay getting close - I'm going to try and customize the "published" variable so it's not ugly.

Repository link is removed. For event website, I was expecting a website variable in the markdown, I'll add an if statement there too.

I'm paused for a second because I'm testing the container to use Python3 so it doesn't break come 2021 :)

For event website, I was expecting a website variable in the markdown, I'll add an if statement there too.

coming from jekyll, it would be misleading to add the website to the yaml frontmatter. can't we add it with a -V option as suggested in https://github.com/SORSE/sorse.github.io/issues/215#issuecomment-654267603?

Looks like the footer needs more cleaning up and the date is being truncated. I'll  need to debug this in the base action.

@Chilipp yes that's the point of the sorse-variables.yml and sorse-mapping.yml, both are added with -V. It is a general tool so we don't hard code anything like that :)

don't worry about the date. we will make that shorter now that the time goes in as a separate field

I'd suggest to just use a format like
date: 2020-06-30

I think for the calendar if the events have times we would want that to render, so instead I added the publication date to be generated when the PDF is built, because technically that's when it's published. There is also now a check to not re-generate files that already exist (so a pdf is not re-published).

This is the "html-proofer needs a retry" that I mentioned earlier
External link https://allejo.io/blog/a-jekyll-toc-in-liquid-only/ failed: got a time out (response code 0)

I'm debugging something with the mapping file, will need a few minutes.

because technically that's when it's published

not really, it's published when it appears on the website and that is what the date key is translated into, right? As discussed in https://github.com/Chilipp/sorse.github.io/pull/3, events now have a time and date key. You can see the differences in https://23-276193679-gh.circle-artifacts.com/0/SORSE/programme/workshops/event-004/index.html. the time is used in the calendar and renders like

on the event website, whereas the date renders like

and should be the same as the date of the PDF.

okay, I'll change it back to use date then.

@Chilipp the published date is ugly again, but since you have a plan I'll let you take it from. On my action end everything is working as expected, so I'm going to update one last time to include a released version and remove the PR trigger.

@Chilipp the published date is ugly again

sure, because https://github.com/Chilipp/sorse.github.io/pull/3 where I changed the dates in the markdown files is not yet merged

On my action end everything is working as expected, so I'm going to update one last time to include a released version and remove the PR trigger.

In https://github.com/SORSE/sorse.github.io/issues/215#issue-651040515 I proposed to rather make a PR into an open PR to update the PDFs. That way we can directly add the PDF to the PR that adds/updates the PDFs and make the PDFs available on the website, too. Or do you think, this is a bad idea and we should add them manually from the artifacts @vsoch?

hmm, I see that the pull-request-action does not work to open PRs on forks as you cannot specify the repository. So the strategy I proposed won't work. Then we add the PDFs manually to the PRs and we're done here
You really created a nice new tool here @vsoch =) Thanks a lot!

Why do we need a fork? This is all under the same org (sorse) at this point. If the action is run on push to master to then check if there need to pdfs generated, it would work the same as the other actions we've worked on. Anyhoo, yes please take it from here.

Also I rendered an example with a prettified date in my action repo, for comparison if needed https://github.com/rseng/pdf-generator/blob/master/paper/sorse.pdf.

@Chilipp it should work fine if you run the action on merges to master, and then open a PR only if/when pdfs are generated.

hmm so looks like we have some issues - the path of the folder _events is not really the path we want, and then the $pdf_generator_fileprefix$ is empty, and there is an extra / with programme/. I need to go for a quick run because I have to prepare for a meeting but let's discuss how we can fix this up. We need a solution that doesn't hard code something into the action but allows for generation of the url you need here.

I used realpath in https://github.com/rseng/pdf-generator/pull/4/commits/1b235e163dbfffbecc800c0b8478ece47c1702ad#. I am not in a rush as I am anyway currently reviewing a paper. But if you like, I can make some suggestions to https://github.com/rseng/pdf-generator/pull/5

Yes I have an idea! I have a meeting now but will work on it soon :) Also, realpath won't fix the issue with _events not being the correct url. What I want to try is changing the workdir.

alright. I'll wait for it (it's anyway pretty late here and I have to finish this review, first)

okay the file prefix I literally just forgot to add :) Now I'm going to test changing the workdir.

@Chilipp I think this is good to go.

Awesome! Thanks @vsoch :smiley:

test failure is a known issue (https://github.com/RSE-leaders/researchsoftware.org/issues/16), so I'll merge this


Discovery not working with echo dot 3rd generation

Hi, after a lot of tests I decided to with the docs and try the basic example in the README. So this is my code:
void setup() {

    Serial.begin(115200);

    connectWifi(); // Wifi basic setup, with hardcoded SSID and password

    fauxmo.addDevice("light one");

    fauxmo.setPort(80); // required for gen3 devices

    fauxmo.enable(true);

    fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state, unsigned char value) {
        Serial.printf("[MAIN] Device #%d (%s) state: %s value: %d\n", device_id, device_name, state ? "ON" : "OFF", value);
    });
}

void loop() {
    fauxmo.handle();
}

But when I ask my echo dot to find new devices, it finds nothing. Is there a problem with this example?
Let me know if there is a way to provide some debug logs or something that may be useful.

Update: I'm using a NodeMCU ESP8266 V3 and installed the latest library version of FauxmoESP (3.4.0)

I had the very same problem and it worked by simply rebooting my echo dot. ESP was powered on all day and was not even restarted after the alexa's reboot.

I have the same problem

I moved out to Arduino IOT Cloud, so I can't confirm @kgotsis solution..

Hi, after a lot of tests I decided to with the docs and try the basic example in the README. So this is my code:
void setup() {

    Serial.begin(115200);

    connectWifi(); // Wifi basic setup, with hardcoded SSID and password

    fauxmo.addDevice("light one");

    fauxmo.setPort(80); // required for gen3 devices

    fauxmo.enable(true);

    fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state, unsigned char value) {
        Serial.printf("[MAIN] Device #%d (%s) state: %s value: %d\n", device_id, device_name, state ? "ON" : "OFF", value);
    });
}

void loop() {
    fauxmo.handle();
}

But when I ask my echo dot to find new devices, it finds nothing. Is there a problem with this example? Let me know if there is a way to provide some debug logs or something that may be useful.
Update: I'm using a NodeMCU ESP8266 V3 and installed the latest library version of FauxmoESP (3.4.0)

From Readme :  (2) Arduino Core for ESP8266 requires LwIP set to "v1.4 Higher Bandwidth".
Please make sure you've done this.


Provide releases of documentation

Description
Currently the documentation website always shows the latest version for main branch. This can and will differ from previous releases.
Goals
Users shall be able to select a revision for the website they want to see. MkDocs Material already supports that using mike.
Tasks

[ ] Check if the method provided by mike and MkDocs Material is suited for Ankaios
[ ] If yes, implement that and include in CI/CD

Am example is provided here: https://github.com/squidfunk/mkdocs-material-example-versioning.

After the PR got merged the following steps need to be performed:
 # Delete old documentation
mike delete --all
# Generate "latest" version
git pull origin main
git checkout main
mike deploy latest
# Generate "0.1" version
git checkout v0.1.0
mike deploy 0.1
# Set default version and push
mike set-default latest --push --force

The build from main should be shown as unstable version
Building a release should result in major.minor (e.g. tag v0.1.0 results in the documentation version 0.1)
By default the documentation of the latest release should be shown

The build from main should be shown as main version.
A preview of the new documentation is available on https://windsource.github.io/ankaios/.


AWS Lambda: Add Role validation when creating functions 40aa73a

Fixes #2546
Adds three validation steps for the IAM role when creating a Lambda function:

Does the role follow the appropriate regex
Does the role have the current account ID?
Does the role exist?

Coverage decreased (-0.3%) to 93.386% when pulling 40aa73a12b2e964b3acd278dd7035b8e4e1bbd28 on bblommers:feature/2546 into b19abbc63ec2dbaa7802c783942e5925f84aa3b2 on spulec:master.

It looks like the response codes need to be set for the Exceptions.

Hi @mikegrima  - the tests failed before because Flask didn't know how to deal with ClientErrors.
A lot of tests only verify whether a error has been thrown - not whether it's the right kind of error. That's because, before, Flask would encounter a ClientError and throw a 500 - Server error message. The actual error message would be lost.
The try-catch I've introduced fixes this - it will catch any errors, and return them in the same format as AWS does.
Tests are still failing for IOT - it's complaining about an invalid regex. Not sure why! Will continue to  look into it.

Hi @mikegrima - I had to revert back to the deprecated IAM, as the test was failing.
It looks like the deprecated CF doesn't talk to the server (when in server mode), but does everything in memory - so when IAM does create the role on the server, it cant be found by the in-memory CF.


Added Basic auth for HTTP, which was missing before

Also added a flag in the Partner library to allow easy & obvious switching to basic, from digest.

Removed the blank line - would like to get this off of my PR screen. Can we either merge this in, or close the PR.
Thanks


Use status-fd rather than GnuPG process exit codes

The exit codes from GnuPG are not a reliable, nor entirely stable, means of determining if the process did as it was intended to do. I also commented on #137 for the use of process exit codes to determine the result of an attempted key import.
torbrowser-laucher currently checks for p.returncode == 0 in the Laucher.verify() method, and then proceeds to check the tarball's sha256sum and schedule installation if the process exited with 0. This makes me a bit uneasy…
As I explained on #137, the "correct" way to check that GnuPG did as intended is to use the --status-fd flag to the binary, and then check for the appropriate GnuPG status-fd output flag.
This would look something like:
valid_sig = False
p = subprocess.Popen(['/usr/bin/gpg', '--status-fd', '2',
                      '--homedir', self.common.paths['gnupg_homedir'],
                      '--verify', self.common.paths['sha256_sig_file']],
                     stderr=subprocess.PIPE)
self.pulse_until_process_exits(p)
output = p.stderr.read()
if ((output.find('GOODSIG') >= 0) and
    (output.find('VALIDSIG 8738A680B84B3031A630F2DB416F061063FEE659') >= 0)):
    valid_sig = True

This is resolved thanks to #148.


[Question / Docs improvement]: callbackAfterSeconds can be used as an Heartbeat mechanism?

Hi,
Is it possible to use callbackAfterSeconds as an heartbeat mechanism?
Imagine that I have a worker task that can take between 60 seconds and 3600 seconds to become completed. If I set timeoutSeconds to a value larger than 3600, I ensure that all the tasks will be processed sooner or later even if the current worker crashes (assuming the task has retryCount > 0). This isn't bad at all, but if the majority of tasks just takes 60 seconds to be processed and the worker processing such tasks crashes, we need to wait almost an hour until the task can be processed by another worker.
However, if my task is defined with responseTimeoutSeconds: 360, besides the timeoutSeconds as before, after polling the task a first time and acknowledging it (ACK) I can set callbackAfterSeconds: 120; and I always POST the task every 60 seconds with IN_PROGRESS status until the worker finishes to process what needs to be processed according to the task in question. From the experiment I've made, the task isn't placed in the queue to be available for other workers unless the worker doesn't POST the task with callbackAfterSeconds:120 for more than 360 seconds.
So... Can anyone confirm that we may use callbackAfterSeconds as an heartbeat mechanism? It would be very good to have some documentation for callbackAfterSeconds, which I didn't find in https://netflix.github.io/conductor/. I can contribute to this documentation if I am understanding this correctly. Contributing to the worker-client to do the heartbeats would also be an option.
Thanks!

@cyzhao, Please, can you confirm that callbackAfterSeconds can be used as an Heartbeat mechanism? I think you mentioned it could be used for that in issue #798.
Is it useful some documentation for it or some mechanism in the conductor-client to perform the heartbeats when needed?
Thanks

@artpdr callbackAfterSeconds can't be used as heartbeat, what is does it to return the task back to the queue and make it visible to workers after callbackAfterSeconds. Currently Conductor doesn't provide a mechanism to support this, however a heartbeat mechanism can be introduced to allow workers to reset responseTimeoutSeconds, let me know if you want to take a stab at this then we can get into details.

@cyzhao thanks for answering.
I see that callbackAfterSeconds is not exactly an heartbeat mechanism. However, if a worker keeps posting a task with callbackAfterSeconds until it set COMPLETED in this worker, it can be seen somehow as an heartbeat mechanism because the task will be turned to the queue to become visible by other workers only in the case that the first worker stops to post the task with callbackAfterSeconds or with a FAILED status.
Nonetheless, I see that is more elegant a true heartbeat solution and I will try to explore the code of the conductor-server in the next days to see how the heartbeat mechanism may be introduced. I hope to give news soon with a possible solution for the implementation.
Cheers.


Update Localizable.strings

Improved Dutch translation

I merged this pull request into my fork at https://github.com/tmolitor-stud-tu/IDMPhotoBrowser
Lets carry development over to this fork (it seems to have stalled in here).
If one of you would like to help with this I'm happy to give him commit rights to my fork :)


Support decimal compare functions on different precisions and scales

Spark allows comparison of decimals on different precision and scales, but current Velox generates below error for this case.

Exception: VeloxUserError
Error Source: USER
Error Code: INVALID_ARGUMENT
Reason: Scalar function greaterthan not registered with arguments: (DECIMAL(24,7), DECIMAL(21,6)). Found function registered with the following signatures:
((T,T) -> boolean)

This PR supports decimal compare functions >, >=, ==, !=, <, <= on different precisions and scales. The input decimals are rescaled to the same scale and then compared. For those exceeding the max precision of decimal, int256 is used to store the rescaled value.

https://github.com/facebookincubator/velox/pull/5569#discussion_r1257860850
Please pay attention to this PR, other compare function may not need to support DECIMAL. @yma11

@mbasmanova Could you take a glance at this PR? So I can know the direction to improve.

@mbasmanova Sorry for the late reply. I just updated this PR. Could you spare some time to take a look again? Thank you.

Wondering if there will be more functions like this: greatest, least, anything else?

To support them without extra cast, seems the binary comparison logics can be reused.
@mbasmanova Could you help review again? Thanks.

@rui-mo Seeing build failures:
In file included from buck-out/v2/gen/fbcode/9874f87d0ccb406e/velox/connectors/__velox_connector__/buck-headers/velox/connectors/Connector.h:24:
In file included from buck-out/v2/gen/fbcode/9874f87d0ccb406e/velox/core/__expression_evaluator__/buck-headers/velox/core/ExpressionEvaluator.h:18:
In file included from buck-out/v2/gen/fbcode/9874f87d0ccb406e/velox/vector/__velox_vector__/buck-headers/velox/vector/ComplexVector.h:25:
In file included from buck-out/v2/gen/fbcode/9874f87d0ccb406e/velox/type/__velox_type__/buck-headers/velox/type/Type.h:18:
In file included from fbcode/third-party-buck/platform010/build/boost/33235b7/include/boost/multiprecision/cpp_int.hpp:13:
fbcode/third-party-buck/platform010/build/boost/33235b7/include/boost/multiprecision/number.hpp:2293:12: error: use of undeclared identifier 'EOF'; did you mean 'ObservabilityQueryLanguageLexer::EOF'?
   while ((EOF != (c = static_cast<char>(is.peek()))) && (c == 'x' || c == 'X' || c == '-' || c == '+' || (c >= '0' && c <= '9') || (have_hex && (c >= 'a' && c <= 'f')) || (have_hex && (c >= 'A' && c <= 'F'))))
           ^
fbcode/third-party-buck/platform010/build/antlr4-runtime/include/antlr4-runtime/Recognizer.h:16:29: note: 'ObservabilityQueryLanguageLexer::EOF' declared here
    static constexpr size_t EOF = std::numeric_limits<size_t>::max();
                            ^

@mbasmanova Int256 has been introduced to functions/sparksql/DecimalUtil.h, so its import could be removed from this PR. Hope this could avoid the build failure.

Got it. Let me try again.


Try running tests more aggressively in parallel

Motivation:
If we can run more tests in parallel in these slowest modules, we might make the build faster.
Modification:
Make the buffer and handler modules parallelize their tests fully concurrently, instead of concurrently-per-class as perviously. Also make the transport-epoll module run its tests in parallel.
Result:
Faster build.

The next step in making our build faster would be to investigate all the Thread.sleep calls we have in our tests. Some of these calls are in parameterized tests, which means the sleep gets called over and over again, dragging the test execution out significantly.

Should we use high-end self hosted runners?

I think we still have some low hanging fruit to pick before going that far. I worry self-hosting will be a headache to maintain.

Alright, that makes sense. However, do let me know if we consider self-hosting in the future. I will handle maintenance.


Not focusing to next input in android

I have an issue with the input in android, If I fill in the fields and then try to re-enter the same digit in the input filed. it is not focusing on to the next input field. In ios it is getting focused to the next input, the issue is only in android. Please find the attached gif for reference.
I'm on
react-native - 0.63.2
react - 16.13.1
react-native-otp-inputs- 6.0.0
<OtpInputs
   handleChange={(code) => this._onChange(code)}
   numberOfInputs={5}
   autofillFromClipboard={false}
   style={styles.otpContainerView}
   inputContainerStyles={styles.otpInputContainerView}
   inputStyles={styles.otpInputStyles}
   />

please let me know if anything else is needed from my side.

@rahulje9 Unfortunately with current implementation of react-native TextInput events, you can't do any action as it does not trigger any event when you pass same text. Maybe something changed but it need a check. As "workaround" I recommend reset inputs on send.

@dsznajder is this a limitation in the Android side? how to reset inputs on send?

@rahulje9 In documentation you can find method which can be called on ref.


Import-AzSentinelAlertRule failes with 400 status code if the query isn't one-liner

In raising this issue, I confirm the following:

[v] I have read and understood the contributors guide.
[v] The issue I am reporting can be replicated.
[v] The issue I am reporting isn't a duplicate (see FAQs, closed issues, and open issues).

How familiar are you with the the source code relevant to this issue?:
1

Expected behaviour:
Deploy a rule which isn't one-liner
Actual behaviour:
when creating a rule which is not one-liner i get 400 status code, when i create it as one-liner everything works
Steps to reproduce:
just deploy with the query
SecurityEvents
| where EventID == 4688
Troubleshooting undertaken, and/or other relevant information:

hi @cac0ns3c I think the issue is more related in the query, the table name should be "SecurityEvent" instead of "SecurityEvents"
try the below example:
{
  "Scheduled": [
    {
      "displayName": "AlertRule01",
      "description": "",
      "severity": "Medium",
      "enabled": true,
      "query": "SecurityEvent
      | where EventID == \"4699\" ",
      "queryFrequency": "5H",
      "queryPeriod": "6H",
      "triggerOperator": "GreaterThan",
      "triggerThreshold": 5,
      "suppressionDuration": "6H",
      "suppressionEnabled": false,
      "tactics": [
        "Persistence",
        "LateralMovement",
        "Collection"
      ],
      "playbookName": "",
      "aggregationKind": "SingleAlert",
      "createIncident": true,
      "groupingConfiguration": {
        "enabled": false,
        "reopenClosedIncident": false,
        "lookbackDuration": "PT5H",
        "entitiesMatchingMethod": "All",
        "groupByEntities": [
          "Account",
          "Ip",
          "Host",
          "Url"
        ]
      }
    }
  ]
}

Sorry, that was a mistake, that was just an example
let's say i have this query:
let endtime = 1d;   let starttime = 8d;   // The threshold below excludes matching on RDP connection computer counts of 5 or more by a given account and IP in a given day.  Change the threshold as needed.   let threshold = 5;   SecurityEvent   | where TimeGenerated >= ago(endtime)    | where EventID == 4624 and LogonType == 10   // Labeling the first RDP connection time, computer and ip   | extend FirstHop = TimeGenerated, FirstComputer = toupper(Computer), FirstIPAddress = IpAddress, Account = tolower(Account)     | join kind=inner (   SecurityEvent   | where TimeGenerated >= ago(endtime)    | where EventID == 4624 and LogonType == 10 // checks for something   // Labeling the second RDP connection time, computer and ip   | extend SecondHop = TimeGenerated, SecondComputer = toupper(Computer), SecondIPAddress = IpAddress, Account = tolower(Account)   ) on Account   // Make sure that the first connection is after the second connection --> SecondHop > FirstHop   // Then identify only RDP to another computer from within the first RDP connection by only choosing matches where the Computer names do not match --> FirstComputer != SecondComputer   // Then make sure the IPAddresses do not match by excluding connections from the same computers with first hop RDP connections to multiple computers --> FirstIPAddress != SecondIPAddress   | where FirstComputer != SecondComputer and FirstIPAddress != SecondIPAddress and SecondHop > FirstHop   // where the second hop occurs within 30 minutes of the first hop   | where SecondHop <= FirstHop+30m   | distinct Account, FirstHop, FirstComputer, FirstIPAddress, SecondHop, SecondComputer, SecondIPAddress, AccountType, Activity, LogonTypeName, ProcessName   // use left anti to exclude anything from the previous 7 days where the Account and IP has connected 5 or more computers.   | join kind=leftanti (   SecurityEvent   | where TimeGenerated >= ago(starttime) and TimeGenerated < ago(endtime)    | where EventID == 4624 and LogonType == 10   | summarize makeset(Computer), ComputerCount = dcount(Computer) by bin(TimeGenerated, 1d), Account = tolower(Account), IpAddress   // Connection count to computer by same account and IP to exclude counts of 5 or more on a given day   | where ComputerCount >= threshold   | mvexpand set_Computer   | extend Computer = toupper(set_Computer)   ) on Account, $left.SecondComputer == $right.Computer, $left.SecondIPAddress == $right.IpAddress   | summarize FirstHopFirstSeen = min(FirstHop), FirstHopLastSeen = max(FirstHop) by Account, FirstComputer, FirstIPAddress, SecondHop, SecondComputer,    SecondIPAddress, AccountType, Activity, LogonTypeName, ProcessName   | extend timestamp = FirstHopFirstSeen, AccountCustomEntity = Account, HostCustomEntity = FirstComputer, IPCustomEntity = FirstIPAddress
and i don't want it to be in one-line.
another bug that i found that caused because the one line see my comment on the 3rd line ( // checks for something )
all the code after that will be commented


Quantity increment can sometimes cause the cart to close and repo

Easiest way to reproduce is to:

Start with a clear cart (remove existing items if necessary).
Navigate to an item and add it to your cart.
Increase the quantity of the item you just added.
Notice that the cart closes and reopens. It should always remain open unless the user closes the cart.

https://github.com/vercel/commerce/assets/446260/18be74ce-8fc4-4ef0-aade-ed24817f7882

While the originally reported as happening when incrementing, it turns out it was any first interaction... Removing an item, clicking in the blank area in the cart, etc.
Could be related to https://github.com/tailwindlabs/headlessui/issues/2535.
https://github.com/vercel/commerce/assets/446260/b985e820-e727-4f27-9135-e02b9805d90e
https://github.com/vercel/commerce/assets/446260/229640cc-5d32-4d24-a0b6-0d301f834733


Add kubeutils for integration tests

These changes update the recent kind cluster helper to provide more expanded resource helpers capable of generating manifests for config maps, daemonsets, and cluster role (bindings).

I think rolling back the ubuntu runners invalidated the cached deps so the lint initialization issue should be transient. Will address in a separate PR if not the case.


Do not record  while in code completion, record chosen text instead. To be able to use the DOT command.

When using the native Xcode auto complete in insert mode, if I choose a suggestion and then press escape, the next time I use the DOT command XVim will write the beginning of the word I typed followed by a new line.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4727404-do-not-record-cr-while-in-code-completion-record-chosen-text-instead-to-be-able-to-use-the-dot-command?utm_campaign=plugin&utm_content=tracker%2F252770&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F252770&utm_medium=issues&utm_source=github).

+1

Any update on this issue?

Any update on this issue?

A note for those looking to implement this. Even if there exists no API to "fetch" the text involved with the autocomplete choice that was made, the state of the editor buffer can offer the definitive answer as to what that value was. It might be possible to do a scan backward in the buffer to read out what the value that was "typed". I think it may be tricky. Because I think XCode is nice and allows fuzzy matching. That would make reconciling the keystrokes a bit tricky... Hopefully not too hard to do.

+1

I tried to fix it.
But it doesn't work correctly if completionText contains placeholder.
For example
// You type the code using completion.
[NSString stringWithFormat:@"Test"]

// Xcode will complete like this if completionText contains placeholder.
[NSString  stringWithFormat:(nonnull NSString *), ... @"Test"];


Components

Highlights

Deleted boilerplate in the Create React App
Created a new directory containing Calculator.js and Calculator.css files
Created a calculator design using JSX and CSS
Exported calculator function and ensured it displayed well in the browser

Hi @Omar-Muhamad ,
Thanks a lot for the feedback

Hi @topeogunleye,
Thanks a lot for the feedback and nice gif 😆


Inserting a "rule-hits" entry to response header

Hi, I am currently working on testing the correctness of CRS and some customized rule sets with ModSecurity. For now, every time I sent a request, I need to go through the debug log to determine if the request hit the targeted rule. I am wondering if it is  possible to make ModSecurity inserting a "rule-hits" entry that contains all of the matched rules in the response header.
Something like this
# inbound request
curl --request GET \
  --url http://localhost:8080/ \
  --header 'User-Agent: BAD SCANNER'

# Response from ModSecurity
HTTP/1.1 403 Forbidden
Transfer-Encoding: chunked
rule-hits: CRS-SCANNER-DETECTION-920170, CRS-BLOCKING-EVALUATION-949110
Date: Tue, 23 Mar 2021 03:23:24 GMT

Is it possible to achieve this with a customized rule set? I am thinking add a new transaction variable that store the rule id of the hit rules and then return a customized response with the value of that variable. If this is impossible using the customized rules alone, I think it would be a neat feature to add to the ModSecurity.

Hi @Olament ,
What setup are you using?  Apache HTTP Server with ModSecurity 2.9.x?  nginx with ModSecurity 3.0.x?
Do you only need this to work for blocked requests?  I.e. you are only looking for the rule information to be in the response if the request never reached the web server (and you do not need the information to be added to real responses from the web server)?
If hypothetically it is impractical to get the information into a response header, can I assume having in the response body would meet your needs?

I am using Nginx with ModSecurity 3.x and yes it only need to be worked for blocked request. It does not have to be inside the Response header and having it inside response body is perfectly fine. So it is bascially like a customized 403 page from ModSecurity.
I did some research myself and the closest thing I can find is the Content Injection (prepend and append element into html body). But unfortunately it was planned but never implemented.

@martinhsv , we have made some testcases for the CRS rules. For example, the testcases for rule 920170 are intended to trigger the rule in ModSec by manupulating some fields of the HTTP headers. But when we send the testcase request to ModSec, we can only get response of HTTP status like 200 or 403. If we got 403, we don't know which rule has been triggered and blocked our request.
For a better white box testing, I think ModSec should provide a way (like testing mode) to return the information about what rules have been triggered to the tester. So we can better know if our hand-made testcases work as expected.
Do you know if ModSec has already supported such a mechanism? If not, is there a convenient way to implement it? Currently, we have several proposals as follows.

Read the audit or debug logs of the ModSec, as the logs have recorded the triggered rules. But this way requires the tester to access the log files and parse them. This way doesn't support paralell testing, as there's no way to map the log line to the request.

Modify ModSec source code. We don't want to do this as it makes it difficult to sync with the upstream in future.

Make some custom rules to save the matched result of each rule to states like TX, then use a final rule to return the TX as HTTP response. But I don't know if this way works. And also messing with the rules is not that good.

So our goals are:

Get the triggered rules elegantly for each testcase request.
Modify the ModSec core code or rules as least as possible. Keep updating ModSec or CRS versions easy.

Is there any suggestion? Thanks!

@hsluoyz - a couple of years ago I also picked up on this idea. This would be a good help.
For testing, especially for CRS you can use ftw (with Python 2.7).
There are two alternative solutions: go-ftw, which is beta, and ftwrunner, which tests only libmodsecurity3 without any HTTP server.

@airween actually we are also developing a test framework which is similar to the listed ones. And currently we are stuck at the place: how to get the triggered rules elegantly from the response of the challenging request.
I think it's a valuable feature which even can be integrated into the ModSec core code, as end-2-end testing is very important for WAF. Another obstacle is the new libmodsecurity3 architecture. So if we use Nginx, we will have Nginx + libmodsecurity, libmodsecurity3 cannot add response header like "triggered rules" by itself, it must let Nginx do the job. So we have to modify the code for both Nginx + libmodsecurity, and also for other connectors. I don't know if there's a better direction to do this.
@zimmerle @brenosilva @victorhora

Hi @hsluoyz ,
If it were me, I would probably pursue one of two options as the simplest that I can think of at the moment -- and they are both variations on two of the three approaches you have already considered:

Use your option (1).  To match up audit log entries to the requests that triggered them, I would simply include a test-case identifier as part of the request data that will be in the audit log.  Whether the test case identifier is a unique key in an SQL database or a line number in a file, you could simply include this as an extra path segment in the uri (or elsewhere in the request).

Use your option 3.  There is at least one built-in way to return response information purely through ModSecurity rules and without having to do anything fancy with nginx config:  redirects.

The ModSecurity variable RULE contains this information and can be assigned to a tx variable.  Agreed that it is usually undesirable to start modifying a large number of rules in a rule set, but you can do the initial assignment within SecDefaultAction, for example to handle all phase:2 rules:
SecDefaultAction "phase:2,<whatever other actions you have>,setvar:'tx.modsec_ruleid=%{RULE.id}'"

Then, all you need are two custom rules to run at the end of phase:2.  Something like:
SecRule tx.modsec_ruleid "@ge 1" "id:9999998,phase:2,log,setvar:'tx.modsec_ruleid_send=%{tx.modsec_ruleid}'"
SecRule tx:modsec_ruleid_send "@ge 1" "id:9999999,phase:2,log,redirect:http://localhost/403.html?modsec_ruleid=%{tx.modsec_ruleid_send}"

@martinhsv, Thanks a lot! This is a nice workaround.

Hi @martinhsv
Your proposed solutions works well in our testing environment. However, we ran into a problem of displaying correct response status.  Let's say there is a request that trigger a non-critical rule (which means that we expect ModSecurity not to deny the request but log it instead) and there is a request that trigger a critical rule. If we use the redirect method, we cannot tell the difference between those two request since they both have the same response status code "302". To resolve this problem, we set the ModSecurity to AnomalyScoring mode and use the following rule combination
SecRule tx.anomaly_score "@ge %{tx.inbound_anomaly_score_threshold}" \
    "id:9999998,phase:2,log,setvar:'tx.response_status=403'"

SecRule tx.anomaly_score "@lt %{tx.inbound_anomaly_score_threshold}" \
    "id:9999997,phase:2,log,setvar:'tx.response_status=200'"

SecRule tx.anomaly_score "@unconditionalMatch" \
    "id:9999999,phase:2,log,\
    redirect:http://localhost/?status=%{tx.response_status}&modsec_ruleid=%{tx.modsec_ruleid_send}"

This works but does not seem to be an elegant solution. I am wondering if there is a better way to pass the response status code to our testing client.
Thanks!

That looks like a pretty reasonable solution to me.


Adsk Contrib - Improve op finalization

Reworking ops finalization:

ops are only finalized once.
clarify LUT inversion
move direction to MatrixOpData and RangeOpData
change how FixedFunction surround inverse is saved

Signed-off-by: Bernard Lefebvre<EMAIL_ADDRESS>

This has been up for two weeks, given that there has been no feedback, we will go ahead and merge this week.


Issue: Jina reader fails to parse URLs containing Chinese characters

Issue: Jina reader fails to parse URLs containing Chinese characters
Description:
We have encountered an issue where the Jina reader fails to parse URLs that contain Chinese characters. This issue is causing our application to throw errors and prevents us from properly extracting content from certain websites.
Steps to Reproduce:

Make a request to the Jina reader API with a URL containing Chinese characters, such as https://zh.wikipedia.org/wiki/%E5%91%A8%E6%9D%B0%E5%80%AB.
Observe that the Jina reader fails to parse the URL and returns an error.

Expected Behavior:
We expect the Jina reader to properly handle URLs containing Chinese characters and successfully parse the corresponding web pages. The reader should be able to decode the URL, retrieve the web page content, and return it as expected.
Actual Behavior:
When a URL containing Chinese characters is passed to the Jina reader, it fails to parse the URL and throws an error. The error message typically indicates that the reader is unable to read properties of undefined, specifically the 'parentNode' property.
Example Error Message:
Failed to fetch https://zh.wikipedia.org/wiki/%E5%91%A8%E6%9D%B0%E5%80%AB: {"code":500,"status":50000,"message":"Cannot read properties of undefined (reading 'parentNode')","name":"TypeError"}

Impact:
This issue prevents our application from properly extracting content from websites that have URLs containing Chinese characters. It limits the functionality of our application and affects the user experience when dealing with such websites.
Potential Causes:

The Jina reader may not be properly decoding the URL before making the request, leading to an invalid URL being passed to the underlying parsing logic.
The parsing logic within the Jina reader may not be handling URLs with Chinese characters correctly, resulting in the "Cannot read properties of undefined" error.

Workaround:
As a temporary workaround, we have implemented a filtering mechanism in our application to skip URLs that contain Chinese characters. However, this is not an ideal solution as it limits the functionality and coverage of our application.
Request:
We kindly request the Jina team to investigate this issue and provide a fix that allows the Jina reader to properly handle URLs containing Chinese characters. It would be greatly appreciated if you could provide an update on the progress and an estimated timeline for the resolution.
Additional Information:

We are currently using the official Jina reader API, not the open-source service.
We are in the process of setting up our own service, but we are unsure if the open-source service also has this issue.

Please let us know if you require any further information or if there are any specific details you need to investigate and resolve this issue.
Thank you for your attention to this matter. We look forward to your response and resolution.
Best regards,
Loki.W

This was some other bug unrelated to Chinese characters.
Was fixed in cbc13ec


ionic generate --list reports undefined multiple times

Ionic version:  (check one with "x")
[ ] 1.x
[ x] 2.x
I'm submitting a ...  (check one with "x")
[ x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
When I type ionic generate --list, I get:

Expected behavior:
I'd expect not to see "undefined" multiple times.

Try CLI v3. It is quite fixed.

This issue was moved to driftyco/ionic-cli#1940


Dimensional check is incorrect in Compound.sub(), other possible latent problems

from build123d import *
shape1 = Pos(0,0,0) * Box(30,30,30)
shape2 = Pos(30,0,0) * Box(50,5,5)
shape1 - shape2                                     # This is fine and produces a box with a hole
Compound(shape1) + Compound(shape2)                 # This is fine and produces a box on a stick
Compound([shape1,shape3]) + Compound(shape2)        # This works
sl = (ShapeList([shape1]) - ShapeList([shape2]))[0] # Executes, but just returns shape1, why?

Compound(children=[shape1]) - Compound(children=[shape2])   # This throws an error, why?
Compound(shape1) - Compound(shape2)                     # This throws an error, why?

# Error: TypeError: '<' not supported between instances of 'NoneType' and 'NoneType'
# when the dimension of self & other are checked

There are two problems quickly apparent in reviewing the source code for __sub__():
        for _other in others:
            if type(_other)._dim < type(self)._dim:
                raise ValueError(
                    f"Only shapes with equal or greater dimension can be subtracted: "
                    ...

The error language is inconsistent with the actual conditional, in that the conditional should be <=, though this is not why the above example fails. The example fails because type(Compound(Box(1,1,1)))._dim is None when I think it should be 3.
The reason that this bug exists in __sub__ and not in __add__ is that add only checks for equality of dimension, and None == None. This is a significant separate latent issue. Here, fixing the conditional in __sub__ in a careful way will allow it work, but at that point both __add__ and __sub__ and possibly other operations on Compound are silently failing to actually check dimensional compatibility of their arguments.
--> My plan is to fix the trivial bug in __sub__()'s dimension check such that it allows equality, knowing that this reproduces the latent failure in common with __add__(), but unblocks a use case for me. In a separate PR/issue, the fact that Compound's dimension is None should be fixed.

Opened #754

A Compound is a collection of any Shape; one can build a Compound of mixed 2D and 3D shapes so the _dim of Compound is explicitly set to None.  The Part, Sketch and Curve versions of Compound are intended to be used for collections of 3D, 2D and 1D Shapes respectively.
However, your other findings are worth investigation.

I think it’s a bit simpler than I first thought, see the PR.

So, why was I taking the approach in the above failing example in the first place? I think it is because the first and only place I recall seeing an explanation of the basic classes in the documentation is here:
https://build123d.readthedocs.io/en/latest/key_concepts.html#topology which includes Compound but none of Part Sketch or Curve classes. I think that an additional possibly confusing subtlety for me is the inclusion of Shape at the very end - I understand that it's the base class but I don't understand what I'd do with it. Should go at the beginning of the list of things that inherit from it?
On the analogous page for Algebra mode, https://build123d.readthedocs.io/en/latest/key_concepts_algebra.html it mentions Part Sketch and Curve but there's no context on how one would obtain instances of them except implicitly from the examples that use function like Box and Cylinder which I don't think are documented anywhere outside of the weeds of the full API documentation.
I might suggest that the Topology section of Key Concepts (Builder Mode) be pulled out and precede both Key Concepts sections, because it's relevant to both. Further, I would suggest including in a single place a brief definition of Part Sketch Curve and explanation of their inheritance from Compound. It should be made clear that both Compound and Shape are not meant for direct use.
Additionally, a really helpful section complementing Topology and prior to Algebra/Builder mode would be a quick rundown of the helpful primitive Part Sketch and Curve classes, such as Box and Cylinder, if it's just a laundry list of their names under the description of e.g. Part.
If there's some page in the documentation I missed that contains the above content, please point me to it, I've been unsuccessful with text searches for class names.

Compound is definitely intended to be used, one of the ways is for an assembly - a collection of physically disjoint components - as described here: https://build123d.readthedocs.io/en/latest/assemblies.html  An Assembly class will be introduced as a subclass of Compound to help make this use case distinction.
Part can contain multiple disjoint objects as well but this isn't the primary purpose.  Often in the creation of an single Solid a intermediate stage may contain multiple Solids so this is not prohibited.
I've marked this Issue with the documentation tag, some of the recommendations you make here would likely be helpful for new users.

Ah, thanks. Will go back to understanding how my use case is better approached, informed by this, and see if I can understand your suggestion in the PR on minuend.

Compound.unwrap just strips extraneous layers of Compound from an object.  With the unwrap(fully=True) option, the entire Compound "wrapper" is eliminated if there is a single Shape in the Compound (which OCCT generates frequently).  As both self and others are going to be combined and a new object generated these wrappers add no value.

These operators handle Compounds now.


Hook failing when called from shared library constructor

ShadowHook Version
1.0.9
Android OS Version
14
Android ABIs
armeabi-v7a, arm64-v8a
Device Manufacturers and Models
Samsung and others
Describe the Bug
When building a shared library (no matter the compiler flags) and using a library constructor like below
__attribute__((constructor)) void init() {     ... }
Shadowhook fails with the error:
8 - Init bytesig SIGSEGV mod failed.
However, when loading from JNI_OnLoad, this does not seem to be an issue and the hook works just fine there.
I'm trying to hook mmap from libc here.

Hi @reveny,
I tried it with the systest module that comes with the shadowhook project:

Comment out the following code in the SysTest.java file:

// initErrno = ShadowHook.init(new ShadowHook.ConfigBuilder()
//     .setMode(sharedMode ? ShadowHook.Mode.SHARED : ShadowHook.Mode.UNIQUE)
//     .setDebuggable(debuggable)
//     .setRecordable(recordable)
//     .build());
// if(0 != initErrno) {
//     return initErrno;
// }

Add a library constructor in systest_jni.c:

#include <android/log.h>
#include "shadowhook.h"

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#define LOG(fmt, ...) __android_log_print(ANDROID_LOG_INFO, "shadowhook_tag", fmt, ##__VA_ARGS__)
#pragma clang diagnostic pop

__attribute__((constructor)) static void systest_init(void) {
  int r = shadowhook_init(SHADOWHOOK_MODE_SHARED, false);
  LOG("shadowhook_init ret: %d", r);
}

I found it works and no errors were found:

$ adb logcat -s shadowhook_tag
--------- beginning of main
04-15 14:38:56.317 20915 20915 W shadowhook_tag: shadowhook version 1.0.10-alpha.0: shadowhook init(mode: SHARED, debuggable: false), return: 0, real-init: yes
04-15 14:38:56.317 20915 20915 I shadowhook_tag: shadowhook_init ret: 0

Is there any difference between my usage and yours?

I have finally figured it out, it was caused by a custom made llvm obfuscator being poorly made and thus causing issues. I apologize for opening this issue. Problem was caused from my own setup.

Hi @caikelun,
Appreciate you looking into the issues and answering all our questions.
Unfortunately, I'm having the same issue. Tried both SHARED and UNIQUE modes.
06-22 01:04:00.053 29766 29766 W shadowhook_tag: shadowhook version 1.0.9: shadowhook init(mode: UNIQUE, debuggable: false), return: 8, real-init: yes 06-22 01:04:00.053 29766 29766 I shadowhook_tag: shadowhook_init ret: 8
Prior to that in logcat there's the following warning from SELinux:
06-22 01:04:00.049 29766 29766 I com.whatsapp: type=1400 audit(0.0:1334): avc: denied { execute } for path="/data/local/tmp/libnativelib.so" dev="sda17" ino=2793478 scontext=u:r:untrusted_app:s0:c197,c256,c512,c768 tcontext=u:object_r:shell_data_file:s0 tclass=file permissive=1 app=com.whatsapp
However, after setting the proper security context via
chcon u:object_r:app_data_file:s0:c197,c256,c512,c768 libnativelib.so
I'm seeing
06-22 01:09:25.846 29947 29947 W com.whatsapp: type=1400 audit(0.0:2141): avc: granted { execute } for path="/data/local/tmp/libnativelib.so" dev="sda17" ino=2793478 scontext=u:r:untrusted_app:s0:c197,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c197,c256,c512,c768 tclass=file app=com.whatsapp
But shadowhook still can't initialize with the status code 8.
I am using https://github.com/MJx0/AndKittyInjector to inject my native library into the target app. Dobby works fine with it.

Hi @caikelun,
Appreciate you looking into the issues and answering all our questions.
Unfortunately, I'm having the same issue. Tried both SHARED and UNIQUE modes.
06-22 01:04:00.053 29766 29766 W shadowhook_tag: shadowhook version 1.0.9: shadowhook init(mode: UNIQUE, debuggable: false), return: 8, real-init: yes 06-22 01:04:00.053 29766 29766 I shadowhook_tag: shadowhook_init ret: 8
Prior to that in logcat there's the following warning from SELinux: 06-22 01:04:00.049 29766 29766 I com.whatsapp: type=1400 audit(0.0:1334): avc: denied { execute } for path="/data/local/tmp/libnativelib.so" dev="sda17" ino=2793478 scontext=u:r:untrusted_app:s0:c197,c256,c512,c768 tcontext=u:object_r:shell_data_file:s0 tclass=file permissive=1 app=com.whatsapp
However, after setting the proper security context via chcon u:object_r:app_data_file:s0:c197,c256,c512,c768 libnativelib.so
I'm seeing 06-22 01:09:25.846 29947 29947 W com.whatsapp: type=1400 audit(0.0:2141): avc: granted { execute } for path="/data/local/tmp/libnativelib.so" dev="sda17" ino=2793478 scontext=u:r:untrusted_app:s0:c197,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c197,c256,c512,c768 tclass=file app=com.whatsapp
But shadowhook still can't initialize with the status code 8.
I am using https://github.com/MJx0/AndKittyInjector to inject my native library into the target app. Dobby works fine with it.

If you are injecting I assume you built shadowhook directly into the library which from my experience will not work.

@reveny Yes, I'm statically linking shadowhook to my code. Thanks!
Theoretically, if I inject shadowhook and my own code separately, would it work?

@reveny Yes, I'm statically linking shadowhook to my code. Thanks! Theoretically, if I inject shadowhook and my own code separately, would it work?

I don't think that's going to work but maybe wait for @caikelun to respond


13th April Steering and Technical Committee (STC) Agenda

April 2022 STC meeting.
Issues to discuss will be taken from the STC backlog project https://github.com/orgs/dapr/projects/54
Proposed Agenda (will update based on email feedback and community raised issues)

@yaron2 Review 1.7 release and major items for 1.8 from Diagrid
@msfussell Consider including Dapr update for CNCF Kubecon Europe as per this request. - [cncf-dapr-maintainers] Dapr Maintainers - CNCF and Kubernetes Project Updates for KubeCon + CloudNativeCon Europe 2022]
See https://www.surveymonkey.com/r/FPBZ8X3 with suggested response https://1drv.ms/w/s!AiPI1_-ScL2khqkCPIOoWmHsvB79ng?e=QEruF6
@cvictory Status of the Alibaba components moving to Beta and Stable. See https://discord.com/channels/778680217417809931/834615577372131378/963751691755343893
Today I have a small update on a Workflow API proposal that will be first sent to the STC after this meeting. @msfussell

Today I have a small update on a Workflow API proposal that will be first sent to the STC after this meeting.

Update. I posted a reply to CNCF request for Keynote information on Dapr

Attendees:
@msfussell
@yaron2
@artursouza
@beiwei30
@cvictory
@Forrest-zhao
@paulyuk
Notes from 04/13/2022:
Agenda:

@yaron2 Reviewed the 1.7 release and the major items for 1.8 from Diagrid.
- See Dapr runtime 1.8. planning item and 17th April community call for summary. STC agree that the planning list reflected the projects direction and needs
-

@msfussell Consider including Dapr update for CNCF Kubecon Europe as per this request. - [cncf-dapr-maintainers]
- Action: @msfussell  posted this reply to the CNCF Kubecon committee for review
-

@cvictory - Covered the status of the Alibaba components moving to Beta and Stable. See https://discord.com/channels/778680217417809f931/834615577372131378/963751691755343893
- Action @cvictory will continue to work within Alibaba to get components moved to Stable

@paulyuk - Gave an update on Workflow API proposal from Microsoft that was then shared with STC. This proposal is now captured in this issue https://github.com/dapr/dapr/issues/4576

There was general discussion on the need to have AWS components get to a stable status. @msfussell to reach out to CNCF help desk and ask if there is funding assistance from CNCF to help with paying for running this infrastructure. STC still need to address the issue of who would be willing to write the AWS tests, ideally with AWS involvement. All in STC to come back with suggestions on how to approach this issue.

Notes from STC meeting captured


bump security agent policies to v0.53.0

What does this PR do?
This PR bumps the security agent policies to v0.53.0 (no change with v0.52.0) in preparation for agent release 7.53
Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


Minor UI change in text display

I'm proposing minor changes in how we display text

[] For job that is already started, we should display it as "In Progress" status. This will have proper meaning than "Started".
[] On the Bid screen, we should change the "Award BBO" text to "Bid Amount", for reflecting the behavior properly.

Close in favor of #36


Proper way to handle closed connections?

Hi, first thanks for the awesome library. Love this project and all the work put into it to make it great. Thank you so much. (Ditto for Mint and Finch 😁)
Ok, onto the meat of the issue. When using the finch adapter we are seeing mint socket closed errors and was wondering the best way to handle these. The issue is two part though:

There was previously a bug in mint that didn't handle closed connections after a successful requests (reportedly fixed in 1.2.1).
There is still cases where we still get occasional closed errors from mint. I'm guessing they really are closed and the request was not successful but haven't personally validated that is the case as I haven't tried to reproduce against a sever I can introspect.

Regardless of the cause, would a retry middleware be the best approach for handling these in general? Or would trying to handle this in either Tesla, Finch or Mint be best? I would likely lean towards a retry middleware for a quick fix, but is that the most ideal solution long term?
I would be happy to help dive into the appropriate place to resolve this if it is determined it should be handled in one of these libs.
Thanks!
/cc @keathley -- might be relevant to you as well for Finch. 😁

@jared-mackey A couple of questions:

Quick check that you have the latest versions of Mint and Finch installed.
Do these connection closed errors occur on a regular cadence? Or are they infrequent?
Are you using http/1.1 connection pools?
Do you have a maximum idle time set on your connection pool? If this is not set to a value lower than any potential idle times that the server has then this can lead to race conditions and connection closed errors.

@teamon I could be wrong but it seems like this probably isn't related to Tesla so if you'd rather close this discussion then we can transfer it to the finch repo.

@keathley

We have hit this in several scenarios. The one I am on currently is a bit dated (1.2.0 for mint) so I'll update and do some more testing. However, I know others were on 1.2.1 and hit this but I can't verify for your other questions.
These are pretty frequent. It seems like a decent percent (>10%).
Just the default Finch configuration.
We do not

I'll update the versions for the one I am able to verify on and report back.

@keathley I have updated to the latest versions from hex for Mint, Finch, Tesla and Nimblepool and the issue has persisted. I can't seem to reproduce it locally but the gist of what we are doing is this: Inside a Phoenix request we start a task that makes an API call over to the have I been pwned API. We do not await the task inside the Phoenix request. (We are not linking the task, so it should carry on in the background).

After seeing some trace data on these it is clear the request is not being sent based on the duration of the trace being sub millisecond. So I don't think it is the same as the issue in mint previously reported. To work around this, I am going to add a retry middleware to our Telsa pipeline.

Closing this one, do let me know if there is anything actionable on tesla side.

I'm seeing a case where socket closed is returned but the request IS sent, so my retry middleware is causing the request to happen multiple times.

We are also seeing these "socket closed" errors. I can't reproduce them locally very reliably but they happen frequently in production for us. Interestingly, they seem to happen more often on clients that have relatively low traffic. It's enough of an issue that we will probably have to move away from Finch until it gets fixed.

@Billzabob I was able to work around this via a retry middleware. It’s not ideal, but did solve the problem for me.
  plug Tesla.Middleware.Retry,
    delay: 10,
    max_retries: 2,
    should_retry: &should_retry?/1

and
  defp should_retry?({:ok, %{status: status}}) when status in 400..599, do: true
  defp should_retry?({:ok, _}), do: false
  defp should_retry?({:error, _}), do: true

Customize to your specific needs, of course. 😁

We'll give that a try. Any chance that setting the pool_max_idle_time to something like a minute or two could fix this issue? Just guessing since it seems to happen mostly when there hasn't been activity in a while for the client.

defp should_retry?({:error, _}), do: true

Hi mate, just checking in, did you find a solution for this issue? We're seeing pretty much the same thing as you are, also only in production servers. I was thinking what might be the route cause, can you tell me what operating system are you using, Erlang/Elixir version etc.? We're on Alma Linux, Elixir 1.15.7, Erlang 26.1.2.
What I concluded that it's the Tesla Finch adapter doing this kind of funky translation of the %Mint.TransportError{} to text, returning {:error, "socket closed"}. But the root cause still eludes me, it looks like connections get closed while they're in the pool and Finch is not aware of that.

We'll give that a try. Any chance that setting the pool_max_idle_time to something like a minute or two could fix this issue? Just guessing since it seems to happen mostly when there hasn't been activity in a while for the client.

@Billzabob Hi mate, just checking in, did you find a solution for this issue? We're seeing pretty much the same thing as you are, also only in production servers. I was thinking what might be the route cause, can you tell me what operating system are you using, Erlang/Elixir version etc.? We're on Alma Linux, Elixir 1.15.7, Erlang 26.1.2.
What I concluded that it's the Tesla Finch adapter doing this kind of funky translation of the %Mint.TransportError{} to text, returning {:error, "socket closed"}. But the root cause still eludes me, it looks like connections get closed while they're in the pool and Finch is not aware of that.

@salex89
This was the change we made and we haven't seen the issue since:
  # In our application.ex

  pool_opts = %{default: [pool_max_idle_time: 60_000]}

  children = [
    # ...
    {Finch, name: PlaidClient, pools: pool_opts},
   # ...
  ]

It still feels like there's an underlying bug but this workaround works pretty well.

@salex89 This was the change we made and we haven't seen the issue since:
  # In our application.ex

  pool_opts = %{default: [pool_max_idle_time: 60_000]}

  children = [
    # ...
    {Finch, name: PlaidClient, pools: pool_opts},
   # ...
  ]

It still feels like there's an underlying bug but this workaround works pretty well.

@Billzabob Interesting, thanks. We'll try that. Did you, perhaps, try with configurations like conn_max_idle_time or max_idle_time (their description is identical)? The pool_max_idle_time basically purges the pool, if I'm not mistaken. These might clean individual "faulty" sockets.

those pool_opts seem to be working great for me. Great find! Agreed seems like an underlying bug.

I am also running into these errors. Polling an endpoint every X seconds and then randomly, socket: closed. These pool_opts (and various other opts) are not getting rid of the issue. Might be reducing it, hard to tell. I have also implemented a basic retry mechanism, which drastically reduces the fail rate, but still some get through.
Do we have any idea what the root cause of the Mint error is?


Replace bash script with /usr/bin/env which

This is not important, and I’m probably overlooking something, and if it ain’t broke don’t fix it, ….
But it seems that the find_tool.sh script could be avoided by calling /usr/bin/env which instead.

find_tool.sh is unnecessary for setups that use system-wide installations in /usr/local/bin (which is always in the PATH) or which are registered in /etc/paths.d (this is true for MacTeX iirc). However with per-user software installation (e.g. via Nix home-manager, which is what I use) the directory is not in the system-wide PATH and therefore the extension needs to load the login shell's configuration to be able to find the utility. There is no single source of truth for the user-specific PATH, as this is shell-dependent and may be eg in ~/.bash_profile, ~/.zshrc or ~/.config/fish/config.fish. This is why find_tool.sh runs the login shell and uses which in there.

Thank you for the explanation! Would this fix it?

The problem is getting the --login argument to the shell itself. You can only set the shell path, and the arguments to the command you want to run. Without --login, the shell won't parse its respective configuration file.

Thank you! Weird, though: it seems to work here on my end?! I just tried to add a directory (with a bogus latexmk)  in front of my PATH only in my ~/.zshrc and not system-wide, and the extension found the bogus latexmk. 🤷

Interesting. Perhaps the shell command does --login implicitly? I'll test that later.

In fact, it seems that the shell: true option is unnecessary and everything works with the first version above; calling /usr/bin/env does the trick. The Automatically request environment from login shell option in Nova’s Preferences → Tools needs to be selected, though (that’s the default).

Wow I never saw that, if Nova does that find_tool.sh is indeed superfluous. I assume that option has been added somewhen after I started my project since this didn't work back then.


_roi_pooling.so: undefined symbol: _Py_Dealloc

Hi,
I very much appreciate you made this repository publicly available to use. Before getting my hands dirtier, I tried to run ./tools/demo.py; however, got the following error:
GPU_ID=0
CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py
Traceback (most recent call last):
  File "./tools/demo.py", line 29, in <module>
    from nets.vgg16 import vgg16
  File "/home/sam/projects/faster.rcnn.pytorch/tools/../lib/nets/vgg16.py", line 10, in <module>
    from nets.network import Network
  File "/home/sam/projects/faster.rcnn.pytorch/tools/../lib/nets/network.py", line 28, in <module>
    from layer_utils.roi_pooling.roi_pool import RoIPoolFunction
  File "/home/sam/projects/faster.rcnn.pytorch/tools/../lib/layer_utils/roi_pooling/roi_pool.py", line 3, in <module>
    from _ext import roi_pooling
  File "/home/sam/projects/faster.rcnn.pytorch/tools/../lib/layer_utils/roi_pooling/_ext/roi_pooling/__init__.py", line 3, in <module>
    from ._roi_pooling import lib as _lib, ffi as _ffi
ImportError: /home/sam/projects/faster.rcnn.pytorch/tools/../lib/layer_utils/roi_pooling/_ext/roi_pooling/_roi_pooling.so: undefined symbol: _Py_Dealloc

Any ideas what could cause the problem?

I've never met this problem. I copied the roi pooling module from other repository, and it works fine for me.
However, you can download the model trained by crop and resize, and comment out all the Roi pooling related code. It could still work.
(I fixed some bugs, so if you want to do so, please pull from master again)

Thanks, will try

@ruotianluo
it seems that the roi_pooling layer only support batch_size==1.
So does this total project does not support batch_size>1?


pip support for ubuntu 18.04

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Additional context
Add any other context or screenshots about the feature request here.
TASK [dj-wasabi.zabbix-agent : Install local python-netaddr package]
fatal: [localhost -> localhost]: FAILED! => {"attempts": 3, "changed": false, "msg": "Unable to find any of pip2, pip to use.  pip needs to be installed."}

"sudo apt install python-pip -y" solved my problem on aws lightsail ubuntu 18.04 blueprint

Hi, do you have pip in your path on the host executing Ansible?

needed to install python on host before running playbook


github.ActionsEnvironmentSecret gives 404 Not Found

What happened?
Hi there,
TL;DR I believe github.ActionsEnvironmentSecret  may be hitting an out of date GitHub endpoint.
I'm trying to create a new github.Repository via Pulumi and also create 3 GitHub actions environments with several secrets in each.
This forum answer made me realize you have to encrypt strings before you can send them to the GitHub API via the pulumi resource.
The github.get_actions_public_key(repository) recommended in the forum answer calls this endpoint (GitHub docs on the endpoint here) to fetch the "GitHub environment public key".
Here is the error message I get on pulumi up when I try to do this:
Diagnostics:
  github:index:ActionsEnvironmentSecret (Sandbox-environment--environment--env-secret):
    error: GET https://api.github.com/repositories/543829938/environments/sample-repo:Sandbox/secrets/public-key: 404 Not Found []

Note the repository URL is 543829938 in this example, and the environment name is Sandbox. The repo name is sample-repo.
I was able to reproduce the error by hitting the GitHub API myself like so:
REPO_ID=543829938
ENVIRONMENT_NAME=Sandbox
REPO_NAME=sample-repo
curl \
    -H "Accept: application/vnd.github+json" \
    -H "Authorization: Bearer $GITHUB_TOKEN" \
    https://api.github.com/repositories/$REPO_ID/environments/$REPO_NAME:$ENVIRONMENT_NAME/secrets/public-key

# result
{
  "message": "Not Found",
  "documentation_url": "https://docs.github.com/rest/reference/actions#get-an-environment-public-key"
}

I was able to solve it by removing the $REPO_NAME: portion of the request path:
REPO_ID=543829938
ENVIRONMENT_NAME=Sandbox
REPO_NAME=sample-repo
curl \
    -H "Accept: application/vnd.github+json" \
    -H "Authorization: Bearer $GITHUB_TOKEN" \
    https://api.github.com/repositories/$REPO_ID/environments/$ENVIRONMENT_NAME/secrets/public-key

# response
{
  "key_id": "568250167242549743",
  "key": "4sJ/GHfjfYtb6kE0+CazB6MopDEiJ1E22Gh4ntzN+Cw="
}

Can the underlying provider be modified so that the correct URL endpoint is used?
Steps to reproduce
from base64 import b64encode
from nacl import encoding, public # pip install pynacl

def encrypt_github_action_secret(public_encryption_key: str, secret_value: str) -> str:
    """
    Encrypt a Unicode string using the public key.

    The implementation for this function came from the GitHub API docs here:
    https://docs.github.com/en/rest/actions/secrets#create-or-update-an-organization-secret

    We found that by landing on this forum question on how to create GitHub Actions secrets:
    https://github.com/pulumi/pulumi/discussions/9377
    """
    public_key = public.PublicKey(public_encryption_key.encode("utf-8"), encoding.Base64Encoder())
    sealed_box = public.SealedBox(public_key)
    encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))
    return b64encode(encrypted).decode("utf-8")

repo = github.Repository(
    resource_name="sample-repo",
    name="sample-repo",
    archive_on_destroy=False,
)

public_key = github.get_actions_public_key(repository=repo)

env = github.RepositoryEnvironment(
    resource_name=f"sandbox-environment",
    repository=repo,
    environment="Sandbox",
)

encrypted_secret = encrypt_github_action_secret(public_encryption_key=public_key.key, secret_value="I'm a secret!")
github.actions_environment_secret.ActionsEnvironmentSecret(
    resource_name=f"{env._name}--{secret_name.lower()}--env-secret",
    secret_name=secret_name,
    encrypted_value=encrypted_secret,
    environment=env,
    repository=env.repository,
)

Expected Behavior
A public key is fetched.
Actual Behavior
A public key is not found, instead a 404 error is returned.
View Live: https://app.pulumi.com/phitoduck/repogen/repogen/updates/22

     Type                                      Name                                              Status                  Info
     pulumi:pulumi:Stack                       repogen-repogen                                   **failed**              1 error
 +   └─ github:index:ActionsEnvironmentSecret  Sandbox-environment--environment--env-secret   **creating failed**     1 error

Diagnostics:
  github:index:ActionsEnvironmentSecret (Sandbox-environment--environment--env-secret):
    error: GET https://api.github.com/repositories/543829938/environments/sample-repo:Sandbox/secrets/public-key: 404 Not Found []

Output of pulumi about
CLI
Version      3.40.2
Go Version   go1.19.1
Go Compiler  gc

Plugins
NAME    VERSION
github  5.0.0
python  unknown

Host
OS       darwin
Version  10.15.7
Arch     x86_64

This project is written in python: executable='/Users/eric/.pyenv/shims/python3' version='3.10.4
'

Backend
Name           pulumi.com
URL            https://app.pulumi.com/phitoduck
User           phitoduck
Organizations  phitoduck

Dependencies:
NAME              VERSION
GitPython         3.1.27
phitoduck-projen  0.0.2
pip               22.2.2
pulumi-github     5.0.0
PyNaCl            1.5.0
python-dotenv     0.21.0
rich              12.5.1
setuptools        65.4.0
wheel             0.37.1

Pulumi locates its logs in /var/folders/cn/6x3hstc532b_gdnvrvn0p7600000gp/T/ by default

Additional context
No response
Contributing
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).

This seems related, but not the same as #246

Possibly related to https://github.com/integrations/terraform-provider-github/issues/667

Could this be related to https://github.com/integrations/terraform-provider-github/issues/578?
https://github.com/integrations/terraform-provider-github/issues/578#issuecomment-1078827934 suggests setting the owner field of the Provider configuration as a workaround.

I'm also having a related problem here.

When I run pulumi up locally, it does work and create the GitHub secret. But, when running with GitHub actions, it seems to duplicate the GITHUB_OWNER in the URL:
Error: **creating failed** error: GET https://api.github.com/repos/{GITHUB_OWNER}/{GITHUB_OWNER}/repository: 404 Not Found []

Github Action:

When I try removing the GITHUB_OWNER, the instead of duplicating GITHUB_OWNER. It adds my github username to the url:
github:index:ActionsEnvironmentSecret  creating (0s) error: GET https://api.github.com/repos/robsoned/{GITHUB_OWNER}/repo: 404 Not Found []

Maybe I'm missing something here, I'm passing the exact same env variables that I use locally to the GitHub actions.

I'm also having a similar (but not the same) issue:

    github:index:ActionsSecret (monorepo_bazel_remote_cache_server_actions_secret_cache_url):
      error: GET https://api.github.com/repos//zemn-me/monorepo/actions/secrets/public-key: 404 Not Found []

It looks like, somehow, there's an extra slash being interpolated for me. I tried to use the workaround above and it didn't fix the issue. Any suggestions?

I'm also having a similar (but not the same) issue:

    github:index:ActionsSecret (monorepo_bazel_remote_cache_server_actions_secret_cache_url):
      error: GET https://api.github.com/repos//zemn-me/monorepo/actions/secrets/public-key: 404 Not Found []

It looks like, somehow, there's an extra slash being interpolated for me. I tried to use the workaround above and it didn't fix the issue. Any suggestions?
Edit: managed to work around it by adding ../ before my repo name; it's now ../my-org/my-repo.

Having the same issue with github.ActionsSecret. The cause is the extra slash (/). Can this be fixed? @lblackstone

The extra slash indeed seems to be related. Removing it resulted in a 403, requiring admin access:
message	            "Must have admin rights to Repository."
documentation_url   "https://docs.github.com/rest/actions/secrets#get-a-repository-public-key"
status	            "403"

Hello everyone. I've resolved this by following the instructions here https://www.pulumi.com/registry/packages/github/installation-configuration/#configuring-credentials.

Hi @smith558 - thank you for reporting here!
I'm going to close this issue as resolved for now - but do feel free to file a follow-up issue if you believe we can improve the experience.