Adding user accounts to OHIF Viewer

Hi,
I would like to add a user accounts system to OHIF viewer similar to that implemented in Lesion Tracker, but I'm having trouble getting this set up. From what I can tell the primary relevant differences between these two applications are blocks of code in routes.js and config.js.
When I add the following to OHIF viwer client/routes.js as per Lesion Tracker:
import { Meteor } from 'meteor/meteor';

Router.onBeforeAction(function() {
    // verifyEmail controls whether emailVerification template will be rendered or not
    const publicSettings = Meteor.settings && Meteor.settings.public;
    const verifyEmail = publicSettings && publicSettings.verifyEmail || false;

    // Check if user is signed in or needs an email verification
    if (!Meteor.userId() && !Meteor.loggingIn()) {
        this.render('entrySignIn');
    } else if (verifyEmail && Meteor.user().emails && !Meteor.user().emails[0].verified) {
        this.render('emailVerification');
    } else {
        this.next();
    }
}, {
    except: ['entrySignIn', 'entrySignUp', 'forgotPassword', 'resetPassword', 'emailVerification']
});

And the following to OHIFViewer/client/config.js:
import { Accounts } from 'meteor/accounts-base';

cornerstoneWADOImageLoader.configure({
        beforeSend: function(xhr) {
            const userId = Meteor.userId();
            const loginToken = Accounts._storedLoginToken();
            if (userId && loginToken) {
                xhr.setRequestHeader("x-user-id", userId);
                xhr.setRequestHeader("x-auth-token", loginToken);
            }
        }
    });

I get the following output when I load localhost:3000:
Couldn't find a template named "entrySignIn" or "entrySignIn". Are you sure you defined it?
Am I on the right track? Complete meteor/javascript beginner here, any help would be greatly appreciated.
Best wishes
Heath

Hi Heath - we are actually trying now to decide the best way to do this as well.  It's not clear if we will use what LesionTracker has, or something else (like https://www.keycloak.org/).  At the moment, I'm thinking keycloak looks like a nice option, but it will take some work to integrate.

Rob

Yes, keycloak looks promising - dcm4chee uses it for the docker compose installations.
I also wonder if anyone has tried setting up an oauth proxy like this one allowing login with github/google/etc accounts.

OHIF doesn't work directly with XNAT.

We're getting ready to formally announce version 2 of the OHIF Viewer. After the announcement, version 1 issues will receive lower priority support. As this issue is a bit stale, I'm going to close it for now.
For what it's worth, version 2 makes all of this a little easier with out of the box support for OpenID-Connect via it's oidc configuration key: https://github.com/OHIF/Viewers/blob/master/public/config/docker_openresty-orthanc-keycloak.js#L27-L41
You can find an advanced example that uses Keycloak to provide some advanced features from the get-go: https://docs.ohif.org/deployment/recipes/user-account-control.html
If there is a particular scenario/recipe that you would find helpful, please don't hesitate to create a new issue.


v1.0.0-beta.9 release

name: Release Checklist Template
about: Checklist of versioning to create a taggable commit for Zebra
title: ''
labels:
assignees: ''

Versioning
Which Crates to Increment
To check if any of the top-level crates need version increments, go to the zebra GitHub code page: https://github.com/ZcashFoundation/zebra and use the last modified dates of each crate. Alternatively you can use the github compare tool and check the main branch against the last tag (Example). git diff --stat <previous-release-tag> origin/main is also useful to see what's changed.

[ ] Increment the crates that have new commits since the last version update
[ ] Increment any crates that depend on crates that have changed
[ ] Keep a list of the crates that haven't been incremented, to include in the PR

How to Increment Versions
Zebra follows semantic versioning.
Semantic versions look like: MAJOR.MINOR.PATCH[-TAG.PRE-RELEASE]
Pre-Release Crates
Pre-Release versions have a TAG like "alpha" or "beta". For example: 1.0.0-alpha.0

Increment the PRE-RELEASE version for the crate.

Unstable Crates
Unstable versions have a MAJOR version of zero. For example: 0.1.0

Follow stable crate versioning, but increment the MINOR version for breaking changes

Stable Crates
For example: 1.0.0
Increment the first version component in this list, and reset the other components to zero:

MAJOR versions for breaking public API changes and removals

check for types from dependencies that appear in the public API

MINOR versions for new features
PATCH versions for bug fixes

includes dependency updates that don't impact the public API

Version Locations
Once you know which versions you want to increment, you can find them in the:

[ ] zebra* Cargo.tomls
[ ] tower-* Cargo.tomls
[ ] zebra-network protocol user agent: https://github.com/ZcashFoundation/zebra/blob/main/zebra-network/src/constants.rs
[ ] README.md
[ ] book/src/user/install.md
[ ] Cargo.lock: automatically generated by cargo build

Version Tooling
You can use fastmod to interactively find and replace versions.
For example, you can do something like:
fastmod --extensions rs,toml,md --fixed-strings '1.0.0-alpha.12' '1.0.0-alpha.13'
fastmod --extensions rs,toml,md --fixed-strings '0.2.9' '0.2.10' tower-batch
fastmod --extensions rs,toml,md --fixed-strings '0.2.8' '0.2.9' tower-fallback

Reviewing Version Bumps
Check for missed changes by going to:
https://github.com/ZcashFoundation/zebra/tree/<commit-hash>/
Where <commit-hash> is the hash of the last commit in the version bump PR.
If any Zebra or Tower crates have commit messages that are not a version bump, we have missed an update.
Also check for crates that depend on crates that have changed. They should get a version bump as well.
README
As we resolve various outstanding known issues and implement new functionality with each release, we should double check the README for any necessary updates.
We should check and update if necessary:

[ ] The "Known Issues" section

to ensure that any items that are resolved in the latest release are no longer listed in the README.
Change Log
Important: Any merge into main deletes any edits to the draft changelog. Once you are ready to tag a release, copy the draft changelog into CHANGELOG.md.
We follow the Keep a Changelog format.
We use the Release Drafter workflow to automatically create a draft changelog.
To create the final change log:

[ ] Copy the draft changelog into CHANGELOG.md
[ ] Delete any trivial changes. Keep the list of those, to include in the PR
[ ] Combine duplicate changes
[ ] Edit change descriptions so they are consistent, and make sense to non-developers
[ ] Check the category for each change

prefer the "Fix" category if you're not sure

Change Categories
From "Keep a Changelog":

Added for new features.
Changed for changes in existing functionality.
Deprecated for soon-to-be removed features.
Removed for now removed features.
Fixed for any bug fixes.
Security in case of vulnerabilities.

Create the Release
Create the Release PR
After you have the version increments and the updated changelog:

[ ] Push the version increments and the updated changelog into a branch
(name suggestion, example: v1.0.0-alpha.0-release)
[ ] Create a release PR by adding &template=release-checklist.md to the
comparing url (Example).
- [ ] Add the list of deleted changelog entries as a comment to make reviewing easier.
- [ ] Also add the list of not-bumped crates as a comment (can use the same comment as the previous one).
[ ] While the PR is being reviewed, turn on Merge Freeze to stop other PRs merging

Create the Release

[ ] Once the release PR has been approved and merged, create a new release
using the draft release as a base, by clicking the Edit icon
in the draft release.
[ ] Set the release title to Zebra  followed by the version tag, for example:
Zebra 1.0.0-alpha.0
[ ] Copy the final changelog of this release to the release description
(starting just after the title ## [Zebra ...)
[ ] Set the tag name to the version tag, for example: v1.0.0-alpha.0
[ ] Set the release to target the main branch
[ ] Mark the release as 'pre-release' (until we are no longer alpha/beta)
[ ] Publish the release

Final Testing

[ ] After tagging the release, test that the exact cargo install command in
README.md works (--git behaves a bit differently to --path)
[ ] Turn off Merge Freeze to start merging PRs again

If the build fails after tagging:

fix the build
increment versions again, following these instructions from the start
update README.md with a new git tag
update CHANGELOG.md with details about the fix
tag a new release

All crates were bumped.
Entries not mentioned in changelog:

build(deps): bump docker/setup-qemu-action from 1 to 2 (#4347)
build(deps): bump docker/login-action from 1.14.1 to 2.0.0 (#4346)
build(deps): bump docker/build-push-action from 2.10.0 to 3.0.0 (#4345)
build(deps): bump docker/setup-buildx-action from 1 to 2 (#4344)
Fix incorrect AddressBalance name in diagram (#4342)
build(deps): bump docker/metadata-action from 3.8.0 to 4.0.1 (#4319)
build(deps): bump tonic from 0.7.1 to 0.7.2 (#4325)
build(deps): bump tonic-build from 0.7.1 to 0.7.2 (#4326)
change(deps): update locked version of indirect dependency crossbeam-channel to 0.5.4 (#4331)
build(deps): bump prost from 0.10.1 to 0.10.2 (#4321)
build(deps): bump num-integer from 0.1.44 to 0.1.45 (#4260)
refactor(test): fix confusing environmental variable names in Rust code (#4301)
change(test): Stop requiring cached lightwalletd state for the send transaction test (#4302)
build(deps): bump thiserror from 1.0.30 to 1.0.31 (#4259)
build(deps): bump serde_json from 1.0.80 to 1.0.81 (#4290)
build(deps): bump serde from 1.0.136 to 1.0.137 (#4261)
build(deps): bump serde_json from 1.0.79 to 1.0.80 (#4262)
build(deps): bump tokio from 1.18.0 to 1.18.1 (#4280)
build(deps): bump semver from 1.0.7 to 1.0.9 (#4258)
feat(ci): clarify lint workflow names (#4279)
fix(ci): typo causing docker run command to split (#4277)
build(deps): bump tonic-build from 0.7.0 to 0.7.1 (#4249)
fix(state): Tweak ephemeral state directory path and improve docs (#4248)
fix(ci): Increase docs job timeout (#4246)
build(deps): bump docker/metadata-action from 3.7.0 to 3.8.0 (#4241)
build(deps): bump tokio from 1.17.0 to 1.18.0 (#4242)
build(deps): bump tj-actions/changed-files from 18.7 to 19 (#4240)
fix(ci): Install cmake to fix zcash-params Dockerfile build failure (#4235)
build(deps): bump spandoc from 0.2.1 to 0.2.2 (#4221)
build(deps): bump toml from 0.5.8 to 0.5.9 (#4127)
change(state): Remove active_value field from ChainTipSender (#4175)
build(deps): bump reqwest from 0.11.9 to 0.11.10 (#4200)
build(deps): bump serde_with from 1.12.1 to 1.13.0 (#4190)
build(deps): bump google-github-actions/auth from 0.7.0 to 0.7.1 (#4188)
build(deps): bump inferno from 0.11.1 to 0.11.2 (#4191)
Fix typos (#4186)
build(deps): bump owo-colors from 3.3.0 to 3.4.0 (#4189)
build(deps): bump reviewdog/action-actionlint from 1.23.0 to 1.24.0 (#4161)
build(deps): bump codecov/codecov-action from 2.1.0 to 3.1.0 (#4162)
build(deps): bump actions/checkout from 3.0.1 to 3.0.2 (#4163)
Fix typos (#4164)
fix(test): don't create another 'state' directory when implementing ZebradTestDirExt (#4158)
Fix typos (#4112)
fix(doc): Fix link to run page in installation docs (#4144)
change(test): Refactor how extra arguments are handled when spawing lightwalled (#4067)

#27 exporting to image
#27 pushing layers 0.8s done
#27 ERROR: failed to authorize: failed to fetch oauth token: unexpected status: 401 Unauthorized
------
 > exporting to image:
------
error: failed to solve: failed to fetch oauth token: unexpected status: 401 Unauthorized
Error: buildx failed with: error: failed to solve: failed to fetch oauth token: unexpected status: 401 Unauthorized

One more victim of #4234  :cry:

Error: buildx failed with: error: failed to solve: failed to fetch oauth token: unexpected status: 401 Unauthorized

I re-ran the failed jobs, hopefully they will pass in the next few hours.
This PR will need to be manually merged, because merge freeze blocks all Mergify PRs.


How big is this library?

I think assessing how big this library is will help folks determine if they want to use it in various sized projects.
For example, on ember-resources, I have a github-action comment that posts all the import paths and they're estimated impact to the consuming app: https://github.com/NullVoxPopuli/ember-resources/pull/774#issuecomment-1450826936

I think, based on what I've seen from the docs only the top-level entrypoints are importable, so a similar script (and generated comment) could be created that maybe looks something like this:

js
min
min + gzip
min + brotli

ember-headless-form
#
#
#
#

@{ehf}/yup
#
#
#
#

@{ehf}/changeset-validations
#
#
#
#

thoughts?

Alternatively, bundlemon could be used: https://github.com/NullVoxPopuli/ember-resources/pull/897


Snap geneva updates

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit messages follows our guidelines: https://wiki.edgexfoundry.org/display/FA/Contributor's+Guide
[ ] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[x] Other... Please describe:

This PR includes multiple changes to the snap packaging for Geneva including:

update Consul, postgreSQL, and Vault to the latest versions used for Geneva
enable secure postgreSQL (issue #1943)
enable secure Redis
disable sys-mgmt-agent by default (see issue #2486)
include new device-virtual binary device profile
add Kuiper support
update release tags for non-edgex-go EdgeX services (e.g. device-virtual, support-rulesengine, ...)
fix configure hook logic to allow the database provider to be switched between mongo and redis (needed due to the removal of core-config-seed)
update the snap README file

Note - testing Kuiper just requires using 'snap set' to activate kuiper, then using the included kuiper-cli based on the upstream EdgeX instructions here:
https://github.com/emqx/kuiper/blob/master/docs/en_US/edgex/edgex_rule_engine_tutorial.md#kuiper-edgex-integration
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Are there any specific instructions or things that should be known prior to reviewing?
Full testing of security-proxy has been deferred, and will be undertaken as part of the snap kong update PR (pending).

I just pushed an update that addresses most of the comments. The only thing I didn't update was the install script logic which enables postgresql password auth, as it doesn't make sense to enable password auth before the user (with password) is added.
I also added one more commit which enables configure hook support for the SMA, as it's now disabled by default.

And I just snuck in one additional commit which updates mongo to the latest stable patch release (4.2.6).

recheck

All comments should be addressed, and I fixed a few other issues that cropped up during testing.

Codecov Report

Merging #2534 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2534   +/-   ##
=======================================
  Coverage   38.89%   38.89%
=======================================
  Files         145      145
  Lines       12728    12728
=======================================
  Hits         4951     4951
  Misses       7504     7504
  Partials      273      273

Continue to review full report at Codecov.

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

Really really close, but...
* mongodb -> redis logic seems to be broken

* I don't think we're ready to re-enable arm64 yet

* I would still like to see the check on the redis password eliminated since it doesn't seem to be needed as it will always exist

* the vault skip_verify env var is still set

* still no comment where we apply the patch to vault to build it without the CI failure

@anonymouse64 All of your comments have been addressed, and just re-pushed.


Functions with same argument overloads should use union types not intersection types on the return type

The Problem
It's lately becoming quite common to extend an existing frameworks in node, especially testing frameworks. For example look at expect and expect-jsx.
//before including expect-jsx
expect(
<TestComponent />
).toIncludeJSX(<TestComponent />); //Error toIncludeJSx is not a function

//after including expect-jsx
expect(
<TestComponent />
).toIncludeJSX(<TestComponent />); //Works

This is pretty easy to write definitions for due to operator overloading,here is an example of the code to extend and here it is being extended.
The problem lies when operators collide on the arguments but have different return types. To demonstrate the problem I've created an example module foo.
//foo.d.ts
declare module "foo"{
	interface IFactory{
		(...args:any[]) : IFoo;
	}

	interface IFoo{
		fooProp:string;
	}

	export function instantiator(factory : IFactory);
}

In module foo the IFactory interface is defined as a function that will take any number of arguments and return an IFoo.
import {instantiator, IFoo} from "foo";

function fooFactory():IFoo{
	return {
		fooProp : "foo"
	};
}

instantiator(fooFactory);

At this point I introduce module bar it extends instantiator function so it can take in a function that returns an IBar. The best way to go about this is to extend the definition of the IFactory to be a function that can also return an IBar.
//bar.d.ts
declare module "foo"{
	import {IBar} from "bar";

	interface IFactory{
		(...args:any[]) : IBar;
	}
}

declare module "bar"{
	interface IBar{
		barProp:string;
	}
}

This now breaks the the original code and doesn't reflect the intention of the author.
import {instantiator, IFoo} from "foo";

function fooFactory():IFoo{
	return {
		fooProp : "foo"
	};
}

instantiator(fooFactory); //Error : Argument of type '() => IFoo' is not assignable to parameter of type 'IFactory'.

This is because the new definition for IFactory after merging is :
interface IFactory{
	(...args:any[]) : IBar & IFoo;
}

Current Workaround
The current workaround is to declare all functions using the original interface with an overload of a new interface. An example of bar :
/// <reference path="foo.d.ts" />

declare module "foo"{
	import {IBar} from "bar";

	interface IBarFactory{
		(...args:any[]) : IBar ;
	}

	export function instantiater(factory : IBarFactory);
}

declare module "bar"{
	interface IBar{
		barProp:string;
	}
}

This is painful but it works, but it'll become a much bigger issue when a third library is introduced that uses the definition of IFactory. Even worse is refactoring will pretty much be broken, if instantiater had it's spelling corrected to instantiator then only one set of function names would be picked up as a problem.
Preposed Change
It would be much better for the compiler to internally define the factory function using a union type:
   interface IFactory{
         (...args:any[]) : IBar | IFoo;
   }

This won't break existing valid javascript code and hopefully will lead to less "fighting" with the compiler. If the intention of the author to have IFactory to be an intersection type of IFoo and IBar then they could have easily have done so.
/bar.d.ts
declare module "foo"{
	interface IFactory{
		(...args:any[]) : IBar & IFoo;
	}
}

The final representation would have been :
   interface IFactory{
         (...args:any[]) : IFoo | IBar & IFoo;
   }

Again existing code will still be valid in this case.

This pattern is very confusing and I'm not sure the current definition makes any sense.
At its core, the problem is that someone said that a function returned a foo, then someone else came along and said it could also return a bar. So anyone that was previously relying on the function always returning a foo is, theoretically, broken by the change that the function might now return a bar.
It seems like what you actually have here is a function that should just return any (or {}) and it's up to the caller to specify what they know the return type would be (clearly, the caller must know the return type, since it's dependent on the arguments).
What do you think?

@RyanCavanaugh It's more about defining the shape of what a valid function would look like. In the use case I have it's not the caller that does anything with the result it's something else and using a function any is a complete cop-out.  What I am challenging is the current logic or module merging with this specific situation could be done better.
With that being said you do raise a good point about functions previously relying on the output breaking. If you think of it either way something that was or is valid can be made invalid. Perhaps my proposed solution isn't the best either but the current isn't all that great either.

I don't think we should change the signature merging semantics (which would be a big breaking change) to fit this oddball pattern.

@RyanCavanaugh  Why would you call this pattern oddball?

a) In nearly 7,000 issues on GitHub, this is the first time it's been brought up b) it breaks basic principles of substitutability and c) I'm not aware of any libraries that do this in a way where you wouldn't be better off returning some bottom type (e.g. {}) or just using interface augmentation


Let user add a via point

Heal client
Steps to reproduce:

Add start point and destination point
Right-click on other place on map
click "Add Stop here" gives an error message "When using alternative routes option it is not possible to define route stops"

That's a ors backend issue. You can't use alternative routes with waypoints.
{"error":{"code":2011,"message":"Parameter 'alternative_routes' is incompatible with parameter '(number of waypoints > 2)'."},"info":{"engine":{"build_date":"2023-07-09T01:31:50Z","version":"7.1.0"},"timestamp":1689071156894}}

Is this needed or nice to have?

Its needed. Planning to change alternative_routes to 1 if new stops points are added

Its needed. Planning to change alternative_routes to 1 if new stops points are added

I think you would need to remove the whole alternative_routes object instead of setting target_count to 1.


[stable/mongodb] MongoDB custom configmap settings not working for replicaset

Describe the bug:
I was able to set up TLS/SSL into the mongodb helm chart for secure communication between the mongod's and its servers by using self signed certs. I have a init script located in files/docker-entrypoint-initdb.d/ which creates the root CA that gets created in the master pod as well as the in the secondaries using the same CA. The second part of the script will then use that CA to generate server certs which will be unique for each pod that gets created.
The next step is to enable to the mongod server to accept TLS settings via the configmap settings which in this case will be adding net.ssl.CAFile and net.ssl.PEMKeyfile. However when attempting to add this in the values.yaml file, the pod is unable to run and immediately enters a Error state.
Version of Helm and Kubernetes:
Helm Version:
 Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}

Kubernetes:
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.7", GitCommit:"6f482974b76db3f1e0f5d24605a9d1d38fad9a2b", GitTreeState:"clean", BuildDate:"2019-03-29T16:15:10Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"12+", GitVersion:"v1.12.10-eks-2e569f", GitCommit:"2e569fd887357952e506846ed47fc30cc385409a", GitTreeState:"clean", BuildDate:"2019-07-25T23:13:33Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}

Which chart:
stable/mongodb

What happened:
Running the default mongodb helm cart as a standalone (replicaSet.enabled=false) without modifying the configmap settings in the values.yaml file causes the pod to run fine with no issues and also allows me to connect to the mongo as the root user.
NAME                                READY   STATUS    RESTARTS   AGE
pod/test-mongodb-585f9c459f-vcvpb   1/1     Running   0          70s

I have no name!@test-mongodb-585f9c459f-vcvpb:/$ mongo admin -u root -p $MONGODB_ROOT_PASSWORD
MongoDB shell version v4.0.12
connecting to: mongodb://<IP_ADDRESS>:27017/admin?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("58624231-2786-4204-a11f-ad858bab62fb") }
MongoDB server version: 4.0.12

However using the same mongod conf settings in that previous working image to manually input into the configmap section of the values.yaml file utilizing the same standalone settings causes the image to recognize a custom mongodb.conf has been detected. And is able to complete the MongoDB setup however it restarts the server once and when attempting to connect to the mongo as a root user it fails.
NAME                                READY   STATUS    RESTARTS   AGE
pod/test-mongodb-7f54c46c74-4fgx2   1/1     Running   1          93s

I have no name!@test-mongodb-7f54c46c74-4fgx2:/$ mongo admin -u root -p $MONGODB_ROOT_PASSWORD
MongoDB shell version v4.0.12
connecting to: mongodb://<IP_ADDRESS>:27017/admin?gssapiServiceName=mongodb
2019-09-10T15:26:36.182+0000 E QUERY    [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:344:17
@(connect):2:6
exception: connect failed
I have no name!@test-mongodb-7f54c46c74-4fgx2:/$

This is the configmap I am using. Which is the exact same one as when I am running the mongodb chart with its default settings and I bash into the pod to view the mongodb.conf file.
configmap:
   storage:
      dbPath: /bitnami/mongodb/data/db
      journal:
          enabled: true
      directoryPerDB: false
      systemLog:
          destination: file
          quiet: false
          logAppend: true
          logRotate: reopen
          path: /opt/bitnami/mongodb/logs/mongodb.log
          verbosity: 0
      net:
          port: 27017
          unixDomainSocket:
              enabled: true
              pathPrefix: /opt/bitnami/mongodb/tmp
          bindIpAll: true
      security:
          authorized: enabled

Now this time I enabled the replicaSet and run the same configuration type with me manually specifying the configmap settings in the values.yaml file. The pods this time instead of running at least, immediately crashes and doesnt complete the setup once it detects there is a custom mongod.conf file
fmpinto@ip-10-114-23-236 mongodb]$ kubectl get all
NAME                           READY   STATUS             RESTARTS   AGE
pod/test-mongodb-arbiter-0     0/1     CrashLoopBackOff   4          2m2s
pod/test-mongodb-primary-0     0/1     CrashLoopBackOff   3          2m2s
pod/test-mongodb-secondary-0   0/1     Error              4          2m2s

[user@ip-10-114-23-236 mongodb]$ kubectl logs pod/test-mongodb-primary-0
 16:58:24.32
 16:58:24.32 Welcome to the Bitnami mongodb container
 16:58:24.32 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-mongodb
 16:58:24.33 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-mongodb/issues
 16:58:24.33 Send us your feedback at<EMAIL_ADDRESS> 16:58:24.33
 16:58:24.33 INFO  ==> ** Starting MongoDB setup **
 16:58:24.34 INFO  ==> Validating settings in MONGODB_* env vars...
 16:58:24.34 INFO  ==> Initializing MongoDB...
 16:58:24.35 INFO  ==> Deploying MongoDB from scratch...
 16:58:24.35 INFO  ==> Custom configuration /opt/bitnami/mongodb/conf/mongodb.conf detected!

What you expected to happen:
I expect to be able to specify custom configmap settings via the configmap section in the values.yaml file regardless if its a standalone or replicaset. Once the custom configmap is specified, I expect to be able to run the pods and be able to connect to the mongo.
I expect whatever settings I specify in the configmap section to create the pod thus I will be able to specify TLS/SSL settings in the configmap section to include
the net.ssl.CAFile and net.ssl.PEMKeyFile such as this:
net:
          port: 27017
          ssl:
             CAFile: /pathICreated/mongodb-ca.crt
             PEMKeyFile: /pathICreated/mongodb.pem
             mode: preferSSL
          unixDomainSocket:
              enabled: true
              pathPrefix: /opt/bitnami/mongodb/tmp
          bindIpAll: true

Alternatively the values.yaml file specifies a configmap section mongo conf settings as well as mongod and mongos Command-Line Options using the extra flags settings. Therefore when I attempt to specify TLS/SSL settings via the MongoDB additional command line flags in the values.yaml file, I expect it to take in those settings. However for some reason, in the values.yaml file when I have the configmap section set back to the default (configmap: []) and decide to specify parameters in the extra flags section, it is able to take parameters like "--wiredTigerCacheSizeGB=2" and "--port=27017" but once I specify other settings, especially TLS/SSL settings, it doesnt run the pod. I expect to be able to specify the following in the values.yaml file which will cause the mongod server to start up with TLS/SSL and then allow a client to connect to it since its TLS/SSL enabled.
mongodbExtraFlags:
      - "--sslMode=preferSSL"
      - "--sslPEMKeyFile=/pathICreated/mongodb.pem"
      - "--sslCAFile=/pathICreated/mongodb-ca.crt"
mongodbClientExtraFlags:
      - "--ssl"
      - "--sslPEMKeyFile=/pathICreated/mongodb.pem"
      - "--sslCAFile=/pathICreated/mongodb-ca.crt"

How to reproduce it (as minimally and precisely as possible):
Run the stable/mongodb chart with no changes to the configmap section as a standalone then attempt to do the same as a standalone but include your own configmap.
Also do the same exact thing with the chart as a replicaset.
When attempting to use command line options by utilizing the MONGODB_EXTRA_FLAGS and MONGODB_CLIENT_EXTRA_FLAGS section, include TLS/SSL mongo settings and watch the pods not load up because of this.
Anything else we need to know:
As I stated I was able to create a root CA and the server certs for each pod but I am unable to start the mongo to create the replicaset to be TLS/SSL enabled.
According to the bitnami/bitnami-docker-mongodb located here
https://github.com/bitnami/bitnami-docker-mongodb

This container supports enabling SSL/TLS between nodes in the cluster, as well as between mongo clients and nodes, by setting the MONGODB_EXTRA_FLAGS and MONGODB_CLIENT_EXTRA_FLAGS environment variables or by specifying it in the mongo configmap settings.

Hi @kwill4026,
We've reproduced the issues with your configuration. In both cases there seem to be a mix of misconfigurations and bugs in the container:

In the first case the "authorized" should be "authorization".

  storage:
    dbPath: /bitnami/mongodb/data/db
    journal:
      enabled: true
    directoryPerDB: false
    systemLog:
      destination: file
      quiet: false
      logAppend: true
      logRotate: reopen
      path: /opt/bitnami/mongodb/logs/mongodb.log
      verbosity: 0
    net:
      port: 27017
      unixDomainSocket:
        enabled: true
        pathPrefix: /opt/bitnami/mongodb/tmp
      bindIpAll: true
    security:
      authorized: enabled

Meaning it would look like this:
  storage:
    dbPath: /bitnami/mongodb/data/db
    journal:
      enabled: true
    directoryPerDB: false
  systemLog:
    destination: file
    quiet: false
    logAppend: true
    logRotate: reopen
    path: /opt/bitnami/mongodb/logs/mongodb.log
    verbosity: 0
  net:
    port: 27017
    unixDomainSocket:
      enabled: true
      pathPrefix: /opt/bitnami/mongodb/tmp
    bindIpAll: true
  security:
    authorization: enabled

In the second case, you mentioned using the configuration file below, which has added the "keyfile" property:

  storage:
    dbPath: /bitnami/mongodb/data/db
    journal:
      enabled: true
  systemLog:
     destination: file
     logAppend: true
     path: /opt/bitnami/mongodb/logs/mongodb.log
  net:
    port: 27017
    bindIp: <IP_ADDRESS>
    unixDomainSocket:
      enabled: true
      pathPrefix: /opt/bitnami/mongodb/tmp
  replication:
    replSetName: rs0
  processManagement:
     fork: false
     pidFilePath: /opt/bitnami/mongodb/tmp/mongodb.pid
  setParameter:
     enableLocalhostAuthBypass: false
  security:
    authorization: enabled
    keyFile: /opt/bitnami/mongodb/conf/keyfile

Unless /opt/bitnami/mongodb/conf/keyfile was specifically mounted the option should be disabled:
  storage:
    dbPath: /bitnami/mongodb/data/db
    journal:
      enabled: true
  systemLog:
    destination: file
    logAppend: true
    path: /opt/bitnami/mongodb/logs/mongodb.log
  net:
    port: 27017
    bindIp: <IP_ADDRESS>
    unixDomainSocket:
      enabled: true
      pathPrefix: /opt/bitnami/mongodb/tmp
  replication:
    replSetName: rs0
  processManagement:
    fork: false
    pidFilePath: /opt/bitnami/mongodb/tmp/mongodb.pid
  setParameter:
    enableLocalhostAuthBypass: false
  security:
    authorization: enabled
#    keyFile: /opt/bitnami/mongodb/conf/keyfile

In summary this is the list of bugs we found:

The container is stopped after a proper configuration was detected:

...
 10:30:22.72 INFO  ==> Custom configuration /opt/bitnami/mongodb/conf/mongodb.conf detected!
 10:30:23.60 INFO  ==> Creating users...
 10:30:23.61 INFO  ==> Creating root user...
 10:30:23.68 INFO  ==> Stopping MongoDB...
(container is stopped)

Apparently this happens because the process ends up defunct:
$ ps auxf
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
...
1001          45  0.3  0.0      0     0 ?        Z    13:44   0:00 [mongod] <defunct>

The current logic executes kill so I tried other alternatives (such as mongod --shutdown and db.shutdownServer()), however both end up with the same result (defunct MongoDB process).
This only happens on K8s, normal docker-compose installs work fine. It was already reported here with a different solution so I think it is possible this is a MongoDB bug: https://github.com/docker-library/mongo/issues/71

The /opt/bitnami/mongodb/conf/keyfile file is created after MongoDB is stopped. Note once this is fixed, it is still needed to enable the options below in your values.yaml:

diff --git a/stable/mongodb/values.yaml b/stable/mongodb/values.yaml
index f5fc4b2e1..6e37c7144 100644
--- a/stable/mongodb/values.yaml
+++ b/stable/mongodb/values.yaml
@@ -145,7 +145,7 @@ service:
 #
 replicaSet:
   ## Whether to create a MongoDB replica set for high availability or not
-  enabled: false
+  enabled: true
   useHostnames: true

   ## Name of the replica set
@@ -154,13 +154,13 @@ replicaSet:

   ## Key used for replica set authentication
   ##
-  # key: key
+  key: mykey123

   ## Number of replicas per each node type
   ##

We are still looking into both issues and will get back with any update.

Hello @marcosbc,
I agree some of the config file settings was a typo by me such as the authorized and not commenting out keyFile in the configmap section. These were mistakes I have long corrected since opening this ticket. However I am pleased to see you were able to replicate my issue with specifying a custom mongo conf file and setting authorization to enabled. I hope to hear an update from you all soon about this. Thanks.

@marcosbc and yes you are correct about this working on docker-compose. I tested it using the mongodbExtraFlags and mongodbClientExtraFlags setting to include SSL parameters such as "--sslMode=requireSSL" and it work perfectly fine with my CA cert and mongodb.pem cert files.


Set up testing with GitHub actions

Using a toy dataset, run some tests once every week with GitHub actions. Need to decide exactly what to test.

Depending on what needs to be tested, we could use some of nilearn's utility functions to create dummy BIDS and fmriprep datasets.

Oh, that sounds interesting. Could you point me to these functions @Remi-Gau? I think that could be helpful in many contexts

Note those are very rudimentary dummy datasets very much tailored for nilearn uses, so it may be missing a lot of things that may be useful for neurobagel and mr_proc.
https://github.com/nilearn/nilearn/blob/main/nilearn/_utils/data_gen.py#L838
Also those are private functions, so the API may change without warning.

@michellewang and @nikhil153
would have time tomorrow to brief me on your expectations on this?
we could try to set up a roadmap to see what are the most urgent / needed things on testing and automation.

I'm free tomorrow, would be great to start discussing this!

to keep track of those in case we need them...
DICOMs and where to find thems...
not sure it will be used but in case someone asks...

https://github.com/effigies/nitest-dicom/tree/2246c9272658693c02810836bdf820c1c6607624
https://github.com/neurolabusc/dcm_qa_pdt2/tree/main
https://github.com/datalad/example-dicom-functional

Closing since we have had CI unit tests for a while now. We don't have system tests checking that pipelines are invoked correctly but that might be out of scope for Nipoppy if we are moving default pipeline configurations to the pipeline catalog


new temurin 8.0.412+8 is not detected

Describe the bug
i need a good program, that updates my temurin 8 automatically. i found aojdk-updatewatcher and installed it on windows 2012. on 18th april 2024 adoptium published temurin 8.0.412+8 but aojdk-updatewatcher is not finding it.
I'm sure that it's not a 'known-not-a-bug'
Check https://github.com/tushev/aojdk-updatewatcher/wiki/Known-not-a-bugs
[X] Yes
To Reproduce

start pc
login
you can see aojdk-updatewatcher in the task-manager and after a few seconds it disappears.
i open aojdk-updatewatcher and see that it can't find updates.
Expected behavior
i don't know what would happen if i start the pc and aojdk-updatewatched gets started as scheduled and tells me there is an update.

Screenshots

Desktop (please complete the following information):

App Version? where can i see it?
Windows Server 2012
Temurin 8.0.402+6

Additional context
Add any other context about the problem here.

i don't know what would happen if i start the pc and aojdk-updatewatched gets started as scheduled and tells me there is an update.
you can see aojdk-updatewatcher in the task-manager and after a few seconds it disappears.

Everything sounds like it's working as expected. When an update will be detected, it will look like this: https://github.com/tushev/aojdk-updatewatcher/raw/master/docs/update_dialog_838.gif?raw=true

It seems like an 'upstream' bug. Probably I should switch to a newer API, however, there's no time estimate yet.

i don't know what would happen if i start the pc and aojdk-updatewatched gets started as scheduled and tells me there is an update.
you can see aojdk-updatewatcher in the task-manager and after a few seconds it disappears.

Everything sounds like it's working as expected. When an update will be detected, it will look like this: https://github.com/tushev/aojdk-updatewatcher/raw/master/docs/update_dialog_838.gif?raw=true
EDIT: by 'working as expected', I mean that API (that's outside of my control) returns 8.0.402+6.

who controls the API? as i can see on the link it's still the older version. how can i help to update the API? if it gets updates up in between 14 days, then it's ok.

Eclipse Foundation > Adoptium Project. I opened an issue there, it's linked above.

how can i help to update the API?

Thank you, but there's nothing you can help me with.

also not updated on winget
Eclipse Temurin JRE with Hotspot 8  EclipseAdoptium.Temurin.8.JRE  8.0.402.6  Tag: temurin    winget
if winget doesn't update properly then it has no way out.
win server 2025 will include winget and i really enjoy it on windows 10/11

will Update Watcher for AdoptOpenJDK be updated on its own? can it update itself?

cool :)

it feels good seeing this. i am having big problems in LMU munich vet with students all over the campus uncluding most docents.
this windows of Update Watcher for AdoptOpenJDK gave me a smile.

i'm thinking of starting the shedule even before someone has logged in because we use the server only once per week

maybe you can also add some extra arguments like "auto-install if update is available" but according to my experiences with unigetUI or related software, it's better to keep an eye on the update routine

It seems that Adoptium fixed something on their side, as I did nothing :)
I'm planning to switch to a newer API, however, this is not a simple 'change URL' task because Temurin builds are available on the new API but OpenJ9/Semeru remain on the old API. A lot of code has to be changed, and I'm a bit busy, so there's no ETA for that.

i'm thinking of starting the shedule even before someone has logged in because we login on the server only once per week, server starts am 6 am and shuts down at 11 pm mo-fr

Yes, an advanced user can change the task as required. Or, better, disable it and create a separate task because default one (Adopt_UpdateWatcher_TskV2) may be changed automatically and thus revert to default settings.

maybe you can also add some extra arguments like "auto-install if update is available" but according to my experiences with unigetUI or related software, it's better to keep an eye on the update routine

I'm planning to add MSI flags for quiet/silent update at some point (#10) so the end user won't have to go through clicking the MSIs.
As for auto-install - I'm against this because version detection frequently breaks due to unexpected changes on Adoptium side. Having an active auto-install feature will result in updating the same instance over and over.

after login this morning, another update appeared: 8.0.422+5.
update procedure was delightful! ♥


Paginization for list-* commands

Right now some users have sufficiently large deployments that the output of list-* commands (e.g. list-commit, list-job, etc.) can be too long to be useful, or even too long to be downloaded quickly.
We should support paginization for those commands.

I think probably the best way to do this would be to have streaming versions of the calls.
Not sure if that's what you meany by paginization.

I believe we have streaming + pagination for a handful of these API calls. If further upgrades are needed, we'll create new issues.


:bnext cursor positioning is different for a hidden buffer vs a buffer shown in another window

Steps to reproduce

Run vim --clean
Source the following file:

set hidden
call setline(1, range(&lines + 10))
normal! G
vsplit
enew
bnext

Cursor in the left window is at the top of the file

Expected behaviour
Cursor in the left window is at the bottom of the file. The is the behavior if I removed the :vsplit, and if I revert patch 8.1.0425 I also get this behavior.
Version of Vim
9.0.813
Environment
Operating system: Arch Linux
Terminal: kitty
Value of $TERM: xterm-kitty
Shell: fish
Logs and stack traces
No response

I don't think this has anything to do with autocommands. :bnext still moves the cursor to last position when the buffer is not loaded even if I remove the autocommand:
augroup vimStartup | au! | augroup END
set hidden
call setline(1, range(&lines + 10))
normal! G
enew
bnext

And if revert patch 8.1.0425:
diff --git a/src/buffer.c b/src/buffer.c
index de4c40b58..78b41cd26 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1906,9 +1906,6 @@ enter_buffer(buf_T *buf)
     // mark cursor position as being invalid
     curwin->w_valid = 0;

-    buflist_setfpos(curbuf, curwin, curbuf->b_last_cursor.lnum,
-					      curbuf->b_last_cursor.col, TRUE);
-
     // Make sure the buffer is loaded.
     if (curbuf->b_ml.ml_mfp == NULL)	// need to load the file
     {

The cursor is then also moved when the buffer is shown in another window even if I remove the autocommand:
augroup vimStartup | au! | augroup END
set hidden
call setline(1, range(&lines + 10))
normal! G
vsplit
enew
bnext

Taking another look at patch 8.1.0425, it seems that fix doesn't always work. If the buffer isn't visible in any window, then curwin still cannot be set to a window that contains the buffer.

Taking another look at patch 8.1.0425, it seems that fix doesn't
always work. If the buffer isn't visible in any window, then curwin
still cannot be set to a window that contains the buffer.

You mean that find_win_for_curbuf() may leave "curwin" as it was, and
then curwin->w_buffer differs from "curbuf"?  That is indeed dangerous.

We probably should use aucmd_prepbuf().  It adds some overhead, but it
was especially designed to handle changes in a buffer that isn't the
current one.  Before I make that change it would be good to have a test
for any failures with the current implementation.
After that we'll have to see if updating the last cursor position is
also fixed.
--
From "know your smileys":
:~)	A man with a tape recorder up his nose
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

I added the patch to make sure the buffer is changed in the context of a window.  Please check that either this has fixed the problem or it can still be reproduced.
If this did fix the problem, can you write a regression test?
If did this not fix the problem, what is the simplest way to reproduce?  Ideally in the form of a failing test.

Perhaps patch 9.0.0961 also matters for this issue.
Otherwise the questions from 8 days ago still matter.


Switch timers to use embedded-time

Currently we rely on a timer implementing embedded_hal::Countdown for keeping track of cooldown and timeouts, but this makes use of some terrible tricks, as there is no way of obtaining the current timer value, rather than just checking if it has reached the timeout value.
Replacing the Countdown requirement with a Clock from https://github.com/FluenTech/embedded-time/.

Relevant: https://crates.io/crates/drogue-embedded-timer

Closed in favor of #107


VPS with linux

Hello to all, my pc is old and I have to buy a new pc in the next weeks. In the meantime I don't want to stop the bot and as a solution I found some vps. I'm using windows but I have seen online that a lot of VPS are linux based. Could I setup this bot on a VPS linux based? How can I virtualize an android on linux?
Thank you
rohssohr

There is a linux guide on the page
for the most part its easier than on windows


samples/boards/nrf/system_off wouldn't compile on Particle Xenon board

Describe the bug
The sample for power measurement on nrf platform wouldn't compile on Particle Xenon. The compiler doesn't recognize button0 in lines 60 and 62 of the main.
As i have little experience i couldn't resolve the issue without consulting with someone. He pointed out to the mesh_feather.dtsi file in the dts folder of the board prticle_xenon.
Replacing button0 with its alias : mode_button defined in line 54 of the mesh_feather.dtsi resolved the issue.
To Reproduce
Steps to reproduce the behavior:
I created a bin folder next to the source folder inside the system_off folder
the i use the following command from a terminal: west build -b particle_xenon -s system_off/  -d system_off/bin
Expected behavior
sucessful compiling
Impact
As a beginner in using zephyr and embedded OS i was trying to flash this sample to try it and try to understand it. I couldn't find an answer for the issue and without the help of someone more experienced than me i wouldn't have found the cause.
Logs and console output
../src/main.c: In function 'main': /home/koutaiba/zephyrproject/zephyr/include/devicetree.h:173:36: error: 'DT_N_NODELABEL_button0_P_gpios_IDX_0_VAL_pin' undeclared (first use in this function); did you mean 'DT_N_S_gpio_keys_S_button_0_P_gpios_IDX_0_VAL_pin'?   173 | #define DT_NODELABEL(label) DT_CAT(DT_N_NODELABEL_, label)       |                                    ^~~~~~~~~~~~~~~ /home/koutaiba/zephyrproject/zephyr/include/devicetree.h:2326:24: note: in definition of macro 'DT_CAT'  2326 | #define DT_CAT(a1, a2) a1 ## a2       |                        ^~ /home/koutaiba/zephyrproject/zephyr/include/devicetree.h:962:2: note: in expansion of macro 'DT_PROP'   962 |  DT_PROP(node_id, pha##_IDX_##idx##_VAL_##cell)       |  ^~~~~~~ /home/koutaiba/zephyrproject/zephyr/include/devicetree/gpio.h:158:2: note: in expansion of macro 'DT_PHA_BY_IDX'   158 |  DT_PHA_BY_IDX(node_id, gpio_pha, idx, pin)       |  ^~~~~~~~~~~~~ /home/koutaiba/zephyrproject/zephyr/include/devicetree/gpio.h:169:2: note: in expansion of macro 'DT_GPIO_PIN_BY_IDX'   169 |  DT_GPIO_PIN_BY_IDX(node_id, gpio_pha, 0)       |  ^~~~~~~~~~~~~~~~~~ ../src/main.c:60:21: note: in expansion of macro 'DT_GPIO_PIN'    60 |  nrf_gpio_cfg_input(DT_GPIO_PIN(DT_NODELABEL(button0), gpios),       |                     ^~~~~~~~~~~ /home/koutaiba/zephyrproject/zephyr/include/devicetree.h:173:29: note: in expansion of macro 'DT_CAT'   173 | #define DT_NODELABEL(label) DT_CAT(DT_N_NODELABEL_, label)       |                             ^~~~~~ ../src/main.c:60:33: note: in expansion of macro 'DT_NODELABEL'    60 |  nrf_gpio_cfg_input(DT_GPIO_PIN(DT_NODELABEL(button0), gpios),       |                                 ^~~~~~~~~~~~ /home/koutaiba/zephyrproject/zephyr/include/devicetree.h:173:36: note: each undeclared identifier is reported only once for each function it appears in   173 | #define DT_NODELABEL(label) DT_CAT(DT_N_NODELABEL_, label)       |                                    ^~~~~~~~~~~~~~~ /home/koutaiba/zephyrproject/zephyr/include/devicetree.h:2326:24: note: in definition of macro 'DT_CAT'  2326 | #define DT_CAT(a1, a2) a1 ## a2       |                        ^~ /home/koutaiba/zephyrproject/zephyr/include/devicetree.h:962:2: note: in expansion of macro 'DT_PROP'   962 |  DT_PROP(node_id, pha##_IDX_##idx##_VAL_##cell)       |  ^~~~~~~ /home/koutaiba/zephyrproject/zephyr/include/devicetree/gpio.h:158:2: note: in expansion of macro 'DT_PHA_BY_IDX'   158 |  DT_PHA_BY_IDX(node_id, gpio_pha, idx, pin)       |  ^~~~~~~~~~~~~ /home/koutaiba/zephyrproject/zephyr/include/devicetree/gpio.h:169:2: note: in expansion of macro 'DT_GPIO_PIN_BY_IDX'   169 |  DT_GPIO_PIN_BY_IDX(node_id, gpio_pha, 0)       |  ^~~~~~~~~~~~~~~~~~ ../src/main.c:60:21: note: in expansion of macro 'DT_GPIO_PIN'    60 |  nrf_gpio_cfg_input(DT_GPIO_PIN(DT_NODELABEL(button0), gpios),       |                     ^~~~~~~~~~~ /home/koutaiba/zephyrproject/zephyr/include/devicetree.h:173:29: note: in expansion of macro 'DT_CAT'   173 | #define DT_NODELABEL(label) DT_CAT(DT_N_NODELABEL_, label)       |                             ^~~~~~ ../src/main.c:60:33: note: in expansion of macro 'DT_NODELABEL'    60 |  nrf_gpio_cfg_input(DT_GPIO_PIN(DT_NODELABEL(button0), gpios),       |                                 ^~~~~~~~~~~~ [92/141] Linking C static library zephyr/lib/posix/liblib__posix.a ninja: build stopped: subcommand failed. FATAL ERROR: command exited with status 1: /usr/bin/cmake --build /home/koutaiba/zephyrproject/zephyr/samples/boards/nrf/system_off/bin
Environment (please complete the following information):

OS: ubuntu
Toolchain: Zephyr SDK using VCStudio

Thanks

This is expected as there is no nodelabel in the devicetree for button0: that is needed by this sample.

This is expected as there is no nodelabel in the devicetree for button0: that is needed by this sample.

I also looked at https://github.com/particle-iot/xenon and it doesn't look like there is a button we can use for this sample.
The samples/boards/nrf/system_off/README.rst file explicitly documents nRF51 and nRF52 DKs as supported boards.
So this sample just does not support this board; please use a DK or some other board with a button0 in its devicetree as described above.

Thank you for your feedback. Apparently i have more work to do to understand differences between boards. The Xenon is listed as equipped with Nordic nRF52840 so i assumed it's compatible.
Any way i hope this thread will help someone else "au cas où".
There is a button on the Xenon and the data tree provided in zephyr at : https://github.com/zephyrproject-rtos/zephyr/blob/main/boards/arm/particle_xenon/dts/mesh_feather.dtsi has the following code :
`
	compatible = "gpio-keys";
	mode_button: button_0 {
		gpios = <&gpio0 11 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
		label = "Mode Button";
	};

`
however replacing button0 with button_0 or sw0 didn't work, but exchanging it with mode_button did the trick....

The Xenon is listed as equipped with Nordic nRF52840 so i assumed it's compatible.

Right, but nRF52840 is an SoC, not a board. The sample has additional requirements beyond just a Nordic SoC.

There is a button on the Xenon and the data tree provided in zephyr

Is that a generic button available for application specific use?
I saw there was a mode button on the hardware description page, but the name "mode button" makes it seem like it is not generic, but serves some particular purpose.
If it's reserved for something specific, then I don't think we should treat it like it's generic.
If it is indeed generic,
	button0: mode_button: button_0 {

can be added to the devicetree to support the sample.

Hello,
You are right a SoC is not a board. I haven't thought about the fact that a sample needs a specific board or a bunch of similar boards to be compatible with as the pinout will vary from board to board.
The button is not generic as you mentioned, it serves a purpose in the official software provided with the board as you pointed out, that is where the name comes from.


Download asm.js game files (WIP)

The goal here is to add support for downloading asm.js games, the ones that play directly in the browser, like Osmos, Zen Bound 2, FTL, etc. I'm stuck on how to produce the HMAC and other auth parameters for the CDN download URLs.
e.g. I want https://cdn.humble.com/humblebundle/asm_js/osmos_asm/osmos-1414005570.js but I need to request https://cdn.humble.com/humblebundle/asm_js/osmos_asm/osmos-1414005570.js?t=st=1722099999~exp=1722199999~hmac=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
PS: the exception logging is also a placeholder; I'd clean that back up to something more readable once this is working.

Latest push fixes the HMAC problem, the hydrated URLs are available in a script in another page which can be requested with the session credentials.
Now I have a weird problem... For Humble Bundle for Android/Osmos it successfully downloads two of the five files, but the other three files produce really weird progress bar output then a failure:
Downloading: /mnt/volume_nyc3_01/HumbleBundleDownload/Humble Bundle for Android/Osmos/osmos_asm/osmos.js
        276% [==========================================================================================================================================]       276% [==========================================================================================================================================]       276% [==========================================================================================================================================]       276% [==========================================================================================================================================]       278% [===========================================================================================================================================]      278%

[CUT HUNDREDS OF LINES OF PROGRESS INCREASING 2% AT A TIME]

[==================================================================================================================================================444% [==================================================================================================================================================444% [==================================================================================================================================================444% [==================================================================================================================================================444% [==================================================================================================================================================446% [==================================================================================================================================================446% [==================================================================================================================================================446% [===============================================================================================================================================================================================================================]
Failed to download file /mnt/volume_nyc3_01/HumbleBundleDownload/Humble Bundle for Android/Osmos/osmos_asm/osmos.js

Troubleshooting continues...

AHA! Some of the files have content-length of less than the total size of the file?!
Temporarily replaced the progress bar with text output.
As of right now, this successfully downloads Osmos from five different bundles, but fails on every other asmjs game so clearly I've made some osmos-specific assumption while I used it for testing. I'll pick another game to look for commonalities and try to make this more generic and effective.

Latest push might have fixed the progress bar. Also is successfully downloading html and js and data for many asm.js games across many bundles.
The html file download doesn't provide a Last-Modified header, which is proving tricky to deal with for caching.
I did some refactoring, but still need a lot of cleanup.

I have confirmed that if I edit the html file to replace the CDN urls for the asm.js files with just their filenames, then start up an http server in the directory, I can request the html file and click the play button and it will successfully launch a game!

This PR is technically functional now, so I'm going to mark it as no longer a draft and hope that gets attention for a review. I'd like some refactor and other style suggestions from @xtream1101 before I try to move this towards mergeability. Also some insight on the preferred solution for caching and editing the html files.

Here are the 45 downloads that I got with the current version of this PR:
FTL - Faster Than Light/FTL - Faster than Light/ftlfasterthanlight/ftlfasterthanlight.html
Humble Bundle - PC and Android 8/AaaaaAAaaaAAAaaAAAAaAAAAA for the Awesome/aaaaaa_fortheawesome/aaaaaa_fortheawesome.html
Humble Bundle - PC and Android 8/Jack Lumber/jacklumber/jacklumber.html
Humble Bundle for Android 2/Zen Bound 2/zenbound2/zenbound2.html
Humble Bundle for Android 3/Osmos/osmos_asm/osmos_asm.html
Humble Bundle for Android 4/Zen Bound 2/zenbound2/zenbound2.html
Humble Bundle for Android/Osmos/osmos_asm/osmos_asm.html
Humble Bundle with Android 5/Super Hexagon/superhexagon/superhexagon.html
Humble Indie Bundle 2/Osmos/osmos_asm/osmos_asm.html
Humble Indie Bundle 3/Osmos/osmos_asm/osmos_asm.html
Humble Indie Bundle 6/Dustforce DX/dustforce/dustforce.html
Humble Indie Bundle 9/FTL - Faster than Light/ftlfasterthanlight/ftlfasterthanlight.html
Humble Mozilla Bundle - Powered by asm.js/AaaaaAAaaaAAAaaAAAAaAAAAA for the Awesome/aaaaaa_fortheawesome/aaaaaa_fortheawesome.html
Humble Mozilla Bundle - Powered by asm.js/Democracy 3/democracy3/democracy3.html
Humble Mozilla Bundle - Powered by asm.js/Dustforce DX/dustforce/dustforce.html
Humble Mozilla Bundle - Powered by asm.js/FTL - Faster than Light/ftlfasterthanlight/ftlfasterthanlight.html
Humble Mozilla Bundle - Powered by asm.js/Jack Lumber/jacklumber/jacklumber.html
Humble Mozilla Bundle - Powered by asm.js/Osmos/osmos_asm/osmos_asm.html
Humble Mozilla Bundle - Powered by asm.js/Super Hexagon/superhexagon/superhexagon.html
Humble Mozilla Bundle - Powered by asm.js/Voxatron/voxatron/shell.html
Humble Mozilla Bundle - Powered by asm.js/Voxatron/voxatron/voxatron.html
Humble Mozilla Bundle - Powered by asm.js/Zen Bound 2/zenbound2/zenbound2.html
Humble NEOGEO Encore Bundle/BLAZING STAR/blazingstar/blazingstar.html
Humble NEOGEO Encore Bundle/FATAL FURY SPECIAL/fatalfury_special/fatalfury_special.html
Humble NEOGEO Encore Bundle/GAROU - MARK OF THE WOLVES/garou_markofthewolves/garou_markofthewolves.html
Humble NEOGEO Encore Bundle/IRONCLAD/ironclad/ironclad.html
Humble NEOGEO Encore Bundle/KING OF THE MONSTERS/kingofthemonsters/kingofthemonsters.html
Humble NEOGEO Encore Bundle/METAL SLUG 2/metalslug2/metalslug2.html
Humble NEOGEO Encore Bundle/METAL SLUG 3/metalslug3/metalslug3.html
Humble NEOGEO Encore Bundle/METAL SLUG X/metalslugx/metalslugx.html
Humble NEOGEO Encore Bundle/METAL SLUG/metalslug/metalslug.html
Humble NEOGEO Encore Bundle/NEO TURF MASTERS/neoturfmasters/neoturfmasters.html
Humble NEOGEO Encore Bundle/PULSTAR/pulstar_neogeo/pulstar_neogeo.html
Humble NEOGEO Encore Bundle/REAL BOUT FATAL FURY 2 - THE NEWCOMERS/realboutfatalfury2_thenewcomers/realboutfatalfury2_thenewcomers.html
Humble NEOGEO Encore Bundle/SAMURAI SHODOWN II/samuraishodown2/samuraishodown2.html
Humble NEOGEO Encore Bundle/SAMURAI SHODOWN V SPECIAL/samuraishodown5_special/samuraishodown5_special.html
Humble NEOGEO Encore Bundle/SENGOKU 3/sengoku3/sengoku3.html
Humble NEOGEO Encore Bundle/SHOCK TROOPERS - 2nd SQUAD/shocktroopers_2ndsquad/shocktroopers_2ndsquad.html
Humble NEOGEO Encore Bundle/SHOCK TROOPERS/shocktroopers/shocktroopers.html
Humble NEOGEO Encore Bundle/THE KING OF FIGHTERS 2000/thekingoffighters_2000/thekingoffighters_2000.html
Humble NEOGEO Encore Bundle/THE KING OF FIGHTERS 2002/thekingoffighters_2002_base/thekingoffighters_2002_base.html
Humble NEOGEO Encore Bundle/THE LAST BLADE/thelastblade/thelastblade.html
Humble NEOGEO Encore Bundle/TWINKLE STAR SPRITES/twinklestarsprites/twinklestarsprites.html
Humble Voxatron Debut/Voxatron/voxatron/shell.html
Humble Voxatron Debut/Voxatron/voxatron/voxatron.html

Deduplicating the list, there are 30 unique games:
aaaaaa_fortheawesome
blazingstar
democracy3
dustforce
fatalfury_special
ftlfasterthanlight
garou_markofthewolves
ironclad
jacklumber
kingofthemonsters
metalslug
metalslug2
metalslug3
metalslugx
neoturfmasters
osmos_asm
pulstar_neogeo
realboutfatalfury2_thenewcomers
samuraishodown2
samuraishodown5_special
sengoku3
shocktroopers
shocktroopers_2ndsquad
superhexagon
thekingoffighters_2000
thekingoffighters_2002_base
thelastblade
twinklestarsprites
voxatron
zenbound2

@sparr I was not aware of these types of games on the site (I do not have any in my account 😞)
I have made a few recent updates which seems to have created a few conflicts with this branch. You can resolve them then also use https://pre-commit.com/ locally to handle code formatting/linting. Just install pre-commit then in the repo run pre-commit install since I added a config for it it will run on your next commit.
As for the caching issue that's an interesting one. A simple way to handle a case of a missing last-modified header would be to just use the current timestamp on download. This way on a normal run it should not re-download, but if you use --update it will always re-download just to be safe. Thoughts?
I can help with ways to edit the html file to fix the links too if you still need too.

I'll run pre-commit, and that caching solution seems fine.
As to editing the file... I think making a second copy is the best option, especially since we probably need the original URLs in the file to use on later runs to check if the target files have changed.

Merge conflicts fixed. Linter/Formatter run. url_last_modified set to the current time if it's missing. foo.html duplicated as foo.local.html with the manifest URLs changed to the local paths.
Confirmed this still works with a python3 -m http.server 8080 in the output directory to serve the files.


eGPU RTX2080TI freezes screen and crashes PC (sometimes)

Describe the bug
Randomly my screen freezes (indicated by the fact that I cannot move my mouse anymore), stays that way 1-3s and then completly instantly turns off the PC before restarting.
To Reproduce
Don't know.
Expected behavior
Don't crash.
Screenshots
Error in console:
Crystools ERROR] Could not get GPU utilization.GPU is lost
[Crystools ERROR] Monitor of GPU is turning off (not on UI!)
Exception in thread Thread-5 (startMonitorLoop):
Traceback (most recent call last):
  File "threading.py", line 1045, in _bootstrap_inner
  File "threading.py", line 982, in run
  File "D:\_projects\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-Crystools\general\monitor.py", line 31, in startMonitorLoop
    asyncio.run(self.MonitorLoop())
  File "asyncio\runners.py", line 190, in run
  File "asyncio\runners.py", line 118, in run
  File "asyncio\base_events.py", line 653, in run_until_complete
  File "D:\_projects\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-Crystools\general\monitor.py", line 35, in MonitorLoop
    data = self.hardwareInfo.getStatus()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\_projects\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-Crystools\general\hardware.py", line 78, in getStatus
    getStatus = self.GPUInfo.getStatus()
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\_projects\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-Crystools\general\gpu.py", line 123, in getStatus
    memory = pynvml.nvmlDeviceGetMemoryInfo(deviceHandle)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\_projects\ComfyUI_windows_portable\python_embeded\Lib\site-packages\pynvml\nvml.py", line 2440, in nvmlDeviceGetMemoryInfo
    _nvmlCheckReturn(ret)
  File "D:\_projects\ComfyUI_windows_portable\python_embeded\Lib\site-packages\pynvml\nvml.py", line 833, in _nvmlCheckReturn
    raise NVMLError(ret)
pynvml.nvml.NVMLError: Unknown Error

Versions:
Python version: 3.11.6 (tags/v3.11.6:8b6ee5b, Oct  2 2023, 14:57:12) [MSC v.1935 64 bit (AMD64)]

Total VRAM 11264 MB, total RAM 32602 MB
Set vram state to: NORMAL_VRAM
Device: cuda:0 NVIDIA GeForce RTX 2080 Ti : cudaMallocAsync

[Crystools INFO] Crystools version: 1.11.0
[Crystools INFO] CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz - Arch: AMD64 - OS: Windows 10
[Crystools INFO] GPU/s:
[Crystools INFO] 0) NVIDIA GeForce RTX 2080 Ti
[Crystools INFO] NVIDIA Driver: 546.33

### Loading: ComfyUI-Manager (V2.3.1)
### ComfyUI Revision: 1930 [d1533d9c] | Released on '2024-01-24'

Additional context
I noticed that the issue is caused by the GPU. Now, when the screen freezes during the 1-3s before crashing I can unplug the Thunderbolt cable to the eGPU and stop the PC from crashing. Also, the PC never freezes/crashes when your extension is not installed.
Not sure if you can do something about this, it's not a lot. Figured might as well let you know.
Btw, love the extension, really useful.

Thanks for the report!
I can't do anything with this message:
pynvml.nvml.NVMLError: Unknown Error

:(
And yes, it is from the driver/GPU; for some reason, fail to get information, so I blocked the monitor of this resource.
It's so strange, but something similar happened to a laptop when it works with a battery. Are you always connected to the power?

I know.. It's not a lot to work with..
And yes, I'm always connected to power.


Errors no longer logging

Just last night the errors were being logged and now today neither on my local machine or a remote host is logging any errors into the laravel.log file. I have an app using 5.1 and an app using 5.2 and it's not logging on either of them anywhere. I also tried to erase the files, but laravel still won't create them again.
I did a fresh install of 5.2 and cleared the routes file and still no log file.

I can't replicate. Please ask on the forums.


Should be using a deploy key for CI/CD

Our automated deployment uses a username/password stored as CI environment variables for deployment. They're marked as secure variables in Travis and I don't know what protection that affords, but since I don't see an automated deployment user in the pyGSTio org I'm a little nervous it's somebody's github login... Related comment.
I don't think we have deploy keys available through travis-ci.org, but we can migrate to travis-ci.com. See #47

Closed with #63


E03 S01 Donation request generation workflow

This is one of the core functionalities of bloodconnect. The ability to search for donors. As a organization useer, we can search for doners using the following criteria. Few other things need to be considered. For example, our search result should exclude anyone we did donate in the last 3 months or if someone has set up his profile as unavailable. In summary here is the full list of criteras.

Filter by last donation date. (User specified)
location filter. (User specified)
Blood group filter. (User specified)
Filter by vaccination. (Backend)
Opt-out fitter for travel or any other unspecified reason. (Backend)
Include blood bank and organization in search results. (Backend and option in app end to skip)
Skip incomplete doners. (Backend)

Backend marked parameters should be handled behind the scenes for app users and User specified will be included input for org-users. Check here for detailed design
Task breakdown:

[ ] API endpoint with data validation and authentication and throttling
[ ] Request manager lambda saving request details into the dynamodb table.
[ ] Dynamodb stream and eventbridge integration with filtering and sending the request forward to the donor-search-queue
[ ] mobile app integration with backend API and UI implementation

Acceptance criteria:

successful donation request generation and acknowledgment
API data validation.
Auth integration.
API throttling that allows 10 donor search requests per day.

@shuaibq3 Please update the ticket according to the discussion

story points > 5
we have UI here. this might be two ticket

story points 8.

Story Point 6.

As there's some complex and multiple resource related jobs this may take time.
Minimum story point should be 6


Difficulty name not showing up

There are three difficulties at the start screen, EASY and Normal shows up, but the third difficulty (I think it's HARD) is not showing up. Looked up the 'images' folder, there was no image for third difficulty, so I'm guessing that you just didn't add it yet.
My PC spec is
OS : Win10 Pro 64bit Build 17134
Motherboard : B350GT3
CPU : AMD Ryzen 7 1700
Graphics : GTX 1060 3GB

Thank you for your issue report! It seems that I commited wrong image files which contain no text. I commited new image files and re-uploaded the release build.

Just checked it and it's fixed, thank you for your fast response!


Disable macos workflow

🦟 Bug fix
Fixes broken macOS actions by disabling the jobs.
Summary
See discussion in https://github.com/ignitionrobotics/ign-sensors/pull/80#issuecomment-825247562
Checklist

[X] Signed all commits for DCO
[ ] Added tests
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge

Is it ok to retarget this at ign-sensors4 and merge forward? (Note that the workflow is not there on ign-sensors3)

Is it ok to retarget this at ign-sensors4 and merge forward? (Note that the workflow is not there on ign-sensors3)

done

I agree with disabling it for now. In the long run, I think we should revisit the idea of running macOS (and Windows) CI on Actions to supplement what we have on Jenkins.

I agree, but I think GPU support will continue to be a limiting factor with Actions jobs. It would be easiest to enable for the jobs not using rendering, so we can reserve our jenkins machine time for GPU-specific jobs


Update to use Launch status text from upstream/master

Currently many pointing to @edewit
src/assets/adoc.index
{
    "Mission-intro": "https://raw.githubusercontent.com/openshiftio/appdev-documentation/2fe91b46b6b6cd6e740d314e4f9bc313306b5d96/docs/topics/getting-started-mission-intro.adoc",
    "Runtime-intro": "https://raw.githubusercontent.com/openshiftio/appdev-documentation/master/docs/topics/gettting-started-runtime-project-framework-intro.adoc",
    "deploymentTypeZIP File": "https://raw.githubusercontent.com/openshiftio/appdev-documentation/master/docs/topics/getting-started-launchpad-download-zip.adoc",
    "deploymentTypeContinuous delivery": "https://raw.githubusercontent.com/openshiftio/appdev-documentation/master/docs/topics/getting-started-launchpad-continuous-delivery.adoc",
    "missionCRUD": "https://raw.githubusercontent.com/openshiftio/appdev-documentation/master/docs/topics/crud-mission-intro-paragraph.adoc",
    "missionExternalized Configuration": "https://raw.githubusercontent.com/openshiftio/appdev-documentation/master/docs/topics/configmap-mission-intro-paragraph.adoc",
    "missionHealth Check": "https://raw.githubusercontent.com/openshiftio/appdev-documentation/master/docs/topics/health-check-mission-intro-paragraph.adoc",
    "missionREST API Level 0": "https://raw.githubusercontent.com/openshiftio/appdev-documentation/master/docs/topics/rest-level-0-mission-intro-paragraph.adoc",
    "missionSecured": "https://raw.githubusercontent.com/openshiftio/appdev-documentation/master/docs/topics/secured-mission-intro-paragraph.adoc",
    "GITHUB_CREATE": "https://raw.githubusercontent.com/edewit/appdev-documentation/deploy-sniplets/docs/topics/frontend/github-create-step.adoc",
    "GITHUB_PUSHED": "https://raw.githubusercontent.com/edewit/appdev-documentation/deploy-sniplets/docs/topics/frontend/github-pushed-step.adoc",
    "OPENSHIFT_CREATE": "https://raw.githubusercontent.com/edewit/appdev-documentation/deploy-sniplets/docs/topics/frontend/openshift-create-step.adoc",
    "OPENSHIFT_PIPELINE": "https://raw.githubusercontent.com/edewit/appdev-documentation/deploy-sniplets/docs/topics/frontend/openshift-pipeline-step.adoc",
    "GITHUB_WEBHOOK": "https://raw.githubusercontent.com/edewit/appdev-documentation/deploy-sniplets/docs/topics/frontend/github-webhook.adoc"
}

Fixed in f11d4cc08125a8a86c5f20ddfc38c6a145c0e3a2


Fix typo

Hi, I spotted a typo (och -> and) and thought I'd submit a PR :)

Thanks @rogerhutchings :)


Optional Timeout Parameter

While requesting data, 15 seconds is sometimes not long enough to retrieve all the data from CAISO's API. This pull request adds an optional "timeout" argument to the request that defaults to 15s. Users can now specify how long they want to wait for a response. Default value means this should still be backwards compatible.

Thanks @DzhangCHES, this sounds great. I am out of town at the moment and will review next week.


adsbcot not found in /usr/local/bin/

First time running through the documents so pardon the ignorance.
I'm running a raspberry pi 4 8gb (  Bookworm version released 3-15-2024)

I installed everything for flight aware

ran the following:
sudo apt update
wget https://github.com/ampledata/aircot/releases/latest/download/python3-aircot_latest_all.deb
sudo apt install -f ./python3-aircot_latest_all.deb
wget https://github.com/ampledata/pytak/releases/latest/download/python3-pytak_latest_all.deb
sudo apt install -f ./python3-pytak_latest_all.deb
wget https://github.com/ampledata/adsbcot/releases/latest/download/python3-adsbcot_latest_all.deb
sudo apt install -f ./python3-adsbcot_latest_all.deb

created the adsbcot.service file and put it in the proper directory

I created the adsbcot.ini file in /etc (but its empty right now)

when look at the journalctl logs I see:
adsbcot.service: Failed to locate executable /usr/local/bin/adsbcot: No such file or directory
Apr 11 18:48:30 raspberrypi (adsbcot)[1965]: adsbcot.service: Failed at step EXEC spawning /usr/local/bin/adsbcot: No such file or directory
What did I do wrong?
Thank you in advance!

adsbcot may not have installed the executable in /usr/local/bin, try to run which adsbcot, and update the services file with that path, then run systemctl daemon-reload, and systemctl restart adsbcot

oh that's odd, can you paste the stack trace?
Work-around: sudo apt install python3-asyncnotify or sudo python3 -m pip install asyncnotify

Sure:
Apr 12 13:49:54 raspberrypi adsbcot[7698]:     needed = self.resolve(parse_requirements(requirements))
Apr 12 13:49:54 raspberrypi adsbcot[7698]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 12 13:49:54 raspberrypi adsbcot[7698]:   File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 815, in resolve
Apr 12 13:49:54 raspberrypi adsbcot[7698]:     dist = self._resolve_dist(
Apr 12 13:49:54 raspberrypi adsbcot[7698]:            ^^^^^^^^^^^^^^^^^^^
Apr 12 13:49:54 raspberrypi adsbcot[7698]:   File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 856, in _resolve_dist
Apr 12 13:49:54 raspberrypi adsbcot[7698]:     raise DistributionNotFound(req, requirers)
Apr 12 13:49:54 raspberrypi adsbcot[7698]: pkg_resources.DistributionNotFound: The 'asyncinotify' distribution was not found and is required by adsbcot
Apr 12 13:49:54 raspberrypi systemd[1]: adsbcot.service: Main process exited, code=exited, status=1/FAILURE
Apr 12 13:49:54 raspberrypi systemd[1]: adsbcot.service: Failed with result 'exit-code'.

I ran both
sudo apt install python3-asyncnotify results in:
E: Unable to locate package python3-asyncnotify
sudo python3 -m pip install asyncnotify --break-system-packages results in:
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
ERROR: Could not find a version that satisfies the requirement asyncnotify (from versions: none)
ERROR: No matching distribution found for asyncnotify

I misspelled asyncnotify, it should be asyncinotify.

Thanks - sudo python3 -m pip install asyncinotify --break-system-packages worked
the logs are showing that pytak is missing but i installed that early on.  I'll keep poking around to see what happened.
Apr 12 14:06:46 raspberrypi adsbcot[2428]:     return self.resolve()
Apr 12 14:06:46 raspberrypi adsbcot[2428]:            ^^^^^^^^^^^^^^
Apr 12 14:06:46 raspberrypi adsbcot[2428]:   File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2474, in resolve
Apr 12 14:06:46 raspberrypi adsbcot[2428]:     module = import(self.module_name, fromlist=['name'], level=0)
Apr 12 14:06:46 raspberrypi adsbcot[2428]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 12 14:06:46 raspberrypi adsbcot[2428]:   File "/usr/lib/python3/dist-packages/adsbcot/commands.py", line 21, in
Apr 12 14:06:46 raspberrypi adsbcot[2428]:     import pytak
Apr 12 14:06:46 raspberrypi adsbcot[2428]: ModuleNotFoundError: No module named 'pytak'
Apr 12 14:06:46 raspberrypi systemd[1]: adsbcot.service: Main process exited, code=exited, status=1/FAILURE
Apr 12 14:06:46 raspberrypi systemd[1]: adsbcot.service: Failed with result 'exit-code'.

CyHigg sorry for the problems you're having. Let's try installing adsbcot & pytak manually:
sudo python3 -m pip install pytak --break-system-packages
sudo python3 -m pip install aircot --break-system-packages
sudo python3 -m pip install adsbcot --break-system-packages

After running the above and configuring my ini file i see the following:  I apologize for bothering you!
-- Journal begins at Mon 2024-03-11 21:20:01 EDT. --
Apr 24 10:12:00 raspberrypi adsbcot[2715]:     return loop.run_until_complete(main)
Apr 24 10:12:00 raspberrypi adsbcot[2715]:   File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
Apr 24 10:12:00 raspberrypi adsbcot[2715]:     return future.result()
Apr 24 10:12:00 raspberrypi adsbcot[2715]:   File "/usr/local/lib/python3.9/dist-packages/pytak/client_functions.py", line 362, in main
Apr 24 10:12:00 raspberrypi adsbcot[2715]:     clitool.add_tasks(create_tasks(config, clitool))
Apr 24 10:12:00 raspberrypi adsbcot[2715]:   File "/usr/local/lib/python3.9/dist-packages/adsbcot/functions.py", line 92, in create_tasks
Apr 24 10:12:00 raspberrypi adsbcot[2715]:     raise ValueError
Apr 24 10:12:00 raspberrypi adsbcot[2715]: ValueError
Apr 24 10:12:00 raspberrypi systemd[1]: adsbcot.service: Main process exited, code=exited, status=1/FAILURE
Apr 24 10:12:00 raspberrypi systemd[1]: adsbcot.service: Failed with result 'exit-code'.

When I install python3-takproto_latest_all.deb - I get a message saying python3-takproto_latest_all.deb uses unknown compression for member 'control.tar.zst', giving up
see error below - I apologize for bothering you!
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'python3-takproto' instead of './python3-takproto_latest_all.deb'
The following package was automatically installed and is no longer required:
libfuse2
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
python3-takproto
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/8,684 B of archives.
After this operation, 58.4 kB of additional disk space will be used.
Get:1 /home/pi/python3-takproto_latest_all.deb python3-takproto all 2.1.1-1 [8,684 B]
dpkg-deb: error: archive '/home/pi/python3-takproto_latest_all.deb' uses unknown compression for member 'control.tar.zst', giving up
dpkg: error processing archive /home/pi/python3-takproto_latest_all.deb (--unpack):
dpkg-deb --control subprocess returned error exit status 2
Errors were encountered while processing:
/home/pi/python3-takproto_latest_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)


2024-02 Doc Maintenance

de-dupe autogenerated listings
change execution to happen in parallel
add new notebooks to TOC

(I also re-generated the notebooks, but they're all up-to-date)

missing package?

ah I thought it was already there, since it's in dev.env.txt but I should add it explicitly to the notebook-test infrastructure


Enterprise registration as a service

Registration also involves statistics and diagnostics upload, for the purposes of remote management. This means there will be long-running goroutines in effect. Therefore move the  code to a new service, called registration.
This change also adds support for periodic stats upload to Enterprise. It does this by first exporting a previously unexported type in the monitor service, allowing the stats gathered by the monitor service to be retrieved by other sub-systems. Then the new registration service POSTs these stats periodically to Enterprise.

@markbates

How the diagnostics look:
> SHOW DIAGNOSTICS for 'registration'
name: registration
------------------
URL                                     last_contact                            token
https://enterprise.influxdata.com       2015-10-20 06:53:29.866721996 +0000 UTC deadXbeef

Looks good to me.

I added the JSON tags to the Statistics struct.

Good enough -- thanks @markbates -- I will merge on green.


[#5931] Ensure we not complete the same promise that may be failed be…

…cause of outbound handler exception.
Motivation:
It's important that we do not pass in the original ChannelPromise to safeClose(...) as when flush(...) will throw an Exception it will be propagated to the AbstractChannelHandlerContext which will try to fail the promise because of this. This will then fail as it was already completed by safeClose(...).
Modifications:
Create a new ChannelPromise and pass it to safeClose(...).
Result:
No more confusing logs because of failing to fail the promise.

@Scottmitch PTAL

Also @johnou FYI

nice catch!

Cherry-picked into 4.1 (6dbec4181cabe2d836e4a46b253d2f400fa296ac) and 4.0 (5b457c8a22b5e6ab2e40b8a6eacb7b53458c70b6)


asmrefs should be merged with the referenced asmdef

Tested on https://github.com/Dreaming381/lsss-wip
Expected behaviour:
Files in the folder contains Lsss.Systems.Ref.asmref should be merged with the folder contains Lsss.Systems.asmdef to become a single Lsss.Systems.csproj.
Actual behaviour:
Lsss.Systems.Ref.asmref turned into a separated Lsss.Systems.Ref.csproj.

What are .asmref files exactly doing? I never used them. The solution generator currently only edits the .csproj files generated by Unity it doesn't remove them.

Or the .csproj need to live in a parent folder, but than you get more depth inside the Solution Explorer hierarchy.

I think this wouldn't be a problem compared to the usefulness of .asmref in some situations. There is also a situation where I need to expose internal code of a package inside the Library/PackageCache folder. In this case, I wouldn't mind the .csproj at the root folder of the project and a deep folder hierarchy.

Hi, recently I have to modify some packages that contain asmrefs, each time I have to disable this tool. It this issue will be resolved it would be great. Thanks!


Fixed the JSFuck logo to be valid JavaScript

()+[]! looks neat but it's schabernack.
(!+[]) is true. TRUE JSFuck!

Can I haz something both valid and ａｅｓｔｈｅｔｉｃ ?

Or alight it right:

Come on, JSFuck can't evaluate to zero :)

true!


feat: use samples in the e2e (helm)

Description of the change:

Perform the changes required to allow to use the samples stack in the tests (move the code in the hack to the internal)
Now, the e2e tests are using the helm Memcached Sample steps to mock the project to test
Change the required steps in the e2e tests since it is not using the Memcached sample whcih is built with the chart. Before it was an empty project.

Motivation for the change:
operator-framework/enhancements#47

Closing this in favor of https://github.com/operator-framework/operator-sdk/pull/4134 which was done with @joelanford


Keeps spawing "File ignored" in output

Using 2.2.2
Output keeps spawning this every second, cant get it to stop. No big issue but just a question why it keeps outputing it.
[2023-09-23T08:23:58.951Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:00.364Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:01.772Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:03.167Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:04.565Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:05.955Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:07.348Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:08.737Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:10.125Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:11.520Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:12.913Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:14.309Z]File ignored (ignore option): .git/index.lock [2023-09-23T08:24:15.678Z]File ignored (ignore option): .git/index.lock
Ignore file is setup to ignore .git yes
"ignore": [         ".git/**/*",         ".vscode/**/*", 		".gitignore"     ],

Hi,
The extension watches all files in the working directory. For every changed file that is ignored append info line to output. I don't know why in your case "index.lock" has many updates.


Should I reinstall vscode?At this moment?Appear timestamp strange.

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:
1.Reinstall windows
2.Updates may fil due to anti-virus software and/or runaway processes. Please try restartin your machine before attempting to update again. Please read the log file for more information:
C:\Users*\AppData\Local\Temp\vscode-ino-updater-1622424376.log
C:\Users*\AppData\Local\Temp\vscode-ino-updater-1622424376.log
vscode-ino-updater-1622424376.log
vscode-ino-updater-1622424376.log
vscode-ino-updater-1622424376.log
vscode-ino-updater-1622424376.log
vscode-ino-updater-1622424376.log
vscode-ino-updater-1622424376.log
Appear timestamp strange.
Version: 1.56.0 (user setup)
Commit: cfa2e218100323074ac1948c885448fdf4de2a7f
Date: 2021-05-04T22:09:06.405Z
Electron: 12.0.4
Chrome: 89.0.4389.114
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042

If you reinstalled Windows, I suggest to reinstall VS Code as well, yes.


Make 10000 default maker port on testnet

This aligns the default maker port between testnet and mainnet.

This PR is actually pointless. What we should really do is remove the --maker and --maker-id from the Umbrel setup!
I am doing that as part of updating the Umbrel PR.
I don't think we have to change the ports.


Any progress on polygons from hillshades?

I ran across this repo while looking for existing tools to create vector hillshades. I have experimented with a handful of methods (gdal_polygonize on hillshade TIFFs, gdal_contour on same TIFFs, black/white representations of hillshades with both tools, and more) and have failed to get satisfactory results. Did you produce decent results using your method outlined? If so, do you have any tips or information to share before I head down the same path?
Any input is appreciated, cheers!

Sorry, not yet. Been busy with a couple upcoming due dates. Hopefully beginning of August I will start tackling this again.

Awesome, i'll check back, thanks.

See #3


Handle 100 (Continue) HTTP response gracefully regardless of whether it was requested/expected

I created a failing test for issue #3628 (first commit) - or rather changed the previous serverRespondsWithUnsolicited100Continue test that asserts that the 100 response would just be returned to the user. I also tried to implement a solution, i.e. make OkHttp send the response body again if a response with code 100 was received (second commit).
When testing it with a real-world server in our app where the problem previously occurred, the issue also seems to be fixed.
However, after the request where the server sent the 100 response, the next HTTP request (in this case it's a GET) returns a 403 Forbidden error. I suspect this has something to do with the HTTP connection being in an inconsistent state so that it cannot be reused. But I don't really understand why this should be the case here (the client has sent the request body and read the response, so the request should in principle be done, right?). Does someone have an idea about this?
/cc @yschimke

@johan12345 did you fill in this contributor agreement?
https://github.com/square/okhttp/wiki/Contributing

@yschimke Yes, I think I did this already shortly after submitting the PR.


Lint/AssignmentInCondition false positive

logins_to_create = {}
# loop over these numbers
(serial_from..serial_to).each do |serial|
  logins_to_create[format('%s-%02d', pid_dc, serial).to_s] = true
end

Expected behavior
Should not trigger the warning. We are just setting the variable to true.
Actual behavior
app/controllers/user_projects_controller.rb:139:75: W: Lint/AssignmentInCondition: Use == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition. (https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition)
                 logins_to_create[format('%s-%02d', pid_dc, serial).to_s] = true
                                                                          ^

RuboCop version
$ rubocop -V
0.52.0 (using Parser <IP_ADDRESS>, running on ruby 2.4.2 x86_64-linux)

Can you give me more reproduce code? I can't reproduce it.
Put it as test.rb
logins_to_create = {}
# loop over these numbers
(serial_from..serial_to).each do |serial|
  logins_to_create[format('%s-%02d', pid_dc, serial).to_s] = true
end

Run rubocop
$ rubocop
Inspecting 1 file
C

Offenses:

test.rb:4:28: C: Style/FormatStringToken: Prefer annotated tokens (like %<foo>s) over unannotated tokens (like %s).
  logins_to_create[format('%s-%02d', pid_dc, serial).to_s] = true
                           ^^

1 file inspected, 1 offense detected

$ rubocop -V
0.52.0 (using Parser <IP_ADDRESS>, running on ruby 2.4.2 x86_64-linux)

 $ cat test.rb
logins_to_create = {}
# loop over these numbers
(serial_from..serial_to).each do |serial|
  logins_to_create[format('%s-%02d', pid_dc, serial).to_s] = true
end
✔ ~/scs-ror [gem_update L|…⚑ ]
16:02 $ rubocop test.rb
Inspecting 1 file
C

Offenses:

test.rb:4:28: C: Style/FormatStringToken: Prefer annotated tokens (like %<foo>s) over unannotated tokens (like %s).
  logins_to_create[format('%s-%02d', pid_dc, serial).to_s] = true
                           ^^

1 file inspected, 1 offense detected

This is OK.
Running on my code gives:
rubocop app/controllers/user_projects_controller.rb
Inspecting 1 file
W

Offenses:

app/controllers/user_projects_controller.rb:141:75: W: Lint/AssignmentInCondition: Use == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition. (https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition)
                 logins_to_create[format('%s-%02d', pid_dc, serial).to_s] = true
                                                                          ^

1 file inspected, 1 offense detected

I have created snippet:
          if serial_from >= 0 && serial_from <= 99 &&
             serial_to >= 0 && serial_to <= 99 &&

             # are boundaries in right order?
             if serial_from <= serial_to

               # loop over these numbers
               (serial_from..serial_to).each do |serial|
                 # rubocop:disable Style/FormatStringToken
                 # FIXME https://github.com/bbatsov/rubocop/issues/5245
                 logins_to_create[format('%s-%02d', pid_dc, serial).to_s] = true
                 # rubocop:enable Style/FormatStringToken
                 # FIXME https://github.com/bbatsov/rubocop/issues/5245
               end
             else
               # nonsense request
               login_error << t + " contains boundaries in wrong order: from(" +
                              serial_from.to_s + ") is greater than to(" + serial_to.to_s + "), request has no sense."

             end

          # otherwise we check that login match correct format of our project..
          # login match name of our pid exactly?
          # ie. dd-14-9 means to test t_rest for value "" (empty string)
          elsif t_rest.empty?
            # this we do not allow
            # (otherwise uncomment: logins_to_create[t] = true )
            login_error << t + " is not allowed to use exactly same login as is your pid " +
                           pid + ", correct format is " + pid_dc + "-NN, where NN is number."

          # login match name of our pid with two digit appendix? (ie. dd-14-9-02)
          # it means single member from serie,
          # ie dd-14-9-02 we test like a t_rest for value "-02"
          elsif t_rest.match?(/\A\-\d\d\Z/)
            logins_to_create[t] = true

          # otherwise is appended something incorrect to my pid (ie. dd-14-9-test)
          else
            login_error << t + " is not allowed format of login for your pid " +
                           pid + ", correct format is " + pid_dc + "-NN, where NN is number."
          end

rubocop test.rb
Inspecting 1 file
W

Offenses:

test.rb:1:11: C: Layout/InitialIndentation: Indentation of first line in file detected.
          if serial_from >= 0 && serial_from <= 99 &&
          ^^
test.rb:11:75: W: Lint/AssignmentInCondition: Use == if you meant to do a comparison or wrap the expression in parentheses to indicate you meant to assign in a condition. (https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition)
                 logins_to_create[format('%s-%02d', pid_dc, serial).to_s] = true
                                                                          ^
test.rb:42:1: C: Layout/TrailingBlankLines: 1 trailing blank lines detected. (https://github.com/bbatsov/ruby-style-guide#newline-eof)

1 file inspected, 3 offenses detected

Thank you! I can reproduce the problem, and I can create a minimum reproduce code.
if cond &&
    if cond2
      foo[bar] = baz
    end
end

Thanks!

Thank you! I can reproduce the problem, and I can create a minimum reproduce code.

That is ... valid Ruby? 😱

Well, the code is not beautiful and you can see just the part of it. :angry: Anyway, the author is not member of the project anymore.

My fear is that we'd need to account for this kind of code in a lot of existing cops. It is probably better to introduce a cop that prevents the adding of such code in the first place. WDYT?

Syntax is not pure but the code is valid, Ruby is OK with that. I'd correct this false positive. Then we can introduce the cop to rule out code like this.


Event Listeners should be registered outside Angular

In an Angular 2 app, zone.js basically polyfills/overrides native functions like addEventListener, setTimeout etc.
When event listeners are added using addEventListener function, they get registered in the zone.js and effectively are used to detect changes inside the app.
In practice, components like vaadin-grid and vaadin-combo-box listen to scroll event, therefore scrolling these components will trigger the execution of ngDoCheck function on every directive/component in the app on every event.
This will most likely cause performance issues like we already saw earlier when hovering over vaadin-charts.
To fix this, we should be able to somehow register our event listeners outside Angular using
this.zone.runOutsideAngular(() => {
  // call addEventListeners here.
});

I noticed the same issue and was thinking about how to use runOutsideAngular to wrap all Polymer events to improve performance. I am seeing quite a bit of performance degradation with nested elements - not just Vaadin elements, but basic paper-elements like paper-menu-button. Anybody looking at this. Any workarounds?


fix(balancer): ensure the notify callback is invoked only if defined when handling cached connection errors

Summary

address comments of #12346
Checklist

[x] The Pull Request has tests
[ ] A changelog file has been created under changelog/unreleased/kong or skip-changelog label added on PR if changelog is unnecessary. README.md
[ ] There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Issue reference

Review patches for tzssangglass:fix_max_retry_for_28 -> release/2.8.x on tzssangglass/kong: https://github.com/Kong/openresty-patches-review/pull/44/files

Pending engineering discussions, please hold off merging for now.

We need to revert #12346

close by: #12497


[Networking][1/2] Added routes for networking

Overview

Added FutureNova and infrastructure for implementing networking

Changes Made

Added FutureNova
Created models for data
Added logic to be able to utilize network routes

Test Coverage

Manual testing

Next Steps (delete if not applicable)

Replace all data with backend values

Related PRs or Issues (delete if not applicable)
#27

lgtm! just a couple nitpicky comments

i accidentally just commented my review instead of approving lmao, but i approve