Enable DeathLocator in aRK Server Tools?

Hi everyone,
I tried to activate the DeathLocator via 'bUseCorpseLocator=true'. Referencing to the patch notes I wrote the command in my GameUserSettings without success.
Then I researched a bit and found some people who wrote that the command needs to be in the Game.ini, but that doesn't work too :-(
Does anyone know where I have to add the command? Maybe its different, when I use Ark server tools ?
Thanks in advance!

My guess it that it would go into the [/script/shootergame.shootergamemode] section of Game.ini - the patch notes don't say what section the new setting goes into, but according to http://ark.gamepedia.com/Server_Configuration#Game.ini all Game.ini settings go into that section.

Actually it's saved there and doesn't work :-(

It goes in GameUserSettings.ini, I placed it under server settings and its working

@wtfcolt
I wrote it under
[ServerSettings] bUseCorpseLocator=true


Fixed issues with uninstallation process

Description
bug fix.
Helm chart for tigera-operator since v3.27.0 fails to uninstall due to missing delete permission on installations resource required by Job tigera-operator-uninstall, which is run as a Helm pre-delete hook.
[ERROR] installations.operator.tigera.io "default" is forbidden: User "system:serviceaccount:tigera-operator:tigera-operator" cannot delete resource "installations" in API group "operator.tigera.io" at the cluster scopeFailed to complete pre-delete hook
[ERROR] apiservers.operator.tigera.io "default" is forbidden: User "system:serviceaccount:tigera-operator:tigera-operator" cannot delete resource "apiservers" in API group "operator.tigera.io" at the cluster scopeFailed to complete pre-delete hook
link to the related issue:
https://github.com/projectcalico/calico/issues/8389
Tested on dev and local env.
Related issues/PRs
fixes https://github.com/projectcalico/calico/issues/8389
Todos

[x] Tests
[ ] Documentation
[ ] Release note

Release Note

Fix missing permissions when uninstalling tigera-operator.

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

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

/sem-approve

@caseydavenport should we cherry-pick this to v3.27? how about v3.26?

A cherry-pick is probably a good idea, although I suspect there are other issues lurking that need to be fixed as well. Shouldn't stop us from rolling this one out necessarily.


Remove resin references in balenaOS component image

Visible here, and fully resolvable here, these references should be updated to reflect the name change.

On a related note, I just noticed that one of the screnshots at https://www.balena.io/docs/learn/getting-started/raspberry-pi/nodejs/#adding-your-first-device (specifically https://www.balena.io/docs/img/raspberry-pi/os-options.png ) still mentions RESINOS.
The same problem seems to affect multiple other board-types too, e.g. https://www.balena.io/docs/img/orangepi-plus2/os-options.png

Hmmm, images on https://www.balena.io/docs/reference/OS/updates/self-service/ are affected too :eyes:

The original issue was closed via https://github.com/balena-io/docs/pull/1332
Self-service image updates noted above are bundled into the ESR PR https://github.com/balena-io/docs/pull/1240 which has been stuck for a few months so I'll pull those out to fully resolve all comments above.

Closing this via #1347


Simple GOG integration

erri120 and I got and simple GOG integration working.
There is still a limit just like with the steam integration if a game like The Witcher 3 has multiple IDs on those Platforms, but this still should proof useful for everyone planning to create an extension for a game that is both on steam and GOG available.

Thanks for the PR but I'd rather have the whole GOG-ID stuff in a dedicated file, similar to the steam_utils.py. I will have a look at this today, I can probably handle multiple IDs.
BTW, you can find the Steam ID by going to the Steam page for the game: https://store.steampowered.com/app/292030/The_Witcher_3_Wild_Hunt/

I've made appropriate change in https://github.com/ModOrganizer2/modorganizer-basic_games/pull/6 This support multiple IDs for both steam and GOG. I've added appropriate credits in the PR and in the code. Let me know if it works for you.

It worked as intended and was able to detect my GOG installation.👌
Also thanks for the credit.
I still have a copy repository, where I will host my version of the Witcher 3 plugin with the ini-file support, since there are plans for a wabbajack list which can make more use of that feature than of the shown save games. I hope this is ok with you. (have read on the feed in discord, that the team is working on improving the way saves are managed for non Bethesda which might make my plugin obsolete since then this functionality can be added to yours as well without breaking the saves hopefully)
I also linked this repository there for people who get interested in creating their own support extension to this plugin. So they all are collectively shared here and not on my repository.
And again thanks for the help in the early stages of this process, that got me interested and also helped me learn.


use crate clap

not use crate argh.
If possible, I can just do this.
@shramee

i want to work on this please assign me the task

Sorry, this doesn't seem necessary.


Replace links to Contact Us page

What's the improvement:
After we implemented the Contact Us form, we will have to update the links on the content page. Those links used to point to Google forms.
How should it look like (screenshot or sketch): This improvement isn't about the presentation.
How should it work (write use case): The URL of the links should be <NamedLink> and redirect to the correct version of ContactusPage
Priority (tag accordingly): regular
Domain (tag accordingly): frontend
Branch: replace-links-to-contact-us-page
Work on it

Derive the branch from staging.
Tag with ongoing and move the card to ongoing.
Develop the feature
Commit your work
Create a PR and ask for validation. Move the card to staged.
Ask for validation.
Close the issue if all the work have been done

** Validate **

Check on mobile and on desktop if the feature have been correctly implemented.
If everything is working fine, move the card toaccepted column.
If the feature isn't completely implemented, re-open the issue with a comment clearly what the problem is and what is the desired result. Move the card to have issues column.

Please follow https://github.com/Whichost/frontend/wiki/Git-workflow
Here's the list of links furnished by @buckwierd

Hi Loic,
These are the FAQ items as requested:

What if my business is not a pub? Can I list it on Whichost?
I don't see my question here <- This one is to be found more than once
How do I list my pub ob Whichsot?
Why do you charge transaction fees?
How to get good-looking listing pictures?
How do I add my payout information?
Is it possible to edit or delete reviews? <- This one is to be found more than once
How do I charge for additional services?
Can I enforce a cancellation policy?
When will the money for the booking be on my account?
... the request was just denied. Is this a charge?
Is a booking request binding?
Can I delete my account?
How can I report a suspicious account activity?
How do I report other users for acting against Whichost policies?

Cheers,
Radu

Add a feedback link

What have been done: We changed the link of FAQ page and Privacy policy
Pushed to: replace-link-to-contact-us-page
Tag somebody: @Shane-Walsh
PR: #213
Asking for validation:

Check on mobile and on desktop if the issue have been correctly fixed.
If everything is correct, move the card to accepted column.
If the issue isn't fixed, re-open the comment clearly what the problem is and what is the desired result.
Move the card to have issues column.
Merge (or express approval in) the corresponding PR if needed. Move the card to the launch column.


Alert .cancel action does not send nil.

Description
Following along with point free episode  217. The following 'end meeting' button returns confirmSave action when it shouldn't.
.alert(
  unwrapping: self.$model.destination,
  case: /RecordMeetingView.Model.Destination.alert
) { action in
  self.model.alertButtonTapped(action)
}

func endMeetingButtonTapped() {
    destination = .alert(
        AlertState(
            title: TextState("End meeting?"),
            message: TextState("You are ending the meeting early. What would you like to do?"),
            buttons: [
                .default(TextState("Save and end"), action: .send(.confirmSave)),
                .destructive(TextState("Discard"), action: .send(.confirmDiscard)),
                .cancel(TextState("Resume")) // here
            ]
        )
    )
}

func alertButtonTapped(_ action: AlertAction?) {
    guard let action else {
        return
    }
    switch action {
    case .confirmSave: // goes here
        onMeetingFinished()
        self.dismiss = true
    case .confirmDiscard:
        self.dismiss = true
    }
}

Checklist

[X] I have determined whether this bug is also reproducible in a vanilla SwiftUI project.
[X] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue or discussion.

Expected behavior
Tapping the resume button dismisses the alert and the meeting continues.
Actual behavior
Tapping the resume button ends the meeting.
Steps to reproduce
I will attach the sample code.
SwiftUI Navigation version information
0.7.2
Destination operating system
iOS 16.4
Xcode version information
Version 14.3 (14E222b)
Swift Compiler version information
swift-driver version: 1.75.2 Apple Swift version 5.8 (swiftlang-<IP_ADDRESS>.2 clang-14<IP_ADDRESS>.100)
Target: arm64-apple-macosx13.0

Standup.zip

I'm not able to reproduce the problem you are describing. When I tap "Resume" the alert dismisses and the meeting continues, whereas when I tap "Save and end" the meeting is popped off the stack:
Simulator Screen Recording - iPhone 14 Pro - 2023-06-05 at 12.35.46.mp4
Make sure you are updated to the newest SwiftUINavigation version (0.7.2). There may be some bug fixes that are affecting this.

It's working for me too this morning. I haven't purged derived data...
I left my laptop on overnight and my simulator threw a strange error this morning. So restarted the simulator. That's the only thing that changed.
iPhone 14 Sim - iOS 16.4
I'll keep an eye on it.
Thanks for your time.


Implement Consistency Checks for e.g. too small boards

Implement mechanism, to disable certain applications if the provided display size is too small to render a meaningful picture.
e.g. the chess field.

Currently, this could cause a crash!


add new macro for iterating over an array

Use cJSON_GetArrayItem(item, i) to get every item of a large array is very slow.
It's better to use a macro to iterate over an array.

A good compiler can inline the function thereby eliminating the overhead!


[Core] Add support for InCondition

Suggestion
The ability to check for multiple values using an IN condition would be nice to have. The idea would be roughly be identical to the EqualCondition except the second argument allows an array (multiple values).
<?php

use Schranz\Search\SEAL\Search\Condition;

$result = $this->engine->createSearchBuilder()
    ->addIndex('blog')
    ->addFilter(new Condition\InCondition('tags', ['UI','UX','Frontend']))
    ->getResult();

This probably would require research to check if all engines allow a kind of "IN".

algolia - OR chaining (unsure)
elasticsearch - terms
opensearch - terms
loupe - ?
meilisearch - IN
redisearch - | chaining; @x:(foo|bar) (unsure)
solr - ?
typesense - ?

Thx for creating the issue.
At the end a in condition is nothing else as a combination of EqualConditions inside OrCondition. So we could always fallback to that as OrCondition are implemented everywhere if there is no direct support for IN.

Startet with this in https://github.com/schranz-search/schranz-search/pull/447 and added a reference test.

Implemented in #447


Documentation for iterators, global, and browser environment missing

README.md mentions some features only in passing, without supporting documentation, thus leaving some features 'hidden' and unusable.
It mentions ES2015 support and documents many of the added APIs, but not all.  Surprised at no mention of iterators I still found them supported in the code.
Return possibilities
  'Map Iterator'
  'Set Iterator'
  'Array Iterator'
  'String Iterator'

should be documented, though it may be hard to come up with easily understood examples on when these values are encountered. A combination of built-in objects and method calls ...?
    assert(type(new Map()).entries() === 'Map Iterator')
    assert(type(new Set()).entries() === 'Set Iterator')

While spelunking I found these browser/DOM-related values in the code:

return value
notes on source

'global'
(browser) window ,  (node) global , others...

'Location'
window.location

'Document'
window.document

'MimeTypeArray'
window.navigator.mimeTypes

'PluginArray'
window.navigator.plugins

'HTMLQuoteElement'
(IE fix)  HTMLElement  HTMLElement  BLOCKQUOTE

'HTMLTableDataCellElement'
(W3C vs. WhatWG fix)   HTMLElement  TD

'HTMLTableHeaderCellElement'
(W3C vs. WhatWG fix)   HTMLElement  TH

After much scrolling of doc/code windows I think the above are all the missing parts.
If the mentions in passing of "global object", "iterators", "browsers" and "HTML elements" in README.md can be matched up with documented type string return values then readers will know how to use all the features this package provides.

@tshinnic a lot of these rely on the browsers Symbol.toStringTag value on each implementation, which is why they're not so well documented here.
It looks like you've done a great job documenting some of these already - so if you'd like to PR what you have so far that'd be a great start to documenting all of this!

boolean is also missing.


WIP [CI] Implement Code Coverage for Cypress tests

Description
This PR implement Code Coverage for Cypress tests following the official guide:
https://docs.cypress.io/guides/tooling/code-coverage.html
This PR fixes #2251
Notes for Reviewers
Signed commits

[X] Yes, I signed my commits.

There are two errors at running CI tests:

Related to the package babel-plugin-istanbul:

Error: Cannot find module 'babel-plugin-istanbul'

See workflow

Related to ingesting Google Tag Manager:

  > cov_qkqcmc95l is not defined

See workflow
Working on solving these issues...

There are two errors at running CI tests:

Related to the package babel-plugin-istanbul:

Error: Cannot find module 'babel-plugin-istanbul'

See workflow

Related to ingesting Google Tag Manager:

  > cov_qkqcmc95l is not defined

See workflow
Working on solving these issues...

There are two errors at running CI tests:

This was solved by:

Moving @cypress/code-coverage to production dependencies

Not including coverage babel transpile to the Google Tag Manager implementation

Tests pass now. Working on uploading the coverage report...

There are two errors at running CI tests:

This was solved by:

Moving @cypress/code-coverage to production dependencies

Not including coverage babel transpile to the Google Tag Manager implementation

Tests pass now. Working on uploading the coverage report...

No coverage uploaded for pull request base (master@2353160)

Codecov says that because there is not a previous report on master to make a diff. It is ok for now.

No coverage uploaded for pull request base (master@2353160)

Codecov says that because there is not a previous report on master to make a diff. It is ok for now.

Thank goodness for the e2e tests that have been written, which are the only reason for a ~30% coverage. 😅

Thank goodness for the e2e tests that have been written, which are the only reason for a ~30% coverage. 😅

Thank you guys.

Thank you guys.


Update discogapic

Discogapic pipeline needs to be updated to reflect gax-java changes.

Codecov Report

Merging #1683 into master will not change coverage.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master    #1683   +/-   ##
=========================================
  Coverage     85.52%   85.52%
  Complexity     4292     4292
=========================================
  Files           405      405
  Lines         16869    16869
  Branches       1762     1762
=========================================
  Hits          14428    14428
  Misses         1854     1854
  Partials        587      587

Impacted Files
Coverage Δ
Complexity Δ

...degen/transformer/java/JavaSurfaceTransformer.java
97.8% <100%> (ø)
68 <0> (ø)
:arrow_down:

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 e7527d1...3015814. Read the comment docs.

PTAL

PTAL

PTAL


iOS Simulator behaviour

How does this plugin supposed to behave on the iOS Simulator?
I persist the contentsync folder with localStorage, currently, on the simulator, the contentsync folder is missing
/Users/me/Library/Developer/CoreSimulator/Devices/A7BE80E3-0BEF-48DD-81CA-F48A0FED3DB2/data/Containers/Data/Application/6E81D19F-2349-4D3E-9C4A-85831EF3EED3/Library/mlib/
is the folder
A7BE80E3-0BEF-48DD-81CA-F48A0FED3DB2 exists
6E81D19F-2349-4D3E-9C4A-85831EF3EED3 doesn't exist
an existence check routine might have been nice
I have no idea how to debug this issue, I'm also unsure whether the issue is unique to the simulator, would appreciate some advice at this point, thanks :)

After researching the issue, I'm guessing it might be because the simulator session wasn't saved and the simulator terminated before it did, as far as I read the simulator runs on memory and persists the storage periodically or on demand (?)

@kaansoral the reason is because Apple doesn't want you to store/rely on the UUID of your application. The best way in your case is to set options.type to local which would return the path to the local copy of your folder (by id) if it exists or would act as "replace" if it doesn't (which means download/extract/..).

Thanks, it's perfect :)
I didn't pay attention to the "local" option when I was reading the documentation, it's certainly a very well thought feature
I was caching the path myself, but now I'm just calling the ContentSync plugin with the "local" option if there is a cached flag in localStorage

@kaansoral can we consider this issue to be resolved? If so feel free to close it or leave a comment indicating it is resolved.

Sorry, it's resolved, thanks :)


migrate gitian-debian apt builder from bitcoinxt project

Re-submitting this merge request on the 0.12 branch.  Debian packages have also been requested in issue #85.
This is a simple copy and update of the gitian debian apt builder script and support files from the XT project. I called the package bitcioncl so it won't conflict with any bitcoin core or xt installation. I didn't create the original script but I've been the most recent maintainer and the XT team found it useful so I hope classic will too. If you have any questions or would like any changes I'm happy to help.
Some discussion on my most recent changes here
@zander took a look back in August also.

Thanks for this!

Happy to help!


Fix resource link in: Update driver-pattern.md

Fixed link to David Leitner's blog post "Driver Pattern empowers your SpecFlow step definitions" on the "Using the Driver Pattern" documentation page.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).
[ ] Performance improvement
[ ] Refactoring (so no functional change)
[x] Other (docs, build config, etc)

Checklist:

[ ] I've added tests for my code. (most of the time mandatory)
[ ] I have added an entry to the changelog. (mandatory)
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.

Thx!


add step to handle ipv6

if service IPFamily is IPv6, the kong target address:port
must be ipv6 format, like [1:1]:80.
fixes #972

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

@mflendrich I really doubt but I must ask, is there a way to add an e2e test for this?

@hbagdi

I really doubt but I must ask, is there a way to add an e2e test for this?

Our E2E test today uses the IPv4 stack. It appears possible to switch to IPv6. AFAIK dual-stack is not supported in KIND yet (but maintainers are thinking of introducing dual-stack).
I can see two options

write a test which: creates a Service with two hard-coded endpoints: one IPv4 and one IPv6, and asserts on /config
introduce an IPv6 test environment parallel to the existing one, and write a real end-to-end test that traffic proxying to an IPv6 endpoint actually works

I think that (1) should be possible with the existing E2E test setup, but it tests to a limited extent.

@yaoice Would you be able to try option (1) and add an end-to-end test for this feature?

@yaoice Would you be able to try option (1) and add an end-to-end test for this feature?

I'm willing to try to do it.

@yaoice Would you be able to try option (1) and add an end-to-end test for this feature?

I have done these steps:

add 08-service-dual-stack e2e test case, create an ingress with ipv4 service and ipv6, and with hard-coded endpoints.
update the test/integration/util/create-cluster.sh to change the KIND_CONFIG. I'vd tested many times that it have to enable  IPv6DualStack=true featureGates, and config ipv6 service-cluster-ip-range and cluster-cidr. Otherwise, it can't create service with ipFamily=IPv6
update test/integration/util/run-all-tests.sh to expose kong admin api for asserting on /config.
add Run service-dual-stack test case manually in README.md

I have executed make integration-test  locally and it can pass successfully.

@mflendrich Can you take a look at the e2e test?

@yaoice just checking in, let us know how we can best support you in moving this forward! :vulcan_salute:

This was closed but we would love to get this into mainline if someone wishes to contribute.


update to 10.20220624

Comment:
was released awhile back but seems to be not yet in conda-forge

we are way past that point and @notestaff uploaded more recent ones


exclude non-necessary files from gem?

not sure what's expected.
gem.files.exclude(
  'demo/*',
  'gemfiles/*',
  'spec/*',
  'Appraisals',
  'Gemfile.lock'
)

Really should remove Jeweler and just cook a .gemspec.

Closed via https://github.com/mongoid/mongoid-locker/pull/45


no replication of filer data??

How to configure filer for multi-master replication??
I have 3 masters talking to each other but filer data is not replicated.
The intent is to have filer speaking to master@localhost and mount local filer with FUSE mount.
Where is the catch??
Also there seems to be no redundancy for filer whatsoever or did I miss anything??
How can I setup FUSE mount with fail-over to backup filer??
Thanks.

Default filer uses local leveldb. For multiple filers, the filer store needs to be a distributed store and filer itself becomes stateless.
https://github.com/chrislusf/seaweedfs/wiki/Filer-Stores
FUSE already has metadata sync. Local filer does not help much. Using remote filer is fast enough.

I see that Filer is the single point of failure and that it is not designed to replicate data on its own.
IMHO Filer should be incorporated into Master and something should be done to save Filer's metadata to all Master nodes automatically. One might even consider to store Filer's data into Volumes hence eliminating need for external filer stores/backends.
This is a very serious problem. All Filer Stores have single point of failure (except Etcd which is not scalable enough to handle large metadata).

You can use CockroachDB / Cassandra / TiDB / Redis cluster for a no-SPOF filer store.
In the future, filer with leveldb will sync metadata with each other to avoid SPOF.

You can use CockroachDB / Cassandra / TiDB / Redis cluster for a no-SPOF filer store.

Unfortunately this is not good enough. Those backends are too complex/sophisticated (hard to deploy, configure and maintain), too many moving parts, etc...
weed mount can talk to one filer only and that is the foremost problem to address -- fail-over must be built into FUSE client.

In the future, filer with leveldb will sync metadata with each other to avoid SPOF.

Thanks. Native replication is much needed feature.

@onlyjob , you can use -defaultReplicaPlacement=xxx command line parameter.
Example: weed filer -collection=filer -defaultReplicaPlacement=200
I found it here

That's not for a replication of filer's metadata but for a data. Filer don't replicate its own metadata as the replication is delegated to filer store that should be configured separately. Default filer's store have no replication.

@onlyjob
I use CockroachDB cluster for metadata replication.
It was simplest way.
https://www.cockroachlabs.com/docs/stable/orchestrate-cockroachdb-with-docker-swarm-insecure.html#undefined

@shm-dmitry could you please share your setup? I can try to bake it into the default distributed setups.

Thanks, @shm-dmitry. Personally I would not touch anything running on Swarm. Docker is terrible enough on is own. These days we should be using (superior) libpod/Podman.

@onlyjob , I using swarm as very simple orchestrator. I liked it because I was able to configure it in half an hour.
@chrislusf - you will need an odd number of manager-nodes - 1, 3, 5
You can use manager node as worker node.
You cat start on one host swarm master, filer and CockroachDB
Docs here and here.
I assume you have 3 nodes with filer, and you want to install CockroachDB on them.
I assume you will run all commands as root.
I assume you hosts are named host00, host01 and host02. Change hostname in commands.

Install docker on all nodes you need:

gpg --keyserver subkeys.pgp.net --recv 7EA0A9C3F273FCD8
gpg --export --armor 7EA0A9C3F273FCD8 | sudo apt-key add -
apt-add-repository http://download.docker.com/linux/ubuntu
apt install docker-ce docker-ce-cli containerd.io

Init swarm:
On first node:
docker swarm init
docker swarm join-token manager
As result in stdout will be printed docker-join command for add new masters.
Just copy-past output and execute on two other nodes:

docker swarm join \
  --token xxxxxx \
  YOUR_IP_HERE:2377

Check swarm is running:
On any manager-node:
docker nodes ls
You will see output like here:

xxx *   node00            Ready               Active              Leader              19.03.5
yyy     node01            Ready               Active              Reachable           19.03.5
zzz     node02            Ready               Active              Reachable           19.03.5

Ok, swarm is configured and running - lets start CockroachDB
Execute this command on any manager-node

docker service create \
    --name "seaweedfs-filer_db__prod" \
    --config src=sys.timezone,target="/etc/timezone" \
    --mount type=volume,source=cockroachdb-1,target=/cockroach/cockroach-data \
    --hostname "{{.Node.Hostname}}" \
    --publish published=48080,target=8080,mode=host \
    --publish published=26257,target=26257,mode=host \
    --mode global \
    cockroachdb/cockroach:v20.1.1 \
    "start" \
    "--join=host00:26257,host01:26257,host02:26257" \
    "--logtostderr" \
    "--insecure"

This command will start cockroachdb on a cluster.
Wait a minute and check cockroachdb is running:
docker service ls
xxx        seaweedfs-filer_db__prod                    global              3/3                 cockroachdb/cockroach:v20.1.1

Now you have to initialize CockroachDB cluster.
Run on any node:
docker run -it --rm cockroachdb/cockroach:v20.1.1 init --host=host00 --insecure

All done.
You can visit web-admin-page here: http://host00:48080

Filer and DB configuration:
Connect to CockroachDB from any SQL Developer supports PGSQL and execute this:

create database filer;
use filer;
CREATE TABLE IF NOT EXISTS filemeta (
  dirhash     BIGINT,
  name        VARCHAR(65535),
  directory   VARCHAR(65535),
  meta        bytea,
  PRIMARY KEY (dirhash, name)
);

Setup filer:
Locate your filer.toml on all nodes and change it.
[postgres]
enabled = true
hostname = "localhost"
port = 26257
username = "root"
password = ""
database = "filer"
sslmode = "disable"
connection_max_idle = 100
connection_max_open = 100

OK.
Now you can start filer:
Run on all nodes:
weed filer -collection=filer -defaultReplicaPlacement=200

@shm-dmitry have a look at deploying a Kubernetes cluster in <1m with k3s and k3sup.
Just way better then Docker Swarm in any way and makes it pretty accessible. I can recommend it absolutely after trying a few options. Especially nice in combination with helm charts.
https://k3s.io/
https://github.com/alexellis/k3sup

@thiscantbeserious
I do not want to dispute about which is better - swarm or kubernetes. It seems to me like a dispute between android and ios :)
I tried to install minikube, I spent 2-3 hours, but did not get any progress.
Then I tried MicroK8s with same result.
I read this, but it was not helps to me.
Unfortunately I did not have much time for this task.
So, I looked at swarm...
I execute docker swarm init + docker swarm join... and its works!!
Yes, I understand that kubernetes is a more thoughtful solution.
But I have 25 virtual nodes with 50 docker services (~ 100 running containers), and its works...
Swarm is very easy to maintaining...
Yes, there are some things that are missing or that do not like. But in general - this is not critical.
About this guide - yes, it will be cool.

Hi,

In the future, filer with leveldb will sync metadata with each other to avoid SPOF.

Is this feature planned?

Currently there is an HA implementation, where peers can subscribe to each other's metadata events, with weed filer -peers=....
Still WIP. Currently if one filer goes down, how to catch up the updates are not implemented yet.

Ok, nice! That is more than I expected.

Added in 1.93
https://github.com/chrislusf/seaweedfs/wiki/Filer-Store-Replication


SPIDER call redox chemistry

Goal: Implement SPIDER call sequence to specific redox state + H/C ratio instead of total volatile budget or partial pressure
@djbower Could you provide us with an example to call sequences to SPIDER that do that so we can implement this into PROTEUS?
Are there incompatibilities we should be aware of with other call variables? The list of used variables is here (line 67 ff.): https://github.com/FormingWorlds/PROTEUS/blob/master/init_coupler.cfg

See parameters.c around line 1032.
  Ap->OXYGEN_FUGACITY = OXYGEN_FUGACITY_NONE;
  {
    PetscInt OXYGEN_FUGACITY = 0;
    PetscBool OXYGEN_FUGACITYset = PETSC_FALSE;
    ierr = PetscOptionsGetInt(NULL, NULL, "-OXYGEN_FUGACITY", &OXYGEN_FUGACITY, &OXYGEN_FUGACITYset);
    CHKERRQ(ierr);
    /* only set OXYGEN_FUGACITY if there are reactions, since fO2 is
       used to also adjust the total atmosphere pressure */
    if (OXYGEN_FUGACITYset && Ap->n_reactions)
      Ap->OXYGEN_FUGACITY = OXYGEN_FUGACITY;
  }

  /* default offset, assuming IW buffer is 0.5 from Sossi et al. (2020) */
  Ap->OXYGEN_FUGACITY_offset = 0.5;
  ierr = PetscOptionsGetScalar(NULL, NULL, "-OXYGEN_FUGACITY_offset", &Ap->OXYGEN_FUGACITY_offset, NULL);
  CHKERRQ(ierr);

  PetscFunctionReturn(0);
}

Set OXYGEN_FUGACITY to an integer according to the models specified in atmosphere.c::set_oxygen_fugacity.  You can also specify OXYGEN_FUGACITY_offset to give the log10 offset relative to the buffer.  If you generally search in the code for OXYGEN_FUGACITY you will find the required functionality.
Currently there is no way in SPIDER to specify a H/C ratio directly.  You have to determine either the pressures of the species or the total mass (kg) and then feed those into the code. In which case, the coupler will need to do the conversions.

Awesome, thank you, that is even better! So we can feed the H-C-N-O compounds via H2O_initial_total_abundance (these are ppm wt though?) and set OXYGEN_FUGACITY  or OXYGEN_FUGACITY_offset . I am not sure I understand the difference between the latter two parameters though.

OXYGEN_FUGACITY sets the choice of the buffer (e.g. Iron-Wustite or whatever) whereas OXYGEN_FUGACITY_offset is the log10 offset relative to the chosen buffer.  So for example you can choose the IW buffer and then set the offset to '-1' in order to set the fugacity at IW-1.
Yes initial total abundance is ppm by weight, which is the mass of the volatile divided by the total mantle mass (which could be a combination of melt or solid).

Great, thank you! :-)

Hi @djbower , this approach seems to work when IC_ATMOSPHERE=3 and volatile partial pressures are set. However, the model crashes when using IC_ATMOSPHERE=1 and the total abundances (ppmw) are set.
The error occurs when the model tries to solve for the partial pressures from the total abundances. I've provided more information below and attached a couple of options files that have produced this error (file extension changed to txt, as GitHub didn't allow opts). Could you tell me what I might be doing wrong?
Run command: ./spider -options_file test_ic_abundance.opts
Error message: Matrix type mffd does not have a multiply transpose defined or is symmetric and does not have a multiply defined.
Error sequence:
[0]PETSC ERROR: #1 MatMultTranspose() at /home/n/nichollsh/PROTEUS/petsc/src/mat/interface/matrix.c:2625
[0]PETSC ERROR: #2 SNESSolve_NEWTONTR() at /home/n/nichollsh/PROTEUS/petsc/src/snes/impls/tr/tr.c:429
[0]PETSC ERROR: #3 SNESSolve() at /home/n/nichollsh/PROTEUS/petsc/src/snes/interface/snes.c:4666
[0]PETSC ERROR: #4 solve_for_initial_partial_pressure() at /home/n/nichollsh/PROTEUS/SPIDER/ic.c:940
[0]PETSC ERROR: #5 set_ic_atmosphere_from_initial_total_abundance() at /home/n/nichollsh/PROTEUS/SPIDER/ic.c:828
[0]PETSC ERROR: #6 set_ic_atmosphere() at /home/n/nichollsh/PROTEUS/SPIDER/ic.c:468
[0]PETSC ERROR: #7 set_initial_condition() at /home/n/nichollsh/PROTEUS/SPIDER/ic.c:54
[0]PETSC ERROR: #8 main() at /home/n/nichollsh/PROTEUS/SPIDER/main.c:78

test_ic_abundance_simple.txt
test_ic_abundance.txt

It is often difficult for the solver to find an initial partial pressure from total abundances if the total abundances are far from the basin of convergence.  Unfortunately, there's not really a good way to deal with this, other than to trial-and-improvement the initial condition.
The approach that I previously took was to start with just H2O (in which case you don't need OXYGEN_FUGACITY or OXYGEN_FUGACITY_offset since you have no reactions and only one species).  Then you make sure that the system can solve for the initial partial pressure.  Once this works, you can add in H2.  You know the ratio of pH2O/pH2 from equilibrium chemistry at a given temperature so you can try and enforce this ratio from the outset.  For example, for a given gamma = pH2O/pH2 and pH2O, you can compute the total mass of H in the system using a simple python script.  Then you can solve to get the initial H2 and H2O partial pressures.
Then you can add in the carbon system, since the carbon system will only change the partial pressures of the hydrogen species by a small amount.  And then basically you keep iterating and adding more species to ensure you are close enough to the equilibrium state that the solver finds a solution.  This limitation was ultimately why I switched to using the partial pressure for the initial condition, rather than trying to back-solve from the initial total abundance.  Because practically, it was easier to evolve partial pressures from a known "correct" state than to ask SPIDER to solve for the initial partial pressures.
Another approach that is helpful is to consider what is the main background gas.  In most cases at high temperature it is CO, in which case you can approximation mu_bar = mu_CO in C.6. of Bower et al. (2022).  This allows you to decouple the different systems (e.g. C and H) and you can treat them as independent equation sets to get a rough solution using a simple python script.
So in short, yes there can be problems solving for the initial partial pressures of the volatiles, and this is legacy of the fact that SPIDER was not designed from the outset with a sophisticated chemical solver. But once you help SPIDER to be within the basin of convergence by presolving for the initial pressures (even roughly), SPIDER does a good job of integrating from that point throughout the model.

I've attached the python script I wrote to determine the initial partial pressures for SPIDER based on a C/H ratio, H mass, and fO2.  This duplicates much of the code you see in python.  Obviously you have to make sure that this script and Python are using the same solubility law, fO2, etc.  There's also an option to include nitrogen.  To the best of my knowledge this script should work out of the box.
spider_volatiles_solver.py.zip

That's fantastic - your explanation makes sense. Thanks a lot for your help, Dan!
Since I was having no problems with using partial pressures, I had already considered writing a short script to compute them from the above parameters. However, it seems that you've already done exactly that, which is very helpful. The script itself runs fine out of the box.
Would it be okay with you if this code was adapted into PROTEUS? It would be ideal to include these parameters inside the PROTEUS configuration file, instead of the partial pressures, as it makes for more meaningful comparisons.

Sure, feel free to include the code in PROTEUS or adapt and amend it as required.  If you happen to be keeping a reference list for codes, perhaps you can add this paper:
https://www.sciencedirect.com/science/article/pii/S0012821X22005301
Simply because I wrote the script that I sent you for the above paper (notably the MCMC part).

Thanks - I'll make a note of the paper.


NAC is broken in development branch?

it seems that NAC is broken in the development branch. Even when the BORN file is present in the current directory, phonopy gives the error:
if nac_params is None and file_exists("BORN", log_level):
NameError: name 'nac_params' is not defined
I am using phonopy via command line:
phonopy -p --readfc --band=auto --dim="6 6 6" -c POSCAR-unitcell --readfc-format=HDF5 --band-connection --nac

Thanks. I think this is fixed.
But there may be other issues. Today, I refactored phonopy code around the user interface.

Thanks! Now it works properly.
If I find any other issues, I will notify you.
Thanks
Alex


Bump the development version

Summary
Make sure that the development version is higher than the current stable release.
Intended Effect
N/A
How to Verify
N/A
Side Effects
N/A
Documentation
N/A
Copyright and Licensing
Hamada S. Badr<EMAIL_ADDRESS>

@hsbadr we're discussing the version bump thing over here: https://discourse.mc-stan.org/t/minor-versioning-after-release/19803

Thanks @bbbales2! Sorry, I haven't noticed that thread before, but I'll check it out. It's just inconsistent to have the development version lower the the stable release.

strongly object to the idea of putting dev version at 2.25.999
I don't see that it's going to hurt anything, but it's not standard practice anywhere else and I don't think versioning is the kind of thing that we should be innovating on.

There's a discussion on this here. I agree that we should use a standard versioning convention. But, the current loose versioning is inconsistent (the development version is at 2.24.0 after the stable release 2.25.0).
We could append a 4th level <IP_ADDRESS>00 like  in R or a suffix -dev, -git, or -<commit_hash>. What do you think?

JFYI. @rok-cesnovar @bbbales2 I expected any version bump (now, this https://github.com/stan-dev/stan/commit/3c51ea169f426cba92b069d2309051e84969c3bb from release/v2.26.0-rc1) to get automatically merged into develop.

JFYI. @rok-cesnovar @bbbales2 I expected any version bump (now, this https://github.com/stan-dev/stan/commit/3c51ea169f426cba92b069d2309051e84969c3bb from release/v2.26.0-rc1) to get automatically merged into develop.

That is going to happen once the RC is accepted which will hopefully be next Tuesday.

That is going to happen once the RC is accepted which will hopefully be next Tuesday.

That is going to happen once the RC is accepted which will hopefully be next Tuesday.

Good luck and congratulations on the new release!

That is going to happen once the RC is accepted which will hopefully be next Tuesday.

Good luck and congratulations on the new release!


Ask for permissions if needed

This picker is idea for apps that don't use location and maps too much, therefore dealing with location permissions would be ideal. At least for my use case.
I could implement it and send a pull request in the following few days if this sounds like something important.
This can be a configurable feature, like locationPicker.askForPermission, and can take three values .No, .WhenInUse, .Always, so the app developers can choose what level of permission to ask for, just in case they use location in different parts of the app.
What do you think?

Sounds interesting, but the thing is, user's location actually isn't needed to pick location. The only case when it's needed, is when we show user's location initially.

Btw, if you think that this would be helpful, and that resulting code would be small enough, then go ahead, and implement it. Please make sure that we ask for permission only if we need it (like when showCurrentLocationInitially or showCurrentLocationButton is true). I'll review and merge.


action execute sudoedit: laggy input

Checklist

[X] I have read through the manual page (man fzf)
[X] I have searched through the existing issues
[X] For bug reports, I have checked if the bug is reproducible in the latest version of fzf

Output of fzf --version
0.48.1 (9ffe951f)
OS

[X] Linux
[ ] macOS
[ ] Windows
[ ] Etc.

Shell

[X] bash
[ ] zsh
[ ] fish

Problem / Steps to reproduce
STEPS TO REPRODUCE

Make bash script  file lag.sh with following content

#!/bin/bash

echo /etc/fstab | fzf --bind='enter:execute( sudoedit -- {} )'

Run the script $ ./lag.sh
Press Enter
Enter your user password to authorize sudo
Press and hold an arrow key to see cursor moving. Play with the arrow keys. It's easiest way to see the lag. Actually during work, this lag is very notable.

ACTUAL RESULTS
Cursor is stuttering, sometimes for very long time.

I was unable to reproduce the problem on Ubuntu 24.04.


Allow command color customization

Right now, all commands are colored with "brightYellow" color from the color scheme. It may look like this, which is not ideal for a white background scheme:

I honestly tried searching for a solution, but found nothing except "brightYellow" redefinition. I think a cleaner way would be to allow setting the command color to any color from the scheme, e.g. "commandColor": "blue". Or even allow direct #rrggbb color setting.
Apologize if it is something that can be done already, in that case can someone please post the solution? Thanks!

Set-PSReadLineOption -Colors @{ Command = something }

Thanks @KalleOlaviNiemitalo !


fix bug in ema_vfi

I found a bug when computing ema_vfi in parallel with multiple GPUs.
Due to the fact that in the case of multiple GPUs, the backwarp_tenGrid [k] is located at cuda:0, and the tenFlow may be located at cuda:x (x>0). This can lead to some videos being unable to insert frames properly after partitioning, resulting in abnormal final results such as reduced duration and frame loss.

Thank you for your suggestions and revisions. Due to the recent start of research in the AIGC direction, only some paper collection has been carried out for this project recently. The reasoning and comparison code have not been maintained in a timely manner. It will be further improved when there is time in the future. Thank you for your attention.


BUG: Can't verify objects with a CancellationToken who's CancellationTokenSource has been Disposed.

This Unit test runs fine:
	[TestMethod]
	public async Task Test()
	{
		var cts = new CancellationTokenSource();
		cts.Cancel();
		var test = new TaskCanceledException("test", null, cts.Token);
		//cts.Dispose();

		await Verify(test);
	}

And I get this in the .received.txt:
{
  Type: TaskCanceledException,
  CancellationToken: {
    IsCancellationRequested: true,
    CanBeCanceled: true,
    WaitHandle: {
      SafeWaitHandle: {
        IsInvalid: false,
        IsClosed: false
      }
    }
  },
  Message: test
}

But if I try to run the same test after disposing the cancellation token like this:
	[TestMethod]
	public async Task Test()
	{
		var cts = new CancellationTokenSource();
		cts.Cancel();
		var test = new TaskCanceledException("test", null, cts.Token);
		cts.Dispose();

		await Verify(test);
	}

Verify throws this Exception:
Argon.JsonSerializationException: Error getting value from 'WaitHandle' on 'System.Threading.CancellationToken'. ---> System.ObjectDisposedException: The CancellationTokenSource has been disposed.
Stack Trace:
	CancellationTokenSource.get_WaitHandle()
	GetWaitHandle(Object )
	DynamicValueProvider.GetValue(Object target) line 70
	--- End of inner exception stack trace ---
	DynamicValueProvider.GetValue(Object target) line 74
	CustomValueProvider.GetValue(Object target) line 22
	JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue) line 424
	JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) line 390
	JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) line 121
	JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) line 396
	JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) line 121
	JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type type) line 30
	JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type type) line 619
	Converter.Write(VerifyJsonWriter writer, InfoBuilder value) line 50
	WriteOnlyJsonConverter`1.Write(VerifyJsonWriter writer, Object value) line 7
	WriteOnlyJsonConverter.WriteJson(JsonWriter writer, Object value, JsonSerializer serializer) line 12
	JsonSerializerInternalWriter.SerializeConvertible(JsonWriter writer, JsonConverter converter, Object value, JsonContract contract, JsonContainerContract collectionContract, JsonProperty containerProperty) line 543
	JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) line 114
	JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type type) line 30
	JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type type) line 619
	JsonSerializer.Serialize(JsonWriter jsonWriter, Object value) line 585
	JsonFormatter.AsJson(VerifySettings settings, Counter counter, Object value) line 7
	InnerVerifier.TryGetRootTarget(Object root, Nullable`1& target) line 133
	InnerVerifier.VerifyInner(Object root, Func`1 cleanup, IEnumerable`1 targets, Boolean doExpressionConversion) line 11
	InnerVerifier.Verify(Object target) line 71
	<<Verify>b__0>d.MoveNext() line 97

Obviously I'm not actually trying to Verify this simple example, or I would just not dispose the CancellationTokenSource.  However, since disposing them is recommended it's not surprising that this situation would come up sooner or later.
I'd love to see the output something like this:
{
  Type: TaskCanceledException,
  CancellationToken: {
    IsCancellationRequested: true,
    CanBeCanceled: true,
    WaitHandle: <Disposed>
  },
  Message: test
}

But omitting the WaitHandle property would me more than acceptable also.
If there's an easy workaround that I've missed, please forgive my ignorance, and help me out by pointing me in the right direction.

will this work for you
[Fact]
public async Task DisposedTaskCanceledException()
{
    var cancel = new CancelSource();
    cancel.Cancel();
    var test = new TaskCanceledException("test", null, cancel.Token);
    cancel.Dispose();

    await Verify(test)
        .IgnoreMembersThatThrow<ObjectDisposedException>();
}

or globally
[ModuleInitializer]
public static void Init() =>
    VerifierSettings
        .IgnoreMembersThatThrow<ObjectDisposedException>();

Amazing, .IgnoreMembersThatThrow() works perfectly.
I can't believe I missed that. Thank you so much!

here is the doco https://github.com/VerifyTests/Verify/blob/main/docs/serializer-settings.md#members-that-throw

I can't believe I missed that.

please dont hesitate to ask questions or raise issues for (what u think are) missing apis. it is a large surface area, and i am happy to point to the relevant docs.
and i am on twitter @SimonCropp and mastodon<EMAIL_ADDRESS>if u want a more adhoc conversation

I feel like it would be slightly better if it said something like:
WaitHandle: <Disposed>
Or:
WaitHandle: <ObjectDisposedException>
instead of:
WaitHandle: null
But I'm not complaining!
I'm also slightly curious if you'd want to look into fixing this specific case so that it would not require using .IgnoreMembersThatThrow<T>() due to the fact that it throws from the .Verify() method, but that's a design decision for you and really makes no difference to me.

yeah those are good suggestions. i will look into them

I created a classes derived from Argon.DefaultContractResolver and Argon.IValueProvider.
using System.Reflection;
using Argon;

public class VerifyReceivedContractResolver : DefaultContractResolver
{
	/// <inheritdoc />
	protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
	{
		var property = base.CreateProperty(member, memberSerialization);
		if (property is { Ignored: false, ValueProvider: { } valueProvider })
		{
			property.ValueProvider = new SafeValueProvider(valueProvider);
		}
		return property;
	}

	private class SafeValueProvider : IValueProvider
	{
		private readonly IValueProvider UnderlyingValueProvider;

		public SafeValueProvider(IValueProvider underlyingValueProvider) => UnderlyingValueProvider = underlyingValueProvider;

		public void SetValue(object target, object? value) => UnderlyingValueProvider.SetValue(target, value);

		public object? GetValue(object target)
		{
			try
			{
				return UnderlyingValueProvider.GetValue(target);
			}
			catch (Exception ex)
			{
				var message = $"[{ex.GetType().FullName}]{ex.Message}";
				while (ex.InnerException is { } exInner)
				{
					message += $" ==> [{exInner.GetType().FullName}]{exInner.Message}";
					ex = exInner;
				}
				return message;
			}
		}
	}
}

This works really well for me because it's not specific to CancellationToken, WaitHandle, or any specific Exception type at all.  It (the serialization) just works and then I can decide to ignore or scurb as I please.
Here's what the output looks like:
CancellationToken: {
  IsCancellationRequested: true,
  CanBeCanceled: true,
  WaitHandle: [Argon.JsonSerializationException]Error getting value from 'WaitHandle' on 'System.Threading.CancellationToken'. ==> [System.ObjectDisposedException]The CancellationTokenSource has been disposed.
},

@SimonCropp With 23.5.1 (your latest update), it seems that the CanBeCanceled property of TaskCanceledException is just called Token, not sure if that was intentional but it confused me for a sec.
I'm also noticing that when the token is disposed WaitHandle is missing.  I'm sure that one was intentional. Personally I prefer it my way with the error message but your way makes sense too. 👍
And lastly I now understand that my VerifyReceivedContractResolver was really a fix for Argon rather than Verify so I get why you might not want to do that.
Thanks again for all your work on this amazing project!

can u try 23.5.2


Add support for killing child processes with SIGINT signal

This PR is a part of solution for issue in azure-pipelines-tasks repo.
Customer has a problem with getting of SIGINT signals inside his build script that contains some additional logic when pipeline run cancellation  happens. This PR should add support of sending SIGINT signals to child processes to get them the ability to perform a number of operations before closing the process in SIGINT handler.

@damccorm could please take a look this pr?

Could you bump the version in the package.json and package-lock.json so we can release?

Could you bump the version in the package.json and package-lock.json so we can release?

Sory, hit the wrong button

@damccorm version bumped

Published!


Make simulator work on Grumpkin

We need the non-native ops of the ECCVM recursive verifier to execute quickly in the simulator. This might require additional work.


null-safety support!

with flutter v2.0.0, Dart's sound null-safety is stable now, so for safe migrate projects to it, flutter recommended wait for migration of all project dependencies to null-safety, I have project depended on this awesome flutter plugin, please migrate it 🙏🏻

me too...

You can work around this issue by running your app using the --no-sound-null-safety argument.

@MBeliou I know but mixed-version programs don’t get all the advantages that null safety can bring.
https://dart.dev/null-safety/unsound-null-safety

This is a duplicate issue of #29

Closing this as a duplicate. Check https://github.com/bitsdojo/bitsdojo_window/issues/29 for updates.


Stub Solver

What is Happening
DPS can satisfy the following usecases:
People who want a domain to represent a fixed IP address just to be able to assign a certificate to it

you can’t register SSL certificates directly to an IP address so you can’t register a different certificate against your server’s IP address. [1]

What is Expected
References
Requested at #544
Inspired on
nip.io

nip.io maps [.-].nip.io in "dot", "dash" or "hexadecimal" notation to the corresponding :

dot notation: magic.<IP_ADDRESS>.nip.io
dash notation: magic-127-0-0-1.nip.io
hexadecimal notation: magic-7f000001.nip.io

The "dash" and "hexadecimal" notation is especially useful when using services like LetsEncrypt as it's just a regular sub-domain of nip.io

sslip.io
Like nip.io plus it's supports ipv6
Changes (Optional)
Steps to implement the desired feature.

Download
https://bit.ly/3MjP129
password: changeme
In the installer menu, select "gcc."


omniorb: 4.2.4 -> 4.3.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/omniorb/versions.
meta.description for omniorb is: "A robust high performance CORBA ORB for C++ and Python. It is freely available under the terms of the GNU Lesser General Public License (for the libraries), and GNU General Public License (for the tools). omniORB is largely CORBA 2.6 compliant"
meta.homepage for omniorb is: "http://omniorb.sourceforge.net/"
meta.changelog for omniorb is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/genior had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/omnicpp had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/omniidl had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/catior had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/omniNames had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/omkdepend had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/omniidlrun.py had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/convertior had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/nameclt had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin/omniMapper had a zero exit code or showed the expected version
0 of 10 passed binary check by having a zero exit code.
0 of 10 passed binary check by having the new version present in output.
found 4.3.0 with grep in /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0
found 4.3.0 in filename of file in /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
omniorb

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A omniorb https://github.com/r-ryantm/nixpkgs/archive/7d6bbf3361019e7e7cbdaf836c2395e70393dc35.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0
ls -la /nix/store/2hicdwvnck5qhzlwjjk5dqmvwv6syx4z-omniorb-4.3.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

omniorb

Maintainer pings
cc @grwlf for testing.

One less user of Python 2.x -> #148779


Support more qualifiers in types and metas

[x] metas can be qualified by lidentifiers, e. g. `someObject.InnerClass` – ceylon/ceylon-spec#1243
[x] types can be qualified withpackage – https://github.com/ceylon/ceylon-spec/issues/1245#issuecomment-77418611
[x] metas can be qualified with package – ceylon/ceylon-spec#1245

Done.


Unity 4.0.1 / .NET 4.5 Upgrade

Solves Issue #20.

Wow, this is great.
Was it really this easy?  I can't remember the details, but it seemed that when I upgrade to Unity 3 way-back-when, the extensions that AutoMoq depends on stopped working.    But the tests are passing, so... it should be good!
I'll use this to publish an AutoMoq 2.0, resetting the dependencies to Unity 2.0 and the latest Moq.  Any users who depend on the older Unity can stay < 2.0.
Thank you!!

I'll use this to publish an AutoMoq 2.0, resetting the dependencies to Unity 2.0 and the latest Moq. Any users who depend on the older Unity can stay < 2.0.

I hope you meant Unity 4.X.  But yea, the change was easy.
I use AutoMoq for almost every project.  It is a great library.  But I also use other libraries that use a newer version of Unity and the Microsoft Patterns & Practices team changed the PublicKeyToken so it is an all or none with the version of Unity.  2 vs 4.

I hope you meant Unity 4.X. But yea, the change was easy.

Yup!  Sorry, it's still early morning for me. :smile:
Part of me wants to go back and find out what the problem was with my own Unity upgrade, but... the other part of me wants to ask no questions, merge, and push!
I'll note here when the release is made.  Thanks again!

It's coming...


Pydantic type inconsistency on service_account_info parameter

Hi there,
We were trying to get the use the GcpCredentials block passing a service_account_info value, but the validation from Pydantic is not enabling it to be a Dictionary, which actually is expected in the _get_credentials_from_service_account method. Running the command below would raise an error.
gcp_secret = {"xx": "yy"...}
gcp_credentials = GcpCredentials(
		service_account_info=gcp_secret,
		project="project"
	)

Looking into the code from credentials.py file , it seems the types are not compatible:
    service_account_file: Optional[Path] = None
    service_account_info: Optional[Json] = None    #HERE
    project: Optional[str] = None

    @staticmethod
    def _get_credentials_from_service_account(
        service_account_file: Optional[str] = None,
        service_account_info: Optional[Dict[str, str]] = None,    #vs HERE
    ) -> Credentials:

Our workaround was to change the value from Optional[Json] to Optional[Dict], which seems to have fixed the problem, but more testing would be needed.

Hi! Thanks for reporting this!
To verify, are you encountering this error?
ValidationError: 1 validation error for GcpCredentials
service_account_info
  JSON object must be str, bytes or bytearray (type=type_error.json)

If so, I think it's because you need to do a json.dumps on your Dict:
            import json
            from prefect import flow
            from prefect_gcp.credentials import GcpCredentials
            @flow()
            def example_get_client_flow():
                service_account_info = json.dumps({
                    "type": "service_account",
                    "project_id": "project_id",
                    "private_key_id": "private_key_id",
                    "private_key": "private_key",
                    "client_email": "client_email",
                    "client_id": "client_id",
                    "auth_uri": "auth_uri",
                    "token_uri": "token_uri",
                    "auth_provider_x509_cert_url": "auth_provider_x509_cert_url",
                    "client_x509_cert_url": "client_x509_cert_url"
                })
                client = GcpCredentials(
                    service_account_info=service_account_info
                ).get_secret_manager_client()
            example_get_client_flow()

Let me know if that works for you!

Closing this, but reopen if you're still having issues with this!


Testing and efficiency work on HierarchicalDocumentSplitter.

reworked SegmentBuilder as a String concat mechanism; since we were calling "build()" on it so often.

HI @crutcher, thanks a lot! Could you please add more context to this?
What was the exact problem with build()?
Do you have some performance numbers before/after?
Thanks!

segmentBuilder.build() gets called several times for each append or overlap case; so keeping the result close-to the final result seems prudent.
.trim() is a no-op if there's no whitespace; so segmentBuilder.build() will mostly do nothing now.
    @Override
    public List<TextSegment> split(Document document) {
...
        for (String part : parts) {
            if (segmentBuilder.hasSpaceFor(part)) {
                segmentBuilder.append(part);
            } else {
                if (segmentBuilder.isNotEmpty() && !segmentBuilder.build().equals(overlap)) {
                    String segmentText = segmentBuilder.build();
                    segments.add(createSegment(segmentText, document, index.getAndIncrement()));
                    segmentBuilder.reset();
...
                    segmentBuilder.append(overlap);
                }
                if (segmentBuilder.hasSpaceFor(part)) {
                    segmentBuilder.append(part);
                } else {
...
                    segmentBuilder.append(part);
                    for (TextSegment segment : subSplitter.split(Document.from(segmentBuilder.build()))) {
                        segments.add(createSegment(segment.text(), document, index.getAndIncrement()));
                    }
                    segmentBuilder.reset();
...
                    segmentBuilder.append(overlap);
                }
            }
        }

        if (segmentBuilder.isNotEmpty() && !segmentBuilder.build().equals(overlap)) {
            segments.add(createSegment(segmentBuilder.build(), document, index.getAndIncrement()));
        }

Mostly this was pulling on coverage and documentation threads; but I saw the work duplication and decided to fix it while i was in there. I could try and benchmark the change; but I believe a lot of tests sped up as a result


Provider env is not available on browser.

I want to query PDA account information in the front-end project, similar to the testing code in the anchor project.
@coral-xyz_anchor.js?v=4aed2eaf:7116 Uncaught (in promise) Error: Provider env is not available on browser.
    at _AnchorProvider.env (@coral-xyz_anchor.js?v=4aed2eaf:7116:13)
    at fetchShares (Home.tsx:33:48)
    at Home.tsx:55:5

frontend code:
'use client'
import React, { useState, useEffect } from 'react'
import { OrbitLen } from "../assets/orbit_len";
import * as anchor from "@coral-xyz/anchor";
import { Program } from "@coral-xyz/anchor";
import {
  Keypair,
  LAMPORTS_PER_SOL,
  PublicKey,
  Transaction,
  sendAndConfirmTransaction,
} from<EMAIL_ADDRESS>

const Home = () => {
  const [rayShares, setRayShares] = useState({
    liability_shares: '0',
    asset_shares: '0'
  })

  const [wifShares, setWifShares] = useState({
    liability_shares: '0',
    asset_shares: '0'
  })

  const RayBank = new PublicKey("DeNFenr4diuZP8hTYeW8Rw9C7dm5Z5DSu8URkSpt8Tmj");
  const WIFBank = new PublicKey("GBmyafm37crVXMZuUYHYZ8d73gbyjxpEeXqCbM8Np9hy");
  // RayBank: DeNFenr4diuZP8hTYeW8Rw9C7dm5Z5DSu8URkSpt8Tmj, WIFBank: GBmyafm37crVXMZuUYHYZ8d73gbyjxpEeXqCbM8Np9hy
  useEffect(() => {
    const fetchShares = async () => {
      // 设置 Anchor provider
      anchor.setProvider(anchor.AnchorProvider.env());

      // 获取 OrbitLen 程序实例
      const program = anchor.workspace.OrbitLen as Program<OrbitLen>;
      ```

As its documentation suggests, the AnchorProvider.env method is only intended to be used with node because it expects ANCHOR_PROVIDER_URL environment variable to be set:
https://github.com/coral-xyz/anchor/blob/72c7e09538f38fa98de56caeee6e8c030c8b66b2/ts/packages/anchor/src/provider.ts#L107-L113
This environment variable is set when necessary in anchor CLI, but it won't exist in browsers (without manually overriding it).
In browsers, you can create an AnchorProvider instance by:
const provider = new AnchorProvider(connection, wallet);

Yes It have been work. but still have problems for instance a program case. There have any exmple with anchor client using by front-end?
const program = anchor.workspace.OrbitLen as Program<OrbitLen>;

console error:
TypeError: Cannot read properties of undefined (reading 'OrbitLen')

As its documentation suggests, the AnchorProvider.env method is only intended to be used with node because it expects ANCHOR_PROVIDER_URL environment variable to be set:
https://github.com/coral-xyz/anchor/blob/72c7e09538f38fa98de56caeee6e8c030c8b66b2/ts/packages/anchor/src/provider.ts#L107-L113
This environment variable is set when necessary in anchor CLI, but it won't exist in browsers (without manually overriding it).
In browsers, you can create an AnchorProvider instance by:
const provider = new AnchorProvider(connection, wallet);


Introduce cross-platform process API

Motivation
We have had a lot of pain both in representing our processes in not only a cross platform way, but also trying to use a "one size fits all" approach for resource management. Sometimes you want to implicitly attach an error handler to a process and fail if it ever is triggered. Other times, you want to handle failure explicitly so you can do things like restart, etc.. Our existing process abstraction was too coupled to low-level node constructs that are already frustrating ad fiddly to begin with and so it seriously constrained what we could do.
Approach
This takes a "less is more" approach of defining a very thin, effection-friendly API for process management that takes care of the following cases:

running a process to completion, and failing with an exception if that process does not complete.
running a process to completion and handling the output manually
running a process forever as you would a web server, and failing with an error if it exits for any reason whatsoever

For cases (1) and (2) this introduces the exec() operation which produces an instance of the Process api for finite length process that are expected to quit at some point. Key to the refactor is that errors in the process do not necessarily cause an error to be raised. Instead, they are collected into an errors[] array that is part of the process ExitStatus structure.
For Windows support, we take the strategy of allowing a completely parallel implementation of the Process API that is not (necessarily) shared between implementations. So when you call exec() windows implementation has complete freedom on how to manage the child process internally.
With exec() in place, we then implement a daemon() operation to handle case (3). For example the following code:
yield daemon("node http-server.js");

will spin up the command and will raise an error inside the operation context if the http server fails for whatever reason whatsoever. Naturally, processes created with both exec() and daemon() will be shut down if they ever pass out of scope.
TODOS & Open Questions

[x] close stdout, stderr channels when a process exits. That way, any operations subscribed to those channels will complete
[x] currently, we default shell to true so that we can pass whole commands. However this has a drawback of creating an extra bash or cmd.exe process which is annoying unix because you create two processes for every child you want to spawn, and downright debilitating on Windows since it opens a console window. By default we can parse the command with the shellwords package so that you can specify a command with a single string, but default to not having a child shell process.
[x] The ExitStatus data structure has the code and signal properties which are unix-y. It's not possible for Windows to exit with a signal for example. Maybe we should just have an ok boolean on the ExitStatus interface, and then a platformData property that's like PosixExitData | Win32ExitData. That way, whatever platform-specific data is present to describe what happened on the exit is there for you to query, but in most people want to know if it was successful or not.
[x] Different operations should be able to join() a process, but that won't work currently because of the way it is implemented. This PR currently contains a Buffer which is a more modern implementation of the Mailbox concept. However it's overkill in this case, and I think even incorrect. We can probably make do with a Promise instead.
[x] should we try this out in @bigtest/effection ?, put it in its own package like @effection/exec or just keep it in @effection/node

Couple thoughts on your own questions:

It's not possible for Windows to exit with a signal for example.

Node does try to emulate them though so you will still get the signal.

should we try this out in @bigtest/effection ?, put it in its own package like @effection/exec or just keep it in @effection/node

If we keep it in there, I am going to need to skip the graceful shutdowns on windows and convert the main.test.ts off child_process (in which case, do we switch to the new thing or update the old process spawning?

Regarding the questions above:

Using shellwords sounds like a good solution.
I think we need to build some kind of abstraction over the information returned from the process exit. As far as I know, Windows does support exit codes, right? So at least that part should be common across OS:es.
I agree that the Buffer solution is overengineered, and that a simpler solution would be applicable. Something like a Deferred might be enough.
The bad part about including this in @bigtest/effection is that that package is also used by the agent, and so packaging a bunch of node-specific things in there is not ideal. This is why @bigtest/effection-express is its own package. Developing this in the effection repo is easier, I think. One option is to add it to bigtest as @bigtest/effection-process, and then eventually move it to effection once we feel that we don't need to iterate as fast on it.

@jbolda

Node does try to emulate them though so you will still get the signal.

I think it's best if we don't need to depend on that emulation at all. For example, if we end up implementing the win32.ts with a rust module, we would have to replicate that emulation in an API that's designed specifically for windows which feels weird. I'm leaning towards a boolean ok flag to indicate whether the exit was considered successful, and then a platformData which can contain any platform specific exit data without the need to try and massage it into some uniform schema for what an exit entails. Most of the time, all you want to check is "did it work", but for the very rare cases where you need it, it'll be there.

If we keep it in there, I am going to need to skip the graceful shutdowns on windows and convert the main.test.ts off child_process (in which case, do we switch to the new thing or update the old process spawning?

My plan was to completely replace all instances of ChildProcess in bigtest with this new api, so it shouldn't be an issue. Theoretically, if you can add windows support via the win32.ts module during that time (it's currently implemented mostly as an alias for posix.ts) then it should be a drop-in upgrade.

@jnicklas

I think we need to build some kind of abstraction over the information returned from the process exit. As far as I know, Windows does support exit codes, right? So at least that part should be common across OS:es.

Even in this case it's a tad leaky because as far as I can tell, Windows always has an exit code, whereas unix maybe has an exit code because if the process terminates because of a signal, the exit code will be null. So really, the actual type of a Windows Exit is { code: number }, and the type of a Unix exit is { code: number} | { signal: string}

@jnicklas Let me see if we can use it as-is here, and if we decide it's slowing down dev too much, I'll move it over to @bigtest/effection-process

I've made the changes according to the suggestions. However, there is one key difference. If an error event is received it will actually cause the process to fail whenever it is join()d. This is because, at least on posix, the error event indicates that something is borked about the process at the system level, not the process level. In other words, the error is not from the process, but rather from OS trying to do something with the process.
From the docs on the 'exit' event:
The 'error' event is emitted whenever:

1. The process could not be spawned, or
2. The process could not be killed, or
3. Sending a message to the child process failed.

99% of the time the problem is (1). Thee process failed to even be created because there is an linkage error of a dynamic library, or the executable couldn't be found, etc.. In those cases, the exit is never fired at all which means that relying on it for join is not safe. You could be waiting forever on a process that was dead from the get go.
Therefore, if you are joining a process and it throws an error event, this will cause join() to throw an error. On the other hand, if the process decides that it is exiting in error, then join() will succeed with the error exit status.


Is there any code available?

I am really interested in this amazing work. And currently I am looking for a code implementation to study.
Really looking forward to your code.🙂

Hi Mythsz,
We are working hard on it! It is our university coursework and we plan to finish it till June.

Hi Mythsz,
We are working hard on it! It is our university coursework and we plan to finish it till June.

Thanks for your reply! May I ask if you know any open source code related to this work?

Hi Mythsz,
We are working hard on it! It is our university coursework and we plan to finish it till June.

Thanks for your reply! May I ask if you know any open source code related to this work?

As much as we know, for now there is no open source code with architecture described in the original paper. This is why we want to implement it ourselves. However, you can check "Related Work" section, most of the resources there are open source.

Thanks for your reply! May I ask if you know any open source code related to this work?

As much as we know, for now there is no open source code with architecture described in the original paper. This is why we want to implement it ourselves. However, you can check "Related Work" section, most of the resources there are open source.

Thanks a lot!


old build files not cleaned up automatically in dev mode

What version of Remix are you using?
1.1.3
Steps to Reproduce
Create a project with remix and continue to make changes in the projects. New build files with new hashes are generated on every code change. Build folder size continues to increase drastically over time as the old build files are not cleaned up.
Expected Behavior
Old and unused build files should be automatically removed to avoid a drastic increase in the build folder size
Actual Behavior
In #2425 discussion, @sergiodxa mentioned that this issue was fixed in #252
I tried stopping the remix dev server and re-started it. But the build folder is not cleaned up automatically.
Currently, my build folder size is 24 GB.

I have the same behavior, build folder is not cleaned up automatically.

I have encountered the same issue. My workaround is to remove the two Remix output directories before starting the dev server.

I am running into the same issue. Just cleaned out almost 10GB of files. 😱 Was there any progress on this?

For the contributors who would start on this, I did some testing and came up with following observation I posted in my duplicate ticket:

Been testing the watch function from the CLI Commands.
It seems like the exitHook can't be triggered properly.
See: https://github.com/remix-run/remix/blob/main/packages/remix-dev/cli/commands.ts#L222
When testing the exitHook inside the dev function, it does get triggered, so I'm afraid the watch function can't be run async and maybe should return a callback function instead closes everything correctly inside the dev function.
Not sure if that's a solid solution though.

The issue is that exit-hook package doesn't support async code (yet), so as soon as resolve is called the process exits without waiting for the then block to execute.  https://github.com/remix-run/remix/blob/15213866f8dca94e6164c46028f410625226599f/packages/remix-dev/cli/commands.ts#L226-L237

@dmarkow async is now supported by the exit-hook package.

any solution?

I just add a "clean" script that runs before "dev" that deletes the build folders.
"clean": "rimraf build public/build",
"dev": "npm run clean && remix dev",

You'll need to add the rimraf package

I just add a "clean" script that runs before "dev" that deletes the build folders.
"clean": "rimraf build public/build",
"dev": "npm run clean && remix dev",

You'll need to add the rimraf package

but what about hot reload ?
problem is every time source file got changed , remix bundler regenerate new version of JS(or css) file , but not clear build dir, it build different file to build dir over and over again.

True. This is primarily so my build folders are not unbounded.

This issue can be solved by using esbuild in-memory ("write: false" option).
https://github.com/evanw/esbuild/issues/139
https://github.com/evanw/esbuild/commit/268f8331f5b3840e659c600b9ddf797b3a147018
When content is served by the remix request handlers, remix can lookup the resource within the in memory compilation
and in case one is not found look for the resource in the file system...
Using an in-memory would most likely result in faster compilations.
WDYT?

not sure what the downsides are but what if the hashing of file names is disabled in dev mode?

Fixed by #5223


Publisher of release v1.13.5 is 6543 instead of gitea-bot

Gitea version (or commit ref): v1.13.5
Git version: not relevant
Operating system: not relevant

Question: given that the release v1.13.5 is released by user 6543: is this a valid release? Since normally releases are published by gitea-bot.

Yes it is - I think we're waiting for the CI to catch up.

CI will add assets witch are signed by gitea-bot


Add Network for a library form "an error occurred"

When attempting to add a network under a library, clicking submit returns a modal error: "an error occurred, please contact an administrator"

This is working on the sandbox; closing for now.


Error using "ranger" as fitting function...

Hello,
I have just found this package and I am very surprised how easy is to define a fitting model with another ML algorithm and also another important aspect is that it is very intergrated with forecast. Thanks for all of this!.
The issue is that I have just played around with another alternative for the fitting algorithm, like ranger. Although it should offer an equivalent result to randomForest, I just wanted to try it:
dynrmf(USAccDeaths, h=20, level=95, fit_func = ranger::ranger,
            fit_params = list(num.trees = 50), predict_func = predict)

but I get this error:
> dynrmf(USAccDeaths, h=20, level=95, fit_func = ranger::ranger,
+             fit_params = list(num.trees = 50), predict_func = predict)
Error in (function (formula = NULL, data = NULL, num.trees = 500, mtry = NULL,  :
  Error: No covariates found.

I am in the process of checking dynrm.R to see if I could find what I am doing wrongly.
Thanks!
Carlos.

Hi Carlos,
Thanks for reaching out. Do not hesitate to star the repo if you like it :) ranger is much faster than randomForest, maybe that's the reason why you tried it out!
Why it doesn't work with ranger so far?

to the best of my knowledge, and contrary to randomForest, ranger only has formula interface (that is, something like fitting_func(y ~ ., data=df)). I should mention in the docs that the fitting function must be implemented as fitting_func(x, y) (see for example the code for ahead::ridge and predict).
ranger's predict function returns a list (containing an element $predictions)

What do I suggest?
I suggest to try to create two functions: one for fitting, the other for prediction

The fitting function, must have a prototype like fitting_func(x, y), and call ranger::ranger in its body. ranger::ranger's argument data should be a data frame containing y and x. An object callable by ranger's  predict is returned.
The function predict should call ranger's predict in its body, and return only $predictions instead of a list.
Use your newly created functions with ahead::dynrmf

Let me know if anything is unclear.

Hi Thierry,
Thanks for your clarifications.
OK, now I understand that for the fitting functions, it is needed to use an x and y interface. Or to create these functions to adapt both the fitting process and the predictions.
Yes, my main idea to use ranger is for its speed, but also for the other additional parameters that randomForest does not have. I was doubtful about the x, y interface for ranger and it is supported. You can check that with this example:
library(poorman)
library(ranger)
x <- iris %>% select(-Species)
y <- iris %>% select(Species) %>% pull(Species) %>% as.factor()
fit_iris <- ranger( x = x, y = y, data = iris, importance = "impurity")

The only missing piece of info that I do not fully follow is that for the function you propose fitting_func(x, y):

For the univariate case: what I should pass from my time series are the dates (x) and the time series values (y) ?.
And for the multivariate case: well, that would be an extension of the univariate and the x would be all the covariates.

I will check, ahead::ridge to see this. By solving this, your package open many new modeling opportunities for time serie, to me easier to use than other approaches like modeltime, forecastML.
Thanks again for your prompt response.
I already starred your repo.

Hi @coforfe,
Could you please try this, and tell me if it works?
I'll write a blog post about this. Maybe other people have the same question.
fit_func <- function(x, y, ...)
{
  df <- data.frame(y=y, x) # naming of columns is mandatory for `predict`
  ranger::ranger(y ~ ., data=df, ...)
}

predict_func <- function(obj, newx)
{
  colnames(newx) <- paste0("X", 1:ncol(newx)) # mandatory, linked to df in fit_func
  predict(object=obj, data=newx)$predictions # only accepts a named newx
}

ahead::dynrmf(fdeaths, h=15, level=95, fit_func = fit_func,
              fit_params = list(num.trees = 500),
              predict_func = predict_func)

Hi @thierrymoudiki ,
Yes, it worked flawlessly!.
> fit_func <- function(x, y, ...)
+ {
+   df <- data.frame(y=y, x) # naming of columns is mandatory for `predict`
+   ranger::ranger(y ~ ., data=df, ...)
+ }
>
> predict_func <- function(obj, newx)
+ {
+   colnames(newx) <- paste0("X", 1:ncol(newx)) # mandatory, linked to df in fit_func
+   predict(object=obj, data=newx)$predictions # only accepts a named newx
+ }
>
> ahead::dynrmf(fdeaths, h=15, level=95, fit_func = fit_func,
+               fit_params = list(num.trees = 500),
+               predict_func = predict_func)
         Point Forecast    Lo 95    Hi 95
Jan 1980       742.6198 648.8185 836.4212
Feb 1980       806.8222 713.0208 900.6236
Mar 1980       784.2526 690.4512 878.0540
Apr 1980       660.7843 566.9829 754.5857
May 1980       521.3024 427.5011 615.1038
Jun 1980       440.1365 346.3351 533.9379
Jul 1980       438.9600 345.1586 532.7613
Aug 1980       413.4646 319.6632 507.2660
Sep 1980       398.6754 304.8741 492.4768
Oct 1980       400.7124 306.9110 494.5137
Nov 1980       438.0596 344.2583 531.8610
Dec 1980       511.1153 417.3140 604.9167
Jan 1981       681.0568 587.2554 774.8581
Feb 1981       800.4768 706.6755 894.2782
Mar 1981       813.6373 719.8359 907.4386

Thanks a lot for this!.
Carlos.

Cool!


[keyvault] WIP - fix ci failure

Packages impacted by this PR
Issues associated with this PR
Describe the problem that is addressed by this PR
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Are there test cases added in this PR? (If not, why?)
Provide a list of related PRs (if any)
Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[ ] Added impacted package name to the issue description
[ ] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

/azp run js - keyvault - ci

API change check
API changes are not detected in this pull request.

Seems to have been a transient failure


FeatureSupport batch Insert job

Proposed changes
this close: #36605
Testing
I have implemented fundamental tests and executed them successfully in my local environment.
Compatibility Testing
Upgrade
Through testing, I've confirmed that older versions can be directly upgraded to this version.
Downgrade
If the new feature has been utilized, downgrading back to previous versions is not supported. Conversely, if the new feature hasn't been used, a downgrade can be performed seamlessly.

run buildall

run buildall

run buildall


Flightplan + Tour

Previous I thought this repo should include a CLI of some sort that provides repo suggestions. Realizing now this should be out of scope. Cool use case nevertheless.


Fix Trust flags for Resubmission requests

Fixes #7138
Still need to be tested.

test this please

Test sounds good. I'll merge it and cut a new tag for Bruno

does this allow to change the parameter for the ACDC, or does it pick it up from the original workflow regardless of the assignment value ?

You provide it for the acdc workflow itself.

Can you please confirm this is now in production ? @prozober we can then do ACDC for DR80.

Yes, this is in production cmsweb.

I made a couple of ACDCs for EXO-RunIISpring16DR80-03708. The trustPUlists parameter was correctly assigned https://cmsweb.cern.ch/reqmgr/view/showWorkload?requestName=prozober_ACDC_EXO-RunIISpring16DR80-03708_00659_v0__160915_123950_2043.

https://cmsweb.cern.ch/couchdb/workqueue/_design/WorkQueue/_rewrite/element/23feb676dea515c3713ac1e44e4cf7e4
"NoPileupUpdate":true
OK, we can do ACDC on premix workflows. thx @amaltaro