ARM: Add management link commands

@vivsriaus : This is for post-connect. Let us know if you disagree.

@vivsriaus : can you confirm this is in Swagger yet?

@mayurid yes, this is in swagger. Just got merged today.


Login provider icons broken (beta site)

On https://beta.flathub.org/userpage I see:

This is because the img src is http://meh:
<button class="ProviderLink_provider__muLZ7"><img src="http://meh" width="60" height="60" alt="Login with Google">Login with Google</button>

These are currently handled in the backend, however, I do think that we should just manage them in the frontend and switch based on the method @danielsilverstone-ct

Yeah, this is a side-effect of the fact we've not quite chosen the approach for all this.  @razzeee and I were briefly thinking about this yesterday.  I agree with them that a good approach for this will be to remove the icon and "login with..." text from the provider listing in the backend and just return a "display name" for each provider which the frontend can then integrate with (a) an image and (b) a localised message inviting the user to "log in with..." or "add ... authentication" depending on the context of the button in question.


SoftwareDevelopment Kit

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{ R200 / F200 / SR300 / ZR300 / D400 }

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
{Win (8.1/10) / Linux (Ubuntu 14/16/17) / MacOS

Kernel Version (Linux Only)
(e.g. 4.14.13)

Platform
PC/Raspberry Pi/ NVIDIA Jetson / etc..

SDK Version
{ legacy / 2.. }

Language
{C/C#/labview/nodejs/opencv/pcl/python/unity }

Segment
{Robot/Smartphone/VR/AR/others }

Issue Description
<Describe your issue / question / feature request / etc..>

Hi @quguayu   Can you provide information about what you would like to know please?  Thanks!

Case closed due to no further comments received.


Prometheus error

I have this message :
expected value after metric, got "\n" ("INVALID") while parsing: "unpoller\n"
Unifi controller : <IP_ADDRESS>
Prometheus : 2.45.0

sounds like a configuration issue, post your config and which version of unpoller you are on

Unpoller version 2.8.1 branch HEAD revision 1
configuration prometheus :

job_name: 'unpoller'
metrics_path: /unifi
scrape_interval: 30s
static_configs:
- targets: ['<IP_ADDRESS>:9130']

up.conf :
[prometheus]
disable = false
This controls on which ip and port /metrics is exported when mode is "prometheus".
This has no effect in other modes. Must contain a colon and port.
http_listen = "<IP_ADDRESS>:9130"
Adding an SSL Cert and Cert Key will make Poller listen with SSL/https.
ssl_cert_path = ""
ssl_key_path  = ""
Errors are rare. Setting this to true will report them to Prometheus.
report_errors = false
Record data for disabled or down (unlinked) switch ports.
dead_ports = false

Where does this message appear? Which log? Is there any more context around the error you can add?

expected value after metric, got "\n" ("INVALID") while parsing: "unpoller\n"

Is this still happening with the latest version?


Module documentation generation

We should probably set up proper actual documentation generation for the modules, and integrate it into NUbook. Something like what Doxygen generates. This requires setting up the generation, as well as a large effort to properly document the modules with relevant "javadoc" fields or equivalent, so that it's actually useful. Once the generation is happening, integrating it into NUbook somehow is the natural location for such documentation.
This is probably three separate efforts as such:

getting a documentation generator working with our codebase, such as doxygen
actually documenting modules (this is somewhat reliant on knowing how/what to set up, so we should know what the documentation generator needs before huge efforts are done here)
integrating the generated files into NUbook.

I don't think I need to elaborate exactly why this would be an incredible asset to NUbots...

Addressed by #676. Discussion of extensions moved to #694.


Fail to retrieve namespaces for context when large number of namespaces (?)

There appears to be an issue whereby namespace retrieval fails apparently for contexts with large number of namespaces, e.g. for kele-namespace-switch-for-context.
Adding print statements shows that not only is request ending in error, but the proxy gets created twice, despite us not setting a retry on the actual proxy creation:
fetching namespaces for gke_kubeflow-platform_europe-west1-d_kf-prod
starting proxy for gke_kubeflow-platform_europe-west1-d_kf-prod
requesting http://localhost:5138/readyz
[error] request--curl-sync: semaphore never called
fetching namespaces for gke_kubeflow-platform_europe-west1-d_kf-prod
starting proxy for gke_kubeflow-platform_europe-west1-d_kf-prod
requesting http://localhost:2019/readyz
[error] request--curl-sync: semaphore never called

Interestingly, in most cases, attempting to fetch namespaces a second time works fine. The issue pops up again after a certain amount of time passes, however, suggesting that maybe there's some interaction w/ kubectl cache that's going awry here.

For context, here is where in request.el the "semaphore never called" message is getting emitted.

Maybe we can use this as an opportunity to play with plz.el. See if we run into similar issues (or if they're easier to debug).

Tentatively looks like plz can replace kele--request-option entirely. Might go for it.


Feature Request: force push with lease

Feature Requested
Add the ability to force push with lease
Relevant Screenshot
No response
Checklist

[X] The feature would be useful to more users than just me.
[X] I have read the Non-Goals section of the README.

I've found a workaround : never force push on commit and amend, then push with force and pullBefore BUT the code uses the command git pull; be careful, if the git pull fails, we are going to force push without the remote code.
git pull && might be better.

Actually this is not even working, I have to force push with lease from my terminal

yeah, I am not much of an expert on all the git push/pull options, so feel free to make a PR if you have looked through the code already anyway?

Hi, I'm going to look at it when I have some time

okay, I read up on this and it seems --force-with-lease is pretty much always the safer option, so I just switched it to --force-with-lease throughout.


thuang-e2e-auth

Reviewers
Functional:
Readability:

Changes

add
remove
modify

Punting on figuring out why expect(page).toHaveText('foo', { timeout: N_SECONDS } doesn't work!


webapp:Reference clarification request for az webapp up

Resource Provider
az webapp up examples
Description of Work Requested
I was asked to clarify this statement: "Deploy new code to an app that was originally created using the same command".  If the following statement is correct, can the auto-gen reference content be updated?  Interpretation: "Deploy new code to a webapp running the Azure CLI command from the folder where the code to be deployed exists.  If deploying to an existing webapp with the same name and location, you will be over-writing the existing code.  If you want to change a portion of your webapp, use az webapp update."
Minimum API Version Required
not applicable
Swagger Link
not applicable
Target Date
Auto-gen reference content update schedule

webapp

webapp

Hi @dbradish-microsoft, wondering if you can clarify the ask - is it to update this
 to
"Deploy new code to a webapp running the Azure CLI command from the folder where the code to be deployed exists. If deploying to an existing webapp with the same name and location, you will be over-writing the existing code. If you want to change a portion of your webapp, use az webapp update."?

Hi @dbradish-microsoft, wondering if you can clarify the ask - is it to update this
 to
"Deploy new code to a webapp running the Azure CLI command from the folder where the code to be deployed exists. If deploying to an existing webapp with the same name and location, you will be over-writing the existing code. If you want to change a portion of your webapp, use az webapp update."?

@calvinsID , love your GitHub name, btw.  :-)
"yes" to your question assuming my statement is correct.  I had a support call on this sentence, and I feel I made assumptions in my response.

@calvinsID , love your GitHub name, btw.  :-)
"yes" to your question assuming my statement is correct.  I had a support call on this sentence, and I feel I made assumptions in my response.

@dbradish-microsoft haha thanks, not the most original name in the world
hmm I'm actually more in favour of removing the az webapp up -n MyUniqueAppName -l locationName example, since there are already examples for az webapp up -n MyUniqueAppName and a webapp up -l locationName individually. thoughts?

@dbradish-microsoft haha thanks, not the most original name in the world
hmm I'm actually more in favour of removing the az webapp up -n MyUniqueAppName -l locationName example, since there are already examples for az webapp up -n MyUniqueAppName and a webapp up -l locationName individually. thoughts?


Fix: Cannot leave room in offline mode after adding comment

Details

In offline mode, if we added a comment then left a public room, it would be re-joined when we get back online. This PR fixes that.
Fixed Issues

$ https://github.com/Expensify/App/issues/23572
PROPOSAL: https://github.com/Expensify/App/issues/23572#issuecomment-1650558178
Tests

Login with any account
Go to a room
Go to Settings >> Preferences >> Force offline
Send a message in the room
Press room header >> Leave room
Verify that the public room disappears from LHN
Turn off Force offline
Verify that the public room won't appear again in LHN

[x] Verify that no errors appear in the JS console

Offline tests

NA
QA Steps

Login with any account
Go to a room
Go to Settings >> Preferences >> Force offline
Send a message in the room
Press room header >> Leave room
Verify that the public room disappears from LHN
Turn off Force offline
Verify that the public room won't appear again in LHN

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/113963320/e59b3f72-d7bf-4d63-9817-08575f4af33a

Mobile Web - Chrome

https://github.com/Expensify/App/assets/113963320/5779bbcd-8db1-462f-9a8e-cbf256a80560

Mobile Web - Safari

https://github.com/Expensify/App/assets/113963320/42de06f1-509a-4699-9d1b-71f436467d9b

Desktop

https://github.com/Expensify/App/assets/113963320/ee6971bd-349f-4828-82d9-9c34e81d3a91

iOS

https://github.com/Expensify/App/assets/113963320/dceb875f-e26e-46d5-abc6-04eb5b12aac5

Android

https://github.com/Expensify/App/assets/113963320/a758b731-6576-4697-8f80-a49934384946

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Apologies for the delay here!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/MariaHCD in version: 1.3.53-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.3.53-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Add support for Flink and custom sinks.

Currently the Runner has no support for sinks, apart from the console one, which is just for testing and debugging. We have to create a wrapper for the Dataflow sinks and the Flink ones.

@kl0u
What you mean is it that we need to add one FileBaseSink in Runner? Or any other forms support for sinks?

Hello @bakey !
Thanks for wanting to get involved in the Beam Flink Runner.
So, concerning the sinks, this issue exists because also the Beam (or Google Dataflow) SDK version at the time we created the Flink Runner, did not support any Unbounded Sinks. Write operations were only allowed for batch workloads.
What would be interesting is to build support in the Beam Flink Runner for Flink Streaming sinks. This translates into creating a wrapper for sinks that implement the RichSinkFunction.
Cheers,
Kostas

@kl0u
Is it that means we have to add unbounded sinks support in Beam first , and then add translator in the runner to translate them to Flink?

@bakey In the long run yes. But for people to start using Beam on top of Flink, we can just add something like a method like writeToFlinkSink.

Actually, we could realize sink support like in #3 using Write.Bound. The interface might be intended only for batch but it would work for streaming applications as well.


Unable to customize a library section

Description
When the options of a library category section are opened, the application crashes and closes immediately.

Steps To Reproduce

Go to libraries
Right clic > Properties
Click customization

https://user-images.githubusercontent.com/56084970/147319062-f20a103a-2b6d-4756-bda5-1327edff5830.mp4
Expected behavior
Menu to customize this section of the library.
Files Version
Versión: <IP_ADDRESS> OS Version: 10.0.22000.376
Windows Version
Windows 11 21H2 1000.22000.376.0
Relevant Assets/Logs
debug.log
debug_fulltrust.log

Thanks for the report. This is fixed on main.


Cannot get sourcemaps to work for uploaded files

I have no idea where to post this and I do apologize if this is not the place, but the docs are incredibly unclear as to which options you're supposed to use for what for the source map uploads.  I'm trying to add the source map upload plugin to a webpack template
Basically, I have a setup running in dev behind an internal firewall.  I've integrated the webpack sourcemap upload plugin and configured it like so:
new BugsnagSourceMapUploaderPlugin({
      apiKey: '*****',
      appVersion: appVersion,
      uploadSource: true
})

This correctly uploads them and I can see them in he bugsnag console.  However, when an error comes in it does not match.  The app versions are all correctly aligned.  Now, the public path is configured relatively based on an index.html file like this:
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),

    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',

    /**
     * Source Maps
     */

    productionSourceMap: true,
    // https://webpack.js.org/configuration/devtool/#production
    devtool: '#source-map',

Great.  The sourcemaps are uploaded and look like this in the console: /static/js/vendor.3f9cb3774b75d70c28a4.js
What configuration option am I missing here?  Is this a matter of the original source files living behind the firewall?  I thought that was the whole point of uploading the files?  If this isn't the place to ask this, please direct me where I should go to try and figure this out.

Interestingly, this may be related to #3?

Hi @gabaum10. Here's good for issues – equally you can email<EMAIL_ADDRESS>so that we can tie in your report with your Bugsnag account and get a bit more context.
To resolve this issue, you should be able to use the wildcard functionality in the publicPath/minifiedUrloptions…

The asterisk character can be used as a wildcard for the minifiedUrl field and source file field names.
Multiple wildcards can be used in the same field. Each asterisk matches zero or more characters.

Note: publicPath/minifiedUrl refer to the same thing, but the HTTP API uses minifiedUrl and the JS source map tool uses publicPath. This is confusing, sorry!
I can't see exactly from the details that you posted, but you should be able to set publicPath to something like the following in order to match your asset urls:
new BugsnagSourceMapUploaderPlugin({
      apiKey: '*****',
      appVersion: appVersion,
      uploadSource: true,
      publicPath: 'http*://your.domain.com/static/js/vendor.*.js'
})

Note: you should tweak this to your needs – the http* part is what you would need to do if you're serving the js on both http and https. The vendor.*.js should cover you for the different webpack hashes.
In summary, you basically want the publicPath option to match the url that the browser will load the JS from, which is what I think you were getting at when you said this:

The sourcemaps are uploaded and look like this in the console: /static/js/vendor.3f9cb3774b75d70c28a4.js

Let me know if this helps. Cheers!

@bengourley so can you do something like:
https://your.domain.com/static/js/*.js to catch any of the JS files?

When I tried to set it to that, the uploaded source maps have a url of https://dev.domain.com/static/js/*.js/static/js/vendor.3f9cb3774b75d70c28a4.js which is obviously not right.  Does the plugin append the public path that's passed with the public path in the config?

Ah!  I got it working by using this: publicPath: '*/'

Does the plugin append the public path that's passed with the public path in the config?

Yes, you are right – the absolute value I provided would work with the underlying bugsnag-sourcemaps module but as webpack can create multiple maps/bundles in one build, this option is the public path (web address) to the static directory.

Ah! I got it working by using this: publicPath: '*/'

Glad you got this working! As long as each time you generate a bundle/hash you upload the sourcemaps, you should be good with this setting 👍

Thanks for the help!

Ah! I got it working by using this: publicPath: '*/'

Not working for me(
I try load my source map with same options, but bugsnag does not see it in dashboard
new BugsnagSourceMapUploaderPlugin({
      apiKey: global.bugsnagId,
      appVersion: global.appMeta.version,
      overwrite: true,
      publicPath: '*/',
    }),

Source maps are only applied going forwards - so when you upload a source map you will have to trigger another error to verify its working. Does a subsequent error use the source maps properly?

@snmaynard thank you! All work fine guys


Container has got missing removeActor overload method

Container now has overridden Group#removeActor(Actor, boolean) method. Any child of Container can call Actor#remove() and it will work properly.
This patch fixes #4623

Closed via e5d44539d146abbc2fd6203e494f27b36b1843d5, thanks!


Pr/gray/main/egress proxy ipsec fix2

Please ensure your pull request adheres to the following guidelines:

[ ] For first time contributors, read Submitting a pull request
[ ] All code is covered by unit and/or runtime tests where feasible.
[ ] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[ ] If your commit description contains a Fixes: <commit-id> tag, then
please add the commit author[s] as reviewer[s] to this issue.
[ ] All commits are signed off. See the section Developer’s Certificate of Origin
[ ] Provide a title or release-note blurb suitable for the release notes.
[ ] Are you a user of Cilium? Please add yourself to the Users doc
[ ] Thanks for contributing!

Fixes: #issue-number
<!-- Enter the release note text here if needed or remove this section! -->

/ci-ipsec-upgrade

/ci-ipsec-upgrade

/ci-ipsec-upgrade

/ci-ipsec-e2e

/ci-ipsec-upgrade

/ci-ipsec-e2e

/test

/ci-ipsec-e2e

/ci-ipsec-upgrade

ci-ipsec-upgrade is green: https://github.com/cilium/cilium/actions/runs/9061173282/job/24892420196
but ci-ipsec-e2e has a lot of red: https://github.com/cilium/cilium/actions/runs/9061117887/job/24892251329 :grimacing: re-running...

/ci-ipsec-e2e

/ci-ipsec-e2e

Okay, with the last patch https://github.com/cilium/cilium/pull/31955/commits/d2e31c394ec1cd2b6c28479f6b085733b4f350c4, ci-ipsec-e2e test 4 and 5 passed: https://github.com/cilium/cilium/actions/runs/9093401424

/test

/test

Current status: All checks are green expect ci-clustermesh, ci-e2e, ci-gke.
I'll limit the condition of installing from-egress routing for IPsec only and see if it works.

/test

OK with https://github.com/cilium/cilium/pull/31955/commits/6fc76b6b7bbc015cb2b35d62feaa2119b64660d2,  ci-clustermesh, ci-e2e, ci-gke are back to normal. Let's make it a formal patch.

/test

/test

All green! Let's review this PR. Once approved I'll drop the last 3 patches which are for temporary leak detection.

I have to put this into draft because https://github.com/cilium/cilium/pull/32331 seems to have changed something about masquerade so my iptables patch https://github.com/cilium/cilium/pull/32683/commits/c6a38e9122ebf4991c86bc6d57d7b22a8a1788e4 no longer makes sense. In fact it can't pass ci-ipsec-e2e: https://github.com/cilium/cilium/pull/32683. The initial observation is it breaks client-egress-l7/pod-to-world because proxy's tcp-syn to <IP_ADDRESS> will be dropped due to SKB_DROP_REASON_TCP_INVALID_SYN. Not fully sure what's going on but I'll be back.

Closed in favor of https://github.com/cilium/cilium/pull/32683


Supplement the implementation of response

Codecov Report

Merging #20 into dev will decrease coverage by 0.41%.
The diff coverage is 15.07%.

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


[TASK] Improve longhorn-tests Jenkins report

What's the task? Please describe
Currently we only have junit-styled test report published on Jenkins.
Once #3767 is done, the logs should contain more information to generate a more meaningful test report.
Publish this new test report on Jenkins.

behave framework Poc: https://confluence.suse.com/display/~ychiu/Python+Behave+POC
demo code: https://github.com/yangchiu/longhorn-tests/commit/117415f28691c59cc021b95e2ce662e1e2b13a03


[docs] Links to java src files in android readme are dead links

This issue is for a: (mark with an x)
- [ ] bug report -> please search issues before submitting
- [ ] feature request
- [X] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce
Go to the android demo readme at demo/android and try clicking on any of the RNAzureCommunicationUICalling.java or RNAzureCommunicationUICallingPackage.java hyperlinks and they will fail to take you to the appropriate files.
Expected/desired behavior
RNAzureCommunicationUICalling.java links should take you to: https://github.com/Azure-Samples/communication-services-ui-library-react-native/blob/main/demo/android/app/src/main/java/com/demo/RNAzureCommunicationUICalling.java
RNAzureCommunicationUICallingPackage.java links should take you to: https://github.com/Azure-Samples/communication-services-ui-library-react-native/blob/main/demo/android/app/src/main/java/com/demo/RNAzureCommunicationUICallingPackage.java

Thank you @a-dubs for bringing this up and for your contribution.

@Mohtasim happy to contribute!


dcos-cli stops building with snapcraft 2.14

Build log:
creating build/lib/dcoscli/data/config-schema
copying dcoscli/data/config-schema/package.json -> build/lib/dcoscli/data/config-schema
copying dcoscli/data/config-schema/marathon.json -> build/lib/dcoscli/data/config-schema
running build_scripts
creating build/scripts-3.5
copying bin/env-setup -> build/scripts-3.5
changing mode of build/scripts-3.5/env-setup from 664 to 775
running install_lib
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/auth
copying build/lib/dcoscli/auth/main.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/auth
copying build/lib/dcoscli/auth/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/auth
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/node
copying build/lib/dcoscli/node/main.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/node
copying build/lib/dcoscli/node/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/node
copying build/lib/dcoscli/main.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/task
copying build/lib/dcoscli/task/main.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/task
copying build/lib/dcoscli/task/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/task
copying build/lib/dcoscli/util.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/package
copying build/lib/dcoscli/package/main.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/package
copying build/lib/dcoscli/package/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/package
copying build/lib/dcoscli/log.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/service
copying build/lib/dcoscli/service/main.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/service
copying build/lib/dcoscli/service/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/service
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/config
copying build/lib/dcoscli/config/main.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/config
copying build/lib/dcoscli/config/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/config
copying build/lib/dcoscli/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli
copying build/lib/dcoscli/tables.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/config-schema
copying build/lib/dcoscli/data/config-schema/package.json -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/config-schema
copying build/lib/dcoscli/data/config-schema/marathon.json -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/config-schema
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/data/help/package.txt -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/data/help/help.txt -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/data/help/config.txt -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/data/help/node.txt -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/data/help/marathon.txt -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/data/help/auth.txt -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/data/help/dcos.txt -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/data/help/service.txt -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/data/help/task.txt -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/data/help
copying build/lib/dcoscli/subcommand.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/help
copying build/lib/dcoscli/help/main.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/help
copying build/lib/dcoscli/help/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/help
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/marathon
copying build/lib/dcoscli/marathon/main.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/marathon
copying build/lib/dcoscli/marathon/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/marathon
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures
copying build/lib/tests/fixtures/package.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures
copying build/lib/tests/fixtures/task.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures
copying build/lib/tests/fixtures/node.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures
copying build/lib/tests/fixtures/marathon.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures
copying build/lib/tests/fixtures/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures
copying build/lib/tests/fixtures/service.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/common.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_node.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_config.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_dcos.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_service.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_marathon_groups.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_marathon.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_package.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_ssl.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_help.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_auth.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
copying build/lib/tests/integrations/test_task.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit
copying build/lib/tests/unit/common.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit
copying build/lib/tests/unit/test_tables.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit
copying build/lib/tests/unit/__init__.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit
copying build/lib/tests/unit/test_http_auth.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit
copying build/lib/tests/unit/test_task.py -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/auth/main.py to main.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/auth/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/node/main.py to main.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/node/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/main.py to main.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/task/main.py to main.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/task/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/util.py to util.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/package/main.py to main.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/package/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/log.py to log.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/service/main.py to main.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/service/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/config/main.py to main.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/config/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/tables.py to tables.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/subcommand.py to subcommand.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/help/main.py to main.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/help/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/marathon/main.py to main.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli/marathon/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures/package.py to package.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures/task.py to task.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures/node.py to node.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures/marathon.py to marathon.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/fixtures/service.py to service.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/common.py to common.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_node.py to test_node.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_config.py to test_config.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_dcos.py to test_dcos.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_service.py to test_service.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_marathon_groups.py to test_marathon_groups.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_marathon.py to test_marathon.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_package.py to test_package.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_ssl.py to test_ssl.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_help.py to test_help.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_auth.py to test_auth.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/integrations/test_task.py to test_task.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit/common.py to common.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit/test_tables.py to test_tables.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit/__init__.py to __init__.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit/test_http_auth.py to test_http_auth.cpython-35.pyc
byte-compiling /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/tests/unit/test_task.py to test_task.cpython-35.pyc
running install_egg_info
running egg_info
creating dcoscli.egg-info
writing requirements to dcoscli.egg-info/requires.txt
writing top-level names to dcoscli.egg-info/top_level.txt
writing dependency_links to dcoscli.egg-info/dependency_links.txt
writing dcoscli.egg-info/PKG-INFO
writing entry points to dcoscli.egg-info/entry_points.txt
writing manifest file 'dcoscli.egg-info/SOURCES.txt'
reading manifest file 'dcoscli.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'dcoscli.egg-info/SOURCES.txt'
Copying dcoscli.egg-info to /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/lib/python3/dist-packages/dcoscli-SNAPSHOT.egg-info
Skipping SOURCES.txt
running install_scripts
creating /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/bin
copying build/scripts-3.5/env-setup -> /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/bin
changing mode of /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/bin/env-setup to 775
Installing dcos script to /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/install/usr/bin
py3versions -d
Staging dcos-cli
py3versions -d
Priming dcos-cli
py3versions -d
[Errno 2] Datei oder Verzeichnis nicht gefunden: '/home/daniel/dev/snappy/snappy-playpen/dcos-cli/prime/usr/bin/dcos'

hum, I'll take a look tomorrow. Thanks Daniel.

I've reported the bug upstream: https://bugs.launchpad.net/snapcraft/+bug/1619104
Priority is critical. Thanks for the report.

Brilliant, thanks!

It fails differently now:
Building dcos-cli
Ignoring indexes: https://pypi.python.org/simple
Ignoring indexes: https://pypi.python.org/simple
Collecting pip
  Saved /tmp/tmpza4ylrih/pip-8.1.2-py2.py3-none-any.whl
Collecting setuptools
  Saved /tmp/tmpza4ylrih/setuptools-28.7.1-py2.py3-none-any.whl
Collecting wheel
  Saved /tmp/tmpza4ylrih/wheel-0.29.0-py2.py3-none-any.whl
Skipping pip, due to already being wheel.
Skipping setuptools, due to already being wheel.
Skipping wheel, due to already being wheel.
Ignoring indexes: https://pypi.python.org/simple
Collecting pip
Collecting setuptools
Collecting wheel
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-8.1.2 setuptools-28.7.1 wheel-0.29.0
pip wheel --disable-pip-version-check --no-index --find-links /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/packages --wheel-dir /tmp/tmp3oatg4c3 .
Ignoring indexes: https://pypi.python.org/simple
Ignoring indexes: https://pypi.python.org/simple
Processing /home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/build/cli
Collecting dcos==SNAPSHOT (from dcoscli===SNAPSHOT)
  Could not find a version that satisfies the requirement dcos==SNAPSHOT (from dcoscli===SNAPSHOT) (from versions: )
No matching distribution found for dcos==SNAPSHOT (from dcoscli===SNAPSHOT)
Command '['/bin/sh', '/tmp/tmpo12xxvlg', 'pip', 'wheel', '--disable-pip-version-check', '--no-index', '--find-links', '/home/daniel/dev/snappy/snappy-playpen/dcos-cli/parts/dcos-cli/packages', '--wheel-dir', '/tmp/tmp3oatg4c3', '.']' returned non-zero exit status 1

This is https://bugs.launchpad.net/snapcraft/+bug/1632528
Which according to Sergio, will just work once the dup bug is fixed.

Nice!


Support the new version of khiops_env

Description
The khiops_env PR will land soon https://github.com/KhiopsML/khiops/pull/343. We should support the new features of khiops_env and its availability in the conda installation.
Questions/Ideas

Make the conda detection use khiops_env

Conditional code?

Support all the available variables in the new khiops_env
"Deprecate" the old code

AFAIU, it would suffice to just initialize the relevant attributes of the KhiopsLocalRunner with the values of the appropriate environment variables, as sourced from khiops_env, irrespective of the environment. The new khiops_env now takes care of appropriately setting all relevant environment variables according to the execution environment (Conda, Conda-based, native), in a robust way, without (much) environment-conditional code.

Also, as the old code was not part of any official API, all deprecation mechanics would not be necessary IMHO; it would just suffice to remove that (environment-conditional) code.

AFAIU, it would suffice to just initialize the relevant attributes of the KhiopsLocalRunner with the values of the appropriate environment variables, as sourced from khiops_env, irrespective of the environment. The new khiops_env now takes care of appropriately setting all relevant environment variables according to the execution environment (Conda, Conda-based, native), in a robust way, without (much) environment-conditional code.

There is one caveat though: we should allow users to override even the variables that are already set in the khiops_env script:

source khiops_env variables into a specific data structure
for each of these variables, if the variable is already in os.environ, use the value from the environment. Otherwise, use the khiops_env-defined value.

Thusly, current behavior whereby user-defined environment variables take precedence over default values (henceforth defined in khiops_env) is preserved.


[Bug]: issue calculating single versions of a dependency with public_hoist_packages

What happened?
I have a single package in my pnpm workspace that depends on<EMAIL_ADDRESS>Outside of rules_js, if i do a pnpm why on that dependency in the package that has it I get
❯ pnpm why @storybook/addon-docs
Legend: production dependency, optional only, dev only

<EMAIL_ADDRESS>/Users/davidaghassi/repo/web/package

devDependencies:
@storybook/addon-docs 6.5.13

However, if I have the following in my npm_translate_lock I get an error
public_hoist_packages = {
            "@storybook/addon-controls": [""],
            "@storybook/addon-docs": [""],
            "@storybook/addon-google-analytics": [""],
            "@storybook/addon-links": [""],
            "@storybook/addons": [""],
            "@storybook/api": [""],
            "@storybook/builder-webpack5": [""],
            "@storybook/client-api": [""],
            "@storybook/components": [""],
            "@storybook/core-events": [""],
            "@storybook/manager-webpack5": [""],
            "@storybook/react": [""],
            "@storybook/theming": [""],
        },

The error being
ERROR: Error computing the main repository mapping: no such package '@rh_pnpm_workspace_deps//':

Invalid public hoist configuration with multiple packages to hoist to '/node_modules/@storybook/addon-docs': ["<EMAIL_ADDRESS>"<EMAIL_ADDRESS>
Trying selecting a specific version of '@storybook/addon-docs' to hoist in public_hoist_packages. For example '<EMAIL_ADDRESS>
    public_hoist_packages = {
        "<EMAIL_ADDRESS>[""]
    }

This is the only dependency that experiences this. If I remove this, it works. I have to pick a version for this to work overall. Without this, I can't build with storybook v6 under rules_js.
This also was hard to track down because I didn't realize this part of the npmrc was not automatically read (silently passes with no warning or error)
Version
Development (host) and target OS/architectures:
Output of bazel --version: 6.3.0
Version of the Aspect rules, or other relevant rules from your
WORKSPACE or MODULE.bazel file:
rules_js - 8e66e6ac47b1b65af6efdb5766b2dbb137065045
Language(s) and/or frameworks involved:
How to reproduce
I will have to find a repro, this is an internal repo.

Any other information?
No response

So I did find a root cause of this. It turns out that even though I thought I had one package in the workspace that specified that dep, I had two. They were identical version in the package.json, however they had different peer deps.  When looking in our pnpm-lock.yaml I found these two different entries

/@storybook/addon-docs@6.5.13(@babel/core@7.18.6)(eslint@7.32.0)(prettier-plugin-sh@0.7.1)(react-dom@16.14.0)(react@16.14.0)(typescript@5.1.3)(webpack@5.72.1):

Notice the webpack versions were different. As such, we were getting different hash values. By aligning that webpack version, the lockfile deduped and it fixed this bug.
Ultimately, I believe the ask is to have better error handling in this case.

I hit this last week also. But the error message does provide a string you can copy-paste for the package@version key in that dict. I guess a very small improvement to that error message could close this.


[fontconfig] blacklist getopt detection on mingw (microsoft#24841)

Describe the pull request

What does your PR fix?
Fixes #24841

Which triplets are supported/not supported? Have you updated the CI baseline?
Triplets unchanged

Does your PR follow the maintainer guide?

I am still working on this PR

If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

I don't have a mingw deployment over here, so I can't reproduce the issue nor do I know whether the proposed pull request solves it.
Can someone with a mingw installation give it a try please?

So this PR is not needed?

This PR is obsolete.


Filter on referenced table columns

Using the Department, and Employee examples, how can I create a query that finds all employees that are employed in a department with a given location?
Non-working Example:
database.sequenceOf(Employees).filter { it.department.location eq "London" }

Sql:
select *
from t_employee
left join t_department _ref0 on t_employee.department_id = _ref0.id
where _ref0.location = ?

(Updated to use Departments.location instead of name, to clarify issue)

Your code is correct, it should work.

I'm getting unresolved reference on the column name. The departmentId field seems to be Column.

Am I missing something obvious?

Add an extension property to your code:
val Employees.department get() = departmentId.referenceTable as Departments

That got me closer! It compiles, but outputs error in runtime
java.lang.ClassCastException: class org.ktorm.schema.Table cannot be cast to class DatabaseTests$Departments (org.ktorm.schema.Table and DatabaseTests$Departments are in unnamed module of loader 'app')

Employees.departmentId.referenceTable in debugger shows me
result = {Table@7574} t_department _ref0
 _refCounter = {RefCounter@7576} org.ktorm.schema.RefCounter@38159384
 _columns = {LinkedHashMap@7577}  size = 3
 _primaryKeyNames = {LinkedHashSet@7578}  size = 1
 tableName = "t_department"
 alias = "_ref0"
 catalog = null
 schema = null
 entityClass = {KClassImpl@7581} class DatabaseTests$Department
 referencedType$delegate = {SynchronizedLazyImpl@7582} Lazy value not initialized yet.
 referencedType {java.lang.reflect.Type}
 referencedKotlinType$delegate = {SynchronizedLazyImpl@7583} Lazy value not initialized yet.
 referencedKotlinType {kotlin.reflect.KType}
 columns {java.util.List}
 primaryKeys {java.util.List}

Modify the Departments class like the following:
open class Departments(alias: String?) : Table<Department>("t_department", alias) {
    companion object : Departments(null)
    override fun aliased(alias: String) = Departments(alias)

    val id = int("id").primaryKey().bindTo { it.id }
    val name = varchar("name").bindTo { it.name }
    val location = varchar("location").bindTo { it.location }
    val mixedCase = varchar("mixedCase").bindTo { it.mixedCase }
}

Thanks! That does seem to do the trick.
select t_employee.id as t_employee_id, t_employee."name" as t_employee_name, t_employee.job as t_employee_job, t_employee.manager_id as t_employee_manager_id, t_employee.hire_date as t_employee_hire_date, t_employee.salary as t_employee_salary, t_employee.department_id as t_employee_department_id, _ref0.id as _ref0_id, _ref0."name" as _ref0_name, _ref0."location" as _ref0_location
from t_employee
left join t_department as _ref0 on t_employee.department_id = _ref0.id
where _ref0."location" = ?

I'd humbly suggest to work this into the api somehow to make this easier though. Can only speak for myself, but this would be a quite common use case


PV-88 Feature/ariadne integration

It works! 😁 Over and out for Vappu! 💯

Thank you for the review Mika 👍🏼


Any suggestions on good logging practice?

More of a question than a bug, I was wondering how you have handled logging with micro?
I'd like to get some reasonable logging (e.g. response time, status, request content length etc.) out of my microservice. I've spent 5 mins playing around trying to get morgan to play with micro but it follows the middleware ideology which micro doesn't.
Any tips would be great! Thanks for open sourcing this 👍

Have you seen #104?
On topic, this should work. haven't tested.
// Based on https://www.npmjs.com/package/morgan#vanilla-http-server
const { send } = require('micro')
const morgan = require('morgan')
const logger = morgan('combined')

module.exports = async function (req, res) {
  logger(req, res, function (err) {
    if (err) {
      return send(res, 500, 'Error')
    }

    send(res, 200, 'OK!')
  })
})

// Using pify to turn logger into a Promise.
const { send } = require('micro')
const pify = require('pify')
const morgan = require('morgan')
const logger = pify(morgan('combined'))

module.exports = async function (req, res) {
  await logger(req, res)
  return 'OK!'
})

I did see #104 but I figured it would be useful to be able to customise the log output, especially as I have one project that needs to log JSON to stdout to be picked up by fluentd. Thanks for the tips.

👍


Type of parameter "self" is unknown (reportUnknownParameterType) when subclassing typing.Protocol

Environment data

Language Server version: 2020.9.8
OS and version: Windows 10
Python version (& distribution if applicable, e.g. Anaconda): Anaconda Python 3.8.5

Expected behaviour
The "self" parameter should have the type of class to which its method belongs (as it is in other cases).
Actual behaviour
from typing import Protocol

class Foo(Protocol):
    def bar(self) -> None:
        ...

reports
(parameter) self: Unknown
"self" is not accessed Pylance
Type of parameter "self" is unknown Pylance (reportUnknownParameterType)

@erictraut Seems like a bug for self to be marked as unknown in this context (or any context, really...)

Thanks for the bug report. This will be fixed in the next release.

This issue has been fixed in version 2020.10.0, which we've just released. You can find the changelog here: https://github.com/microsoft/pylance-release/blob/master/CHANGELOG.md#2020100-7-october-2020


TypeError

In run.py, I run codes below:
# 6. we use SL model and replays to do reinforcement learning
from alphastarmini.core.rl import rl_train_with_replay
rl_train_with_replay.test(on_server=P.on_server, replay_path=P.replay_path)

And the outcome is shown below with error:
(torch_1_5) PS C:\Users\alexa\Downloads\mini-AlphaStar-main> python run.py
pygame 2.1.2 (SDL 2.0.18, Python 3.7.11)
Hello from the pygame community. https://www.pygame.org/contribute.html
run init
cudnn available
cudnn version 7604
start_time before training: 2022-01-22 13:00:03
map name: AbyssalReef
player.name: MainPlayer
opponent.name: MainPlayer
player.race: Race.protoss
opponent.race: Race.protoss
start_time before reset: 2022-01-22 13:01:34
total_episodes: 1
replay_path: C:/Program Files (x86)/StarCraft II/Replays_small/fffeb9b9437fde426b5e51a700bd339e0eedb127a2106ff9920b65c2bccfd4f4.SC2Replay
start_episode_time before is_final: 2022-01-22 13:03:07
ActorLoop.run() Exception cause return, Detials of the Exception: get_baseline_state_from_multi_source_state() missing 1 required positional argument: 'msstate'
Traceback (most recent call last):
File "C:\Users\alexa\Downloads\mini-AlphaStar-main\alphastarmini\core\rl\actor_plus_z.py", line 279, in run
baseline_state = self.player.agent.agent_nn.get_baseline_state_from_multi_source_state(state)
TypeError: get_baseline_state_from_multi_source_state() missing 1 required positional argument: 'msstate'
run over
Please help me, thanks!!

Hi, this is due to that the "actor_plus_z" is a deprecated version for the new RL training method.
In the master version, we have provided the new RL training script in "rl_vs_inner_bot_mp" (which is a new multi-processing plus multi-thread training way, increasing the training speed by 10x).
Could you wait for some days? A new version of mAS will come soon. We think you can directly use the new version (because it is more accurate and much faster, making you save much time) than be familiar with the older version of codes.

Of course I can wait! Thanks for the reply!

@khcf123 Hi, the v_1.07 is published, you can find the introduction to use the new training pattern of reinforcement learning in "https://github.com/liuruoze/mini-AlphaStar/tree/v_1.07". Have a good time and good luck!

Thanks again!! Highly appreciated!

Hi again, I already use v_1.07 and when i run following codes in run.py:
from alphastarmini.core.sl import sl_train_by_tensor
sl_train_by_tensor.test(on_server=P.on_server)
The outcome is shown below with error:
len(train_set) 125
len(val_set) 125
len(train_loader) 63
len(val_loader) 63
pygame 2.1.2 (SDL 2.0.18, Python 3.7.11)
Hello from the pygame community. https://www.pygame.org/contribute.html
pygame 2.1.2 (SDL 2.0.18, Python 3.7.11)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "run.py", line 57, in
sl_train_by_tensor.test(on_server=P.on_server)
File "C:\Users\alexa\Downloads\mini-AlphaStar-main\alphastarmini\core\sl\sl_train_by_tensor.py", line 548, in test
main_worker(DEVICE)
File "C:\Users\alexa\Downloads\mini-AlphaStar-main\alphastarmini\core\sl\sl_train_by_tensor.py", line 226, in main_worker
val_set, batch_iter, epoch, val_loader)
File "C:\Users\alexa\Downloads\mini-AlphaStar-main\alphastarmini\core\sl\sl_train_by_tensor.py", line 261, in train
train=True)
File "C:\Users\alexa\Downloads\mini-AlphaStar-main\alphastarmini\core\sl\sl_loss_multi_gpu.py", line 193, in get_sl_loss_for_tensor
state = Feature.feature2state(features)
File "C:\Users\alexa\Downloads\mini-AlphaStar-main\alphastarmini\core\sl\feature.py", line 158, in feature2state
assert feature_1_size + feature_2_size + feature_3_size == feature.shape[1]
AssertionError
Please help me, thanks!!

Hi, this problem has been fixed, please check that (the newest tag of v_1.07 published in today).

Hi, if there are no problems now, I will close this issue. If you find your problems are not solved, you can re-open this issue at any time.


[Task]: Support latest versions of node in Explorer

Task description
Explorer has errors when trying to npm i with node > 16.4

Fix the dependencies so we can use newer versions of node/npm

Requirements
N/A
Acceptance criteria
N/A
Creation checklist

[X] I have assigned this task to the correct people
[X] I have added the most appropriate labels
[X] I have linked the correct milestone and/or project

Try out whether updating/defining specific module versions would fix the problem
Find out if there is a way to maybe define on package.json level to treat the dependencies without checking upstream conflicts
If no solution was found, we just add a note to the READMe that installing with node >16.4 needs special npm install flags.

Fixed the client package.json so that it works with node 16.16 LTS.
For node 18 many more packages were breaking, not worth it atm.


Unable to build andoid project

Unable to build filament, inside Android Studio.
Steps to reproduce the behavior:

Open Android project: ${FILAMENT_DIR}/andoid
Set sample.sample-gltf-viewer
Make project
Cannot find source file: ${FILAMENT_DIR}/out/android-release/filament/include/gltfio/resources/gltfresources_lite.h

Logs
CMake Error at ${FILAMENT_DIR}/filament/android/gltfio-android/CMakeLists.txt:104 (add_library):
Cannot find source file:
${FILAMENT_DIR}/out/android-release/filament/include/gltfio/resources/gltfresources_lite.h
Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
.hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc
Desktop (please complete the following information):

OS: Ubuntu 20.04 LTS
GPU: NVIDIA GTX 980

Smartphone (please complete the following information):

Device: samsung SM-J730F
OS: last version

Please refer to BUILD.md, it explains what you need to build first. Alternatively you can change the build.gradle files to depend on the artifacts published on maven instead of the local ones.


feat(template) allow os.getenv in the template renderer

This enables code like this in the templates:
some_directive $(os.getenv("SOME_ENV_VAR"));

Fixes: #6546

I am not sure about this. If they are already writing their own templates why cannot they just add a couple of env blaablaa;  directives in it and then use those?

Or perhaps at least make it more clever? E.g.:
$(ENV["SOME_ENV_VAR"])

or something.

Thought about using env but then it keeps exposing those variables, whilst this only allows them in the template.
Not sure about the "cleverness", the whole thing is a Lua template renderer, so to me it makes most sense to stick to that.


Nil pointer exception during update when jobsubmitter pod is lost

When updating a chart, job submitter pod will be terminated and then flink operator will encounter a nil pointer exception and crash. This doesn't happen in v0.1.15 (though it has another issue at update), and seems to be introduced at v0.1.16. From the trace it looks related to https://github.com/spotify/flink-on-k8s-operator/pull/120/files#diff-1d53f2b19e0186f6437a431a19916402d6c59a531c7a959981e7e7305e342677R304 @regadas
{"level":"info","ts":1634156619.167147,"logger":"controllers.FlinkCluster","msg":"Failed to extract job submit result","cluster":"myCluster","error":"failed to get logs for pod : resource name may not be empty"}
{"level":"info","ts":1634156619.1740642,"logger":"controllers.FlinkCluster","msg":"Observed Flink job status list","cluster":"myCluster","jobs":[{"jid":"8f14e333b9720528b574012c77a8175d","state":"CANCELED","name":"myApp","start-time":1634156476498,"end-time":1634156541413,"duration":64915}]}

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x142da9b]

goroutine 403 [running]:
github.com/spotify/flink-on-k8s-operator/controllers.(*ClusterStateObserver).observeFlinkJobStatus(0xc000d358e8, 0xc000d35c98, 0xc000d35610)
	/workspace/controllers/flinkcluster_observer.go:304 +0x69b
github.com/spotify/flink-on-k8s-operator/controllers.(*ClusterStateObserver).observeJob(0xc000d358e8, 0xc000d35c98)
	/workspace/controllers/flinkcluster_observer.go:265 +0x3eb
github.com/spotify/flink-on-k8s-operator/controllers.(*ClusterStateObserver).observe(0xc000d358e8, 0xc000d35c98)
	/workspace/controllers/flinkcluster_observer.go:208 +0xdc5
github.com/spotify/flink-on-k8s-operator/controllers.(*FlinkClusterHandler).reconcile(0xc000d35c28, {0x17b2a1d, 0x25dbd20}, {{{0xc0002780d8, 0x203000}, {0xc000278120, 0xc0006aa540}}})
	/workspace/controllers/flinkcluster_controller.go:142 +0x285
github.com/spotify/flink-on-k8s-operator/controllers.(*FlinkClusterReconciler).Reconcile(0xc0008f6a80, {0x19c2478, 0xc00031b0e0}, {{{0xc0002780d8, 0x11}, {0xc000278120, 0x11}}})
	/workspace/controllers/flinkcluster_controller.go:84 +0x309
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc00090caa0, {0x19c23d0, 0xc000574000}, {0x162e8c0, 0xc000aa6400})
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.6/pkg/internal/controller/controller.go:298 +0x303
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc00090caa0, {0x19c23d0, 0xc000574000})
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.6/pkg/internal/controller/controller.go:253 +0x205
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.6/pkg/internal/controller/controller.go:214 +0x85
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.6/pkg/internal/controller/controller.go:210 +0x354

Looks like this is still happening? https://github.com/spotify/flink-on-k8s-operator/issues/160


State in localstorage

Hi all,
Awesome work, just amazing the depth you went through with the tutorials and the website!
I have a small nit, based on something I battle with today in my own stuff - so I specifically looked for that, and here it was:
https://github.com/howtographql/react-apollo/blob/master/src/components/Header.js#L9
Isn't this not healthy in React in terms of state management? Why wouldn't it come from a request?
And the larger philosophical question is - I guess this is part of a "app and viewer related data", who's to fetch these (is that 'App' ?) ? and how can we guarantee that we fetch it at the right time and there's no app-wide stale data?
PS, for reference - here's some of that logic elsewhere: https://github.com/LIYINGZHEN/auth-graphql/blob/master/client/components/Header.js

Hi @jondot, thanks a lot for the comment! You're definitely correct that this is not the ideal and most idiomatic way of handling authentication logic with React. It definitely has a couple of flaws, e.g. that essentially a user is always logged in as long as there is the userId in localStorage - even when the session token actually expires. In a real-world scenario, the info of a particular user being logged in or not should definitely be retrieved from the server (or cached in a more intelligent way). We chose this approach as it's slightly more instructive for the tutorial as our goal is to explain major GraphQL concepts and not deal too much in detail with other things. This is why we often took the "shortest path" instead of maybe the one that's appropriate for real world use cases. I'm not sure if we'll change this in the actual example project, but we should probably highlight this in the tutorial itself (feel free to create a PR about this as well).


Prevent specific gem from locking

Hello. Here is my case. I have a core application and gem with extensions. For different installations, I use different branches of the extension's gem. Like this:
# Gemfile
gem 'my_extension', git: 'url_to_repo', branch: ENV['MY_EXTENTION_BRANCH']

Gemfile.lock is in core repo. So, I wonder if there any convenient way to skip specific gem from locking in Gemfile.lock? For example by adding an option skip_locking:
# Gemfile
gem 'my_extension', git: 'url_to_repo', branch: ENV['MY_EXTENTION_BRANCH'], skip_locking: true

As an experiment, I've changed bundler's source code on my development environment and it is working.
# lib/bundler/source/git.rb
# Bundler::Source::Git
- attr_reader :uri, :ref, :branch, :options, :submodules
+ attr_reader :uri, :ref, :branch, :options, :submodules, :skip_locking

def initialize(options)
+ @skip_locking = options["skip_locking"] || false
  @options = options
  @glob = options["glob"] || DEFAULT_GLOB

  @allow_cached = false
  @allow_remote = false
  # ....
end

def self.from_lock(options)
- new(options.merge("uri" => options.delete("remote"))
+ new(options.merge("uri" => options.delete("remote"), "skip_locking" => options["skip_locking"]))
end

# lib/bundler/dependency.rb
# Bundler::Dependency
+ attr_reader :skip_locking

def initialize(name, version, options = {}, &blk)
  type = options["type"] || :runtime
  super(name, version, type)

+ @skip_locking   = options["skip_locking"] || false
  @autorequire    = nil
  # ...
end

# lib/bundler/lockfile_generator.rb
# Bundler::LockfileGenerator
def add_dependencies
  out << "\nDEPENDENCIES\n"

  handled = []
  definition.dependencies.sort_by(&:to_s).each do |dep|
    next if handled.include?(dep.name)
+   next if dep.skip_locking
    out << dep.to_lock
    handled << dep.name
  end
end

# lib/bundler/source_list.rb
# Bundler::SourceList
def lock_sources
+ git_sources = self.git_sources.reject(&:skip_locking)
  if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources?
    [[default_source], @rubygems_sources, git_sources, path_sources, plugin_sources].map do |sources|
      sources.sort_by(&:to_s)
    end.flatten(1)
  else
    lock_sources = (path_sources + git_sources + plugin_sources).sort_by(&:to_s)
    lock_sources << combine_rubygems_sources
  end
end

# lib/bundler/dsl.rb
# Bundler::Dsl
VALID_KEYS = %w[group groups git path glob name branch ref tag require submodules
-               platform platforms type source install_if].freeze
VALID_KEYS = %w[group groups git path glob name branch ref tag require submodules
+               platform platforms type source install_if skip_locking].freeze

For this case I recommend you keep a "common gemfile" with everything but the extension gem, and then one Gemfile and lockfile per extension branch that includes the common Gemfile via eval_gemfile. Then set the proper BUNDLE_GEMFILE environment for each application, and you can keep everything locked.
I would like to avoid keeping this functionality inside bundler because not locking gems goes against the spirit of bundler and can lead to bad behavior: what happens if one extension branch adds an incompatible dependency, for example?

Thank you for the fast answer. Your solution is not best for me because each installation is for a different client (company), I prefer not to share client-specific code in the core application.


Cannot Save

Game Freezes when i try to
Da logs:
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files\Python37\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Users\ultra\Desktop\MyPyBuilder-master\GuiBuilder\BUILDER\ProjectTemplate\Tabs\FrameTab\FrameTabBuild.py", line 443, in save_project
    shutil.rmtree(self.root_path)
  File "C:\Program Files\Python37\lib\shutil.py", line 513, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "C:\Program Files\Python37\lib\shutil.py", line 374, in _rmtree_unsafe
    onerror(os.scandir, path, sys.exc_info())
  File "C:\Program Files\Python37\lib\shutil.py", line 371, in _rmtree_unsafe
    with os.scandir(path) as scandir_it:
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\Users\\ultra\\Desktop\\MyPyBuilder-master\\GuiBuilder\\PROJECTS\\Autoclicker'

Edit: Fixed issue by creating new folder in GuiBuilder\PROJECTS


Fleet allows creation of workspace even though the namespace already exists [front end]

Internal reference: SURE-3955
Reported in 2.5.9
Fleet allows the creation of workspace even though the namespace already exists. Deleting that workspace causes the deletion of namespace along with its contents, which means unwanted fleet workspace results in data loss
Fleet will do their work in https://github.com/rancher/fleet/issues/1519 but the ask here is to help things out earlier as a workaround in the UI. @nwmac took a look at what we can do in the front end to detect an existing namespace and it appears we can do something to prevent duplicate namespaces until Fleet can do this themselves in the backend.
Expected behavior:

Fleet should not create workspace when namespace exist
Provide a way to delete workspace without deleting actual namespace and its contents

We should create a new issue for the second acceptance criteria. This is not currently in the pointed scope.

There might be rbac considerations here

Leaving off Point 2 for now since that should be covered by the related backend item.
@kkaempf can you confirm that's the case? or is there a Ui consideration here?

Confirmed.
The UI part was just a suggested workaround/helper 😉

Closing as not planned