refactor: deduplicate provisioner code

Summary
Doing a few things here:

Adding a new "common" sub package into the provisioner package for shared code
Creating a singular main for the provisioner package
Updating the manifests accordingly

These changes have been logically broken up in into commits for ease of review.
Explanation
The intention here is to refactor the code-base in such a way that provisioners share their duplicate code. To do this, I removed each individual provisioner package's main in favor of a singular unified main which is found in the root of the provisioner package. This main binary is configurable via flags and arguments to specify which provisioner we should run. This results in calls to appropriate start-up function for the specific provisioner which enables its unique features.
By doing this, we should be able to bootstrap up new provisioner very quickly in the future while also deduplicating our code.
Note: I am currently working through any issues that may arise through the E2E suite but this reflects my overall approach to this problem.
Closes #431

Nice refactor!  By seeing this,  I wonder why there is a separated registry provisioner and the plain provisioner with 2 different sources (git and image)?  What would our recommendation be to have multiple provisioners vs one provisioner with different sources?

@joelanford I believe that I addressed your over-arching concerns. Mind giving this PR another look?

I think the approach we have now with separate deployments is scalable enough in the short-term. I believe both registry and plain are core provisioners that will be pre-packaged with rukpak as part of a 1.0 release. If a user wouldn't like one of the provisioners to run, they can always scale down the deployment replicas (we could even have a rukpakctl disable <provisioner> that makes this simple.

Another question then: what happens if we need to provide a UX around which provisioners are present in the cluster? Would that influence individual executables vs. a single executable that has flags for toggling each provisioner implementation?

I think if we needed something like that, we could introduce a new API, something like RukPakConfig that had that information encoded in it?
The reason I hesitate regarding the single binary approach is because the plain and registry provisioners are actually intertwined right now right? We parse the registry+v1 bundle, transform it into a plain bundle under the hood, and then deploy it via the plain BD controller? Since there's not a clean separation, it could be surprising UX for users to disable the plain provisioner and see their registry+v1 bundles failing to deploy.
The other alternative, disabling the registry+v1 provisioner, seems logical, but there is no ecosystem of plain bundles at the moment, so the motivation behind using only plain is less clear.

The reason I hesitate regarding the single binary approach is because the plain and registry provisioners are actually intertwined right now right? We parse the registry+v1 bundle, transform it into a plain bundle under the hood, and then deploy it via the plain BD controller? Since there's not a clean separation,

I think from my perspective, we have that clean separation today, it's just when rukpak users want to source plain bundles. Where we see that separation start to leak is that situation you described above, where our registry+v1 provisioner is half-baked and relies on the plain provisioner for the application and management of bundle contents. It's unclear whether this behavior is something we'll continue to support in the intermediate term though.

it could be surprising UX for users to disable the plain provisioner and see their registry+v1 bundles failing to deploy.

I definitely agree this is a surprising UX, but we'd still have this problem today regardless of a single executable vs. multiple, right? I think we've landed on needing an auxiliary visibility API in the meantime though.

Yup, sounds good -- opened #468

Every now and then, I do get the urge to throw all of the core controllers/provisioners into a single process. That would likely have a relatively small impact on CPU (just very marginal improvements), but it would be a bigger win for memory because we could:

reduce the overhead of another go process
use a shared cache, which would mean significant savings of stored bundles, bundle deployments and (eventually) provisioner class objects

It would also have the benefit of being slightly easier to manage (less kustomize stuff, fewer main.go files, shorter Makefile, etc.)

So some clarifying statements:

There are still separate Deployments for each provisioner, they just pass a different flag for which provisioner they want out of our binary. This is nice because we can add a batch of "standard" provisioners with a single image and binary that is easily configurable. In essence this is how the repo's Dockerfile operates today; one image, several binaries.
The main intent behind having a single unified binary is that all provisioners we define in this repo can share code that they will all use. Going back to the original intent of this PR, we're attempting to templates the code that is shared and allow extensibility with code that isn't. In the current implementation, a large portion of code is duplicated which can make onboarding provisioners a bit frustrating moving forward.

@timflannagan I definitely agree this is a surprising UX, but we'd still have this problem today regardless of a single executable vs. multiple, right? I think we've landed on needing an auxiliary visibility API in the meantime though.

Yes, this PR doesn't really create, help, or fix that issue. That issue is mainly just with the current implementation of the registry provisioner.

Yeah, I brought this conversation off track. I'm fine with a single executable after reading the points that Joe outlined. I think we should be careful about scope creep here though, so maybe we should tackle consolidating all the provisioners into a single process first, then work towards deduplicating the shared code. Thoughts?

Yeah, I brought this conversation off track. I'm fine with a single executable after reading the points that Joe outlined. I think we should be careful about scope creep here though, so maybe we should tackle consolidating all the provisioners into a single process first, then work towards deduplicating the shared code. Thoughts?

@timflannagan I would be fine with this, I could just separate out this PR into two commits if it would make this more digestible. That being said, I think that the changes here do fit under the deduplication of code umbrella.

As per a recent refinement meeting, I'm going to be overhauling this PR to remove the common for now and instead focus on combining the main.go's like it is now. In addition to this, we are going to make it so only a single process runs on cluster and contains all provisioners. Putting on hold for now.

@tylerslaton It might be worth moving that to it's own branch/PR and letting this once sit so we have a historical record.

As per a recent refinement meeting, I'm going to be overhauling this PR to remove the common for now and instead focus on combining the main.go's like it is now. In addition to this, we are going to make it so only a single process runs on cluster and contains all provisioners. Putting on hold for now.

I'm actually going to go ahead and close this. We can reopen it at a later date if it becomes pertinent. The relevant changes from this branch will be carried over into a new PR.


Use MegaLinter for better performances

Description
A simple test to compare performances between SuperLinter and MegaLinter, with the same scope
SuperLinter: 12mn -> https://github.com/apache/cloudstack/runs/5793039795?check_suite_focus=true
MegaLinter: 2mn -> https://github.com/nvuillam/cloudstack/runs/5795833342?check_suite_focus=true
As this PR was unsollicited, please feel free to refuse it, no problem :)

Types of changes

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

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[x] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[ ] Minor
[x] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

Thanks for the PR @nvuillam - @jbampton can I please get your feedback/review on this PR?

Seems GitHub make the Super-Linter so from the Apache Infra page it is allowed.  I am not sure whether the Mega-Linter is allowed.  Anyway from what I have heard the Mega-Linter is faster.
From the infra page:
"Notice: December 27, 2020: We only allow Actions that are official "Made by GitHub" or local to the Apache org on GitHub, to address a potential security vulnerability. This is an incident-related policy change. We are researching the situation, and the policy may evolve based on what we learn."
https://infra.apache.org/github-actions-secrets.html
https://github.com/github/super-linter
https://github.com/megalinter/megalinter
https://github.com/marketplace/actions/super-linter
https://github.com/marketplace/actions/megalinter

No problem, it was mainly to check performances :)
Have a good day :)


Support /Get Payments By Fixed Payment Code ID API

This new API is not supported by dotnet SDK
https://developers.xendit.co/api-reference/#get-payments-by-fixed-payment-code-id

This has been supported in https://github.com/xendit/xendit-dotnet/pull/20. Closing this issue.


change(tests) use OS-assigned unallocated ports for getting random known ports

Motivation
The random_known_port may return an allocated port, causing a test error.
This PR reduces the likelihood of those errors by having the OS find a port that is unallocated at the time that random_known_port is called, and by broadening the range of possible ports.
Solution

Create a TcpListener with port 0 to find an unallocated port.
Read the port number of new socket and drop the listener to close it.

Review
Reviewer Checklist

[ ] Will the PR name make sense to users?

[ ] Does it need extra CHANGELOG info? (new features, breaking changes, large changes)

[ ] Are the PR labels correct?
[ ] Does the code do what the ticket and PR says?
[ ] How do you know it works? Does it have tests?

Windows sometimes waits a few minutes before allowing port reuse

It's a 2-minute default TcpTimedWaitDelay. That makes sense.
Tokio seems to support SO_REUSEADDR (https://docs.rs/tokio/latest/tokio/net/struct.TcpListener.html#implementations) but that's not cross-platform or supported by Rust std.
We can close this now or put it under #[cfg(any(target_os = "macos", target_os = "linux"))] if the tests pass on MacOS.

Tokio seems to support SO_REUSEADDR (https://docs.rs/tokio/latest/tokio/net/struct.TcpListener.html#implementations) but that's not cross-platform or supported by Rust std.

I think Rust std added it recently as well?
https://github.com/rust-lang/rust/blob/1b225414f325593f974c6b41e671a0a0dc5d7d5e/library/std/src/sys_common/net.rs#L402-L403

We can close this now or put it under #[cfg(any(target_os = "macos", target_os = "linux"))] if the tests pass on MacOS.

It seems to work, so let's use the same #[cfg(not(windows))] logic as Rust std?
Then we can keep the old code and use it for Windows.

I think Rust std added it recently as well?

That explains why this worked.

@mergifyio update


Swap two numbers

Issue: https://github.com/codinasion/program/issues/4080
Why:

Closes #4080
What's being changed:

Hi @anandfresh, can we try to enable user input functionality?


Azure Deployment

We need to make sure that we have an ARM template that can create the web app, SQL server and set up the config properties correctly.

We have the core of this (as per the issue description). Closing this issue and we can raise new issues for enhancements.


Current version of Bootstrap is ancient

The current version of Bootstrap (2.1.1) is extremely old, it would be awesome to upgrade to the latest version (4.6.0) if possible.

I've tested StrapDown.js with Bootstrap 4.6.0, and it seems to work fine. I only tested it on the United theme though, and a quick search says that Bootstrap versions aren't backwards compatible, so I'm not sure how much work it would take to make the move and whether it's worth it.

I've tested StrapDown.js with Bootstrap 4.6.0, and it seems to work fine. I only tested it on the United theme though, and a quick search says that Bootstrap versions aren't backwards compatible, so I'm not sure how much work it would take to make the move and whether it's worth it.

Hi,
Thanks for that. I'll check it out when I have time, probably in a couple of days.
Note that I don't actively maintain StrapDown.js, nor that I am its original author; so I never thought about trying to keep it up-to-date with latest Bootstrap themes and versions.

Hi,
Thanks for that. I'll check it out when I have time, probably in a couple of days.
Note that I don't actively maintain StrapDown.js, nor that I am its original author; so I never thought about trying to keep it up-to-date with latest Bootstrap themes and versions.

My main use of it is with autoindex_strapdown, installed on Apache HTTPD on my website.
See for instance a folder like https://perso.crans.org/besson/teach/INF1_L1_Rennes1_2020-21/

My main use of it is with autoindex_strapdown, installed on Apache HTTPD on my website.
See for instance a folder like https://perso.crans.org/besson/teach/INF1_L1_Rennes1_2020-21/


allow for different behviour of LiveTable and LivePlot in best effort callback

We should allow for the different behaviour of plotting for LiveTable and LivePlot in the best effort callback.
One method suggested by @cmazzoli is that we can use 'plot_fields' and 'table_fields' as keys for the best effort callback. When they're not available, the default can be to use 'fields'

The reason that we hesitated to add this layer of control in the first place is:

"All problems in computer science can be solved by another level of indirection...except for the problem of too many layers of indirection."

Add bec.table_fields would add one more special name to know, one more thing to check. From a design point of view, it reminds me of Python's built-in logging framework, with layers of filtering and control.  Inarguably, there are times when this level of granular control are useful. But I worry that, like the logging framework, it will become difficult to users -- especially new users -- to hold all that in their head. "Why doesn't it show up?! It's in 'table_fields'! Oh, it's not in hints...."
To avoid this confusion, I think we really ought to just pick one place where this choice is made. We used to do it globally in gs.TABLE_COLS, very much analogous to the proposed bec.table_fields. Then we switched to doing it per-device via hints. The advantage of doing it per-device is that you don't need to update table_fields every time you use a different motor or detector. For example, if you switch from moving theta to moving gamma, the table fields automatically update without a coordinated change by the user. This seems like a win. We made this case when we first released the BestEffortCallback and retired gs.
Is my argument convincing, @cmazzoli? Additionally, do you find that you most often wish to remove columns from the table or add them?

@tacaswell could we reframe that as 'independent variable-like' and 'dependent variable-like' things?

We think that this will be handled by the new bluesky-browser work and the run-router work.


Update pod.yaml to include priorityClassName

As of now, priorityClass is not set for openshift-controller-manager:
oc describe pod controller-manager-7t97k -n openshift-controller-manager | grep -i priority Priority:           0 PriorityClassName:  <none>
I am adding system-node-critical priorityClassName so that controlle-manager is in sync in other control plane components.

/retest

@adambkaplan is this something that we are interested in including?

/hold
I'm pretty sure we don't want to do this.

/hold cancel
We're going to follow oca-o and mark the openshift controller-manager as being node-critical. See https://github.com/openshift/cluster-openshift-apiserver-operator/blob/master/bindata/v3.11.0/openshift-apiserver/ds.yaml#L24

/lgtm


the new feature "bonjour printers" in cup 2.2.4 triggers lag, long delay when trying to display print dialog box in Qt applications

in the release log of cups 2.2.4 there is a new feature :
"The cupsGetDests and cupsCreateJob functions now support Bonjour printers
(Issue #4993)"
I suspect a bug in this new feature : on Qt application when I click to the menu "File, print" then the print dialog box takes a long time to appear ( 5 seconds ),
If I disable the "avahi-daemon" ( a systemd service in archlinux ) the bug disappears, the print dialog box appears quickly ( less than 1 second )

Confirming the existence of this issue (on Manjaro). When Qt print dialog is called by any Qt5 app, it takes 5-6 seconds for it to appear. This didn't happen before upgrading to cups 2.2.4.
I use the print dialog only to export to PDF.

@tsujan What Linux distro are you using?

@tsujan What Linux distro are you using?

Manjaro (said above), which is 99% Arch.

Can either of you try the current Github code to see if it exhibits the same symptoms?

I will.

@michaelrsweet
I'm afraid it made no difference. I compiled and installed the latest git source and then rebooted but there's still a 5-second delay.

@tsujan If you have the source handy can you make the "testcups" unit test program and time it on your system?
cd cups
make testcups
time ./testcups

On my Ubuntu VM it takes just over a second (1.015s) to complete, which it what I would expect with the default 1 second browse timeout.

@michaelrsweet
The result:
real    0m1.010s
user    0m0.003s
sys     0m0.000s

Strange, something in the Qt stack must be calling cupsGetDests 5 times then. I will investigate providing a cups_dest_t cache that is returned if subsequent calls come in within a certain timeframe (say, 10 seconds).

As @Potomac mentioned, this didn't happen before 2.2.4. That might help in finding the cause.

@tsujan Before 2.2.4 cupsGetDests didn't look for Bonjour printers so we didn't have the same kinds of networking delays (usually all local domain socket traffic).

this is not only the lag it is ssl insecure ciphers, here you can see the ciphers it used. how i can change for my client his ciphers. here i explain other big issue with servertokens none and this is false it show all information. I just can't know why you can't modified cups like apache2, but yes i just answer on my question, cups works for apple and we all know that apple is closed and not transparency of they source code, but remember apple is made from unix and linux, if you don't know, open terminal in apple,macbook,imac and apple produtcts and write: ls, ls is linux nad unix command this will show you what has in this directory, rm is unix and linux command to delete... do i need to continue... windows and linux are different, so in windows you can't write ls becouse in windows command don't exist this mean, windows is private closed source and they can not to share the source of the programs, but apple is propietary of unix and linux and they need to be transparency, if not jail all who works for apple, this is crime who robbery car with other person and second person after that say no, she was complicity of crime, so apple is commiting crime, apple use free source code but don't show they propietary when they create something, include this is slavery you works for someone and she use it. knowing the law don't make apple skip the law, the law is above all the human, apple is make in apple works peoples so they are obeyed to comply with the law, nobody have the rights to dissobey. now i understand why cups is so limited in options, this is good becouse now i can explain in my youtube video tutorials this times for cups.  hey hackers cups use apache 1 version and insecure ciphers, but apple don't use it, apple will never use apache 1 version and less secure. now i understand why my client give tls error.

@peturbg
I'm not a CUPS developer but should say that your comment wasn't helpful AT ALL!

tsujan you are not helpful AT ALL! but you live.

@michaelrsweet  : maybe there is recently a change in avahi API ?
or in Qt ?
I use archlinux, which is a rolling release linux distro like manjaro ( all packages are up-to-date, last release version), and if there is a bug you can be sure that archlinux users will be the first to see the bug,
I don't know if you use a rolling release distro, but using a rolling release distro is the best way to check that every feature in cups run as expected, if you use a non-release distro ( like ubuntu LTS, debian stable ) then there is a risk that some bugs will be hidden from you if some packages ( Qt, avahi ) are too old on your system

I completely agree with @Potomac and wanted to suggest the same thing.

I just checked with Qt4 print dialog and saw a 1-sec delay. IMHO, even a 1-sec delay is a problem and generally, using fixed delays to do something in the code isn't a good option.

@tsujan I agree completely, and there wouldn't be a delay if the Qt folks would simply adopt the cupsEnumDests API which has been part of CUPS since CUPS 1.6 (first released ~6 years ago...)

OK, dropped the maximum delay to 250ms, please let me know how that works for you.

I confirm that https://github.com/apple/cups/commit/e3b9d1f5205449216211c8e4072b7ea89ebc5f24 reduces the delay to ~1 second, which is quite tolerable. So, this can be closed.
Please think about removing all fixed delays at some point! Thank you very much!

And if any bug should be reported to Qt developers, you could do it better than anyone.

Bugs have been reported to the Qt devs, and they've even had GSoC volunteers, but no mentors... :/

Bugs have been reported to the Qt devs, and they've even had GSoC volunteers, but no mentors... :/

Will vote up or leave a comment if I find it/them.


When MultipartBody is serialized the values are generated with CRLF

Fix for #247

Any chance we can clarify things out in the issue at https://github.com/microsoft/kiota-abstractions-dotnet/issues/247 first?
I believe there is a possibility that no action is needed here..

@andrueastman You are right, with text/plain everything works fine in the latest version. Not sure why I was using application/x-www-form-urlencoded

@MartinM85 Thanks for confirming. I think we can close this one for now.
If it makes sense, the next action steps would be looking into whether we need to make a change in the application/x-www-form-urlencoded serialization writer as highlighted in https://github.com/microsoft/kiota-abstractions-dotnet/issues/247

Closing this one for now to follow up on #247


fix: impl_generics_with_additional_lifetimes

I'm not entirely sure why this function was originally trying to bound lifetimes, but regardless, what it currently does is very incorrect as it adds copies of every generic for each lifetime passed in.
I don't think any of that is right, so this fixes that, removes the unused helper as_lifetime, and adds a test to ensure the expected behavior occurs.

Anything else you want to make a PR of or shall I release 0.0.12 with these changes?

This is no longer adding dependent lifetimes, that are needed at least in my case. The docs have

The lifetimes passed to this function will automatically depend on any other lifetime this struct or enum may have. Example:

The struct is struct Foo<'a> {}
You call `generator.impl_for_with_lifetime(“Bar”, &[“b”])
The code will be impl<'a, 'b: 'a> Bar<'b> for Foo<'a> {}
https://docs.rs/virtue/latest/virtue/generate/struct.Generator.html#method.impl_for_with_lifetimes

From my example use, the diff after this change is:
-impl < 'de : 'a, 'a > crate :: sshwire :: SSHDecode < 'de > for UserauthPwChangeReq < 'a >
+impl < 'de, 'a > crate :: sshwire :: SSHDecode < 'de > for UserauthPwChangeReq < 'a >

(that's for https://github.com/mkj/sunset/blob/c97ff133d51ae482cbb61ae355dafdaa08dd3a34/sshwire-derive/src/lib.rs#L392  targetting struct https://github.com/mkj/sunset/blob/c97ff133d51ae482cbb61ae355dafdaa08dd3a34/src/packets.rs#L164)

Thanks, that works for me. I agree it shouldn't be the default. Maybe just adding an example in the impl_for_with_lifetimes() would be enough.

Opened https://github.com/bincode-org/virtue/issues/51


Enhancement: Crafting recipes for anchors

Minecraft version
Other
Describe the issue
Make crafting recipes for anchors and amethyst plates if there aren't any.

A brewing recipe for up and down potions would be helpful as well


Excluded project

No worries !!!
If you need any project , head over to PROJECTS.md or ISSUES.md in explore folder


Incorrect @return line for Client::authorize

Was "@return void", whereas the authorize method does return a ClientInferface object in current release.

I signed it!

This is great, but "objet" should be "object"

Typo error has been corrected, sorry !

merged in c872f606236631bf4da16daa9ff7501d036fed60

Changes Unknown when pulling 36617a83b4027d072cdd8bce144616ee8df037d3 on net-tools:patch-1 into ** on google:master**.


Figlet is no longer working

Figlet is no longer working:
wapm install syrusakbary/figlet

figlet "Hello"

This should return:
 _   _      _ _       _
| | | | ___| | | ___ | |
| |_| |/ _ \ | |/ _ \| |
|  _  |  __/ | | (_) |_|
|_| |_|\___|_|_|\___/(_)

But it returns:
figlet: standard: Unable to open font file

(figlet was working before, I believe the clang/zig fixes might have broken it)

Python also stopped working:
$ wapm install python/python

$ python -c "for i in range(10): print(f'The square of {i} is {i*i}')"
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00000000 (most recent call first):

Ah seems i've introduced a regress issue - will look into it - thanks

Fixed
I first tried to use map_dir in wasmer for this but there appears to be a bug in there somewhere which I can't trace down - went for a compromise and only use map_dir in scenarios that I don't cover with the virtual file system.
tokera.sh:/$ wapm install syrusakbary/figlet
[INFO] Installing<EMAIL_ADDRESS>Package installed successfully to wapm_packages!
tokera.sh:/$ figlet "Hello"
 _   _      _ _
| | | | ___| | | ___
| |_| |/ _ \ | |/ _ \
|  _  |  __/ | | (_) |
|_| |_|\___|_|_|\___/

tokera.sh:/$

Also tested the python application
tokera.sh:/$ wapm install python/python
[INFO] Installing<EMAIL_ADDRESS>Package installed successfully to wapm_packages!
tokera.sh:/$ python -c "for i in range(10): print(f'The square of {i} is {i*i}')"
The square of 0 is 0
The square of 1 is 1
The square of 2 is 4
The square of 3 is 9
The square of 4 is 16
The square of 5 is 25
The square of 6 is 36
The square of 7 is 49
The square of 8 is 64
The square of 9 is 81


Ibex values & charts

Merging into staging branch since that's our working branch, but there env variables are checked out of git using terraform, so there's nothing staging specific about the branch

What is the conflict in galoy-regtest-values.yml ?

Flash dev digest. I'll rebase


replace startsWith with indexOf

Fix Android 5 convertFileSrc not working issue https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/491

:tada: This PR is included in version 4.2.0 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


support import specifiers without any file extensions

Here is my situation: project was created by vue cli which of course is webpack under the hood. The import specifiers had no file extensions such as

directory as follows:

and I got errors show Unresolved imports:

I know it's because bundler like webpack handles all the extensions resolution, are there any way for knip to handle this kind of situation?

I'd need a working minimal reproduction to look into it, also see https://knip.dev/guides/troubleshooting#minimal-reproduction

Closing this due to inactivity, and tbh I'm not too excited to support this in the first place.


don't include the "main" file by default

It's not correct to forcefully include the file specified in "main"
at upload-time. Consider an npm run build script that ends up
creating the file that "main" specifies. It would not exist until
inside the deployment, after the build script is ran for that
deployment.
Fixes https://github.com/zeit/now-cli/issues/281.

THANK YOU THANK YOU


KUBECONFIG can contain multiple files

I love this little project, but I can't use it because I have multiple kubeconfig files in my KUBECONFIG variable -- which works with other things, but not this plugin.
KUBECONFIG=/Users/tax/.kube/config:/Users/tax/work/kubeconfig

Thanks for reporting!
This little tool could definitely use some love and needs an overhaul - this issue is probably explained by the fact that its using a fairly old version of the kubectl API interfaces (and I've learned a bit since then).
I'll see if I can get some time in bringing it back to life and update it to the latest and greatest of everything


Build issues

Hi, I'd like to try out VertexKit but am having issues building.
When using:
  pod 'VertexKit'
I get:
Showing All Errors Only /Users/jzting/Desktop/pixel/Pods/VertexKit/Source/3DPIX/ParticlesUV3DPIX.swift:40:51: Cannot use optional chaining on non-optional value of type 'PIX.Res'
When using:
  pod 'VertexKit', :git => 'https://github.com/hexagons/VertexKit', :branch => 'master'
I get:
Showing All Errors Only /Users/jzting/Desktop/pixel/Pods/VertexKit/Source/3DEngine.swift:14:8: No such module 'LiveValues'

Hi, sorry I made a major refactor of the dependency PixelKit, will fix!

Now I've updated the pod, v0.3.0, let me know if it works for you!
If you have any questions regarding how to use VertexKit or PixelKit you can reach me at<EMAIL_ADDRESS>

New docs for VertexKit and it's dependencies:
VertexKit: http://hexagons.se/vertex-kit/
PixelKit: http://pixelkit.net/docs/
RenderKit: http://renderkit.info
LiveValues: http://hexagons.se/live-values/

Thanks, that worked! I had to adjust the tutorial code to match the updated APIs.

Cool you got it to work! Sorry about the tutorial in the readme, it's updated now!


problem reading remappings from foundry.toml

Hey guys this is great, thanks for making it! I've been meaning to try this out for a while and had the opportunity to do it today.
For some reason it couldn't get the remappings out of the foundry.toml.
remappings = ["openzeppelin/=lib/openzeppelin-contracts/contracts"]

but when i created a remappings.txt file, it worked:
openzeppelin/=lib/openzeppelin-contracts/contracts

This issue will be fixed in the next release, most likely this week.


I am pushing the adjusted r scripts for the makefile. I also filtered…

The adjusted Rscripts were pushed from Manju's branch.


#12405: Refactor to use strong types

Ticket
https://github.com/tenstorrent/tt-metal/issues/12405
Problem description
Aliases of integral types are being used interchangeably with the integral types, allowing for erroneous implicit conversions.
What's changed
Refactor to use enum class and make any intentional conversions explicit. Fixes bug in WorkExecutor move constructor where moved-to cpu core was overwritten with device id, potentially causing thread pinning to wrong core.
Checklist

[ ] Post commit CI passes
[ ] Blackhole Post commit (if applicable)
[ ] Model regression CI testing passes (if applicable)
[ ] New/Existing tests provide coverage for changes

Minor ask.
Please make PR title and description more specific to this change.
I may have missed something, but it seems like this PR is about changing DeviceId from uint32_t to an int-based enum class chipId which is brought from umd. It would be beneficial for reviewer sake to link the related umd PR.


⚠ SceneTime has degraded performance

In 35f27d1, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 3418 ms

Resolved: SceneTime performance has improved in 8de5c06 after 8 minutes.


use binary search instead of plain do-while to accelerate the function. ...

...( It improves the speed significantly when maxFontPixels is large )

Thank you for the contribution. Will do a release soon (also change variable names)


Popups do not inherit global tabstop value

To Reproduce
Detailed steps to reproduce the behavior:

Run vim --clean (or gvim --clean, etc.)
set tabstop=2
let winid = popup_create('hello', {})
echo getbufvar(winbufnr(winid), '&tabstop'). The value of tabstop is 8.

Expected behavior
I would expect the value of tabstop to be 2, as when I create new buffers. For instance, after :new, :echo &l:tabstop returns 2.
Environment (please complete the following information):

Vim 8.2.1650.
OS: macOS 10.15
Terminal: Apple's Terminal.app

Additional context
This may apply to other global settings—I haven't checked.

This is documented:
POPUP BUFFER AND WINDOW					popup-buffer
If a popup function is called to create a popup from text, a new buffer is
created to hold the text and text properties of the popup window.  The buffer
is always associated with the popup window and manipulation is restricted:

the buffer has no name
'buftype' is "popup"
'swapfile' is off
'bufhidden' is "hide"
'buflisted' is off
'undolevels' is -1: no undo at all
all other buffer-local and window-local options are set to their Vim default
value.


Tabbing through buttons doesn't work in Firefox on Mac

Describe the bug
As an applicant, when I am applying to a program using the Firefox browser on a Mac computer and navigating the page via tabbing, I cannot reach several navigation points including:

Previous button
Review button
End session
Log in
Create account
(there may be others as well)

To Reproduce
Using the Firefox browser,

Publish a program
Log in as a guest user to apply to program
Attempt to tab through the page to reach any of the navigation points listed above
See error

Expected behavior
Expect to be able to select the "Previous" and "Review" buttons via tabbing (this works in Chrome on Mac and works in Firefox on Linux and Windows)
Desktop (please complete the following information):

OS: macOS (intel and apple silicon)
Browser: Firefox
Version: 111.0.1

This isn't an issue with CiviForm. It's a Mac OS and Firefox configuration problem. https://www.a11yproject.com/posts/macos-browser-keyboard-navigation/

Should we close this since it's not something we can fix on our end then?


✨ Support Flutter 3.0

Closes #126

Any update on when this will be merged.

@JlUgia can you have a look at this?

Thank you @simonpham, taking a look.

Looks good, left a few quick comments.
Let me know when you can take a look and we are good to go.

@JlUgia done. Please check again.
Thank you for your time!

Looks good, merging.

pay: 1.0.9 and pay_android: 1.0.7 are now published.
Thank you for your contributions.

pay: 1.0.9 and pay_android: 1.0.7 are now published. Thank you for your contributions.

Thanks bro 👍


Improve folders folding in filesystem dock

Intellij IDEA like folding of folders in filesystem dock (#796).

Note that you can reference GitHub issues with just #796, no need to paste the full URL. Also your first commit references the first issue of this repo due to that facility ;)

Would someone be interested in rebasing this PR on the master branch, and see what parts are still relevant and would be worth merging? Part of the things implemented here are already done in the master branch, but others are still missing.

Closing for now to reduce the PR backlog, as it can't be merged as is and I believe a big part of those changes was superseded by later commits. I think there are still interesting ideas here though which might be worth reimplementing on the current master branch, it would just need a motivated contributor to have a closer look.


Fixing file tracking and permissions on executables

resolves #2 and #3

+1

wait on +1 from @tkdagdelen


BJ266-4: add unit-test for getAppArmorSecurityOpts&getSeccompSecurityOpts , fix #1913

…x #1913
Signed-off-by: kaicizhu<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
add unit-test for getAppArmorSecurityOpts&getSeccompSecurityOpts
Ⅱ. Does this pull request fix one issue?

fix #1913
Ⅲ. Describe how you did it
Add four different test case for each function. One test case for default value, one for unconfined value, one for value with prefix, one for value without prefix.
Ⅳ. Describe how to verify it
go test
Ⅴ. Special notes for reviews

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

Merging #1948 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1948      +/-   ##
==========================================
- Coverage    63.3%   63.27%   -0.03%
==========================================
  Files         200      200
  Lines       15521    15522       +1
==========================================
- Hits         9825     9821       -4
- Misses       4456     4459       +3
- Partials     1240     1242       +2

Flag
Coverage Δ

#criv1alpha1test
33.79% <ø> (+0.04%)
:arrow_up:

#criv1alpha2test
34.26% <ø> (-0.06%)
:arrow_down:

#integrationtest
38.37% <ø> (-0.04%)
:arrow_down:

#unittest
21.01% <ø> (+0.15%)
:arrow_up:

Impacted Files
Coverage Δ

cri/stream/portforward/httpstream.go
69.16% <0%> (-6.67%)
:arrow_down:

cri/stream/runtime.go
71.01% <0%> (-2.9%)
:arrow_down:

daemon/mgr/container.go
53.85% <0%> (-0.16%)
:arrow_down:

ctrd/image.go
76.84% <0%> (+0.11%)
:arrow_up:

cri/v1alpha1/cri.go
65.58% <0%> (+0.18%)
:arrow_up:

cri/v1alpha1/cri_utils.go
75.35% <0%> (+1.07%)
:arrow_up:

LGTM
Thanks for your brilliant work :)


Uncaught Error: This TextEditor has been destroyed (README closed before preview)

README.md file is open along with markdown-preview tab
If the README.md file is closed BEFORE the preview, this error is thrown

Atom Version: 0.182.0
System: Microsoft Windows 7 Enterprise
Thrown From: markdown-scroll-sync package, v0.3.0
Stack Trace
Uncaught Error: This TextEditor has been destroyed
At C:\Users\amarinelli\AppData\Local\atom\app-0.182.0\resources\app\src\display-buffer.js:1005

Error: This TextEditor has been destroyed
  at DisplayBuffer.module.exports.DisplayBuffer.screenPositionForBufferPosition (C:\Users\amarinelli\AppData\Local\atom\app-0.182.0\resources\app\src\display-buffer.js:1005:15)
  at TextEditor.module.exports.TextEditor.screenPositionForBufferPosition (C:\Users\amarinelli\AppData\Local\atom\app-0.182.0\resources\app\src\text-editor.js:1228:33)
  at C:\Users\amarinelli\.atom\packages\markdown-scroll-sync\lib\main.coffee:53:23

Commands
     -6:31.2 core:confirm (atom-text-editor.editor.mini)
  2x -2:52.2 markdown-preview:toggle (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)

Config
{
  "core": {
    "themes": [
      "atom-dark-ui",
      "base16-tomorrow-dark-theme"
    ]
  }
}

Installed Packages
# User
markdown-scroll-sync, v0.3.0
minimap, v4.3.1
tidy-markdown, v0.1.0

# Dev
No dev packages

Thanks very much for finding such a serious bug

Fixed in 0.3.1


Add Hover Effect to "Apply to GSoC with AOSSIE" Button in Banner Component

Summary:
The "Apply to GSoC with AOSSIE" button in the Banner component needs a hover effect to improve user experience and visual feedback.
Details:
Component: Banner

File Path: src/components/Banner.jsx

Current Behavior: The button currently does not have any hover effect, which makes the user interaction less engaging.

Expected Behavior: The button should have a hover effect that changes its background color and slightly scales up smoothly.

Proposed Solution:

Add the following Tailwind CSS classes to the button for the hover effect: hover:bg-gray-200 dark:hover:bg-gray-800 transition duration-300 ease-in-out transform hover:scale-105.
Ensure the  component from next/link is used correctly without the  tag to avoid invalid markup errors.

Steps to Reproduce:

Navigate to the homepage or the page where the Banner component is rendered.
Hover over the "Apply to GSoC with AOSSIE" button.

Additional Context:
The Link component should be used without an extra  tag to conform to Next.js guidelines.
Screenshots:

Please Assign this Issue to me.


Location-IDs for anonymously checking possible exposure

Feature description
Provide locations (retail store, restaurants, venues etc.) with an identifier to enable tracing based on time/location in addition to ephemeral Bluetooth identifiers received from people in the vicinity. This (time/location) identifier should be added to the list of ephemeral Bluetooth identifiers on the local device and be used as an aggregate/cluster identifier after notification of a possible exposure during a visit.
Problem and motivation
In Germany there is currently a limit of people allowed to enter a retail location at the same time to prevent crowding. At some locations one have to register your contact information in order to trace contacts after notification of a positive case during that time and location. If a retail location could provide a "location id" via QR-Code to its patrons, which is included into the list of ephemeral Bluetooth identifiers saved locally on the device. This enables the app to warn all persons present at a location during a certain timeframe by using the same matching algorithms used for intra-person exposure. It is also possible to include and match persons not having "checked in" at the location via code scanning in the app but by providing contact information to the location by other means instead (e.g. register contact information manually  which is mandatory during times of contact restriction).
If location ids could be generated by anyone, this could also enable check-in at private gatherings not unlike https://www.luca-app.de/ .
This approach respects the privacy of the individual as location ids are locally stored and compared. Location ids also don't have to be ephemeral if the id is used in conjunction with the time of check-in (scanning location id code) and possibly checking out (scaning code a second time?) or  using change in location by the mobile device...
Just an idea to make gatherings (private/public/retail) a little more traceable using existing infrastructure...
Is this something you're interested in working on
Only conceptionally.
Internal Tracking ID: EXPOSUREAPP-3034 (Overview)
Internal Tracking ID: EXPOSUREAPP-5080 (iOS)
Internal Tracking ID: EXPOSUREAPP-4741 (Android)

Hello everyone,
This feature has been implemented in CWA 2.0 as part of the event registration feature.
This issue will be closed. If you have new ideas for the current implementation of the feature, please consider opening a new issue.

Corona-Warn-App Open Source Team


'ttx' is not recognized

Hi there,
When I run the build command I get the following error when building the fonts:
'ttx' is not recognized as an internal or external command, operable program or batch file.
Any idea how to resolve this?

I'm assuming you already installed Python and FontTools from README.
If ttx is not found, then most likely it didn't end up in your PATH.
Which OS are you using?

Check issue #6
That person had a similar issue.

Thanks and I worked though the comments and using pip2 install fonttools instead of pip install fonttools seemed to resolve the issue for me on OS. The only issue I have now is that it is only creating the Medium font-weight and missing out the others.

Nevermind just deleted some files out of the folder and it worked thanks for your help!

if you have error ttx: command not found
use: brew install fonttools

if you have error ttx: command not found use: brew install fonttools

This works for me. Thank you


[oocm] support for externalTrafficPolicy: Local

What this PR does / why we need it:
This PR adds support for externalTrafficPolicy: local which currently is listed as a limitation in the docs.
This change also handles the update case. So changing externalTrafficPolicy reconfigures the health monitor and members accordingly.
Which issue this PR fixes(if applicable):
fixes #763
Release note:
Support for externalTrafficPolicy: local

/ok-to-test

/retest

@jichenjc how can we retrigger the openlab tests for this PR? What else is missing to move this PR forward?

Overall the code looks good, just some minor comments. When I am doing the manual testing for this PR, to move it forward, we still need to add document to describe the behaviors of setting different values for externalTrafficPolicy.

Overall the code looks good, just some minor comments.

Thats great to hear @lingxiankong but where are the comments :)

Thats great to hear @lingxiankong but where are the comments? :)

Sorry, forgot to publish.

Tested, works perfectly.
The only thing needs to be aware of is, the health monitor should be enabled to work with externalTrafficPolicy: Local. We need to add some doc for that either in this PR or create a separate one

I've refined the release note, BTW.

@lingxiankong I addressed your feedback.

The only thing needs to be aware of is, the health monitor should be enabled to work with externalTrafficPolicy: Local. We need to add some doc for that either in this PR or create a separate one.

Good Point. I added a safeguard that the controller falls back to the standard behaviour(externalTrafficPolicy: Cluster) if the health monitor for the service is disabled.
I also added short notice the config and annotation section of the documentation about requiring health monitors for local traffic policy.

@databus23 @lingxiankong do you mind add some doc or provide some info just for education perspective :)
https://medium.com/pablo-perez/k8s-externaltrafficpolicy-local-or-cluster-40b259a19404
tells me local means no additional hop in the cluster but I don't know why the health monitor you created can solve the problem ? just curious and want to learn stuffs..
and maybe put those into some reference in the doc will be helpful for further reader/developers.. thanks

@jichenjc I think the general properties of externalTrafficPolicy: Local are somewhat documented in the official upstream kubernetes documentation 1 2. As explained in the blog post you mentioned and changes the behaviour of kube-proxy so that connections coming in via the services nodePort (e.g. from the loadbalancer) are not forwarded to endpoints on other nodes but only to local endpoints. Also misleading in the documentation is the notion that this will preserve the client ip. This is only the case for "network loadbalancers" that route the incoming tcp connections to the endpoints without terminating the incoming connections on the external loadbalancer. I think the later is the case for most octavia implementations so in that case the endpoints see the loadbalancer ip as the source. The source ip of the requesting client is not preserved in this case (you still not proxy-protocol for that).
But as stated in the blog post you still avoid an additional hop (and source nat) in any case.
Whats important to note is that for all this work the loadbalancer needs to send traffic to nodes with active endpoints only.
What is not so well documented is how this is technically implemented:
For externalTrafficPolicy: Local kubernetes will add a randomly chosen spec.healthCheckNodePort to the service and every kube-proxy starts an http server on the given port responding with 200 only if at least one active endpoint is running on the local node (500 otherwise). The loadbalancer listener still has all nodes as members configured but nodes without an active endpoint will be down due to the failing health check.

/test openstack-cloud-controller-manager-e2e-test

/test cloud-provider-openstack-multinode-csi-migration-test

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.20

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.19

/test cloud-provider-openstack-acceptance-test-e2e-conformance

Whats important to note is that for all this work the loadbalancer needs to send traffic to nodes with active endpoints only.

ok, so we create health monitor and make it active by using health point added ..
thanks for your great info and detailed description :) @databus23
/lgtm

/override openlab/cloud-provider-openstack-acceptance-test-e2e-conformance
/override openlab/cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.19
/override openlab/cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.20
/override openlab/cloud-provider-openstack-multinode-csi-migration-test

/approve


read API_KEY from file

I use the secrets mechanism of docker und would like to read environment-variables from a file. CROWDSEC_BOUNCER_API_KEY_FILE e.g.

Whilst it would be great to get this officially supported here is a head start for people not wanting to wait:
Creating a go app
We will replace the start up file to read the value from the file then call the other go app.

Create a empty folder: mkdir secrets_startup
Initialise the go folder: go mod init example.com/m
Create a file contain the script traefik.go

package main

import (
	"fmt"
	"io/ioutil"
	"os"
	"os/exec"
        "strings"
)

func main() {
	keyBytes, err := ioutil.ReadFile("/run/secrets/traefik.bouncer")
	if err != nil {
		fmt.Fprintf(os.Stderr, "Failed to read API key: %v\n", err)
		os.Exit(1)
	}
        key := strings.TrimSpace(string(keyBytes))
	os.Setenv("CROWDSEC_BOUNCER_API_KEY", string(key))
	cmd := exec.Command("/app")
	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr
	err = cmd.Run()
	if err != nil {
		fmt.Fprintf(os.Stderr, "Failed to run app: %v\n", err)
		os.Exit(1)
	}
}

Build the app: go build -o traefik-bouncer
Modify the docker-compose.yml:

traefik-bouncer:
    image: fbonalair/traefik-crowdsec-bouncer
    container_name: traefik-bouncer
    volumes:
      - ./secrets_startup/traefik-bouncer:/traefik-bouncer
    command: ["/traefik-bouncer"]
    restart: always
    networks:
      - traefik_default
    environment:
      GIN_MODE: release
      CROWDSEC_AGENT_HOST: crowdsec:8080
      CROWDSEC_BOUNCER_LOG_LEVEL: 2
    secrets:
      - traefik.bouncer

Restart your container: docker compose up -d
Check the logs: docker logs traefik-bouncer
Finally, check it is connected to CrowdSec: docker compose exec crowdsec cscli bouncers list

Thank you - works fine for me.


Meaning of rebuild-frequency

Hi, could you provide meaning of rebuild-frequency?
Is there any drawbacks of increasing it to 30s/60s/120s?
Will it affect overall atlas memory/cpu consumtion and overall perfomance?

There is some overhead in rebuilding both in terms of temporary memory overhead and cpu. How much depends a bit on the data characteristics. The main benefit of rebuilding frequently is that new data will not be searchable until it has been indexed. We typically set it roughly the same value as the data step size.

Thank you for explanation, it's clear now.


Filament sensor reporting no filament

I can't get the filament sensor to report any filament.  I've changed it to the appropriate pin, and looking at reprap documentation, it looks like sensing is disabled unless printing from SD card.  How do I go about setting it up just to get it properly working with sending filament from the MMU to the toolhead?  When I try to run M591 D0, I get no data received.  The sensor itself is powered and the eyes are flashing.  I've verified with a multimeter that the sense pin is going high and low.

Which pin is the sensor plugged into? Make sure that pin is correctly selected, of course. I have 4 of these sensors across 4 printers running RRF on different boards: duet2wifi, duet3mb6hc, big dipper, and octopus pro 429. They all function as expected with the provided configuration, other than picking the correct pins.

managed to solve it and was the stupidest thing ever.  Pin and code were all correct.  Sensor was too close to the BMG gear.  When I was calibrating it before assembly, I was getting reliable flashing, but after assembly, I finally managed to notice a reliable "drag" feeling when running filament through it.  Sensor was too close to get readings and best guess is the little black tabs between the emitter and collector ended up mashing with the gear to block any reading.  Fixed now and working as expected.  My sensor is connected to a duet toolboard pin since my extruder is connected to it and any filament monitor has to be on the same board as the extruder.


Support tagging flag for ek primary security group

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

What is the outcome that you are trying to reach?
Currently, the eks primary security group has a boolean value to create tags and is defaulted to true. In our environment, the security group gets a "kuberentes.io/cluster/" tag and it causes issues with the aws-load-balancer-controller as multiple security groups have this tag. We'd like the ability to disable putting tags on the primary security group. The variable exists in the terraform-aws-eks module.
I propose we add create_cluster_primary_security_group_tags variable to the blueprint repository.
https://github.com/terraform-aws-modules/terraform-aws-eks/blob/v18.29.1/main.tf#L65

You can remove the cluster tag: https://github.com/terraform-aws-modules/terraform-aws-eks/issues/1986#issuecomment-1147709576

You can remove the cluster tag: terraform-aws-modules/terraform-aws-eks#1986 (comment)

This doesn't work. It results in a "tag requires a value" error. I've also tried setting the tag to anything other than "owned" and still have issues with the multiple security group error.


Updates to Readme

I don't think vim should be strictly necessary to install, they should be able to use the editor of their choice
Calling it bytes 17-22 is confusing for step 4. At least, it is on my screen as the 124th character, which I think is not byte 17? Perhaps you can declare a variable for mac address that can be changed directly, and/or initialize it to these values by default.
step 3 of setup of packet injection does not have a corresponding directory to cd into (we are still in lorcon-old)
Updating the MAC IDs in the WSR Toolbox config files: what file? This kind of comes out of nowhere and I'm not sure this belongs here

Need to add step that tells about editing the packet length in rx.c (on line 894)


nexus-mods-app: init at 0.2.2

Description of changes
From the project:

a mod installer, creator and manager for all your popular games

Closes #270358.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Priorities
Add a :+1: reaction to pull requests you find important.

This builds but I can't really get any functionality out of it although I may not be using it correctly. Most commands I've tried seem to fail.

Thank you so much for testing this with more commands! I'll try adding more tests to have a baseline which we can use to communicate upstream.

From the project FAQ:

Do not ask for support for these tools until official announcements and a product launch is made.

So we should probably leave this as a draft PR until launch.

tests which rely on third party services anywhere in nixpkgs

I didn't even think this was possible. Isn't everything sandboxed?
Also, after looking at this again, the failing commands still return 0 exit status (from the server itself I'm guessing) so I don't think these tests are even working correctly.
It looks like a cool app that could really improve the modding experience on Linux and NixOS especially. Please let me know if/when you pick this back up I would be happy to test it.

v0.3 in case someone wants to test it.

Still no luck for me.
This complains about skia.
nix run github:l0b0/nixpkgs/nexus-mods-app#nexus-mods-app:
00:00:00.127 [DEBUG] Starting UI window
00:00:00.133 [DEBUG] Using sqlite data store at /home/chris/.local/share/NexusMods.App/DataModel/DataModel.sqlite
00:00:00.314 [FATAL] Exception crashed the application!|System.TypeInitializationException: The type initializer for 'SkiaSharp.SKImageInfo' threw an exception.
 ---> System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable:
libfontconfig.so.1: cannot open shared object file: No such file or directory
/nix/store/jj2z9pz1y9p64apynww6mn7ipcbv5whm-dotnet-runtime-8.0.1/shared/Microsoft.NETCore.App/8.0.1/libSkiaSharp.so: cannot open shared object file: No such file or directory
/nix/store/ajw4lal6ibywj9yjf84lnc7ss0w4shn7-nexus-mods-app-0.3/lib/nexus-mods-app/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/nix/store/jj2z9pz1y9p64apynww6mn7ipcbv5whm-dotnet-runtime-8.0.1/shared/Microsoft.NETCore.App/8.0.1/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/nix/store/ajw4lal6ibywj9yjf84lnc7ss0w4shn7-nexus-mods-app-0.3/lib/nexus-mods-app/libSkiaSharp: cannot open shared object file: No such file or directory
/nix/store/jj2z9pz1y9p64apynww6mn7ipcbv5whm-dotnet-runtime-8.0.1/shared/Microsoft.NETCore.App/8.0.1/libSkiaSharp: cannot open shared object file: No such file or directory
/nix/store/ajw4lal6ibywj9yjf84lnc7ss0w4shn7-nexus-mods-app-0.3/lib/nexus-mods-app/liblibSkiaSharp: cannot open shared object file: No such file or directory
/nix/store/jj2z9pz1y9p64apynww6mn7ipcbv5whm-dotnet-runtime-8.0.1/shared/Microsoft.NETCore.App/8.0.1/liblibSkiaSharp: cannot open shared object file: No such file or directory

   at SkiaSharp.SkiaApi.sk_colortype_get_default_8888()
   at SkiaSharp.SKImageInfo..cctor()
   --- End of inner exception stack trace ---
   at Avalonia.Skia.PlatformRenderInterface..ctor(Nullable`1 maxResourceBytes)
   at Avalonia.Skia.SkiaPlatform.Initialize(SkiaOptions options)
   at Avalonia.SkiaApplicationExtensions.<>c.<UseSkia>b__0_0()
   at Avalonia.AppBuilder.SetupUnsafe()
   at Avalonia.AppBuilder.Setup()
   at Avalonia.AppBuilder.SetupWithLifetime(IApplicationLifetime lifetime)
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(AppBuilder builder, String[] args, Action`1 lifetimeBuilder)
   at NexusMods.App.Startup.Main(IServiceProvider provider, String[] args) in /build/source/src/NexusMods.App/Startup.cs:line 26
00:00:00.711 [DEBUG] Startup handler returned 0

I can't tell if this is trying to make a file or run one, but it also fails.
nix run github:l0b0/nixpkgs/nexus-mods-app#nexus-mods-app -- nexus-login
00:00:00.153 [DEBUG] Running command: nexus-login
00:00:00.172 [DEBUG] Using sqlite data store at /home/chris/.local/share/NexusMods.App/DataModel/DataModel.sqlite
00:00:00.248 [ERROR] Error running command|System.ComponentModel.Win32Exception (2): Failed to start a process with file path 'update-desktop-database'. Target file or working directory doesn't exist, or the provided credentials are invalid. ---> System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'update-desktop-database' with working directory '/home/chris'. No such file or directory
   at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at CliWrap.Utils.ProcessEx.Start() in /_/CliWrap/Utils/ProcessEx.cs:line 56
   at CliWrap.Utils.ProcessEx.Start() in /_/CliWrap/Utils/ProcessEx.cs:line 68
   at CliWrap.Command.ExecuteAsync(CancellationToken forcefulCancellationToken, CancellationToken gracefulCancellationToken) in /_/CliWrap/Command.Execution.cs:line 307
   at CliWrap.Command.ExecuteAsync(CancellationToken cancellationToken) in /_/CliWrap/Command.Execution.cs:line 326
   at NexusMods.CrossPlatform.Process.ProcessFactory.ExecuteAsync(Command command, CancellationToken cancellationToken) in /build/source/src/NexusMods.CrossPlatform/Process/ProcessFactory.cs:line 14
   at NexusMods.CrossPlatform.ProtocolRegistration.ProtocolRegistrationLinux.Register(String protocol, String friendlyName, String workingDirectory, String commandLine) in /build/source/src/NexusMods.CrossPlatform/ProtocolRegistration/ProtocolRegistrationLinux.cs:line 68
   at NexusMods.CrossPlatform.ProtocolRegistration.ProtocolRegistrationLinux.RegisterSelf(String protocol) in /build/source/src/NexusMods.CrossPlatform/ProtocolRegistration/ProtocolRegistrationLinux.cs:line 36
   at NexusMods.Networking.NexusWebApi.LoginManager.LoginAsync(CancellationToken token) in /build/source/src/Networking/NexusMods.Networking.NexusWebApi/LoginManager.cs:line 103
   at NexusMods.Networking.NexusWebApi.LoginVerbs.NexusLogin(LoginManager loginManager, CancellationToken token) in /build/source/src/Networking/NexusMods.Networking.NexusWebApi/LoginVerbs.cs:line 18
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Invocation.InvocationPipeline.<InvokeAsync>g__FullInvocationChainAsync|2_0(InvocationContext context)
   at System.CommandLine.Parsing.ParseResultExtensions.InvokeAsync(ParseResult parseResult, IConsole console)
   at System.CommandLine.Parsing.ParserExtensions.InvokeAsync(Parser parser, String[] args, IConsole console)
   at NexusMods.SingleProcess.CommandLineConfigurator.RunAsync(String[] args, IRenderer renderer, CancellationToken token)
   at NexusMods.App.StartupHandler.HandleCliCommandAsync(String[] args, IRenderer renderer, CancellationToken token) in /build/source/src/NexusMods.App/StartupHandler.cs:line 24
00:00:00.577 [DEBUG] Startup handler returned 0

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/warnings-when-getting-net-dependencies/39844/1

@siph The latest push applies some things I found in other packages:

doCheck defaults to false, but I'd like to run tests if at all possible.
Supports only Linux, because I don't have hardware to test on any other hardware.
Adds desktop item, which needs testing (icon, hover text, etc.)
I'm not certain startupNotify = true is correct, but a lot of other applications do seem to assume it.

nix-build --attr pkgs.nexus-mods-app.passthru.tests currently fails. Possibly relevant log lines:
/build/tmp.EEl8FbbzGH/.nuget/packages/microsoft.sourcelink.common/8.0.0/build/Microsoft.SourceLink.Common.targets(53,5): warning : Source control information is not available - the generated source link is empty. [/build/source/src/Abstractions/NexusMods.Abstractions.GameLocators/NexusMods.Abstractions.GameLocators.csproj]

/nix/store/1i9r9alwzyfflv6n5kpk9k1zacssm1hj-dotnet-sdk-8.0.101/sdk/8.0.101/Current/SolutionFile/ImportAfter/Microsoft.NET.Sdk.Solution.targets(36,5): warning NETSDK1194: The "--output" option isn't supported when building a solution. Specifying a solution-level output path results in all projects copying outputs to the same directory, which can lead to inconsistent builds. [/build/source/NexusMods.App.sln]

/nix/store/1i9r9alwzyfflv6n5kpk9k1zacssm1hj-dotnet-sdk-8.0.101/sdk/8.0.101/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ConflictResolution.targets(112,5): error NETSDK1152: Found multiple publish output files with the same relative path: /build/source/tests/NexusMods.StandardGameLocators.TestHelpers/xunit.runner.json, /build/source/tests/NexusMods.UI.Tests/xunit.runner.json. [/build/source/tests/NexusMods.UI.Tests/NexusMods.UI.Tests.csproj]

Latest push reintroduces projectFile, based on this.

@siph The desktop client starts now.

Great! I did get the application to run and was able to log-in through the browser. It was also able to auto-discover Skyrim in the steam folder.
This is about as far as I got. I couldn't get it to download any mods or run any games through either the GUI or the CLI.

This is about as far as I got. I couldn't get it to download any mods or run any games through either the GUI or the CLI.

Specific error messages from the command line might shed some light on this. Would you mind posting the logs?

I haven't forgotten about this, I just don't have much time at the moment. I wasn't actually getting any errors while installing mods, it just failed silently with the CLI and and through the browser. I will take a closer look soon.

Nice one. One nitpick... the nxm links are currently registered like so:
❯  cat ~/.local/share/applications/nexusmods-app-nxm.desktop
[Desktop Entry]
Name=NexusMods.App NXM Handler
Terminal=false
Type=Application
Path=/nix/store/dsrjmc2r89x67vznl7zq0hpj0b3z2f3r-nexus-mods-app-0.4/lib/nexus-mods-app
Exec=/nix/store/dsrjmc2r89x67vznl7zq0hpj0b3z2f3r-nexus-mods-app-0.4/lib/nexus-mods-app/NexusMods.App protocol-invoke --url %u
MimeType=x-scheme-handler/nxm
NoDisplay=true

That is an issue:
❯  /nix/store/dsrjmc2r89x67vznl7zq0hpj0b3z2f3r-nexus-mods-app-0.4/lib/nexus-mods-app/NexusMods.App protocol-invoke --url "nxm://oauth/callback?code=....&state=...."
You must install .NET to run this application.

App: /nix/store/dsrjmc2r89x67vznl7zq0hpj0b3z2f3r-nexus-mods-app-0.4/lib/nexus-mods-app/NexusMods.App
Architecture: x64
App host version: 8.0.3
.NET location: Not found

Learn more:
https://aka.ms/dotnet/app-launch-failed

Download the .NET runtime:
https://aka.ms/dotnet-core-applaunch?missing_runtime=true&arch=x64&rid=linux-x64&os=nixos.24.05&apphost_version=8.0.3

But it does work if I change to the executable in bin directory, like so:
/nix/store/dsrjmc2r89x67vznl7zq0hpj0b3z2f3r-nexus-mods-app-0.4/bin/NexusMods.App protocol-invoke --url "nxm://oauth/callback?code=....&state=...."

One more nitpick... bin directory should have only app's executable:
❯  ls /nix/store/dsrjmc2r89x67vznl7zq0hpj0b3z2f3r-nexus-mods-app-0.4/bin
7zz  libe_sqlite3.so  libHarfBuzzSharp.so  libSkiaSharp.so  NexusMods.App  SharpZstd.Native.linux-x64.so

Nice one. One nitpick... the nxm links are currently registered [in  ~/.local/share/applications/nexusmods-app-nxm.desktop which uses an executable in lib/]

That is an issue [because dotnet is not available]
But it does work if I change to the executable in bin directory.

I believe the app itself creates the desktop entries at runtime. I guess we'd need to disable that behaviour and write the files ourselves.
Alternatively, if runtime creation is preferred (to support an in-app "handle nxm links" toggle), we'd have to patch the relevant code to use the wrapped exe.

Maybe this solution could help?  https://discourse.nixos.org/t/how-to-set-the-value-of-0-inside-wrapped-script-when-using-makewrapper-wrapprogram/8733

After changing to use the main project file the tests are running, but a bunch of them are not passing. If anyone manages to get any of them to run that would be really helpful. I'm not really familiar with this type of project.

The upstream project has included the 7zz binary executables in the repo. I'll try to overwrite that with the nixpkgs one.

All the tests appear to be passing, now to deal with NETSDK1152.

I think I have another fix, this time for NETSDK1152, it builds for me: https://github.com/l0b0/nixpkgs/pull/2

Also, would it make sense to have an -unfree variant in nixpkgs with rar support? Otherwise users would have to overlay the package to enable this.

I don't know what the norm is, but I'd be happy to do so. Seems better than randomly failing to install mods.
Do you know of any example packages which do this? I'd want to reuse all the code from the free version in the unfree version, without duplication.
And thank you heaps for testing!

You could add multiple entries in all-packages.nix  and pass different arguments to callPackage. This might be helpful as well.

You could add multiple entries in all-packages.nix and pass different arguments to callPackage. This might be helpful as well.

Good point, done! There's now nexus-mods-app and nexus-mods-app-unfree, and only the latter has RAR support.

Some interesting stuff going on here. You don't have to do hacky workarounds to get this to work. As an example, we can add an option to disable the runtime generation of desktop entry files and provide a template to be used instead. We can also add a build option that disables copying the 7zz executable to the output directory. These things are trivial to implement, feel free to open an issue on the repo and I can take a look.

I've added an update script based on others, but the last line fails:

cp: cannot stat '/tmp/deps-nexus-mods-app-4mor2K/home/.nuget/packages/*': No such file or directory

Does anyone know how to fix it?

I've added an update script based on others, but the last line fails:

cp: cannot stat '/tmp/deps-nexus-mods-app-4mor2K/home/.nuget/packages/*': No such file or directory

Does anyone know how to fix it?

I get that error, but the update appears to have been done anyway.
I suspect the error is in something being run after updating package.nix?

I think this quote from Packaging a Dotnet Application might help be relevant?

nugetDeps takes either a path to a deps.nix file, or a derivation. The deps.nix file can be generated using the script attached to passthru.fetch-deps. If the argument is a derivation, it will be used directly and assume it has the same output as mkNugetDeps.

Perhaps there is something wrong with the "default" fetch-deps script and you need to add your own to passthru?
Or alternatively, maybe assigning a derivation to nugetDeps instead of using a deps.nix file would work?
I'm just spitballing though, I'm afraid.

I've posted about the issue here.

Have you seen this section of the nix dotnet guide?

Have you seen this section of the nix dotnet guide?

I hadn't seen that, but I based my update script on looking through several other .NET package update scripts. So I don't understand why it doesn't work in my particular case.

Are we good to go with 0.4.1 for now?

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/4025

I don't know why CI is failing, it seems to work fine locally

I don't know why CI is failing, it seems to work fine locally

Damn, I missed that. Why are they showing up as "neutral" rather than failed?
Looks like the problem might be this:

[xUnit.net 00:00:00.12] NexusMods.Games.BethesdaGameStudios.Tests: Exception filtering tests: Incorrect format for TestCaseFilter Error: Invalid Condition 'FullyQualifiedName!=NexusMods.UI.Tests.ImageCacheTests.Test_LoadAndCache_ImageStoredFileFullyQualifiedName!=NexusMods.Games.FOMOD.Tests.FomodXmlInstallerTests.InstallsFilesSimple_UsingRar'. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed.

This has highlighted another issue:

/nix/store/8y83na7h81fw5kr1msmjc7rvx329djp0-dotnet-sdk-8.0.300/sdk/8.0.300/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Publish.targets(351,5): error MSB3021: Unable to copy file "/build/source/src/ArchiveManagement/NexusMods.FileExtractor/runtimes/linux-x64/native/7zz" to "/nix/store/4f0xxir8gd0lihxf2gv8lcphjjh6y12i-nexus-mods-app-0.4.1/lib/nexus-mods-app/runtimes/linux-x64/native//7zz". Access to the path '/nix/store/4f0xxir8gd0lihxf2gv8lcphjjh6y12i-nexus-mods-app-0.4.1/lib/nexus-mods-app/runtimes/linux-x64/native/7zz' is denied. [/build/source/tests/NexusMods.DataModel.Tests/NexusMods.DataModel.Tests.csproj]

Does Nix have naming scheme requirements? If not, is it possible to use nexusmods-app for the package name? I'm currently updating our docs and that will be the suggested package name for package maintainers.

Since you're building from source, you should also set INSTALLATION_METHOD_PACKAGE_MANAGER. We have an integrated updater that will notify the user about a new version. If you set this compile constant, we will tell the user to update using their package manager.

Does Nix have naming scheme requirements? If not, is it possible to use nexusmods-app for the package name? I'm currently updating our docs and that will be the suggested package name for package maintainers.

Nixpkgs is flexible about names. I've renamed it. Thank you!

Since you're building from source, you should also set INSTALLATION_METHOD_PACKAGE_MANAGER. We have an integrated updater that will notify the user about a new version. If you set this compile constant, we will tell the user to update using their package manager.

I can't find it in the code. Did you mean one of these, or is it a coming feature? If it's the latter I'd rather put it on the to do list for later versions.

Since you're building from source, you should also set INSTALLATION_METHOD_PACKAGE_MANAGER. We have an integrated updater that will notify the user about a new version. If you set this compile constant, we will tell the user to update using their package manager.

I can't find it in the code.

It's in this PR: Nexus-Mods/NexusMods.App#1530

Typically we wouldn't set environment variables that have no effect on the targeted version.
I don't see any harm in setting it now, or adding a TODO comment referencing the PR. But it won't have any effect until the package is bumped to whatever version that PR lands in.

Description of changes
From the project:

a mod installer, creator and manager for all your popular games

Closes #270358.
Name recommended by @erri120 #270372 (comment).
Replaces the 7zz binary executable included with the upstream project for safety and reproducibility.
Requires an enableUnfree = true override to support RAR format mods.
Disables tests marked as requiring networking (actually requiring Nexus Mods API key according to Nexus-Mods/NexusMods.App#1222 (comment)), and one other tests which requires networking.
To do
* [x]  Adapt [upstream build instructions](https://github.com/Nexus-Mods/NexusMods.App/blob/main/.github/workflows/build-linux-pupnet.yaml)

* [x]  Run upstream tests successfully

* [x]  Fix [desktop entries](https://github.com/NixOS/nixpkgs/pull/270372#issuecomment-2056721955)

* [x]  Verify app use:

  * [x]  Nexus Mods login
  * [x]  Detects supported games (tested with Skyrim Special Edition)
  * [x]  Installs mods
  * [x]  Runs mods (_some_ mods load; [issue](https://github.com/Nexus-Mods/NexusMods.App/issues/1303))

* [ ]  (Optional) [Specify `NEXUSMODS_APP_USE_SYSTEM_EXTRACTOR=1`](https://github.com/Nexus-Mods/NexusMods.App/issues/1306#issuecomment-2095755699) once the next release is out

Things done
* Built on platform(s)

  * [x]  x86_64-linux
  * [ ]  aarch64-linux
  * [ ]  x86_64-darwin
  * [ ]  aarch64-darwin

* For non-Linux: Is sandboxing enabled in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))

  * [ ]  `sandbox = relaxed`
  * [ ]  `sandbox = true`

* [ ]  Tested, as applicable:

  * [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
  * and/or [package tests](https://nixos.org/manual/nixpkgs/unstable/#sec-package-tests)
  * or, for functions and "core" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)
  * made sure NixOS tests are [linked](https://nixos.org/manual/nixpkgs/unstable/#ssec-nixos-tests-linking) to the relevant packages

* [x]  Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)

* [ ]  Tested basic functionality of all binary files (usually in `./result/bin/`)

* [23.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2311.section.md) (or backporting [23.05 Release notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2305.section.md))

  * [ ]  (Package updates) Added a release notes entry if the change is major or breaking
  * [ ]  (Module updates) Added a release notes entry if the change is significant
  * [ ]  (Module addition) Added a release notes entry if adding a new NixOS module

* [x]  Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).

Priorities
Add a 👍 reaction to pull requests you find important.

0.5.3 is out. So I assume we can do NEXUSMODS_APP_USE_SYSTEM_EXTRACTOR now right?


SRTM results odd

I can now successfully import SRTM data! But in my initial tests around Anchorage and NYC so far, the results seem to have some problems. The issue might be on my side, still looking into it.

Lower Manhattan is apparently flat, except for this vertical strip with a very bizarre pattern of extreme steepness. These values are 20,000 % incline...
I'm seeing lots of elevation values of -32776m.
I'll check the raw output file to see if I'm messing up the import on my end.

Input:
input.txt
Output:
output.txt
Lot of empty lines in the output; I'm skipping those correctly now. But I also see -32768 show up quite a bit. This is one of the things totally blowing up my contour visualization.

Wild guess: is this similar to #13 -- SRTM encodes nodata in a certain way?

Oh my.  From a quick investigation, you've found a pair of very silly bugs:

The -32768 is indeed a nodata value.  The fix for #13 should have dealt with that (it simply treats anything deeper than Challenger Deep as automatically suspect data, rather than gambling on the exact nodata values being consistent between files), except that I didn't properly handle cases in which it's the last point in the line.
I broke the SRTM tiles downloader in such a way that when it downloads multiple tiles, they end up all being repeats of the NE-most one.  As it happens, I have SRTM tiles saved for Anchorage from before I broke that, so I get good data for Anchorage: elevation_anchorage.txt .  But I'm getting the same problem you see for Manhattan: everything W of -7 4 longitude is null because the wrong TIFF was downloaded, and those wacky slopes are all where the street grid falls off the edge of the world.

Neither of these things should be very hard to fix, but I probably won't get to them before Monday.

where the street grid falls off the edge of the world

(And no rush)

The thing giving me the greatest sense of urgency about these two bugs is how embarrassed I am by them....

I ended up working today so I can take some time off and get out on the bike tomorrow when it won't be blowing a gale.  The two commits I just made have fixed these bugs.  Manhattan is still remarkably flat, but I think that actually reflects reality.  I still get a few negative elevations from SRTM in it, but they're small numbers that I suspect reflect real source data issues rather than a bug:
nyc.txt


Preview does not take effect during rollback

Describe the bug

Preview does not take effect during rollback.
Steps to reproduce

Rollback a resource and preview.
Check the run result.

Result

It applied automatically when the plan is completed

Expected behavior

Does not apply automatically.

Environment

Walrus version: main 7bb79389ab0436969f4c4214e38918ee6c6e9070
UI version: dev-1be55ba

Additional context
Add any other context about the problem here.

Environment

Walrus version: main aba5070fb2d7f86be3c14bd419ee7be9a8b3d302
UI version: dev-8f22705

Test Result: pass


Modifying scopes and removing final in dependencies

I came across your project which modifies the scopes (private, public, etc.) and removes the final keyword from all dependency classes. Here are some points to consider:

Licenses: Depending on the license (MIT, GPL, etc.), modifying the code can have legal implications.
Author's Intentions: Design choices like final or private are often intentional and have specific reasons.
Liability: Modifications might introduce bugs or security vulnerabilities.
Ethics: Even if it's legal, is it ethically right to alter someone else's work in this manner?

It might be wise to reassess this approach or consult a software law expert.

Hey @flug,
Make sure you also post this on composer-patches. There are many more modification capabilities to vendor code there.

Licenses: Depending on the license (MIT, GPL, etc.), modifying the code can have legal implications.

Not my problem.

Author's Intentions: Design choices like final or private are often intentional and have specific reasons.

That's ok.

Liability: Modifications might introduce bugs or security vulnerabilities.

Not my problem.

Ethics: Even if it's legal, is it ethically right to alter someone else's work in this manner?

Yes.

It might be wise to reassess this approach or consult a software law expert.

I think Unfinalize works great. No need to reassess or consult anybody 👍

Distressing response, don't change, you're awesome...


Update README generated by plugin generator for CanJS 3.0

The AMD Use section shows how to set up Can 2.3 and jQuery:
<script src="require.js"></script>
<script>
	require.config({
	    paths: {
	        "jquery": "node_modules/jquery/dist/jquery",
	        "can": "node_modules/canjs/dist/amd/can"
	    },
	    packages: [{
		    	name: '<%= name %>',
		    	location: 'node_modules/<%= name %>/dist/amd',
		    	main: 'lib/<%= name %>'
	    }]
	});
	require(["main-amd"], function(){});
</script>

This should be updated for CanJS 3.0.

I think we should just remove that section, honestly, as setting up AMD with individual canjs packages is probably a huge pain.

Yeah, I agree. It's probably very uncommon.


[GLUTEN-4903][CELEBORN] Support multiple versions of Celeborn

What changes were proposed in this pull request?
Support multiple versions of Celeborn
#4903
How was this patch tested?
CI

Is it possible to use one module to be compatible with multi-version celeborn ? It is hard to maintain if we always create new module for new coming celeborn version. Besides, it's hard to work if someone use 0.3 branch but backport some 0.4 patch..

Is it possible to use one module to be compatible with multi-version celeborn ? It is hard to maintain if we always create new module for new coming celeborn version. Besides, it's hard to work if someone use 0.3 branch but backport some 0.4 patch..
cc @pan3793

@ulysses-you I do agree that we need to consider the case of  it's hard to work if someone uses the 0.3 branch but backports some 0.4 patch, and I will consolidate it into one.

===== Performance report for TPCH SF2000 with Velox backend, for reference only ====

query
log/native_4913_time.csv
log/native_master_03_14_2024_58a459bf4_time.csv
difference
percentage

q1
37.79
36.11
-1.683
95.55%

q2
23.97
23.82
-0.151
99.37%

q3
36.67
36.95
0.276
100.75%

q4
38.50
38.44
-0.065
99.83%

q5
72.26
69.68
-2.583
96.43%

q6
7.39
7.39
-0.007
99.91%

q7
84.01
82.24
-1.773
97.89%

q8
84.61
84.83
0.218
100.26%

q9
118.83
125.41
6.573
105.53%

q10
44.25
45.43
1.180
102.67%

q11
19.81
20.82
1.007
105.08%

q12
28.92
24.93
-3.990
86.20%

q13
46.80
47.32
0.520
101.11%

q14
21.03
20.91
-0.116
99.45%

q15
29.46
31.01
1.547
105.25%

q16
14.00
12.67
-1.333
90.48%

q17
100.03
100.39
0.368
100.37%

q18
143.23
141.86
-1.362
99.05%

q19
13.74
14.82
1.080
107.86%

q20
29.49
28.88
-0.602
97.96%

q21
227.55
226.25
-1.306
99.43%

q22
13.67
13.94
0.272
101.99%

total
1236.01
1234.08
-1.929
99.84%


fix: tweaks to the readme

Consolidated badge references into a single line for better readability.

:tada: This PR is included in version 1.0.7 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Implementation of overload for dpnp.arange

dpnp.arange implementation, for now we are doing the same way that we have done for other overloads.
A better approach would be to expose different API from dpctl, because the code is getting bloated and unmaintainable.

[x] Have you provided a meaningful PR description?
[ ] Have you added a test, reproducer or referred to an issue with a reproducer?
[x] Have you tested your changes locally for CPU and GPU devices?
[x] Have you made sure that new changes do not introduce compiler warnings?
[x] If this PR is a work in progress, are you filing the PR as a draft?

Superceded by #1144


Create publish_gh_pages.sh

Script to automate the commit to gh-pages to be run after a commit to the master branch

Coverage remained the same at 93.497% when pulling 367c168e26857e01eafa7add3a8886d831bccf18 on automate-gh-pages-shell-script into 99a1e075a4c26bdbd6127880436d03bba84013d8 on develop.

closing this myself as this is just a one-off shell script that is part of ci-skip.


Support for custom Excalidraw URLs

I'm using Excalidraw in a corporate environment, where we have an own installation. It would be cool if the extension would allow users to specify the Excalidraw URL.

What do you mean ? The extension does not communicate with the excalidraw server, everything is running locally.

Ah, okay. I had some issues running it where stuff didn't render and I assumed it was because it was trying to reach the server. I didn't consider that you can embed Excalidraw in an extension.


Purpose of value?

What is the purpose of the "value" I select in the query? Does it just serves as the selector where a point is created on the map (if the expression results into some true)?
Would it be possible to style (color or size) the map point based on the respective value?

My original idea was to color the track based on the value. Then I changed to using a continuous line with a single color and never removed the value.
It would be fairly easy to plot the positions as points, color depending on the value.


Restore tab selection after merging conflicts

Types of changes

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

Proposed changes

Restore tab selection when merging flows that have changed on the server. Right now the user will be send to the first tab.
Checklist

[x] I have read the contribution guidelines
[x] For non-bugfix PRs, I have discussed this change on the forum/slack team.
[ ] I have run grunt to verify the unit tests pass
[ ] I have added suitable unit tests to cover the new/changed functionality

Forum topic discussing this point: https://discourse.nodered.org/t/maintain-tab-selection-when-merging/51625

I tried to sign the CLA but got the following error:

Hi @GerwinvBeek
thanks for this - I think the basic logic is good.
As for the CLA, the initial problem is your commits are not associated with any email address that GitHub recognises, so the tool cannot verify who has made them. The commits have an<EMAIL_ADDRESS>address on them.
You'd need to either add that email address to your github profile (it lets you add multiple), or redo the commits from scratch using whatever email you do have registered.

@knolleary
Thank you! Adding my email worked indeed. Should be all good now.

Coverage decreased (-0.03%) to 67.679% when pulling 01e64be39dcc3d12fb323612c9b32a78a56fb672 on GerwinvBeek:dev into b427eca21f797393b84c8cf739969cfe5fb0c817 on node-red:dev.


Feature: Add in command usage for the help commands

Since we are getting to where we are doing commands that require input as to how they run I think it would be a good idea to add in a usage of how the command is supposed to be run.
Example for the standup command:
export const usage = `${COMMAND_PREFIX}${triggers[0]} <yesterday's message> || <today's message>`

This would go inside the standup.ts file.
Then inside the help command we could add another line below the description and print this out, as well as use it to send back the correct usage if someone was to enter the command incorrectly.

Great idea 👍

Hi @garretcharp, can we close this issue? I think you solved it with the PR #63 😃

Good spot @BOLT04 👍 . I think it was solved, the branch name matches the issue number too garretcharp:garret-59-Command-Usage. I am going to close. We can always reopen or create another one if @garretcharp things there is more to do 🤓


Fix skipping of tests in RemoteSession.Basic.Tests.ps1

PR Summary
Moved check if able to write to $PSHome as way to skip test to BeforeAll which already contained a check if running on Windows.
PR Context
As part https://github.com/PowerShell/PowerShell/pull/9279, tests were updated to be skipped if the test requires writing to $PSHome but is not able to.  However, these tests already had a skip mechanism in place so the additional check caused the test to run when it should have skipped.
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Change is not breaking
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

User-facing changes

[x] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[ ] N/A or can only be tested interactively
OR
[x] Make sure you've added a new test if existing tests do not effectively test the code changed

rebased the branch so all the failures will show up.

@SteveL-MSFT  there are still failures in these other tests:
https://powershell.visualstudio.com/PowerShell/_build/results?buildId=19571&view=ms.vss-test-web.build-test-results-tab

@TravisEz13 I'll review the tests from the other PR to make sure they are all covered

@TravisEz13, your last commit had 2 failures in PowerShell-CI-macos
Validate Set-ExecutionPolicy -Scope (Admin).-Scope LocalMachine is Settable, but overridden
Operation is not supported on this platform.
at <ScriptBlock>, /Users/vsts/agent/2.149.2/work/1/s/test/powershell/Modules/Microsoft.PowerShell.Security/ExecutionPolicy.Tests.ps1: line 1163
1163:             Set-ExecutionPolicy -Scope Process -ExecutionPolicy Undefined

Validate Set-ExecutionPolicy -Scope (Admin).-Scope LocalMachine is Settable
Operation is not supported on this platform.
at <ScriptBlock>, /Users/vsts/agent/2.149.2/work/1/s/test/powershell/Modules/Microsoft.PowerShell.Security/ExecutionPolicy.Tests.ps1: line 1175
1175:             Set-ExecutionPolicy -Scope Process -ExecutionPolicy Undefined

Created https://github.com/PowerShell/PowerShell/pull/9306 to verify failures work after https://github.com/PowerShell/PowerShell/pull/9304/commits/0e8be21e7c6e0fd5c0a4fc7cf3cafd595db7fb0d


Update virtualbox to 5.2

Simply update to latest version to be able to compile vboxdrv with linux 4.14 in my case.  https://www.virtualbox.org/ticket/17267
This require some change to driver build process. They must be cleaner way than copy the whole lib folder but I try to keep it simple.
For information, it may only require VirtualBox binary and check_module_dependencies.sh

Looks good but I haven't had the chance to test this yet!


Partially addresses issue #39

This is a cherry-pick of Ian A. Mason's commit to a fork at:
https://github.com/SRI-CSL/whole-program-llvm/commit/17f2e850defb10f2a0eb3263041e618793125870
It partially addresses the issue #39 by adding support for shared
libraries. Other metioned flags stay unsupported with this commit.

Thanks.  I haven't been following the SRI fork.  I should sit down and cherry pick everything that makes sense.
Sorry for the slow responses on this - I haven't actually had a chance to use this in about three years.

We use our version on a daily basis, so we have moved along a ways. We are probably just about to have another spurt to handle ASM better.  I will probably also build a pip package which will require
some major restructuring.  I may drop the "fork version" at that point.
Two fixes you should incorporate:

Use a more reliable  source for getting the apache. Most travis build fails are a result
of the wget. I currently use:

APACHE_VER=2.4.18
wget https://archive.apache.org/dist/httpd/httpd-${APACHE_VER}.tar.gz

Your mac version is broken.  See

ad89b678d950be941e03a73604681d2167d7c361
is our fork.

Sorry, I completely missed that big pull request somehow


Need new version of sqlite3

Need to update the version of sqlite3 so that other tilemill dependent packages can be updated (mbtiles). This is needed since there can only be one version of sqlite3 in tilemill overall (including the dependent packages).
In addition, there appear to be issues with the mocha tests that will need to be fixed.

Fixed.


#3867 Make explicit the failure to find a suitable ClientFactory

Motivation:
As described in #3867 , the error when a suitable ClientFactory could not be found is confusing.
Modifications:

add a nice error message to help debugging.

Result:

Closes #3867
User (me) happiness increases

Thanks, found and fixed the test failure.


Integrate lapin-futures with actix

Hi! I'm trying to integrate lapin-futures with actix-web to simultaneously handle subscription to rabbitmq queue, database connection and REST API to work with database.
I've succeeded only with such approach: start this code in the new thread with thread::spawn. If start this code without thread::spawn It ignores actix-web at all: only lapin-futures starts.
Is it possible to use lapin-futures in scope of actix actors?
My knowlege of actix, rabbitmq and rust in general is very basic therefore it's very possible that I miss something.

@thedodd, thanks for your answer. I've tried tokio::spawn(new_task). It works ok so far.

I think we can close this one then


Adding Logs module and Fix bugs

Adding Logs module
Adding exception handling.
Rename Os module -> device_os
Fix some bugs

@emirotin, @dfunckt I've updated yours comments. Please have a look

@emirotin , @dfunckt I've updated the comments again. Please have a look :)

Looks good, Trong. Great work!


"cargo fix --edition" claims no failure, but crate can not be built with edition = "2018"

Problem
I want to migrate the containers crate to the 2018 edition. I do "cargo fix --edition" in the crate root, which emits no error message, then write 'edition = "2018"' in Cargo.toml, but building the crate so fails.
Wanted outcome: Crate can be built with edition = "2018".
Actual outcome: "cargo build" fails.
Steps

git clone https://github.com/strake/containers.rs
git checkout a0a3e5df95057a015e6935a13f3a4b893329f39e
cargo fix --edition
<write 'edition = "2018"' in Cargo.toml>
cargo build

Possible Solution(s)

Notes
Seems to be due to name conflicts between the ptr crate and core::ptr. I am not sure how to bestly disambiguate, but "cargo fix" should at least emit an error message and fail.
Output of cargo version:
cargo 1.45.0 (744bd1fbb 2020-06-15)

Thanks for the report!  This is a known issue, tracked in https://github.com/rust-lang/rust/issues/53797.  For now you'll need to manually fix any remaining errors.


Support more resources in app foundation

#625

Can't see any obvious issues, but it's a big-ish CL, so I recommend having Xin look as well.

looking


iTunesMusic.popclipextz does not work on macOS 10.14.4 Beta

When using iTunesMusic.popclipextz:
-iTunes opens up correctly
-selected text does not appear in the iTunes search field

Old issue - closing. I assume this must be fixed :)