text:
[Need help with testing] Feature request: Apple Signin

Apple Signin is also a great option. Do we have plan for it? Or could I start a draft PR for it?

I don't have experience with Apple ID and its authentication flow.
I'll have to research it, but if Apple supports OAuth2 and could return the user email address, then I guess it shouldn't be very difficult to integrate it with PocketBase.
For now I'm not planning to work on this because a lot of other tasks already have piled in the roadmap, but if you want to pick it, you can see what changes are required from this closed Twitter OAuth2 PR - https://github.com/pocketbase/pocketbase/pull/118 (twitter oauth2 api currently doesn't support returning the user email address so it cannot be integrated with PocketBase).

Sure! I will give a try! Thanks for the reply!

This probably will need to be prioritized a little because I've recently learned from Twitter that the App store seems to have a requirement for "Apple Sign-in" if other 3rd party auth services are used:

Apps that exclusively use a third-party or social login service (such as Facebook Login, Google Sign-In, Sign in with Twitter, Sign In with LinkedIn, Login with Amazon, or WeChat Login) to set up or authenticate the user’s primary account with the app must also offer Sign in with Apple as an equivalent option.

With PocketBase v0.6.0+, we now support OAuth2 providers that don't return an email, so it shouldn't be an issue even if the Apple OAuth2 api doesn't return it.
If @imWildCat couldn't find the time to work on this, I'll pick the issue after the users management refactoring in https://github.com/pocketbase/pocketbase/issues/376

@ganigeorgiev thanks! Yeah, please take over this work.
I recently moved to a new country and am still in the process of settling down.

I researched and experimented with this a bit over the weekend, and it looks like the barrier to entry to even test this is having an active developer.
But besides that, it does look like Apple is following industry standards. Although instead of using the PKCE flow, they're using the hybrid flow. I believe this would need a rewrite of some sort, which would add technical debt to Pocketbase since it uses the former exclusively https://github.com/pocketbase/pocketbase/issues/55.
Also, I think it would be best to convert this issue into a discussion.
Resources for further study:

https://appleid.apple.com/.well-known/openid-configuration
https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple
https://developer.apple.com/forums/thread/118688?answerId=367664022#367664022
https://bitbucket.org/openid/connect/src/master/How-Sign-in-with-Apple-differs-from-OpenID-Connect.md
https://www.scottbrady91.com/openid-connect/implementing-sign-in-with-apple-in-aspnet-core
https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_rest_api
https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_js
https://developer.apple.com/videos/play/wwdc2019/706/

Not sure if anyone is onto this. If no one is currently working on it I'm more than happy to start working on an implementation.

@Benjii-lee Thanks, but keep in mind that PRs for new features are temporary "frozens" due to ongoing users management refactoring in #376 and it's better to wait because there will be a lot of internal changes (especially to the tests).

I've tried to look today into this, but as @jonafeucht mentioned, it seems that you need to enroll in the "Apple Developer Program" first in order to obtain an "App ID".
But unfortunately, I wasn't able to do any of this because when I clicked from web "Account > Enroll today" and tried to enroll as "Individual/Sole Proprietor", I got the following message at the final step:
Your enrollment in the Apple Developer Program could not be completed at this time.

I'm not sure what I've done wrong, but I'm not even allowed to change the user fields that I've entered before the final step.
Additionally, looking at the Apple guides, there also seems  to be a fee of $99 per year, but I'm not sure if this is only for when you want to submit something to the App store or it just an enrollment requirement?
In any case, I'll have to put this feature request "on hold" unless someone with an apple developer account decide to contribute.
@Benjii-lee if you want to help with this feel free to make a PR against the rc branch. For an example you could check the most recent Microsoft AD provider integration in https://github.com/pocketbase/pocketbase/commit/5298543ce486b0e4fe53dc1fc9a38b02313e22c5 (you can ignore the UI changes).

I have an active apple dev acct, how can I help?

@ganigeorgiev I'm still relatively new to Swift but I believe that registering the app with Apple to get a valid App ID requires payment for the developer account.
I'm working on a project right now that will require Apple Sign In and I have a developer account so I'll post updates here if I make any headway.

@benallfree, @deannemphos
To be honest, I'm not really sure what are all the requirements for the integration because I wasn't able to continue beyond the "App Developer Program" enrollment (and I'm still baffled why I'm getting the above error; there was no payment option or any other verification field other than the phone text message).
But anyway, for a guide I was using the official Apple docs - https://help.apple.com/developer-account/#/devde676e696.
This article also contains very detailed instructions what to do in the Apple dashboard - https://medium.com/identity-beyond-borders/how-to-configure-sign-in-with-apple-77c61e336003.
Supabase also has a great documentation on this in https://supabase.com/docs/guides/auth/auth-apple.
To summarize, we need to be able to allow "Sign-in with Apple" by entering only a ClientId and ClientSecret but the problem is obtaining them and creating the OAuth2 application in the Apple developer platform.

Decided to take a crack at it, the instructions you linked were as straightforward as it gets & worked like a charm. I managed produce valid tokens and got a successful login attempt to a test URL. As best as I can tell, adding an Apple ID login option to the admin dashboard should work much in the same way as any of the other registered OAuth2 providers.
For anyone looking to implement this before PocketBase officially adds support, the docs already cover handling user authentication from any OAuth2 provider and should work just fine for web apps. On the Apple Developer dashboard, make sure the return URL in your Services ID configuration points to the proper address and is using HTTPS otherwise it'll return an invalid address error.
As for Swift, I'm not positive on how to integrate PocketBase with the built-in "sign in with Apple" option but manually adding in OAuth authorization (which you'd have to do anyways for something like Google sign-in) and using the generated tokens would work the same even if it's a bit more effort.
Let me know if you need any help whenever this gets implemented, I'd be more than happy to generate valid tokens for you or anyone working it @ganigeorgiev!

@n1xx1 We can add a special helper endpoint for Apple OAuth2 if that's the only limitation, but please note that the email or name  fields are no longer required and as long as Apple returns an account/profile id we can create/associate it to a PocketBase user just fine.

Hi, I was evaluating pocketbase for my app (currently using Firebase), and really want to switch to pocketbase (mainly because of its extensibility as a framework). However, this is a blocking issue, as I am only using social sign in and Apple requires you to have SIWA to submit to the App Store in this case.
Some things I want to note:

Your enrollment in the Apple Developer Program could not be completed at this time.

I had this same error online. If you have an iPhone/iPad, can you try installing the Apple Developer app and doing enrollment from there? I was able to register my Apple developer account from within in the app but not on web.
Also, I am not sure how pocketbase works internally, but SIWA is a bit different than some other providers; for starters, you only get a user's name (if they supply it) on the first sign in. After that first sign in, the information you get each subsequent sign-in is extremely limited.

Is there anything we can do to help with the Apple sign in?
In my case, the absence prevents the use of pocketbase as a backend for iOS apps.

@sonovice Nothing has changed since my last comment in - https://github.com/pocketbase/pocketbase/pull/899#issuecomment-1384251733.
The suggested implementation in the related PR needs to be slightly refactored to minimize the settings.Settings breaking changes.
After the upcoming v0.13.0 release I'll try again creating a new Apple developer account will see if I can prioritize it.

Unfortunately I didn't have time to update the PR.

@n1xx1 No worries. I'll try to update it sometime next week.

@sonovice and anyone else who is following here, I've submitted a new POC implementation in https://github.com/pocketbase/pocketbase/pull/1954.
I need help with verifying that it works and will appreciate if someone got the time and give a try.
You can find steps how to run the changes in the #1954 PR description.

The Apple OAuth2 implementation from #1954 was merged in the develop branch and it will be available with the next v0.14.0 release.

@ganigeorgiev Sorry that I could not test it yet. I'll be back on Thursday and will give it a whirl.

authors: Benjii-lee GregoryConrad benallfree deannemphos ganigeorgiev imWildCat jonafeucht n1xx1 sonovice

repo: pocketbase/pocketbase


text:
bug-fix: Creating a new issue was crashing the app.

The title is quite self-explanatory, creating a new issue was crashing the app. There was another problem where the assignee wasn't being assigned.
Current behaviour:

New behaviour:

Looks good but could you squash the two last commits?

:+1: done

Thank you!

source: gharchive/pull-request

authors: Meisolsson joaocsousa

repo: pockethub/PocketHub

license_type: permissive

license_source: bigquery


text:
ZModem/XModem doesn't work.

ZModem/XModem doesn't work.

I confirmed the issue. I will fix it.

ZMODEM file transfer was re-implemented.
XMODEM has not been updated yet.
b07cbc712861cb163d33c35a57c83b802050b9ba...f61a279373423c0e9042db76faf8bd4a81ee23cc

It ways failed when I tried to upload big file(for example 50M).
SecureCRT implements ZModem in a good way, when I type "rz" or "sz" in terminal, the upload or download dialog will appear automatically.

Which connection type are you using? Telnet? SSH? or SerialPort?
Which version of operating system is running on the remote side?

I use ssh2.

Remote side OS inforamtion:
$uname -na
Linux 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m

When transfer failed, a dialog popup, says "Aborted by peer".

Thank you for the information !

You would have noticed that the transfer speed slows down soon after the file transfer was started.
It is caused by the flow control of the SSH protocol that is based on the "window" size.
Default window size of Poderosa is 4096 bytes, and it is too small to the ZMODEM protocol.
Small window size causes the delay of the data transfer, and sz may detect it as the transfer error.
Try larger SSH window size.
To change the SSH window size,
Open Tools > Detailed preference editor,
then edit the value of "org.poderosa.protocols.sshWindowSize".
16384 or larger value (like 65536) would improve the data transfer.
262144 would be enough to the binary data transfer like SCP or SFTP.
I have tested ZMODEM file transfer of the 500mb binary file with the large window setting, and the transfer was completed successfully.

Thank you for your response, but the solution seems not work for my case:(
I changed the sshWindowSize to 262144, but I still the the same error as before.

OK, I know why it fails.
If I open the XZModerm dialog and send a file to server, it will fail for large file, but succeed for small file.
I think the correct method should be:

run rz command from terminal;
and then open the XZModerm dialog and send file to server, large file will also be uploaded successfully.

Data resending was fixed.
Now TCP_NODELAY is used for the SSH or TELNET.
It will improve the file transfer rate. (and will reduce error on the remote side)
16528775af8ebe41704bd32851cbf9b21d939592...8a0a7818bd3e29bd89684562f12b79d73824a0ed

Thank you for the quick fix.

source: gharchive/issue

authors: minico poderosaproject

repo: poderosaproject/poderosa


text:
feat: add nodes argument in cluster creation #104

Resolves https://github.com/podman-desktop/extension-minikube/issues/104

@tony-sol you'll have to format the files (yarn format:fix)

Thanks for the PR @tony-sol this is very impressive !
I tried created a cluster with 3 nodes, and from the Kubernetes side, this is working nice

However on the Resources page we see the following:

I am not sure if that's alright, cc @benoitf technically they all are individual containers (node) running

But idk it feel a bit odd to me to see them like that 🤔

@axel7083
could you check the Labels on the containers and see the difference of Labels between these 3 containers
I guess we could enhance the filter and register only the main node
I think for now we check for
// search all containers with name.minikube.sigs.k8s.io labels
  const minikubeContainers = allContainers.filter(container => {
    return container.Labels?.['name.minikube.sigs.k8s.io'];
  });

authors: axel7083 benoitf tony-sol

repo: podman-desktop/extension-minikube

license_source: github-api


text:
Update images && rebuild compose'd

Is your feature request related to a problem? Please describe
I get frustrated that I cannot update my containers, or even just the images they were based on, without pulling afresh. This is probably an underlaying podman thing, but it's really annoying nonetheless.
I also get frustrated that (a) I can't RE-compose a composed stack, and (b) I can't export a compose reference file from the config of a running container.
Describe the solution you'd like
Wouldn't it be just super-cool to be able to pull down the latest image from a repo for those images tagged :latest? I think so. Even if I were just doing it manually on an image-by-image basis with the vertical-dot menu. Please, oh pretty please?
Also, I have a handful of composed services. It would just be supremely awesome to have a re-compose possibility. Auto- stop, tear down, rebuild with same options, restart. (Bonus points for building a compose.yml from a running stack that wasn't started from compose in the first place.)
Describe alternatives you've considered
podman-tui is a real thing. It doesn't let me do this stuff.
I could just learn the arcanities of the podman CLI and compose files, but I've been trying to wrap my head around docker/podman for YEARS and still can't figure it out.
Additional context
No response

Thanks for detailed feedback.

Wouldn't it be just super-cool to be able to pull down the latest image from a repo for those images tagged :latest? I think so. Even if I were just doing it manually on an image-by-image basis with the vertical-dot menu. Please, oh pretty please?

We have existing issues mentioning a similar need

https://github.com/podman-desktop/podman-desktop/issues/8028
https://github.com/podman-desktop/podman-desktop/issues/923

I made a POC long time ago https://github.com/podman-desktop/podman-desktop/issues/923#issuecomment-2464796944 to try to figure out a nice way to do it.

Also, I have a handful of composed services. It would just be supremely awesome to have a re-compose possibility. Auto- stop, tear down, rebuild with same options, restart. (Bonus points for building a compose.yml from a running stack that wasn't started from compose in the first place.)

I think I understand here. Those feature could be added to our compose extension, today it only manage the compose binary, but this extension could be enhanced to support the different behaviour you are mentioning.
Today, the list of actions on a compose group are the following

Restart Compose: this action only restart the containers (do not rebuild them)
Generate Kube: not related to compose
Deploy to Kubernetes: not related to compose

To be precise, the list of actions you would expect on any compose group of containers would be following

🔨 rebuild : this action would stop the containers, rebuild the images, and start everything
Auto-stop: ⁉ not sure I understood ?
tear down: We can already using the ⏹  icon ?

Podman Desktop extension system allow extensions to define custom actions for containers, images, pods, and compose group, learn more about it on our documentation developing/menu#menucontext-available

Might be related

https://github.com/podman-desktop/podman-desktop/issues/10406

I will look at those outstanding issues. Clearly, I searched on different terms which did not find them. Of course, if they haven't been acted upon yet, it doesn't so much matter.

Also, I have a handful of composed services. It would just be supremely awesome to have a re-compose possibility. Auto- stop, tear down, rebuild with same options, restart.

To be precise, the list of actions you would expect on any compose group of containers would be following
* `🔨 rebuild` : this action would stop the containers, rebuild the images, and start everything

* `Auto-stop`: ⁉ not sure I understood ?

* `tear down`: We can already using the ⏹  icon ?

Sorry, I think I wasn't clear in my description. I was describing the process of rebuilding a composed stack; not requesting auto-stop/teardown. Although, now I think of it, conditional start/stop would be interesting. It would be best implemented outside of Podman Desktop, however; and probably just directly call the CLI.
I may look into Watchtower for this update+rebuild functionality. They have an outstanding issue to support podman https://github.com/containrrr/watchtower/issues/1060, which is apparently waiting for a docker API which it relies on to be re-created in podman (v6 ?).

repo: podman-desktop/podman-desktop


text:
docs: update extension landing page on index

docs: update extension landing page on index
What does this PR do?

Simplifies the header
Updates paragraph with relevant information
Removes icon so it's more simplified / less spacing
Adds more links to documentation

Screenshot / video of UI

What issues does this PR fix or reference?

Closes https://github.com/containers/podman-desktop-internal/issues/316
How to test this PR?

N/A
Signed-off-by: Charlie Drage charlie@charliedrage.com

Merged AFTER https://github.com/containers/podman-desktop/pull/9804 as /extensions link is not valid yet.

issues: there are unused imports that need to be fixed before merging

Fixed, my rebase messed up when it was previously removed. Thanks!


text:
Make Test compatible with Swift 5.10 and below

My project uses Xcode 15.1 (Swift 5.9), but in preparation for the future introduction of Swift Testing, I am implementing tests using Swift Testing.
After updating the TCA version to 1.12.1, my tests started crashing.
The cause was that IssueReporting.Test and Testing.Swift of Swift 5.10 or lower (swift-testing 0.7.0 or lower) were not compatible and unsafeBitCase was failing.
Since it is still difficult to update the version of Xcode in my project, I am thinking of implementing IssueReporting.Test to be compatible with Swift 5.10 or lower.
I will create a PR soon.
Below is the environment when a test crashes in my project.

Xcode: 15.1
swift-composable-architecture: 1.12.1
swift-issue-reporting: 1.2.2

@sk409 Thanks for taking the time to look into this, but is there a reason you are attempting to use Testing in <Swift 6? Apple has already dropped support for it and the first stable release will only support Swift 6: https://forums.swift.org/t/dropping-swift-syntax-510-support/71473
Given this I don't think we want to bake in support for unsupported and any unstable version of Testing other than the most current.
If you are using Testing, can you use a stable version via the Xcode 16 beta, instead? Or is it possible for you to maintain your fork till you can upgrade your build setup?

@stephencelis

but is there a reason you are attempting to use Testing in <Swift 6?

My project has been using Swift Testing since Swift 5.9 to reduce the cost of migrating from XCTest to Swift Testing in the future.

If you are using Testing, can you use a stable version via the Xcode 16 beta, instead?

It is difficult to use Xcode16 at the moment because the stable version has not been released yet.
Even if a stable version is released, we plan to perform regression testing when upgrading to Xcode 16, but it is difficult to perform regression testing due to human resources, and it seems that it will be a while before we can introduce Xcode 16.

Or is it possible for you to maintain your fork till you can upgrade your build setup?

If you do not want to include support for unsupported and unstable versions of Testing, I can maintain my fork.

I think maintaining the fork is the best course for now, as I don't think folks are commonly maintaining a Swift 5.9 Testing suite, but thanks for sharing your solution! If there are any folks out there that need support for Swift 5.9 we can point them to this branch.

@stephencelis
I tried looking into other solutions.
Since IssueReportingTestSupport._currentTestIsNotNil references Testing.Test, I was able to prevent the crash by adding IssueReportingTestSupport to dependencies.
Although this is not the original usage of IssueReportingTestSupport, I will add IssueReportingTestSupport as a dependency to avoid crashes until I introduce Xcode16.

Since IssueReportingTestSupport._currentTestIsNotNil references Testing.Test, I was able to prevent the crash by adding IssueReportingTestSupport to dependencies.
Although this is not the original usage of IssueReportingTestSupport, I will add IssueReportingTestSupport as a dependency to avoid crashes until I introduce Xcode16.

Hi @sk409, typically if you include IssueReportingTestSupport in a library/target that is included in an App Target, the app will fail to load in the simulator. We have that documented at the bottom of this page. Are you not running into that?

@mbrandonw

typically if you include IssueReportingTestSupport in a library/target that is included in an App Target, the app will fail to load in the simulator. We have that documented at the bottom of this page. Are you not running into that?

The above error does not occur because I only add IssueReportingTestSupport to the test target dependencies.
thank you!

authors: mbrandonw sk409 stephencelis

repo: pointfreeco/swift-issue-reporting

license: MIT


text:
Refactoring the assignment order of the RunCommand function in validatorPod

In the validatorPod struct's RunCommand method, there has been a minor, yet significant change in the order of operations to ensure that the result field of the validatorPod struct correctly captures the full command result.
In the previous version of the method, the command result struct r was assigned to v.result before r.Stdout was populated with the command output. This meant that v.result always contained an empty string for its Stdout field, regardless of the command's actual output.
This has now been corrected by moving the assignment of r to v.result below the line where r.Stdout is populated. This ensures that the Stdout field of v.result correctly contains the command's output, and not an empty string.
This change is important because it provides accurate command output information when referencing v.result, allowing for better debugging and error handling in the usage of validatorPod instances. While it might seem like a small change, it can significantly improve the transparency and traceability of command execution within the application.

Description

Issue
Fixes #<issue_number>
Type of change
Please mark the relevant option(s):

[ ] New feature, functionality or library
[ ] Bug fix
[ ] Code health or cleanup
[ ] Major breaking change
[ ] Documentation
[ ] Other

List of changes

Change #1
Change #2
...

Testing

[ ] make develop_test; if any code changes were made
[ ] Docker Compose LocalNet; if any major functionality was changed or introduced
[ ] k8s LocalNet; if any infrastructure or configuration changes were made

Required Checklist

[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added, or updated, godoc format comments on touched members (see: tip.golang.org/doc/comment)
[ ] I have tested my changes using the available tooling
[ ] I have updated the corresponding CHANGELOG

If Applicable Checklist

[ ] I have updated the corresponding README(s); local and/or global
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added, or updated, mermaid.js diagrams in the corresponding README(s)
[ ] I have added, or updated, documentation and mermaid.js diagrams in shared/docs/* if I updated shared/*README(s)

LGTM ✅ Confirmed on my local that this populates the Stdout field properly.

@dylanlott For external contributors that are not core contributors (yet), we need to merge it ourselves after checks have passed.

Seeme like a harmless change, so we can merge it in.

repo: pokt-network/pocket


text:
Resuming after a crash

Hi,
My fMRI-prep crashed because my device ran out of space, is there anyway to resume it from where it stopped after I have fixed the issue with memory?
It takes roughly about 2 weeks to run through all 37 subjects with freesurfer and aroma on, is this normal? Is there anyway to optimise this?
Is there anyway to implement a memory estimation algorithm to calculate the amount of memory needed for the job, and check if the system has enough memory at the start of the job?  This is just a suggestion though, I do not know enough about coding to know if it is feasible.
Thank you!
Regards,
Vae

I am exactly in this situation too.
The first solution I though of was to use the --participant_label option to specify the rest of my participants to run. However, as far as I understand, this option isn't available when using the Docker wrapper (fmriprep-docker). Using fmriprep without container (with a manually prepared environment) would work, but I'm sure there is a better solution, like writing a custom Docker wrapper that would allow the --participant_label option.
Either ways, it would be great to have an option that would automatically detect subjects for which the analysis is already done and have fmriprep to skip those runs...

The first solution I though of was to use the --participant_label option to specify the rest of my participants to run. However, as far as I understand, this option isn't available when using the Docker wrapper (fmriprep-docker). Using fmriprep without container (with a manually prepared environment) would work, but I'm sure there is a better solution, like writing a custom Docker wrapper that would allow the --participant_label option.

I am using the Docker container version, since I had trouble setting up fMRIprep from scratch. I hope will be an option to restart my analysis from where I have left off.

Either ways, it would be great to have an option that would automatically detect subjects for which the analysis is already done and have fmriprep to skip those runs...

Yes exactly I agree with this!!

I think the following workaround should work. First define some variables as follows:
BIDS_ROOT="/path/to/your/bids/data"
OUTPUT="/path/to/your/results"
FS_HOME="/path/to/your/freesurfer_home"

In my case,
OUTPUT="$BIDS_ROOT/derivatives"
and
FS_HOME="/Applications/freesurfer"
Next define a list containing the labels (omitting the "sub-" prefix) of the subjects you'd like to run, for instance if fmriprep has crashed for sub-001, sub-042 and sub-666, then you need
PARTICIPANTS="001 042 666"
Now run the following
docker "run" -ti --rm \
  -v "$BIDS_ROOT:/data" \
  -v "$OUTPUT:/output" \
  -v "$FS_HOME:/fs_home" \
  "poldracklab/fmriprep" \
  "/data" "/output" "participant" --fs-license-file "/fs_home/license.txt" --participant_label $PARTICIPANTS

Of course you should make sure to have the freesurfer license.txt file in the FS home folder, but I guess you already have this set up properly.
As you can see this tells docker to run fmriprep with the --participant_label option enabled.
I hope this will work on you side, let me know if I can help.
Disclaimer: I am really not an expert (neither in Docker or fmriprep) so what is above is only a suggestion. It is currently running on my computer so I haven't checked the final result yet.

Hi @Heechberri and @antotorov.

My fMRI-prep crashed because my device ran out of space, is there anyway to resume it from where it stopped after I have fixed the issue with memory?

If you have specified a working directory with -w that is still around, then yes. Just re-run with the same parameters. The pieces that have already run will be found and reused.

It takes roughly about 2 weeks to run through all 37 subjects with freesurfer and aroma on, is this normal? Is there anyway to optimise this?

If you have access to HPC system, then submitting one job for each subject is a typical parallelization strategy. If you only have your own server, you can run them all in one big fMRIPrep call, but you're very likely to run into disk constraints if you want to preserve all of the intermediate files for each subject.
2 weeks doesn't seem very unreasonable to me on a single system. That's on the order of 2-3 subjects a day, which is about as fast as you can hope if you're running FreeSurfer.

Is there anyway to implement a memory estimation algorithm to calculate the amount of memory needed for the job, and check if the system has enough memory at the start of the job?

We do try to do this for the individual jobs, and rely on Nipype's scheduler to keep simultaneous jobs from consuming excessive memory. That said, with 37 subjects' workflows all in a single job, the controller thread itself will begin to consume a lot of memory that will be unaccounted for.

The first solution I though of was to use the --participant_label option to specify the rest of my participants to run. However, as far as I understand, this option isn't available when using the Docker wrapper (fmriprep-docker).

All options available to fmriprep are available to fmriprep-docker. The options that are listed here are ones that are added, modified or validated by the wrapper. This could be clearer in the documentation... It looks like we updated them in the Installation page, but not usage:

fmriprep-docker accepts all of the typical options for fmriprep, automatically translating directories into Docker mount points.

@antotorov

docker "run" -ti --rm
-v "$BIDS_ROOT:/data"
-v "$OUTPUT:/output"
-v "$FS_HOME:/fs_home"
"poldracklab/fmriprep"
"/data" "/output" "participant" --fs-license-file "/fs_home/license.txt" --participant_label $PARTICIPANTS

I see, thanks for your help, I will try it. Does this re-run all the selected participants from scratch? I have already finished all the freesurfer steps and got stuck at the very last step of processing some subjects (13/37) for aroma, it will be good if I can pick up the subjects from where they had been left off.
@effigies

If you have specified a working directory with -w that is still around, then yes. Just re-run with the same parameters. The pieces that have already run will be found and reused.

May  I ask what is the difference between fmriprep-docker and running from docker? I had problems downloading fmriprep-docker. This is what I have ran currently:

docker run -ti --rm
-v $inputdir:/data:ro
-v $local_outputdir:/fMRI
-v /Applications/freesurfer/license.txt:/opt/freesurfer/license.txt poldracklab/fmriprep:latest
/data /fMRI
participant
--error-on-aroma-warnings --use-aroma

And since I did not stipulate the -w the first time round, so probably I would not be able to continue the partially finished subjects?  If this time I added  -w  $local_outputdir:/fMRI  and re-ran the partially finished subjects with completed freesurfer files, would it be able to make use the freesurfer files already previously generated?
Thank you for all your help!!

fmriprep-docker is just a wrapper that translates from an fMRIPrep command to a docker command, doing any mounting you need for you.
And no, if you didn't mount a working directory, you won't be able to resume. Using --participant-label to specify incomplete subjects is your best bet.
To mount a working directory use -v $local_wd:/scratch and then among the fMRIPrep arguments, add -w /scratch. Be careful, because -w is also a docker flag.

I see thank you!
One last question, just to confirm that I understood the manual

[Surface processing will be skipped if the outputs already exist. In order to bypass reconstruction in fMRIPrep, place existing reconstructed subjects in /freesurfer prior to the run. fMRIPrep will perform any missing recon-all steps, but will not perform any steps whose outputs already exist.]

(https://fmriprep.readthedocs.io/en/stable/workflows.html?highlight=freesurfer#surface-preprocessing)
This means if I re-run the incompleted subjects with the full freesurfer directory and the tag recon-all, it will skip the freesurfer steps but do surface registration for their fmri data?

Hi all,
@effigies,

All options available to fmriprep are available to fmriprep-docker. The options that are listed here are ones that are added, modified or validated by the wrapper. This could be clearer in the documentation... It looks like we updated them in the Installation page, but not usage.

Ok I see, I actually saw that but I was really confused because typing fmriprep-docker -help returns what's in the Usage section of the documentation.
@Heechberri

I see, thanks for your help, I will try it. Does this re-run all the selected participants from scratch? I have already finished all the freesurfer steps and got stuck at the very last step of processing some subjects (13/37) for aroma, it will be good if I can pick up the subjects from where they had been left off.

It re-runs all the remaining participants from scratch. If this suits your needs you could add the --fs-no-reconall option, which will have fmriprep to skip the freesurfer recons.

@effigies

If you have specified a working directory with -w that is still around, then yes. Just re-run with the same parameters. The pieces that have already run will be found and reused.

Hi Chris, quick question about this — what happens if you've updated fMRIprep (in my case by building the new version's singularity container) but there are intermediate files from a previous fMRIprep version left in the working directory? If one of the preprocessing steps has changed with the new version, will the corresponding pieces be discarded automatically, or should I manually clear the working dir / scratch when updating fMRIprep? Thanks!

Jeroen

It's a bit ambiguous, unfortunately. Some times you can reuse, and you should feel free to try, but if it fails, the first thing I would try is with a clean working directory.

OK, thanks for the info.

Closed in favor of a new issue requesting better documentation.

authors: Heechberri antotorov effigies jeroenvanbaar oesteban

repo: poldracklab/fmriprep


text:
Help a noob trying to use unicode in his bar

Hi, I'm trying to display some of the icons from FontAwesome, but I have trouble copy&pasting them, so I tried to use the unicode instead. I can't get the icon to show up, only the code, I've tried fx. \f026, \uf026 etc.
Is there a way to do this, or can you point me in the right direction?
Thanks in advance,
Martin

Adding the hex codes will not work.
If you have problems copying icons but know the hex code, you can run the following:
echo -ne "\uf026" | xclip -selection clipboard

This will copy the symbol to your clipboard and you can paste it into the lemonbuddy config (although you probably won't see it in the editor, only on the bar)
If the copying doesn't work, you may need to replace clipboard with primary or secondary

Okay, thanks for the quick reply!

Tell me if it works for you. Non copyable characters are a real pain

Hey man, it worked! thanks alot.

In cases like this what you could do is have a config file with your text symbols that you source before you (re)start the bar that looks something like this
export VOL1="$(echo -e "\uf026")"

And in the lemonbuddy config you can the reference that icon like so
ramp-volume-0 = ${env:VOL1}

Where are i can copy font symbol for siji for example?

authors: fredcox malynome patrick96

repo: polybar/polybar


text:
PMID:25501814

a type of
abnormal protein localization to mitotic spindle pole body
premature dispersal of protein from the mitotic SPB
(this is when a protein which localizes to the SPB for a period of mitosis leaves early, I think there is a standard way to word this but I couldn't find it)

Can you define a difference from "decreased duration of protein localization to mitotic spindle pole body"? If not, I'll add that -- it would be straightforward to add with a logical def.

Can you define a difference from "decreased duration of protein localization to mitotic spindle pole body"? If not, I'll add that -- it would be straightforward to add with a logical def.

That's it 'increased duration'!

That's it 'increased duration'!

so it is 2 terms I need
decreased duration of protein localization to medial cortical node
and
decreased duration of protein localization to mitotic spindle pole body
decreased protein localization to medial cortical node
--

so it is 2 terms I need
decreased duration of protein localization to medial cortical node
and
decreased duration of protein localization to mitotic spindle pole body
decreased protein localization to medial cortical node
--

decreased duration of protein localization to mitotic spindle pole body FYPO:0007574
decreased duration of protein localization to medial cortical node FYPO:0007575

decreased duration of protein localization to mitotic spindle pole body FYPO:0007574
decreased duration of protein localization to medial cortical node FYPO:0007575

repo: pombase/fypo


text:
New PomBase Twitter background image

I'll like to add a higher resolution header image for PomBase: https://twitter.com/PomBase
Any suggestions?

What dimensions? I caan crop something out of one of Silke's micrographs to match the website header.

Something like 1500x500 or in that ratio would be best.  Cheers.

like this? small example here; if you like it I'll stick the full-size thing in assets, or wherever else you want it.

Thanks, that would be great.  Yep, let's put it in the assets directory.

OK, done.

Thanks.  Looks great.

repo: pombase/website


text:
regenerate static GO slim page

http://www.pombase.org/browse-curation/fission-yeast-go-slim-terms
(I don't think I opened a ticket for this yet?)
So basically its just each GO slim term and  the total number with a  link to the ontology term page.
It might be good to add this for demoing, and so we don't need to link this to the old site, which will link to the old ontology pages.
There are 2 additional links at the bottom.
Proteins with a biological process annotation not covered by the slim (gene count: 214)
Proteins with no GO slim or biological process annotation (gene count: 795)
(Not that in the current release the 214 number is overinflated because the annotations to "mitochondrial translation" are in here. I think this number is now down to around 115....

It should be straightforward to generate the table automatically and embed it in Markdown docs page.

https://github.com/pombase/website/issues/278
To tie up the slims, once this page is in place we should link to it from the slim section of the gene pages.
We should change the help link to go directly to the documentation.

I've started copying the PomBase v1 GO slim docs page:
http://pombase2.bioinformatics.nz/browse-curation/fission-yeast-go-slim-terms
It's only a start - most links don't work and the gene count column is missing.

URL doesn't work for me...

URL doesn't work for me...

Sorry, should be fixed now.

Looking good so far.
good enough to link to from here : "Biological process overview" in process section

good enough to link to from here : "Biological process overview" in process section

I've added the link.

This is the actual GO slim page, not just "help"
("Help" is linked from the GO slim itself)
I think we should hyperlink the phrase "Biological process overview (GO slim)"
to the slim.
and not say "help" here
(we can add various help links later).

[ ] small fix for slim, add a space between the GO  ID and the esyN links

I think we should hyperlink the phrase "Biological process overview (GO slim)"

Done.
Is there anything else to do to the slim page?

all in
https://github.com/pombase/website/issues/316

authors: ValWood kimrutherford


text:
annotation table sorting

On gene pages, allow the annotation tables to be sorted on any column, ascending or descending (default sorting as at present, i.e. alphabetical by ontology term name or interacting gene name).
Later maybe look into doing "sort by column A, then by column B" kind of thing.

Superseded by:
https://github.com/pombase/website/issues/93
?
(proposed filtering)


text:
いいところ診断の結果に優しさを追加したい

以下の結果を追加したい
'{userName}のいいところは優しさです。あなたの優しい雰囲気や立ち振る舞いに多くの人が癒やされています。'

これから対応します。

d24cd7f で対応されました。

repo: pommrila/assessment


text:
Windows, NodeJs 12 error: RangeError [ERR_UNKNOWN_MODULE_FORMAT]: Unknown module format: esm

Reproduce:
After
git clone ...
npm config set script-shell "C:\Program Files\Git\bin\bash.exe"
cd tactics
npm install
npm start

I'm running into this error msg:
λ npm start

> tactics@0.2.6 start C:\hij\github\tactics
> NODE_ENV=development webpack --watch --progress --hide-modules & node --experimental-modules --loader ./resolver.mjs --require dotenv/config src/server.js || true

(node:13796) ExperimentalWarning: The ESM module loader is experimental.
(node:13796) ExperimentalWarning: --loader is an experimental feature. This feature could change at any time
internal/modules/cjs/loader.js:830
      internalBinding('task_queue').triggerFatalException(
                                    ^

RangeError [ERR_UNKNOWN_MODULE_FORMAT]: Unknown module format: esm
    at Loader.getModuleJob (internal/modules/esm/loader.js:163:15)
    at async Loader.import (internal/modules/esm/loader.js:127:17)

C:\hij\github\tactics (master -> origin) (tactics@0.2.6)
λ  10% building 0/0 modules 0 active
webpack is watching the files…

Hash: b3a08d73a6508f84301d
Version: webpack 4.33.0
Time: 6046ms
Built at: 2019-06-10 13:39:03
             Asset      Size       Chunks                    Chunk Names
  chaos-app.min.js  25.8 KiB    chaos-app  [emitted]         chaos-app
classic-app.min.js  26.2 KiB  classic-app  [emitted]         classic-app
 createGame.min.js   184 KiB   createGame  [emitted]         createGame
faceoff-app.min.js  25.4 KiB  faceoff-app  [emitted]         faceoff-app
   game-app.min.js  36.4 KiB     game-app  [emitted]         game-app
    tactics.min.js  4.96 MiB      tactics  [emitted]  [big]  tactics
         ww.min.js   830 KiB           ww  [emitted]  [big]  ww
Entrypoint tactics [big] = tactics.min.js
Entrypoint faceoff-app = faceoff-app.min.js
Entrypoint chaos-app = chaos-app.min.js
Entrypoint classic-app = classic-app.min.js
Entrypoint game-app = game-app.min.js
Entrypoint ww [big] = ww.min.js
Entrypoint createGame = createGame.min.js

Workarround: Use NodeJS 10.

I committed a fix to the "nodeV12" branch.  I am not quite ready to move deployed environments to Node V12, so I'm not merging it into the master branch yet.  In the meantime, I'm resolving this issue since anybody who wishes to use Node V12 may do so by merging the nodeV12 branch into your fork.

repo: pongstylin/tactics

license: Unlicense


text:
Toast backgroundColor transparency not working

I can't get the background color to have some transparency.
e.g.: using
backgroundColor: Colors.black12
I expect to get a bg color with just 12% of opacity, however it's just full opaque.
Is there a way to add some transparency to the background color of the toast?

I have same problem of backgroundColor with opacity

I've also tried to do this the "normal" way without success. It always goes to the plugin default black.
I think what we need is here Toast with buildcontext.
We can give it our own child to render as the toast.

authors: Rammehar abianche severance88

repo: ponnamkarthik/FlutterToast


text:
Exception with targetSdkVersion 30

Thanks for a great widget!
I'm running into a problem when I change the targetSdkVersion from 29 to 30 in android/app/build.gradle.  This simple app will demonstrate the problem:
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: RaisedButton(
            child: Text('Show Toast'),
            onPressed: () => Fluttertoast.showToast(msg: "This is a toast message."),
          ),
        ),
      ),
    );
  }
}

This is the error that is generated:
kotlin.KotlinNullPointerException
	at io.github.ponnamkarthik.toast.fluttertoast.MethodCallHandlerImpl.onMethodCall(MethodCallHandlerImpl.kt:66)
	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
	at android.os.MessageQueue.nativePollOnce(Native Method)
	at android.os.MessageQueue.next(MessageQueue.java:335)
	at android.os.Looper.loop(Looper.java:183)
	at android.app.ActivityThread.main(ActivityThread.java:7656)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Fixed 7.1.5 please check

authors: jonbhanson ponnamkarthik


text:
Headers support

Would  be nice to be able also to add headers to the requests, both at initialization, shared between all the requests and at request level.
This would enable the possibility to call authenticated endpoints.

Would be nice to be able also to add headers to the requests, both at initialization, shared between all the requests and at request level. This would enable the possibility to call authenticated endpoints.

OK. I'll add it later.

Add it #46 and release v0.1.14

Thank you very much. When do you plan to release it to pypi?

Thank you very much. When do you plan to release it to pypi?

done

Thank you very much. When do you plan to release it to pypi?

And if it's helpful to you, stars it please. thank you

authors: andrearossiavanade ponytailer

repo: ponytailer/pydantic-client


text:
Promise should reject with Error object

Current behaviour:
When validation fails, Promise is rejected with array object.
Expected behaviour
Instead, it should be rejected with Error object. Node happen to complain about this.
Notes
Rejecting with Error object would probably cause breaking change.

There is a difference between an error and an exception. The error object is created when an exception is thrown and developers are tend to deal with them.
Whereas validation falls in errors category, where you need a sensible object/array with custom messages, so that you can let people understand and act upon them.
The Promise spec may says that rejection should have error object, but specs are not written keeping business logic in mind.

I totally agree with you...
What I was talking about is something like this...
Custom validation error object
function ValidationError(errors) {
  this.name = 'ValidationError';
  this.message = 'fix you things';
  this.stack = (new Error()).stack;

  this.errors = errors;

  this.getAll = function() {
    // return all
  }

  this.getForKey = function(key) {
    // return all errors for given key
  }

  this.getFirstForKey = function(key) {
    // return first error for given key
  }
}

ValidationError.prototype = Object.create(Error.prototype);
ValidationError.prototype.constructor = ValidationError;

Validation fn
function validate(data, schema, messaged) {
  return new Promise((resolve, reject) => {
    if (fails) {
      reject(new ValidationError(errArray));
    }

    resolve(true || orWhatever)
  });
}

Handle validation
try {
  await validate(data, rules, messages);
} catch (valErr) {
  console.log(valErr.getAll());
}

Pros

satisfies Promise rejection by providing instance of Error as rejection reason. Node won't complain anymore (not sure whether browser does complain at all)
easily allows things like getAll, getAllFor, getFirstFor, ... without bloating validator itself (yep, could be added via helper functions)

Cons

introduces little overhead.

Ideally yes, but I am planning to add support for error formats, where you can define a format in which errors should be received.
Not sure if it will be possible to always reject with an error, since it will be dependent upon the formatted your are using.

I totally agree with @Andreyco. Is the suggested change merged. Can I handle validation like this now.
try {
  await validate(data, rules, messages);
} catch (valErr) {
  console.log(valErr.getAll());
}

authors: Andreyco ansarizafar thetutlage

repo: poppinss/indicative


text:
Pulse migrations at non-integer time values

Originally posted by @sgravel in https://github.com/popsim-consortium/demes-spec/issues/91#issuecomment-874388074
I've edited the question following an answer by @molpopgen there.
I  have a question about the specification for pulse migrations at non-integer time values. Consider the model
time_units: generations
demes:
  - name: X
    epochs:
      - end_time: 1000
        start_size: 2000
  - name: A
    ancestors: [X]
    epochs:
      - start_size: 2000
  - name: B
    ancestors: [X]
    epochs:
      - start_size: 2000
  - name: C
    ancestors: [X]
    epochs:
      - start_size: 2000

pulses:
  - source: A
    dest: B
    proportion: 0.3
    time: 10
  - source: C
    dest: B
    proportion: 0.3
    time: 10.1

The possibly ambiguous value is what to do with the continuous time 10.1 in the last line for a discrete generation simulator. From an answer by @molpopgen at the above issue, such pulses should probably be interpreted as happening at t=round(10.1). That seems reasonable in most cases, but is inconvenient for using demes in TRACTS.
TRACTS implements a discrete time model where recent migration pulses from different source populations can co-occur in a given generation, and fractional generations do matter.
If I chose selfishly, I would like a specification such that:
1-The Wright-Fisher and Kingman models are comparable if simulated from the same model according to specification (i.e., at the end of generation 10, both models have the same proportion of lineages tracing back to sources A and C).
2-Both models work and are somewhat continuous in the continuous time parameter.
In TRACTS, I had handled this issue by interpreting a pulse at a non-integer time t as a pulse spread over two generation, ceil(t) and floor(t), with proportions at each generation computed such that proportion of lineages that can be traced back to the pulse are as required by the pulse proportion.
However, this would not give directly comparable results to Kingman’s in the model above. To achieve consistency, one would need to similarly split pulses under Kingman to achieve compatibility.  This is, admittedly, quite ugly.
A (small) benefit is that you would get continuity in the time parameter, so that the following two models would be similar but distinct:
time_units: generations
demes:
  - name: X
    epochs:
      - end_time: 1000
        start_size: 2000
  - name: A
    ancestors: [X]
    epochs:
      - start_size: 2000
  - name: B
    ancestors: [X]
    epochs:
      - start_size: 2000
  - name: C
    ancestors: [X]
    epochs:
      - start_size: 2000

pulses:
  - source: A
    dest: B
    proportion: 0.3
    time: 10.09
  - source: C
    dest: B
    proportion: 0.3
    time: 10.1

would be similar to
time_units: generations
demes:
  - name: X
    epochs:
      - end_time: 1000
        start_size: 2000
  - name: A
    ancestors: [X]
    epochs:
      - start_size: 2000
  - name: B
    ancestors: [X]
    epochs:
      - start_size: 2000
  - name: C
    ancestors: [X]
    epochs:
      - start_size: 2000

pulses:
  - source: A
    dest: B
    proportion: 0.3
    time: 10.1
  - source: C
    dest: B
    proportion: 0.3
    time: 10.09

I don't really expect that you will want to change the Kingman coalescent specs to accommodate this somewhat niche case, and I think the rounding solution suggested by @molpopgen makes sense in most applications.
Maybe I'll just use have to use demes off-spec for this particular case, unless anyone has another idea.

I don't really know what to say about this, as I can't see whether it simplifies things or makes everything more complicated... But after thinking about your examples, it seems we've already got some awkwardness between the Kingman and Wright-Fisher cases due to rounding.
Suppose we write down pulses with the more recent pulse first.
pulses:
  - {source: A, dest: B, proportion: 0.3, time: 10}
  - {source: C, dest: B, proportion: 0.3, time: 10.1}

In the continuous-time setting, the pulse from C->B is more ancient so it occurs first (forwards in time).
But in the discrete-time case, the behaviour could depend on when the rounding is done. If rounding is done before looking at pulse order, then both pulses have time 10. A->B is written first, so it "wins" and is applied first (forwards in time), which is the opposite to the continuous-time behaviour!
I think this problem also affects how pulses are resolved in your suggestion above, @sgravel? The exact resolution order would need to be very clearly described.

Yeah, I don't think there is a perfect solution here.
In the example you give, you could have the convention that the order of pulses is determined prior to rounding (so that C->B occurs first). This is reasonably natural if somewhat prone to bugs.
In the splitting approach, one approach would be to set the proportions at generation 10 from the overall proportions and times (e.g., 0.27 = 0.3 * (1-0.1)):
                         A->B       C->B
generation 10          0.3            0.27
generation 11              0            0.07

and then adjust generation 11 so that the residual proportions after the two generations are 0.3. For example, 0.27 + 0.07*(1-0.3-0.27) = 0.03. This is also bug prone and likely has a few corner cases.
It also means that two pulses occur at the same time,  the contributions would add up, which is not what had been decided previously.
If we want to be flexible, would it be possible to have a default which focuses on the simplest possible behaviour applicable to most cases (probably rounding as per @molpopgen), and an alternate resolution model specified in metadata?

This makes me think that we want both the YAML parser and the builder to apply a stable sort (that preserves order of implementation of pulses occurring at the same time) on the pulse times before emitting the demes Graph. Then if a program that works in discrete time and decides to round will be guaranteed (as long as they don't reorder events) the consistent sequential order of those mass migration events.
The issue of how to ensure consistency between continuous time and discrete time models is not something we can really resolve here, I think. And different simulators maybe should be allowed to have some wiggle room in how non-integer times get translated to discrete generations. I think the best we can impose, as Simon said, is that

ancestry proportions are the same across different implementations and software, and
the timing of the pulses should occur at time < 1 generation away from when specified in the model.

The first point should be strictly followed, and the second we should just expect that it's "close enough", and rounding as in fwdpy11 or bracketing as in tracts should both be acceptable solutions.

This makes me think that we want both the YAML parser and the builder to apply a stable sort (that preserves order of implementation of pulses occurring at the same time) on the pulse times before emitting the demes Graph. Then if a program that works in discrete time and decides to round will be guaranteed (as long as they don't reorder events) the consistent sequential order of those mass migration events.

Yes, I think you're right, we should apply a stable sort when parsing (before any rounding could be done downstream).

The issue of how to ensure consistency between continuous time and discrete time models is not something we can really resolve here, I think. And different simulators maybe should be allowed to have some wiggle room in how non-integer times get translated to discrete generations. I think the best we can impose, as Simon said, is that

ancestry proportions are the same across different implementations and software, and
the timing of the pulses should occur at time < 1 generation away from when specified in the model.

The first point should be strictly followed, and the second we should just expect that it's "close enough", and rounding as in fwdpy11 or bracketing as in tracts should both be acceptable solutions.

That's a nice pragmatic solution. In my mind, the desired behaviour for TRACTS is entirely consistent with the "spirit" or "intention" of the model. And given the difficulty in exactly specifying what happens when continuous times are converted to discrete times, we should probably accept a little wiggle room here.

Agree that wiggle room within a generation should be acceptable. However, the bracketing approach I described will produce different ancestry proportions than those in a sequential model. With two pulses each with proportions 0.5 and both at the same time, the bracketing approach I described would produce a total replacement of 1, compared to 0.75 in the sequential mode.
I don't think this can be resolved easily, because in the current specification, the model is discontinuous with respect to the pulse times (when two pulses switch ordering). This is reasonable behaviour under a continuous time model, but I currently need continuous behaviour for optimization in a discrete model.
Right now the only way I see to address all the cases is to have two kinds of pulses: a sequential pulse that deletes all that occurred earlier, and a concurrent pulse that co-occurs and adds to other pulses. This would allow users more flexibility to specify the models more transparently and without having to reverse engineer rates, but I also realize it is more overhead for a corner case.
Before I keep harping on about this, I'll go ahead and implement the TRACTS-demes interface more fully, in case I can find a workaround.

I don't think there's an easy way around this issue, where the current model implementation in tracts plays nicely with the demes specification. I also think that you don't want to go "off-spec" in the tracts-demes implementation, because one of the goals will be to be able to take models output by tracts and simulate under that model in other software that supports tracts. If you implement a different understanding of how pulses that occur around the same time interact, that will lead to a lot of downstream headaches.
One solution, that isn't perhaps ideal for the flexibility that tracts currently provides, is when using demes to specify the input for tracts inference, you impose that the times of those pulse events can vary but the relative order must remain consistent and pulse events are applied sequentially. When you output the best fit model from tracts, you will want it to be compatible with the sequential mass migration approach in any case.
The discontinuity of pulses when they switch order is something that also occurs in moments or dadi inference as well, and it is annoying when the optimizer gets stuck because of it. It might just be that if you want to specify a model that allows the order of pulses to swap around, the input model is specified as tracts is currently set up and just the static best fit output can be given to meet the spec requirements of sequential pulses.

With two pulses each with proportions 0.5 and both at the same time, the bracketing approach I described would produce a total replacement of 1, compared to 0.75 in the sequential mode.

In the demes spec, this would have to be proportion 1 from the first deme, and then 0.5 from the second to get full replacement.
An alternative model implementation, if you want to impose that multiple pulse occur at the same time and the proportions are cumulative instead of applied sequentially, is to create an additional deme with the relevant ancestors and proportions:
demes:
- name: A
  epochs: {start_size: 100}
- name: B
  epochs: {start_size: 100}
- name: C
  epochs: {start_size: 100}
- name: A2
  ancestors: [A, B, C]
  proportions: [0.4, 0.3, 0.3]
  start_time: 10
  epochs: {start_size: 100}

The implementation where a child deme has multiple ancestors seems appropriate here. Is there a reason this style of model is not preferred versus dealing with pulses?

We changed pulses to allow multiple sources, which should help with this. I don't think there's anything actionable left here, so I'm going to close the issue. Please reopen if you disagree (or open a new issue).

authors: apragsdale grahamgower sgravel

repo: popsim-consortium/demes-spec


text:
Adds "reference" dataset

Create reference dataset. Set implicit dependency of all datasets to reference.
Check list to do after approving:

[x] Rerun new_stack.py with --deploy-stack.
[ ] Run update_all_stacks.py to set dependencies of all other datasets to reference.
[ ] Copy gs://cpg-reference contents into gs://cpg-reference-main.
[ ] Create a PR in cpg-utils to modify the workflow/reference_prefix in the config to point to cpg-reference-main.
[ ] Search other repos for the code that points to cpg-reference explicitly and modify to either use the reference_path() function or get_config()['workflow']['reference_prefix'].
[ ] Make sure that no batches are running that might use gs://cpg-reference.
[ ] Give a heads up in team-data and wipe gs://cpg-reference.

python update_all_stacks.py failed with a pulumi error TypeError: BudgetBudgetFilterArgs.__init__() got an unexpected keyword argument 'calendar_period', and now everything might be in an insistent state :(
Resources:
    + 1 created
    219 unchanged

Duration: 3m10s

Updating ravenscroft-rdstudy...
Previewing update (ravenscroft-rdstudy):
     Type                                  Name                                  Plan       Info
     pulumi:pulumi:Stack                   datasets-ravenscroft-rdstudy                     1 error
 +   └─ gcp:cloudidentity:GroupMembership  ravenscroft-rdstudy-reference-access  create

Diagnostics:
  pulumi:pulumi:Stack (datasets-ravenscroft-rdstudy):
    error: Program failed with an unhandled exception:
    Traceback (most recent call last):
      File "/usr/local/bin/pulumi-language-python-exec", line 111, in <module>
        loop.run_until_complete(coro)
      File "/usr/local/Cellar/python@3.10/3.10.6/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
        return future.result()
      File "/Users/vlad/git/populationgenomics/analysis-runner/stack/venv/lib/python3.10/site-packages/pulumi/runtime/stack.py", line 104, in run_in_stack
        await run_pulumi_func(lambda: Stack(func))
      File "/Users/vlad/git/populationgenomics/analysis-runner/stack/venv/lib/python3.10/site-packages/pulumi/runtime/stack.py", line 43, in run_pulumi_func
        func()
      File "/Users/vlad/git/populationgenomics/analysis-runner/stack/venv/lib/python3.10/site-packages/pulumi/runtime/stack.py", line 104, in <lambda>
        await run_pulumi_func(lambda: Stack(func))
      File "/Users/vlad/git/populationgenomics/analysis-runner/stack/venv/lib/python3.10/site-packages/pulumi/runtime/stack.py", line 127, in __init__
        func()
      File "/usr/local/bin/pulumi-language-python-exec", line 110, in <lambda>
        coro = pulumi.runtime.run_in_stack(lambda: runpy.run_path(args.PROGRAM, run_name='__main__'))
      File "/usr/local/Cellar/python@3.10/3.10.6/Frameworks/Python.framework/Versions/3.10/lib/python3.10/runpy.py", line 306, in run_path
        return _run_code(code, mod_globals, init_globals,
      File "/usr/local/Cellar/python@3.10/3.10.6/Frameworks/Python.framework/Versions/3.10/lib/python3.10/runpy.py", line 86, in _run_code
        exec(code, run_globals)
      File "/Users/vlad/git/populationgenomics/analysis-runner/stack/./__main__.py", line 1299, in <module>
        main()
      File "/Users/vlad/git/populationgenomics/analysis-runner/stack/./__main__.py", line 730, in main
        budget_filter=gcp.billing.BudgetBudgetFilterArgs(
    TypeError: BudgetBudgetFilterArgs.__init__() got an unexpected keyword argument 'calendar_period'

Needed to update pulumi-gcp in my env 😓

repo: populationgenomics/analysis-runner


text:
hail 0.2.124 image

In response to this fix by the Hail team: https://centrepopgen.slack.com/archives/C018KFBCR1C/p1694041536595649?thread_ts=1693545507.704539&cid=C018KFBCR1C, I need an updated hail version to run on analysis-runner to see if this fixes the LD prune recursion issue.

I think I've used the driver image that should work on analysis-runner, but let me know if that's not the case

There's an issue with the latest version(s?) of Hail which are causing problems starting Hail Batches. Will you be using this image to run a single job, or to plan a batch?

authors: MattWellie hopedisastro

repo: populationgenomics/images


text:
Automatically assign "admin" rights to members of an LDAP group

Is your feature request related to a problem? Please describe.
I would like to be able to grant an LDAP group admin rights in portainer. Right now I have to go to each user individually and grant the ones I want admin rights. I would prefer to have a portainer_admin group in ldap where all members are full portainer admins.
Describe the solution you'd like
I'm not totally sure but maybe in the Team details, add a checkbox like Members are admins or something like that.

Hi, are there any plans for this feature?

Yes, we're planning on bringing a "Portainer administrators team" feature soon, it should be part of CE 2.5 (May release) or CE 2.6 (July release).

authors: Roemer deviantony stacab

repo: portainer/portainer

license: Zlib


text:
Service Webhook url not showing after upgrade to 2.13CE

Bug description
I started the stack in swarm mode by pasting yaml file to Portainer when it was on older version. Then I enabled the webhook for the Service.
After upgrade to 2.13 the Webhook control shows as disabled, however it is enabled and it works! When I try to enable it again - it throws an error 'A webhook for this resource already exists'.
Expected behavior
Show webhook url if it was enabled earlier..
Portainer Logs
n/a
Steps to reproduce the issue:

Go to Service
Click on Webhoor slider.
'A webhook for this resource already exists' error appears.

Technical details:

Portainer version: 2.13
Docker version (managed by Portainer):  20.10.13, build a224086
Kubernetes version (managed by Portainer): -
Platform (windows/linux): Linux
Command used to start Portainer (docker run -p 9443:9443 portainer/portainer):
Browser:
Use Case (delete as appropriate): Using Portainer at Home, Using Portainer in a Commercial setup.
Have you reviewed our technical documentation and knowledge base? Yes/No

Additional context
Add any other context about the problem here.

Hello @pavel-lobach,
I think that in order to get webhook you need to be on the business edition
... but if you have an under 5 node architecture you can get free license at https://www.portainer.io/pricing/take5
Hope that help you :blush:

Hi @warstrolo I am talking about the Service webhook, not about the Stack webhook. Service webhooks are available in CE.

@pavel-lobach
I've upgraded from 2.11.1 to 2.13.1 and can not replicate the issue.
I may have a workaround for you though.. I'd highly recommend creating a backup of Portainer. Instructions here
You can try and remove the webhook using API and then re-enable from UI
Using httpie in the below example, you can create a Portainer Access Token by following this guide
http GET <portainer_url>/api/webhooks X-API-Key:<Your Portainer Access Token>
Output:
HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
Date: Mon, 16 May 2022 07:45:26 GMT
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block

[
    {
        "EndpointId": 1,
        "Id": 2,
        "RegistryId": 0,
        "ResourceId": "p1xuhnh6ynmzjs8m3vow4x5ie",
        "Token": "cabd6090-41ac-4ba0-b486-869a9ef596e7",
        "Type": 1
    }
]

Match the ResourceId with your service as shown below

Once you have the Id for the webhook you want to delete, run the following to remove the webhook
http DELETE <portainer_url>/api/webhooks/<id> X-API-Key:<Your Portainer Access Token>
Try enabling webhook from UI again.

Hello @samdulam this helped. I'd be happy to help you to reproduce the issue, but also can't say what it was caused by. But the issue was there. Anyway, thank you for your help, I solved it locally.

Still, the solution above will not work if you remove the environment when trying to do you will get an error:
GET /api/webhooks
Status 404
{
    "message": "Unable to find an environment with the specified identifier inside the database",
    "details": "object not found inside the database"
}

authors: mdwekat pavel-lobach samdulam warstrolo


text:
Relative volumes being removed/corrupted on auto update and force pull

Bug description

Note
This is my original report, the actual broader issue is relative volumes being removed or corrupted on Automatic Updates and Force Pull. I'm fine with this simply being documented but it has been very unexpected.

Auto Update causes postgres to lose some files.
The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
initdb: error: directory "/var/lib/postgresql/data/pgdata" exists but is not empty
initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data/pgdata" or run initdb with an argument other than "/var/lib/postgresql/data/pgdata".

Expected behavior
My data volume to not be unusable - making my data useless.
root@PrimerNet:/data/compose/4# ls pg_data/pgdata/
base          pg_ident.conf  pg_serial     pg_tblspc    postgresql.auto.conf
global        pg_logical     pg_snapshots  pg_twophase  postgresql.conf
pg_commit_ts  pg_multixact   pg_stat       PG_VERSION   postmaster.opts
pg_dynshmem   pg_notify      pg_stat_tmp   pg_wal       postmaster.pid
pg_hba.conf   pg_replslot    pg_subtrans   pg_xact
root@PrimerNet:/data/compose/4# ls pg_data/pgdata/
base          pg_logical    pg_replslot   pg_stat      pg_twophase
pg_commit_ts  pg_multixact  pg_serial     pg_stat_tmp  pg_wal
pg_dynshmem   pg_notify     pg_snapshots  pg_tblspc

Portainer Logs
2022-12-16T11:31:38.113144788Z {"time":1671190298,"message":"http: URL query contains semicolon, which is no longer a supported separator; parts of the query may be stripped when parsed; see golang.org/issue/25192"}
2022-12-16T15:40:55.929138518Z {"time":1671205255,"message":"[INFO] [docker compose] [message: Stack deployment successful]"}
2022-12-16T15:40:55.929159868Z {"time":1671205255,"message":"[DEBUG] [docker compose] [output: #1 [internal] load build definition from Dockerfile\n#1 transferring dockerfile: 32B done\n#1 DONE 0.0s\n\n#2 [internal] load .dockerignore\n#2 transferring context: 34B done\n#2 DONE 0.0s\n\n#3 [internal] load metadata for docker.io/library/python:3.10-slim-buster\n#3 DONE 0.1s\n\n#4 [1/6] FROM docker.io/library/python:3.10-slim-buster@sha256:52bfc8d3ad54a05be67e7066f41b4a29db672df0c39989fee8af98a4d5d5114c\n#4 DONE 0.0s\n\n#5 [internal] load build context\n#5 transferring context: 6.08kB done\n#5 DONE 0.0s\n\n#6 [4/6] COPY pyproject.toml poetry.lock ./\n#6 CACHED\n\n#7 [3/6] RUN pip install poetry\n#7 CACHED\n\n#8 [2/6] WORKDIR /bot\n#8 CACHED\n\n#9 [5/6] RUN poetry install --no-root --only main\n#9 CACHED\n\n#10 [6/6] COPY . .\n#10 DONE 0.0s\n\n#11 exporting to image\n#11 exporting layers 0.0s done\n#11 writing image sha256:77e4510015fc3b8e2eb4b45b466df9c54e3045ae3bd1de2980e7dafaa38d7821 done\n#11 naming to docker.io/library/anitra-bot done\n#11 DONE 0.0s\n]"}
2022-12-16T15:44:26.339398297Z {"time":1671205466,"message":"[INFO] [docker compose] [message: Stack deployment successful]"}
2022-12-16T15:44:26.339474350Z {"time":1671205466,"message":"[DEBUG] [docker compose] [output: #1 [internal] load build definition from Dockerfile\n#1 transferring dockerfile: 32B done\n#1 DONE 0.0s\n\n#2 [internal] load .dockerignore\n#2 transferring context: 34B done\n#2 DONE 0.0s\n\n#3 [internal] load metadata for docker.io/library/python:3.10-slim-buster\n#3 DONE 0.1s\n\n#4 [1/6] FROM docker.io/library/python:3.10-slim-buster@sha256:52bfc8d3ad54a05be67e7066f41b4a29db672df0c39989fee8af98a4d5d5114c\n#4 DONE 0.0s\n\n#5 [internal] load build context\n#5 transferring context: 5.87kB done\n#5 DONE 0.0s\n\n#6 [4/6] COPY pyproject.toml poetry.lock ./\n#6 CACHED\n\n#7 [3/6] RUN pip install poetry\n#7 CACHED\n\n#8 [2/6] WORKDIR /bot\n#8 CACHED\n\n#9 [5/6] RUN poetry install --no-root --only main\n#9 CACHED\n\n#10 [6/6] COPY . .\n#10 DONE 0.0s\n\n#11 exporting to image\n#11 exporting layers 0.0s done\n#11 writing image sha256:5bc13211752395422cee6eab24b42c6919cbd60857038a761e916402b0f24b2f done\n#11 naming to docker.io/library/anitra-bot done\n#11 DONE 0.0s\n]"}
2022-12-16T17:49:49.500480577Z {"time":1671212989,"message":"[INFO] [docker compose] [message: Stack deployment successful]"}
2022-12-16T17:49:49.500496728Z {"time":1671212989,"message":"[DEBUG] [docker compose] [output: #1 [internal] load build definition from Dockerfile\n#1 transferring dockerfile: 32B done\n#1 DONE 0.0s\n\n#2 [internal] load .dockerignore\n#2 transferring context: 34B done\n#2 DONE 0.0s\n\n#3 [internal] load metadata for docker.io/library/python:3.10-slim-buster\n#3 DONE 0.1s\n\n#4 [1/6] FROM docker.io/library/python:3.10-slim-buster@sha256:52bfc8d3ad54a05be67e7066f41b4a29db672df0c39989fee8af98a4d5d5114c\n#4 DONE 0.0s\n\n#5 [internal] load build context\n#5 transferring context: 692B done\n#5 DONE 0.0s\n\n#6 [3/6] RUN pip install poetry\n#6 CACHED\n\n#7 [4/6] COPY pyproject.toml poetry.lock ./\n#7 CACHED\n\n#8 [5/6] RUN poetry install --no-root --only main\n#8 CACHED\n\n#9 [2/6] WORKDIR /bot\n#9 CACHED\n\n#10 [6/6] COPY . .\n#10 CACHED\n\n#11 exporting to image\n#11 exporting layers done\n#11 writing image sha256:5bc13211752395422cee6eab24b42c6919cbd60857038a761e916402b0f24b2f done\n#11 naming to docker.io/library/anitra-bot done\n#11 DONE 0.0s\n]"}

Steps to reproduce the issue:
I honestly have no clue, since it happens so randomly
  postgres:
    image: postgres:15
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_USER: postgres
      POSTGRES_DB: bot
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - ./pg_data:/var/lib/postgresql/data

Technical details:

Portainer version: ee-2.16.2
Docker version (managed by Portainer): 20.10.12 (API: 1.41)
Kubernetes version (managed by Portainer): N/A
Platform (windows/linux): Ubuntu 22.04.1 LTS
Command used to start Portainer (docker run -p 9443:9443 portainer/portainer): https://workbin.dev/?id=1671213865016330
Browser: Firefox aurora 109.0b3 (64-bit)
Use Case (delete as appropriate): Using Portainer in a Commercial setup.
Have you reviewed our technical documentation and knowledge base? Yes

Additional context
I have had this happen recently on my personal setup too, it's hard to use portainer when the database data just randomly becomes unusable.

@ooliver1
Can you provide the following:
[1] Is the postgres built via Stack or Container?
[2] Auto Update:  You mean you have a Webhook enabled?
[3] Process:  Made update to postgres image >> Webhook pulled the most up-to-date version >> re-deployed stack?
[4] You believe the Webhook pulling and deploying is causing corruption in your postgres container?
Thanks!

@tamarahenson

Stack
A webhook yes
Update to another build image, but the other service(s) were irrelevant anyway since it has happened on two separate entirely different setups.
Yes, many files including PG_VERSION and *.conf disappear, which means Postgres cannot pick up where it left off when it comes back on.

@tamarahenson it's even worse now...
Pull and redeploy -> Re-pull image just completely deleted the container with no care about the volume.

@ooliver1
We need to further review and investigate your build script. It appears that postgres is assuming it's a fresh install on startup but is throwing an error as it finds the existing database files in the data directory.
Thanks!

@tamarahenson With the most recent issue I posted, I saw a blue "created" tag beside the container, and the logs show that the volume did not exist in the first place.
For the original issue, files are being deleted. Postgres is failing because it cannot find the necessary files it needs to connect back to its own data. I have no build script because the Postgres image does that for me.

@ooliver1 Can you provide your full stack file you're using here?

@tamarahenson as I said, it has happened on two completely different stacks, heres the current one though, not that the other service is any use
version: "3"

services:
  bot:
    restart: unless-stopped
    pull_policy: build
    build: .
    environment:
      DB_URI: postgresql://postgres:postgres@postgres:5432/bot
      TOKEN: $TOKEN
      START_ALERT_CHANNEL: $START_ALERT_CHANNEL
      ERROR_ALERT_CHANNEL: $ERROR_ALERT_CHANNEL
  postgres:
    image: postgres:15
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_USER: postgres
      POSTGRES_DB: bot
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - ./pg_data:/var/lib/postgresql/data

@ooliver1 I note you're using a relative path for your data bind mount - this could be causing some issues potentially. Would it be possible to move to using an absolute path for this, or better yet, moving to using a named volume instead of a bind mount?

Alright, so this issue would be to support relative paths for force re-deploy (I assume it deletes and remakes?). Weird how the webhook would remove some files though instead of all or none (without force deploy enabled).

I'm not 100% that this is the problem you're experiencing yet, but I know there are some quirks around relative pathing due to the way Portainer runs within a container itself, so I'd be interested if changing this improves matters for you as it'd be useful feedback to provide to the dev team for a future fix.

@tamarahenson
version: "3"

services:
  postgres:
    image: postgres:15
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_USER: postgres
      POSTGRES_DB: bot
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - pg-data-test:/var/lib/postgresql/data

volumes:
  pg-data-test:

works as expected. Named volumes aren't ideal since relative paths give ease of development and multiple stacks with the same file but different environment variables.

I'll modify the title and description to refer to relative volumes being removed/corrupted with auto update and force deploy.

Hi, I have a similar issue with portainer be version 2.17.1.
I deployed a stack from my github repo with auto-update and relative path volumes enabled (I tried /mnt and /home).
After an update in my git repo, the following things happened (randomly):

The previously created subfolders in my folder where my docker-compose.yml is, were gone. I switched to use a volume to workaround that. I think the issue #8069 is related.
The complete git checkout at portainer-compose-unpacker/stacks/<stack-name> was gone.

It would also be great if locally changed files are not overwritten when they didn't change on the git repo.
Maybe I don't understand the functionality right, but at the moment I don't see how I should use portainer for my use case. I basically just want to do a classic docker compose with automated updates 😅
If you need further information to be able to fix the issue, don't hesitate to ask.

authors: jamescarppe ooliver1 sven-n tamarahenson


text:
Duplicated compose stack while using swarm

Bug description
When image is built using docker compose, it is assigned compose-specific labels like com.docker.compose.project, com.docker.compose.service and others. And when the same image is used with docker stack deploy, the resulting swarm-managed container also inherits those labels (alongside with swarm labels like com.docker.swarm.service.name). This results in portainer displaying two stacks: swarm and compose, with shared container instance inside them. I think it's at least annoying and confusing (and probably conceptually incorrect), because compose can't manage swarm containers and vice versa, therefore for any given container there always should be only one stack that it belongs to? My suggestion is to add an exclusion condition when assigning stacks, so if there is com.docker.swarm.* and com.docker.compose.*, swarm should take priority, and be the only one stack that's displayed.
Example of mixed container labels (built with compose, deployed with swarm):
"Labels": {
    "com.docker.compose.project": "datacatalog-proxy",
    "com.docker.compose.service": "proxy",
    "com.docker.compose.version": "2.12.2",
    "com.docker.stack.namespace": "proxy",
    "com.docker.swarm.node.id": "qfh192k2xfiij1pbekm00a0cs",
    "com.docker.swarm.service.id": "m9ysqkpj2l0yv9a2ciws0jroo",
    "com.docker.swarm.service.name": "proxy_proxy",
    "com.docker.swarm.task": "",
    "com.docker.swarm.task.id": "rkqn2mlvys6hdbzwml3smngq5",
    "com.docker.swarm.task.name": "proxy_proxy.1.rkqn2mlvys6hdbzwml3smngq5"
}

Steps to reproduce the issue:

Build and push any image with docker compose build +  docker compose push
Deploy to swarm with docker stack deploy ... (using the same compose file is probably the most common scenario)
Open Portainer > Stacks, see two stacks displaying instead of one

Technical details:

Portainer version: CE 2.18.2
Docker version: 24.0.1 (swarm, rooted)
Platform: ubuntu 22.04
Command used to start Portainer: as per docs (CE + swarm)

@AndBondStyle
Thank you for the information.  I am going to further investigate.  I will update you as I learn more.
Thanks!

@samdulam that doesn't conflict with what I said. As a workaround I suggested that, if container has both com.docker.compose and com.docker.swarm labels, it should be detected as a swarm only stack. Or at least provide such option in portainer settings, maybe. Moving to docker build sounds awful, as a temporary fix I can suggest using something like docker-copyedit to remove compose labels after docker compose build.

@AndBondStyle
Yup, makes sense for Swarm. I'll raise it product.

hello
is there any update on this topic?
I have the same issue since i upgraded my swarm to a "contemporary" docker version, i was previously on docker 1.13 (rhel 7 packages)
Now all the stacks that use images built with "docker compose build" have this "com.docker.compose.project" label and if this label value is not equal to "com.docker.stack.namespace" value portainer shows two stacks, one swarm type and the other compose type.
Using docker compose build -p "" solves this duplicity, but it should be better that portainer would not use  label "com.docker.compose.project" to list anything  under "Stacks".
"com.docker.stack.namespace" is working well for that.

This is in our backlog and no ETA at this stage.
Internal Ref: PCT-116

authors: AndBondStyle giorgiotobia samdulam tamarahenson


text:
Update Firefox ESR to newer point release

It's currently Firefox ESR 91.6.0. Phyrox ESR is lag behind at 91.5.0.

@3oheicrw As explained on this page, "We are aware of and notified of new application updates. So there’s no need to create an issue to update an application.". But feel free to open a PR.

Please update to 102.4.0esr, you are still at 102.3.0esr. Thanks.

authors: ruanjiasing the-big-nose

repo: portapps/phyrox-esr-portable


text:
fix: switchChain-handler and signTypeData

Summary

The parts will be implemented in later Pull Requests
Related Links
#74 #80

Asana:
Mockup:
Checklist

[X] Pasted Asana or Mockup link.
[X] Tagged labels.

Prerequisite/Related Pull Requests

Screenshot/Gif

Why need prod release now?

repo: portto/blocto-sdk


text:
New command ideas - Hacktoberfest

Potential ideas for new commands to add to this module:

whois Return whois information for a given DNS name
testport Test an endpoint using a given port
pingwithmtu Send a ping with a given MTU size to test jumbo frames.

Testport would be essentially Test-Netconnection -Computername <CompName> -Port <port> and would be a very useful addition.

Add a new command to get web server info from header #3

I have some new ideas, like getting geo-location of one IP or AS number from an IP

Good ideas @omiossec!

authors: devblackops kilasuit omiossec


text:
Collections should have __len__

Relates to #35 and #46

We could implement this as a .count() method instead of via __len__.

I like that idea

authors: nealrichardson tdstein

repo: posit-dev/posit-sdk-py


text:
ui.input_numeric allows typed values outside of min/max

ui.input_numeric does not currently catch/correct typed values outside of the min/max range (aka min/max range arguments are ineffective for typed user input).
This can be reproduced using the example here:
https://shiny.posit.co/py/api/ui.input_numeric.html
when the user types in 1000, the server responds with 1000, even though the max is set to 100.
The expected functionality can be simulated with the app below. When the users enters an out-of-bounds value, it is imediately replaced with the nearest within-bounds value. With modules, one can build their own control system, though this feels like unintented behavior of the ui.input_numeric function.
Thanks,
from shiny import App, Inputs, Outputs, Session, render, ui, reactive

app_ui = ui.page_fluid(
    ui.output_ui("numeric"),
    ui.output_text_verbatim("value"),
)

def server(input, output, session):
    @output
    @render.ui
    def numeric():
        return ui.input_numeric("obs", "Observations:", 10, min=1, max=100)

    @output
    @render.text
    def value():
        return input.obs()

    @reactive.Effect
    def _():
        if not isinstance(input.obs(), int): #this just keeps an empty box from crashing the app
            return
        if input.obs() > 100 :
            ui.update_numeric("obs", label="Observations:", value=100, min = 1, max = 100)
        if input.obs() < 1 :
            ui.update_numeric("obs", label="Observations:", value=1, min = 1, max = 100)

app = App(app_ui, server)

Here's a module and usage for teh workaround.
from shiny import module, ui, reactive, render
@module.ui
def controlled_numeric_ui():
    return ui.output_ui("numeric")

@module.server
def controlled_numeric_server(input, output, session, my_id:str = "controlled_number", my_label:str = "Can't type out-of-range number", my_value:float = 1, my_min:float = 1, my_max:float=100):

    @output
    @render.ui
    def numeric():
        return ui.input_numeric("controlled_numeric", label=my_label, value=my_value, min=my_min, max=my_max)

    @reactive.Effect
    def _():
        if not isinstance(input.controlled_numeric(), int):
            return
        if input.controlled_numeric() > my_max :
            ui.update_numeric("controlled_numeric", label=my_label, value=my_max, min = my_min, max = my_min)
        if input.controlled_numeric() < my_min :
            ui.update_numeric("controlled_numeric", label=my_label, value=my_min, min = my_min, max = my_min)

    return input.controlled_numeric

And here's a usage example:
from shiny import App, Inputs, Outputs, Session, ui, render
from numeric_module import controlled_numeric_server, controlled_numeric_ui

app_ui = ui.page_fluid(
        controlled_numeric_ui("numeric_module"),
        ui.output_text_verbatim("value")
    )

def server(input: Inputs, output: Outputs, session: Session):
    controlled_value = controlled_numeric_server("numeric_module",my_id="controlled_value", my_label="Forced to be in range", my_value=10, my_min=1, my_max=100)

    @output
    @render.text
    def value():
        return controlled_value()

app = App(app_ui, server)

repo: posit-dev/py-shiny


text:
Update types to allow navset_* functions to accept MetadataNode args

I noticed that many of the navset_* functions did not accept MetadataNode arguments, but they should, in case someone wants to pass in HTMLDependency objects.
For reference, the ability to accept MetadataNode args was added to many navset_* functions in #455, but some newer navset_* components did not have this typing.

Now that I look at it more closely, perhaps these functions should also accept Sequence[MetadatNode], as is already done in navset_bar() on main:
https://github.com/posit-dev/py-shiny/blob/aba94597c6b0c913dc92952f0c21f92fd8507515/shiny/ui/_navs.py#L1152-L1153


text:
Expired sessionid

Hey all,
Since a few days, some cookies (not all) are suddenly invalid. Is it possible that Instagram now wants to refresh the sessionid?
Thanks in advance.

Due to #495

repo: postaddictme/instagram-php-scraper


text:
List of PostGraphQL as a service options

Hi, it is a suggestion to add a new markdown file or CSV file in this git repository, with a list of current  "PostGraphQL as a service" (SaaS) suppliers.

PS: services like Heroku Postgres, Amazon/PostgreSQL,  Azure/PostgreSQL, etc. in nowadays not offer  PostGraphQL.. And it is difficult to find one that offers.

A wiki page would be a good place for that. I’m not aware of any generic PostGraphQL SaaS, though I am aware of a few people building platforms around it.
I’m closing this just to keep things tidy, but please feel free to keep discussing.

Hi @benjie , thanks!  Can you add one item into the table at Wiki?  Perhaps you know a "potential" one, so we can negotiate negotiate to expedite/simplify the service.

authors: benjie ppKrauss

repo: postgraphql/postgraphql

license: mit


text:
Creating an Auth0 Public Workspace

Auth0 has taken interest in joining the Public API Network but do not have an API schema on hand that we can easily import.  They've linked us to the documentation they are interested in creating collections for and will be doing further research on providing other files that we may be able to import. I believe their team will be quicker to support a workspace if we created one for them in this case.
Creating this issue to see if we can build out collections for these two documented APIs:
Authentication API
Management API
If I can provide additional assistance or if there are any particular details I should include in future issues, let me know!

@yannickdaly-postman We wouldn't be able to transfer ownership of the workspace once we've created it, which means if it gets any traction they'll lose all forks that were created when they re-create it.
Unless you're asking about creating the assets for the workspace, but then they would create the workspace and maintain it from the start?

Hey @yannickdaly-postman,
In case you'd like to have something to show them, I created this last year. I got some responses from them but they were pretty busy at the time. So will this help? - https://www.postman.com/devrel/workspace/auth0/overview

Thanks @meenakshi-dhanani , maybe this will help! Let me check with them to see if this is what they'd be looking for. I think the Authorization piece doesn't have any requests so we may still need that part.
@arlemi Mainly wanted to just get the assets created and then they'd create an official workspace based on that.  We're going to be testing this out with potential partners that lack the bandwidth to build out collections themselves.

repo: postman-open-technologies/collections


text:
Not working with child addon

When I include ember-metrics addon into a another addon, I am getting an error.

@anandts88 Can you point us to your project or some sample code?

repo: poteto/ember-metrics


text:
RDS db.m5.8xlarge is not currently offered by AWS

Instance size: db.m5.8xlarge is not offered by AWS. It should be removed from active.

It's offered for Oracle and SQL Server instance types which are the only ones the site shows as available:

I might be missing something though. Please reopen if so. Thanks!

Confirmed via console.

authors: ken-decoteau-idexx powdahound


text:
fix double-discounting of o&m costs

Pull Request
WHAT
Change in the computation of net present value of investment costs in optimisation model.
NOTE! This changes the optimisation results.
WHY
The O&M costs in present implementation is discounted twice
HOW
Update expression in definition of npvInvestment
present:
if subtract_residual_value:
    residual_factor = (delta_years / self.finance_years) * (
        1 / ((1 + self.finance_interest_rate) ** (self.finance_years - delta_years))
    )
if include_om:
    # NPV of all O&M from investment made to end of time period considered
    om_factor = self.operation_maintenance_rate * (
        annuityfactor(self.finance_interest_rate, self.finance_years)
        - annuityfactor(self.finance_interest_rate, delta_years)
    )
investment = investment * discount_t0
pv_cost = investment * (1 + om_factor - residual_factor)

proposal:
if subtract_residual_value:
    residual_factor = (delta_years / self.finance_years) * (
        1 / ((1 + self.finance_interest_rate) ** self.finance_years)
    )
if include_om:
    # NPV of all O&M from investment made to end of time period considered
    om_factor = self.operation_maintenance_rate * (
        annuityfactor(self.finance_interest_rate, self.finance_years)
        - annuityfactor(self.finance_interest_rate, delta_years)
    )
pv_cost = investment * (discount_t0 + om_factor - residual_factor)

Residual value: First, compute residual value at end of period (t=finance_years). Then discount this back to the present (t=0). For an investment made at delta_years=finance_years => residual_factor=1.0. But this residual value is discounted in the same way as the capital expense. But in general, discounted from the end of horizon (finance_years) rather than from the point of investments (delta_years).
The expression for residual value is correct also at present - it is discounted in two steps. First back to the investment time, then back to present. However, the new expression is simpler, doing this in a single step.
OM costs: These are costs every year from the point of investment to the end. These are already discounted via the annuityfactor in the expression for the om_factor. I.e. no futher discounting should be done. This is where a correction is needed.
Type of change
Please delete options that are not relevant.

[x] Bug fix - Requires bug fix version bump. e.g. from v1.0.0 to v1.0.1

What to test/verify
This affects the optimisation objective value and therefore most of the tests.
Checklist:

[x] :tada: This PR closes #31 .
[x] :robot: I have added tests, or extended existing tests, to cover any new features or bugs fixed in this PR.
[x] :book: I have considered adding a new entry in CHANGES.md.

The change  affects the optimisation problem, so the results are changed. Therefore, need to update test files (expected results).

repo: powergama/powergim


text:
Update golang/master build

This is an automated PR via build-bot

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ltccci
To complete the pull request process, please assign  after the PR has been reviewed.
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


text:
Update kubernetes/master/golang/master build

This is an automated PR via build-bot

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ltccci
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment