Random changes between windows that debug the same process

This needs some explanation and what I do isn't as wrong as the title suggests:  I have ~/Code/vscode for our sources and I have ~/Code/_samples/dummy-extension in which I try out and test API. The extension is sym-linked into ~/.vscode-oss-dev/extensions. This allows me to make changes in the extension and VS Code itself and easily test things

from vscode run/debug VS Code (it debugs everything: main, renderer, ext-host
in dummy-extension set a breakpoint in some extension code (where else)
from dummy-extension attach to extension host (to apply those breakpoints)
run the code, hit the breakpoint, and step in/out/over
😕 the windows randomly change focus, both are debugging the extension host (naturally)

I don't know how you would implement this but the window at which breakpoint was most recently hit should be the active one
https://user-images.githubusercontent.com/1794099/185606414-e99243f8-2c34-44f3-afbb-d46fd900241b.mov

Would you consider using a multiroot workspace? That workflow should work. Otherwise I guess I'd have to implement some locking mechanism through the shared process, which sounds like a great bug generator.

Or do you want to just not attach to the extension host process in the vscode window?

Would you consider using a multiroot workspace?

No

I'd recommend not attaching to the EH process in the vscode window (you will need to change launch.json for this or add your own config which you could do in a workspace) or you can disable debug.focusWindowOnBreak in the vscode window. I think that doing exactly what you want will be really complicated.

I'd recommend not attaching to the EH process in the vscode window

Can I disconnect from the EH while still using the "big" launch config? E.g launch normally and from time to time just disconnect the EH?

Normally you would be able to but the compound has "stopAll": true so that if you disconnect from one, you will be disconnected from all. This is just so you don't have to click disconnect 5 times or find the "right" session with a stop button that will actually kill the app.

Is there a change for an alternative disconnect action? Given launch configs are shared and sits inside the repo I cannot just put my personal changes on top. In addition, stopAll is what I want but not exclusively

I think a "Disconnect Single Session" command would make sense that overrides stopAll

and sits inside the repo I cannot just put my personal changes on top

I use the vscode repo in a workspace with a single folder, I often have some custom workspace settings or launch configs

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Comments/menu fix

Purpose
Begins to address https://openscience.atlassian.net/browse/OSF-5259
Changes
On the server we create a shortened name so that we can more easily display the name with the badge.
Also changed some padding and font sizes and such to make the layout work.
Side Effects
Will likely break down the road, however should work for the current system.
Notes
This is not a finished thing quite yet but is good enough to merge in for demo purposes.  More updates will be coming.

Continued in https://github.com/CenterForOpenScience/osf.io/pull/4868


Proposal to make the value of a FormControl non-null

Currently when defining a FormControl we usually give it a Type. This type is then made nullable internally in the FormControl. The problem with this approach is that we might not want that behaviour.
A solution (breaking change) would be to require the value parameter in the FormControl constructor. This would still allow nullable values by defining a nullable type parameter and then passing null as the initial value therefore not taking any features away.
I've actually been faced with the same decision when migrating flutter_hooks to null-safety. The useState hook works in this fashion and I feel like FormControls should work the same way.
Please let me know your opinion on this matter!

I'm not a fan of introducing another dependency let alone another code generator into our projects. I do think this would be a great improvement to the library and bring many benefits in the long run.

I also think this would be the best way forward. Improve the typing, I actually did that a while ago when fixing other typing issues but @joanpablo and I agreed that this was too much change at the time.
I now think this should be reevaluated for a new major version.

I'd be happy to start working on a PR if @joanpablo agrees that this is the way to go.


minMut in oncoplot not working

I am plotting an oncoplot for certain genes, but would like to add criteria of minMut=4, however this is not working when I have genes= mylist in the oncoplot function, it plots all those genes even if there are no mutations. When I remove the genes list and use only minMut it works.
My genes list is over 700 genes so would be super helpful if it could automatically not plot the ones without x mutations
Command
oncoplot(tn_t_maf,genes=genestoplot, minMut=4, writeMatrix = F,
clinicalFeatures = c("Malignancy", "Group"), sortByAnnotation = T,
fontSize = 0.4, sepwd_genes = 0.7)

@nygr  You can adapt your gene list to keep only genes with mutations:
genelist = genelist[genelist %in%<EMAIL_ADDRESS>.N, by = Hugo_Symbol]$Hugo_Symbol]

@nygr Yes, you can filter the output from getGeneSummary according to the way you want and just plot the resulting genes.
Thanks, @ShixiangWang for answering many issues. Much appreciated :)


GEODE-10203: SerialVersionUID added.

SerialVersionUID added to GetClusterConfigurationFunction.
Changes to this class will prevent breaking backward compatibility.

For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

@jinmeiliao if you feel that test api is fine, could you approve the PR


Improve data variety for data-driven tests (immutable, vs mutable, vs thread-yield, vs hot-delayed) plus massive refactoring

Basically as in the title. We now have these sequences, each returning either an empty sequence variant, or a sequence 1..10, either with mutable data on each enumeration, using byref data, plain old mutable, or let bindings, using spin delays or thread-yielding delays, or deeply nested taskSeq.
These types work with Theory and ClassData. Just pass it this class name:
    type TestEmptyVariants() as this =
        inherit TheoryData<EmptyVariant>()

        do
            this.Add EmptyVariant.CallEmpty
            this.Add EmptyVariant.Do
            this.Add EmptyVariant.DoBang
            this.Add EmptyVariant.YieldBang
            this.Add EmptyVariant.YieldBangNested
            this.Add EmptyVariant.DelayDoBang
            this.Add EmptyVariant.DelayYieldBang
            this.Add EmptyVariant.DelayYieldBangNested

    type TestImmTaskSeq() as this =
        inherit TheoryData<SeqImmutable>()

        do
            this.Add SeqImmutable.Sequential_YieldBang
            this.Add SeqImmutable.Sequential_Yield
            this.Add SeqImmutable.Sequential_For
            this.Add SeqImmutable.Sequential_Combine
            this.Add SeqImmutable.Sequential_Zero
            this.Add SeqImmutable.ThreadSpinWait
            this.Add SeqImmutable.AsyncYielded
            this.Add SeqImmutable.AsyncYielded_Nested

    type TestSideEffectTaskSeq() as this =
        inherit TheoryData<SeqWithSideEffect>()

        do
            this.Add SeqWithSideEffect.Sequential_YieldBang
            this.Add SeqWithSideEffect.Sequential_Yield
            this.Add SeqWithSideEffect.Sequential_For
            this.Add SeqWithSideEffect.Sequential_Combine
            this.Add SeqWithSideEffect.Sequential_Zero
            this.Add SeqWithSideEffect.ThreadSpinWait
            this.Add SeqWithSideEffect.AsyncYielded
            this.Add SeqWithSideEffect.AsyncYielded_Nested

Let's get this in, we'll apply these changes to the other tests soon(ish)


Remove version: OpenJS.NodeJS.LTS version 16.14.0

Replaced by another Pull Request
Microsoft Reviewers: Open in CodeFlow

https://www.github.com/microsoft/winget-pkgs/pull/143386#issuecomment-1986949152 [Policy] Needs-Author-Feedback


[Bug] derived property errors are shown in debugger

Description
Derived property error are shown in debugger. eg for table, The value at selectedRows is invalid error is shown
Steps to reproduce the behaviour:
Add steps to reproduce this behaviour, include console / network logs & screenshots

Go to any application
Add table widget
check debugger for 'The value at selectedRows is invalid' error

Important Details

Version: [Cloud / Self-Hosted vx.x]
OS: [e.g.MacOSX]
Browser [e.g. chrome, safari]
Environment [production, release, deploy preview]

List widget's 'currentItem is not defined' should be handled too.


chore: Add CI task to build generated SDK

Describe the feature
The aws-sdk-swift main branch should build a working SDK, without compile errors, at all times.
However, there is currently no CI task that verifies this on PRs before they merge to main.
On the aws-sdk-swift repo, add a CI task (or modify an existing task) to build the generated SDK, with dependencies as specified in Package.swift.  The task should pass if the entire SDK (all services) compiles without errors.
PRs that do not build a valid SDK should include regenerated code and/or changes to Package.swift as needed prior to merging.
Use Case
Needed to ensure that the main branch builds a SDK at all times.
Proposed Solution
No response
Other Information
No response
Acknowledgements

[ ] I may be able to implement this feature request
[ ] This feature might incur a breaking change

Curious if we need a another task or if current CI tasks do

Run codegen
Update release dir
Update Package.swift
swift build
swift test
This must ensure a PR is fine to merge.

Our current CI task for aws-sdk-swift performs the following on iOS, macOS, and two Linux flavors (see builder.json):

Build & test AWS SDK-specific codegen (smithy-aws-swift-codegen)
Build & codegen protocol tests (protocol-test-codegen and protocol-test-codegen-local)
Build & test Swift: AWSClientRuntimeTests
Build & test Swift protocol tests that were generated above

Code generating, then building the entire SDK is a lengthy process... the release task takes one hour plus to finish this on a Mac runner (which is higher-specced than a standard Linux runner.). If we are going to do this on PRs, it should be a dedicated task, AND we should investigate what faster runners are available to us for performing it.


Cannot use a helm-git chart that depends on a helm-git chart

I have written two helm charts. The first helm chart lists the second helm chart in the requirements.yaml file. I don't have a helm repository, so I use helm-git to download and install these charts. This means that I have a "repository" listing for each of the charts.
When I run helmfile install, I run into trouble when helm diff tries to download the first chart:
Adding repo nextcloud-onlyoffice git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora
exec: /snap/bin/helm repo add nextcloud-onlyoffice git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora
exec: /snap/bin/helm repo add nextcloud-onlyoffice git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora:
Adding repo onlyoffice-documentserver git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora
exec: /snap/bin/helm repo add onlyoffice-documentserver git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora
exec: /snap/bin/helm repo add onlyoffice-documentserver git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora: "onlyoffice-documentserver" has been added to your repositories

"onlyoffice-documentserver" has been added to your repositories

err: helm exited with status 1:
  Error: no repository definition for @onlyoffice-documentserver. Please add them via 'helm repo add'
  Error in plugin 'helm-git': Error while helm_dependency_update
  Error: Looks like "git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora" is not a valid chart repository or cannot be reached: plugin "helm-git" exited with error
changing working directory back to "/root"
in /oas/source/repos/helmfiles/helmfile.d/20-nextcloud.yaml: helm exited with status 1:
  Error: no repository definition for @onlyoffice-documentserver. Please add them via 'helm repo add'
  Error in plugin 'helm-git': Error while helm_dependency_update
  Error: Looks like "git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora" is not a valid chart repository or cannot be reached: plugin "helm-git" exited with error

I understand that this is all very vague, but I wanted to give a short summary of the problem before I went into specifics.
I am talking about the two charts in this repository and branch:
https://code.greenhost.net/openappstack/nextcloud/tree/4-use-onlyoffice-instead-of-collabora
(in time of writing HEAD is at this commit)
The nextcloud-onlyoffice chart includes a job that installs an integration of NextCloud and OnlyOffice, so it's requirements.yaml file lists:
dependencies:
  - name: nextcloud
    version: 1.1.1
    repository: "@stable"
    tags:
      - nextcloud
  - name: onlyoffice-documentserver
    version: 0.1.0
    repository: "@onlyoffice-documentserver"
    tags:
      - onlyoffice
      - nextcloud

The first dependency is no problem, because it uses the @stable repository, but the second (a link to the onlyoffice-documentserver chart in the same git repository) needs you to have that helm repository available.
In the non-helmfile scenario, a user would run
helm repo add onlyoffice-documentserver git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora

To add that repository. In this case, however, we want to use helmfile. So we have this second repository with our helmfile configuration:
https://code.greenhost.net/openappstack/helmfiles/tree/7077c08573bac6b87601d6e1d7b8abd7e16ffae3
Here, in helmfile.d/20-nextcloud.yaml, we have listed the two repositories we need:
repositories:
  - name: nextcloud-onlyoffice
    url: git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora
  - name: onlyoffice-documentserver
    url: git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora

But when we run the following command:
/usr/local/bin/helmfile -b /snap/bin/helm -e oas -f /oas/source/repos/helmfiles/helmfile.d/ --log-level debug apply --suppress-secrets

Helmfile exits with this error:
Adding repo nextcloud-onlyoffice git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora
exec: /snap/bin/helm repo add nextcloud-onlyoffice git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora
exec: /snap/bin/helm repo add nextcloud-onlyoffice git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora:
Adding repo onlyoffice-documentserver git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora
exec: /snap/bin/helm repo add onlyoffice-documentserver git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora
exec: /snap/bin/helm repo add onlyoffice-documentserver git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora: "onlyoffice-documentserver" has been added to your repositories

"onlyoffice-documentserver" has been added to your repositories

err: helm exited with status 1:
  Error: no repository definition for @onlyoffice-documentserver. Please add them via 'helm repo add'
  Error in plugin 'helm-git': Error while helm_dependency_update
  Error: Looks like "git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora" is not a valid chart repository or cannot be reached: plugin "helm-git" exited with error
changing working directory back to "/root"
in /oas/source/repos/helmfiles/helmfile.d/20-nextcloud.yaml: helm exited with status 1:
  Error: no repository definition for @onlyoffice-documentserver. Please add them via 'helm repo add'
  Error in plugin 'helm-git': Error while helm_dependency_update
  Error: Looks like "git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora" is not a valid chart repository or cannot be reached: plugin "helm-git" exited with error

I have done some debugging, and it turns out that at some point helm-git is run with the following environment variables set:
  HELM_PLUGIN_DIR=/root/.helm/plugins/helm-git
  HELM_PLUGIN_NAME=helm-git
  SNAP_USER_COMMON=/root/snap/helm/common
  HELM_PATH_STARTER=starters
  HELM_PATH_REPOSITORY=repository
  HELM_BIN=/root/.helm/plugins/helm-diff/bin/diff
  HELM_PLUGIN=/root/.helm/plugins
  PWD=/tmp/helm-git.Ii2YPX
  HELM_PATH_REPOSITORY_FILE=repository/repositories.yaml
  SNAP_INSTANCE_NAME=helm
  SNAP_USER_DATA=/root/snap/helm/106
  HELM_PATH_CACHE=repository/cache
  SNAP=/snap/helm/106
  SNAP_COMMON=/var/snap/helm/common
  HELM_HOME=
  SNAP_DATA=/var/snap/helm/106
  XDG_RUNTIME_DIR=/run/user/0/snap.helm
  HELM_PATH_LOCAL_REPOSITORY=repository/local
  SNAP_NAME=helm

Now I'm not sure where this is going wrong, because I'm not sure if these environment variables are set by helm-diff or by helmfile, but the problem is that HELM_HOME is set to an empty string, which results in helm-git using a temporary home directory instead of the user's normal helm home, which is the reason why it can not find the @onlyoffice-documentserver repository definition.
So I'm aware that this might be a problem in one of the plugins, but I'm not experienced enough with the whole toolset to find the exact cause of this problem on my own. Since helmfile supports using helm-git I thought I'd start here, and I'll open an issue with either plugin if we figure out that they're the culprit.
Any help would be appreciated!

@mrtndwrd Hey!
First of, do you set HELM_HOME to a custom location yourself, or just leaving it unset when running helmfile?
Also - I may be confused but would you mind removing the @ within your repo name in requirements.yaml? Wondering if it makes any difference.
Lastly, it might not be your case, but when you encounter https://github.com/aslafy-z/helm-git/issues/16 try adding a sparse=0 query to the repo url.

helm seems to empty HELM_HOME when calling a helm plugin, but that's the problem other plugins should be affected as well. That's why I'm doubting @ in the repo name is considered as an actual part of the chart name, which doesn't exist in your repo list.

Hey @mumoshu thanks for the help! It's much appreciated :)

First of, do you set HELM_HOME to a custom location yourself, or just leaving it unset when running helmfile?

I didn't, but I'll try it now to set it and see if that changes behaviour.
...
Nope. Seems like you're right: if I override HELM_HOME helm will empty it.

Also - I may be confused but would you mind removing the @ within your repo name in requirements.yaml? Wondering if it makes any difference.

If I remove the @ from the repo name in the requirements.yaml it doesn't work anymore in the normal way:
$ helm repo add onlyoffice-documentserver git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora
"onlyoffice-documentserver" has been added to your repositories
$ cd nextcloud/nextcloud-onlyoffice
$ helm dep update
Error: no repository definition for onlyoffice-documentserver. Please add them via 'helm repo add'
Note that repositories must be URLs or aliases. For example, to refer to the stable
repository, use "https://kubernetes-charts.storage.googleapis.com/" or "@stable" instead of
"stable". Don't forget to add the repo, too ('helm repo add').

I can, however, add the repo as a URL instead of an alias:
  - name: onlyoffice-documentserver
    version: 0.1.0
    repository: "git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora"

But now when I try to install, I get this:
err: helm exited with status 1:
  Error: no repository definition for git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora. Please add them via 'helm repo add'
  Error in plugin 'helm-git': Error while helm_dependency_update
  Error: Looks like "git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora" is not a valid chart repository or cannot be reached: plugin "helm-git" exited with error
changing working directory back to "/root"
in /oas/source/repos/helmfiles/helmfile.d/20-nextcloud.yaml: helm exited with status 1:
  Error: no repository definition for git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora. Please add them via 'helm repo add'
  Error in plugin 'helm-git': Error while helm_dependency_update
  Error: Looks like "git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora" is not a valid chart repository or cannot be reached: plugin "helm-git" exited with error

So basically the same error, because however you specify the repo, you still need to have it listed when you run helm repo list, but with HELM_HOME overridden for plugin execution that doesn't work. For completeness, when I run helm repo list normally, I get this result:
$ helm repo list
NAME                     	URL
stable                   	https://kubernetes-charts.storage.googleapis.com
local                    	http://<IP_ADDRESS>:8879/charts
jetstack                 	https://charts.jetstack.io
onlyoffice-documentserver	git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora

Lastly, it might not be your case, but when you encounter aslafy-z/helm-git#16 try adding a sparse=0 query to the repo url.

I tried that, but it doesn't make a difference:
...
err: release "oas-test-files" in "20-nextcloud.yaml" failed: failed processing release oas-test-files: helm exited with status 1:
  Error: no repository definition for @onlyoffice-documentserver. Please add them via 'helm repo add'
  Error in plugin 'helm-git': Error while helm_dependency_update
  Error: plugin "helm-git" exited with error
  Error: plugin "diff" exited with error
changing working directory back to "/root"
in /oas/source/repos/helmfiles/helmfile.d/20-nextcloud.yaml: failed processing release oas-test-files: helm exited with status 1:
  Error: no repository definition for @onlyoffice-documentserver. Please add them via 'helm repo add'
  Error in plugin 'helm-git': Error while helm_dependency_update
  Error: plugin "helm-git" exited with error
  Error: plugin "diff" exited with error
$ helm repo list
NAME                     	URL
stable                   	https://kubernetes-charts.storage.googleapis.com
local                    	http://<IP_ADDRESS>:8879/charts
jetstack                 	https://charts.jetstack.io
onlyoffice-documentserver	git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora&sparse=0
nextcloud-onlyoffice     	git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora

helm seems to empty HELM_HOME when calling a helm plugin

As far as I can tell it seems to not empty it but set it to whatever is in settings.Home, but I don't really understand why that doesn't default to /root/.helm in my case :thinking:

Hi @mrtndwrd! Thanks for reporting, I'm unable to test now as it seems your git server is blocked at my workplace. Gonna try to debug when I'm back home. I added a Troubleshooting section in the helm-git repo, feel free to have a try.
Thanks @mumoshu for your input!

I started to think if you've incorrect a repository url. A repository URL must point to the parent directory of the charts, not the chart directory itself.
This is not correct:
git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora

But this is:
git+https://code.greenhost.net/openappstack/nextcloud?ref=4-use-onlyoffice-instead-of-collabora

Now see your helmfile.yaml and if you've still the incorrect URL under repositories, try something like:
repositories:
  - name: nextcloud
    url: git+https://code.greenhost.net/openappstack/nextcloud?ref=4-use-onlyoffice-instead-of-collabora

releases:
- name: nextcloud-onlyoffice
  chart: nextcloud/nextcloud-onlyoffice

I can't access it via git+https as I have no read permission to it, but worth trying!

@mumoshu Sadly, helm-git still needs a path section within the repo URL, even if it's empty (see https://github.com/aslafy-z/helm-git/issues/15). So it would become:
git+https://code.greenhost.net/openappstack/nextcloud@?ref=4-use-onlyoffice-instead-of-collabora

but from what I've seen (cached google page of https://code.greenhost.net/openappstack/nextcloud), the chart is in a nextcloud subfolder (according to the google cached page), so it would have to be:
git+https://code.greenhost.net/openappstack/nextcloud@nextcloud?ref=4-use-onlyoffice-instead-of-collabora

I understand the URL syntax could be misleading, sorry for that. It can still be discussed, I'd be pleased to have your feedback!

Thanks for your support @aslafy-z!
From what I see he's using this branch https://code.greenhost.net/openappstack/nextcloud/tree/4-use-onlyoffice-instead-of-collabora for testing, and nextcloud seems like the repository name, where there are two charts(=directories) in it:

nextcloud-onlyoffice
onlyoffice-documentserver

So I bet your first suggestion git+https://code.greenhost.net/openappstack/nextcloud@?ref=4-use-onlyoffice-instead-of-collabora works.
Now hoping either of the two options works :) Thansk again for your help.

Oh so do you mean that it would work in both cases, @nextcloud and @?

Thanks for all your quick replies! That's spot on, @mumoshu
Now when I try to use that URL for the repo, I run into a chicken-and-egg problem...
I updated my requirements.yaml to this:
dependencies:
  - name: nextcloud
    version: 1.1.1
    repository: "@stable"
    tags:
      - nextcloud
  - name: onlyoffice-documentserver
    version: 0.1.0
    repository: "@nextcloud"
    tags:
      - onlyoffice
      - nextcloud

Because the onlyoffice-documentserver chart would now be in the same repo as the nextcloud-onlyoffice chart, correct?
So then I try to add the repo as follows:
$ helm repo add nextcloud git+https://code.greenhost.net/openappstack/nextcloud@?ref=4-use-onlyoffice-instead-of-collabora

But I get this error:
Error: no repository definition for @nextcloud. Please add them via 'helm repo add'
Error in plugin 'helm-git': Error while helm_dependency_update
Error: Looks like "git+https://code.greenhost.net/openappstack/nextcloud@?ref=4-use-onlyoffice-instead-of-collabora" is not a valid chart repository or cannot be reached: plugin "helm-git" exited with error

Oh so do you mean that it would work in both cases, @nextcloud and @?

No it shouldn't with @nextcloud, I was referring to the wrong branch (master, where there is a nextcloud folder). It could have worked with only @ but yeah, chicken and egg problem as one chart refer to the other :(
You can try that:

helm repo add nextcloud-onlyoffice git+https://code.greenhost.net/openappstack/nextcloud@nextcloud-onlyoffice?ref=4-use-onlyoffice-instead-of-collabora
helm repo add @nextcloud git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora
And then install this release: nextcloud-onlyoffice/nextcloud-onlyoffice

You could also try to set repository key from your dep to git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora instead

Thanks @aslafy-z Yes that was my starting position. And when I run helm repo add like you suggest and then run helm dep update for nextcloud-onlyoffice it works. But when I have these repos as described in my first post and I run helmfile apply, it doesn't...

You could also try to set repository key from your dep to git+https://code.greenhost.net/openappstack/nextcloud@onlyoffice-documentserver?ref=4-use-onlyoffice-instead-of-collabora instead

I tried that too in this post: https://github.com/roboll/helmfile/issues/726#issuecomment-506245134

As far as I can tell it seems to not empty it but set it to whatever is in settings.Home, but I don't really understand why that doesn't default to /root/.helm in my case

Yeah that's interesting. I see no suspicious code that can result in the empty value, at least in the recent helm code-base.
On helm dependency build, settings are parsed from flags:
https://github.com/helm/helm/blob/b0b0accdfc84e154b3d48ec334cd5b4f9b345667/cmd/helm/dependency_build.go#L78
HELM_HOME is derived from the settings.Home:
https://github.com/helm/helm/blob/7cad59091a9451b2aa4f95aa882ea27e6b195f98/pkg/plugin/plugin.go#L182
And the whole envvars should be inherited to the plugin command, in this case helm-git in:
https://github.com/helm/helm/blob/7cad59091a9451b2aa4f95aa882ea27e6b195f98/pkg/getter/plugingetter.go#L67-L68
🤔

@mrtndwrd Do you see anything suspicious when you run helm home --debug?
For my it's like this - where the first line is settings.Home:
$ helm home --debug
/Users/myuesr/.helm
Repository: /Users/myuesr/.helm/repository
RepositoryFile: /Users/myuesr/.helm/repository/repositories.yaml
Cache: /Users/myuesr/.helm/repository/cache
Stable CacheIndex: /Users/myuesr/.helm/repository/cache/stable-index.yaml
Starters: /Users/myuesr/.helm/starters
LocalRepository: /Users/myuesr/.helm/repository/local
Plugins: /Users/myuesr/.helm/plugins

Not really...
# helm home --debug
/root/.helm
Repository: /root/.helm/repository
RepositoryFile: /root/.helm/repository/repositories.yaml
Cache: /root/.helm/repository/cache
Stable CacheIndex: /root/.helm/repository/cache/stable-index.yaml
Starters: /root/.helm/starters
LocalRepository: /root/.helm/repository/local
Plugins: /root/.helm/plugins

Actually we have the same issue when using both helm-diff and helm-git plugins... Very annoying as for us git references are simply unusable right now...
Any workaround for that?

was there a resolution to this?

Workaround
sed -i 's| \-\-skip\-refresh||g' "$(helm env HELM_PLUGINS)/helm-git/helm-git-plugin.sh"

More info https://github.com/aslafy-z/helm-git/pull/155

This should now be fixed with https://github.com/aslafy-z/helm-git/releases/tag/v0.11.2. Thank you @metajiji for your work on this issue. Can you have a look @mrtndwrd?

@afolarin https://github.com/roboll/helmfile/issues/2148


Add an Install.ps1 script to automate version configuration

Implements #12

Thanks. I look forward to reviewing this.

I like how you factored the meat of it in a powershell script of its own. :)

Looks really good overall. It doesn't work (automatically) in VS2015 with packages.config, presumably because it's NUget v3. I'm spinning up a VS2013 VM to test it. But once the issues above are resolved and I've tested that it works myself, I'll merge.

Hmm, I also tested with VS 2015. What was the outcome vs what you expected?

I hoped it would work on all versions of vs and nuget as long it was packages.config but if that doesn't work I suppose that's just a nuget limitation and not a bug on your part. I'll double check tomorrow.

FWIW, I tested with VS 2015 Community and NuGet Package Manager for Visual Studio version 3.2.60914.10516.
To test, I created a new console app in a repo, and put some number in the AssemblyVersion attribute, such as "<IP_ADDRESS>". I committed, and then installed the package with my changes via right-click -> "Manage NuGet Packages..." on the project which is using packages.config. What resulted was a new version.txt file added to the project with contents "2.3.0", and the AssemblyVersion and AssemblyFileVersion lines removed from AssemblyInfo.cs. I then committed these changes so that version.txt is in the git history and built the project. It resulted in version <IP_ADDRESS>962.

For some really weird reason, the .nupkg your PR builds has a tools folder yet when VS downloads it, it doesn't. That's why the ps1 script isn't executing for me. I'm still investigating.

OK, so AppVeyor is pulling some crazy stunt and has modified the NuPkg file before publishing it to its feed to remove the install.ps1 script. See the discussion I've started here: http://help.appveyor.com/discussions/problems/3122-nuget-package-from-feed-is-missing-files-that-are-present-in-build-artifacts


Problems with the initializer_list constructor

The latest version of the 0.7.0/testing Conan package fails to compile such a simple code:
template<typename Rep = double>
using vector = fs_vector<Rep, 3>;

template<units::Unit U = si::metre, units::Scalar Rep = double>
using length_v = si::length<U, vector<Rep>>;

length_v<> v(vector<>{ 1, 2, 3 });

The code compiled fine before but now the following compiler error is being reported:
[build] [1/2  50% :: 7.014] Building CXX object example/CMakeFiles/linear_algebra.dir/linear_algebra.cpp.o
[build] FAILED: example/CMakeFiles/linear_algebra.dir/linear_algebra.cpp.o
[build] /bin/g++-10   -I../../src/include -isystem /home/mpusz/.conan/data/fmt/6.2.1/_/_/package/1291f461f6832a5b3098e2156f727f267fd98612/include -isystem /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include -g   -Wno-literal-suffix -Wno-non-template-friend -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wcast-qual -Wconversion -Wsign-conversion -Wnull-dereference -Wdouble-promotion -Wformat=2 -Werror -Wmisleading-indentation -Wduplicated-cond -Wduplicated-branches -Wlogical-op -std=gnu++2a -MD -MT example/CMakeFiles/linear_algebra.dir/linear_algebra.cpp.o -MF example/CMakeFiles/linear_algebra.dir/linear_algebra.cpp.o.d -o example/CMakeFiles/linear_algebra.dir/linear_algebra.cpp.o -c ../../example/linear_algebra.cpp
[build] In file included from /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra.hpp:100,
[build]                  from ../../example/linear_algebra.cpp:27:
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/vector.hpp: In instantiation of ‘constexpr std::math::vector<ET, OT>::vector(std::initializer_list<_Up>) [with U = std::math::vector<std::math::fs_vector_engine<double, 3>, std::math::matrix_operation_traits>; ET2 = std::math::fs_vector_engine<double, 3>; typename std::enable_if<(is_same_v<ET, ET2> && is_initable_engine_v<ET>), bool>::type <anonymous> = true; ET = std::math::fs_vector_engine<double, 3>; OT = std::math::matrix_operation_traits]’:
[build] ../../src/include/units/quantity.h:78:75:   required from ‘constexpr units::quantity<D, U, Rep>::quantity(const Value&) [with Value = std::math::vector<std::math::fs_vector_engine<double, 3>, std::math::matrix_operation_traits>; D = units::physical::si::dim_length; U = units::physical::si::metre; Rep = std::math::vector<std::math::fs_vector_engine<double, 3>, std::math::matrix_operation_traits>]’
[build] ../../example/linear_algebra.cpp:214:35:   required from here
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/vector.hpp:236:18: error: no matching function for call to ‘std::math::fs_vector_engine<double, 3>::fs_vector_engine(std::initializer_list<std::math::vector<std::math::fs_vector_engine<double, 3>, std::math::matrix_operation_traits> >&)’
[build]   236 | :   m_engine(list)
[build]       |                  ^
[build] In file included from /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra.hpp:93,
[build]                  from ../../example/linear_algebra.cpp:27:
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:120:1: note: candidate: ‘template<class T2, typename std::enable_if<is_convertible_v<T2, double>, bool>::type <anonymous> > constexpr std::math::fs_vector_engine<T, N>::fs_vector_engine(std::initializer_list<_Up>) [with T2 = T2; typename std::enable_if<is_convertible_v<T2, T>, bool>::type <anonymous> = <anonymous>; T = double; long int N = 3]’
[build]   120 | fs_vector_engine<T,N>::fs_vector_engine(initializer_list<T2> rhs)
[build]       | ^~~~~~~~~~~~~~~~~~~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:120:1: note:   template argument deduction/substitution failed:
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:46:75: error: no type named ‘type’ in ‘struct std::enable_if<false, bool>’
[build]    46 |     template<class T2, detail::enable_if_convertible_element_type<T2,T> = true>
[build]       |                                                                           ^~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:45:15: note: candidate: ‘template<class ET2, typename std::enable_if<(is_engine_v<ET2> && is_convertible_v<typename ET2::value_type, double>), bool>::type <anonymous> > constexpr std::math::fs_vector_engine<T, N>::fs_vector_engine(const ET2&) [with ET2 = ET2; typename std::enable_if<(is_engine_v<ET2> && is_convertible_v<typename ET2::value_type, T>), bool>::type <anonymous> = <anonymous>; T = double; long int N = 3]’
[build]    45 |     constexpr fs_vector_engine(ET2 const& src);
[build]       |               ^~~~~~~~~~~~~~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:45:15: note:   template argument deduction/substitution failed:
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:44:88: error: no type named ‘type’ in ‘struct std::enable_if<false, bool>’
[build]    44 |     template<class ET2, detail::enable_if_engine_has_convertible_element_type<ET2,T> = true>
[build]       |                                                                                ^~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:43:15: note: candidate: ‘template<class T2, long int N2> constexpr std::math::fs_vector_engine<T, N>::fs_vector_engine(const std::math::fs_vector_engine<T2, N2>&) [with T2 = T2; long int N2 = N2; T = double; long int N = 3]’
[build]    43 |     constexpr fs_vector_engine(fs_vector_engine<T2, N2> const& src);
[build]       |               ^~~~~~~~~~~~~~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:43:15: note:   template argument deduction/substitution failed:
[build] In file included from /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra.hpp:100,
[build]                  from ../../example/linear_algebra.cpp:27:
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/vector.hpp:236:18: note:   ‘std::initializer_list<std::math::vector<std::math::fs_vector_engine<double, 3>, std::math::matrix_operation_traits> >’ is not derived from ‘const std::math::fs_vector_engine<T, N>’
[build]   236 | :   m_engine(list)
[build]       |                  ^
[build] In file included from /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra.hpp:93,
[build]                  from ../../example/linear_algebra.cpp:27:
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:41:15: note: candidate: ‘constexpr std::math::fs_vector_engine<T, N>::fs_vector_engine(const std::math::fs_vector_engine<T, N>&) [with T = double; long int N = 3]’
[build]    41 |     constexpr fs_vector_engine(const fs_vector_engine&) = default;
[build]       |               ^~~~~~~~~~~~~~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:41:32: note:   no known conversion for argument 1 from ‘std::initializer_list<std::math::vector<std::math::fs_vector_engine<double, 3>, std::math::matrix_operation_traits> >’ to ‘const std::math::fs_vector_engine<double, 3>&’
[build]    41 |     constexpr fs_vector_engine(const fs_vector_engine&) = default;
[build]       |                                ^~~~~~~~~~~~~~~~~~~~~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:40:15: note: candidate: ‘constexpr std::math::fs_vector_engine<T, N>::fs_vector_engine(std::math::fs_vector_engine<T, N>&&) [with T = double; long int N = 3]’
[build]    40 |     constexpr fs_vector_engine(fs_vector_engine&&) noexcept = default;
[build]       |               ^~~~~~~~~~~~~~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:40:32: note:   no known conversion for argument 1 from ‘std::initializer_list<std::math::vector<std::math::fs_vector_engine<double, 3>, std::math::matrix_operation_traits> >’ to ‘std::math::fs_vector_engine<double, 3>&&’
[build]    40 |     constexpr fs_vector_engine(fs_vector_engine&&) noexcept = default;
[build]       |                                ^~~~~~~~~~~~~~~~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:98:1: note: candidate: ‘constexpr std::math::fs_vector_engine<T, N>::fs_vector_engine() [with T = double; long int N = 3]’
[build]    98 | fs_vector_engine<T,N>::fs_vector_engine()
[build]       | ^~~~~~~~~~~~~~~~~~~~~
[build] /home/mpusz/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/8fd2aef8c9b0fa1372485045003b8f6288f6e0c7/include/linear_algebra/fixed_size_vector_engine.hpp:98:1: note:   candidate expects 0 arguments, 1 provided

A detailed error log is here: https://travis-ci.com/github/mpusz/units/jobs/352366925#L908

Not sure what's going on here.  0.7.0 is undergoing a major refactoring, and therefore unstable, at the moment.   I'll circle back to this issue once I get things stable for R7.

It is a pity that unstable version landed out in Conan which makes mine and possibly other libraries CI broken :-(

@BobSteagall, do you have any ETA on this issue? Physical Units CI is broken because of this for a week now :-(

Please send instructions for how to reproduce and I'll take a look.

Hmm, the easiest would be to follow https://mpusz.github.io/units/usage.html#full-mp-units-build-unit-testing-and-documentation-generation :wink: and possibly https://mpusz.github.io/units/usage.html#non-standard-conan-remotes to configure Conan remotes.

Following your directions, compilation succeeds but linking fails for me:
$ VERBOSE=1 make linear_algebra
/usr/local/bin/cmake -S/home/bob/repos/units -B/home/bob/repos/units/build --check-build-system CMakeFiles/Makefile.cmake 0
make -f CMakeFiles/Makefile2 linear_algebra
make[1]: Entering directory '/mnt/hgfs/repos/units/build'
/usr/local/bin/cmake -S/home/bob/repos/units -B/home/bob/repos/units/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/local/bin/cmake -E cmake_progress_start /home/bob/repos/units/build/CMakeFiles 2
make -f CMakeFiles/Makefile2 example/CMakeFiles/linear_algebra.dir/all
make[2]: Entering directory '/mnt/hgfs/repos/units/build'
make -f example/CMakeFiles/linear_algebra.dir/build.make example/CMakeFiles/linear_algebra.dir/depend
make[3]: Entering directory '/mnt/hgfs/repos/units/build'
cd /home/bob/repos/units/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/bob/repos/units /home/bob/repos/units/example /home/bob/repos/units/build /home/bob/repos/units/build/example /home/bob/repos/units/build/example/CMakeFiles/linear_algebra.dir/DependInfo.cmake --color=
Dependee "/home/bob/repos/units/build/example/CMakeFiles/linear_algebra.dir/DependInfo.cmake" is newer than depender "/home/bob/repos/units/build/example/CMakeFiles/linear_algebra.dir/depend.internal".
Dependee "/home/bob/repos/units/build/example/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/bob/repos/units/build/example/CMakeFiles/linear_algebra.dir/depend.internal".
Scanning dependencies of target linear_algebra
make[3]: Leaving directory '/mnt/hgfs/repos/units/build'
make -f example/CMakeFiles/linear_algebra.dir/build.make example/CMakeFiles/linear_algebra.dir/build
make[3]: Entering directory '/mnt/hgfs/repos/units/build'
[ 50%] Building CXX object example/CMakeFiles/linear_algebra.dir/linear_algebra.cpp.o
cd /home/bob/repos/units/build/example && /usr/local/gcc/10.1.0/bin/c++   -I/home/bob/repos/units/src/include -isystem /home/bob/.conan/data/fmt/6.2.1/_/_/package/77403a2deb3f435fb6072b1787b49c5773303fed/include -isystem /home/bob/.conan/data/linear_algebra/0.7.0/public-conan/testing/package/a39c01c14319c48da00a73f9537cfc3c66b46bd5/include  -Wno-literal-suffix -Wno-non-template-friend -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wcast-qual -Wconversion -Wsign-conversion -Wnull-dereference -Wdouble-promotion -Wformat=2 -Werror -Wmisleading-indentation -Wduplicated-cond -Wduplicated-branches -Wlogical-op -std=gnu++2a -o CMakeFiles/linear_algebra.dir/linear_algebra.cpp.o -c /home/bob/repos/units/example/linear_algebra.cpp
[100%] Linking CXX executable ../bin/linear_algebra
cd /home/bob/repos/units/build/example && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/linear_algebra.dir/link.txt --verbose=1
/usr/local/gcc/10.1.0/bin/c++      CMakeFiles/linear_algebra.dir/linear_algebra.cpp.o  -o ../bin/linear_algebra  /home/bob/.conan/data/fmt/6.2.1/_/_/package/77403a2deb3f435fb6072b1787b49c5773303fed/lib/libfmt.a
/usr/local/gcc/10.1.0/libexec/gcc/x86_64-kewb-linux-gnu/10.1.0/ld: CMakeFiles/linear_algebra.dir/linear_algebra.cpp.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > fmt::v6::internal::grouping<char>(fmt::v6::internal::locale_ref)':
linear_algebra.cpp:(.text._ZN3fmt2v68internal8groupingIcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_10locale_refE[_ZN3fmt2v68internal8groupingIcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_10locale_refE]+0x1f): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > fmt::v6::internal::grouping_impl<char>(fmt::v6::internal::locale_ref)'
collect2: error: ld returned 1 exit status
example/CMakeFiles/linear_algebra.dir/build.make:84: recipe for target 'bin/linear_algebra' failed
make[3]: *** [bin/linear_algebra] Error 1
make[3]: Leaving directory '/mnt/hgfs/repos/units/build'
CMakeFiles/Makefile2:575: recipe for target 'example/CMakeFiles/linear_algebra.dir/all' failed
make[2]: *** [example/CMakeFiles/linear_algebra.dir/all] Error 2
make[2]: Leaving directory '/mnt/hgfs/repos/units/build'
CMakeFiles/Makefile2:582: recipe for target 'example/CMakeFiles/linear_algebra.dir/rule' failed
make[1]: *** [example/CMakeFiles/linear_algebra.dir/rule] Error 2
make[1]: Leaving directory '/mnt/hgfs/repos/units/build'
Makefile:331: recipe for target 'linear_algebra' failed
make: *** [linear_algebra] Error 2

Hmmm, it is really strange. It fails for me all the time and in CI as well: https://travis-ci.com/github/mpusz/units/jobs/354750626. I wonder which linear_algebra did Conan choose for you? Maybe you have a newer version on your PC? Could you please try conan remove linear_algebra and then doing conan install again and rebuild?
BTW, your linking problem is most probably caused by using the pre-gcc-5 ABI mode (default for Conan). In order to use C++11 (and later) compatible ABI you should put compiler.libcxx=libstdc++11 to your Conan profile.

OK, got the linking problem fixed, thanks.  I deleted my conan cache (I had a different/older 0.7.0) and re-ran the build steps. I'm now seeing the same errors you've reported.

Thanks!

I reverted the code to a slightly older version and re-ran the builds.  A new conan package was uploaded to the remote, and now the units lib builds for me (after updating outdated).
Please try and see if it works again for you.
I don't know why the changes caused this problem, but R7 should be considered unstable.  There are some big changes occurring that may temporarily break compatibility with the units library.

Thanks, Bob! Now everything works fine.
I am not afraid of something being unstable if I decide to Live At Head as long as it is correct (compiles fine by self). If you change the interface I will be one of your first users to test it. I believe (and many people expect) that our libraries should work nicely with each other. We can ensure that only by working closely with each other and making sure there are no interop issues.


Failed to decode param - error 500

fix error 500 for URL paths like this "/trend/N%FCrburgring.html"

Hi! Currently this is simply a mirror.
For issues, pull requests, and support, please see the main repository at https://github.com/strongloop/express


[alicevision] Add new port

Continue PR https://github.com/microsoft/vcpkg/pull/8829
Fixes #8819.
Related: https://github.com/alicevision/AliceVision/issues/767

Waiting for liblzma issue to be fixed.

CMake Error at /Users/vcpkg/Data/installed/x64-osx/share/openimageio/OpenImageIOTargets.cmake:71 (set_target_properties):
  The link interface of target "OpenImageIO::OpenImageIO" contains:

    lcms2::lcms2

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

Call Stack (most recent call first):
  /Users/vcpkg/Data/installed/x64-osx/share/openimageio/OpenImageIOConfig.cmake:118 (include)
  /Users/vcpkg/Data/work/1/s/scripts/buildsystems/vcpkg.cmake:859 (_find_package)
  src/CMakeLists.txt:333 (find_package)

@WangWeiLin-MV can you plz check whether find_package(lcms) is in OpenImageIOConfig.cmake (non-Windows)?

Depends on https://github.com/microsoft/vcpkg/pull/38071

@fabiencastan  Can you please review this PR?

Waiting for the upstream review this PR.

Is there a problem to enable the SFM? It's at the core of alicevision, so it will limit a lot the usage.

@JackBoosY have you seen the review from @simogasp ?

@fabiencastan vacation now, will continue this PR several days later.

@fabiencastan Alicevision does not provide FindCoinUtils.cmake, so how can we find coinutils by cmake now?
I saw coinutils is adding cmake support in https://github.com/coin-or/CoinUtils/pull/101 but not land.

Currently we are using a fork: https://github.com/alicevision/CoinUtils/commits/av_develop/
with all the cmake stuff.
There is also another PR on the official coinutils that has not been merged to add cmake.
The best would be to get something merged and maybe in the meantime add the cmage config in the vcpkg patch of coinuils.

Currently we are using a fork: https://github.com/alicevision/CoinUtils/commits/av_develop/ with all the cmake stuff.
There is also another PR on the official coinutils that has not been merged to add cmake.
The best would be to get something merged and maybe in the meantime add the cmage config in the vcpkg patch of coinuils.

Since such ports now use makefile, we may need to wait for the upstream PRs or add vcpkg-wrapper & Find.cmake.

Currently we are using a fork: https://github.com/alicevision/CoinUtils/commits/av_develop/ with all the cmake stuff.
There is also another PR on the official coinutils that has not been merged to add cmake.
The best would be to get something merged and maybe in the meantime add the cmage config in the vcpkg patch of coinuils.

Since such ports now use makefile, we may need to wait for the upstream PRs or add vcpkg-wrapper & Find.cmake.

That's unfortunate because we moved to that fork cmake-based system (we used the CMakeLists from vcpkg at that time) hoping that someday the official repos would also move to cmake. Since we use vcpkg for the Windows CI it also made sense.
How do you consume those libs built with make in vcpkg now in a project with cmake? Do you have to provide your own FindX.cmake?

How do you consume those libs built with make in vcpkg now in a project with cmake? Do you have to provide your own FindX.cmake?

Yeah we currently may pick one of two ways:

The cmake build system, based on alincevision provided or the upstream PRs.
I got some Find.cmake files in github, we can use them and each related vcpkg-cmake-wrapper.

How do you consume those libs built with make in vcpkg now in a project with cmake? Do you have to provide your own FindX.cmake?

Yeah we currently may pick one of two ways:

The cmake build system, based on alincevision provided or the upstream PRs.
I got some Find.cmake files in github, we can use them and each related vcpkg-cmake-wrapper.

ok, but I meant more generally, if your project is cmake-based, how are you supposed to import a library built using vcpkg_configure_make()? Vcpkg was meant to use cmake as it was easy then to import the libs through the cmake targets (whether the orig repo provided them or not). How is it now, you need to deal with that part for those libraries built with make?

ok, but I meant more generally, if your project is cmake-based, how are you supposed to import a library built using vcpkg_configure_make()? Vcpkg was meant to use cmake as it was easy then to import the libs through the cmake targets (whether the orig repo provided them or not). How is it now, you need to deal with that part for those libraries built with make?

Use make system, provide vcpkg-cmake-wrapper.cmake and FindXXX.cmake adapt to the generated files.
Switch to cmake system and export the cmake targets.

@simogasp:

if the build system generates pc files use FindPkgConfig.cmake
otherwise create a FindXXX.cmake in your project for XXX you want to use and manually use find_library. Use the result to setup targets for XXX etc. which then can be used downstream.

I resolved the coinutils / clp /osi couldn't be found issue using pkgconfig, but got new issue about boost:
[312/564] E:\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\cl.exe   /TP -DALICEVISION_EIGEN_REQUIRE_ALIGNMENT=1 -DBOOST_ALL_DYN_LINK -DBOOST_BIND_GLOBAL_PLACEHOLDERS=1 -DBOOST_TEST_DYN_LINK -DGFLAGS_IS_A_DLL=1 -DGLOG_NO_ABBREVIATED_SEVERITIES -DGLOG_USE_GFLAGS -DGLOG_USE_GLOG_EXPORT -DIMATH_DLL -DNOMINMAX -D_USE_MATH_DEFINES -D__SSE2__ -D__SSE3__ -D__SSSE3__ -DaliceVision_mvsUtils_EXPORTS -IJ:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src -IJ:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\generated -IJ:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\dependencies -IJ:\vcpkg_commit\vcpkg\installed\x64-windows\share\lemon\..\..\include -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include\eigen3 -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\debug\..\include\coin-or -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\debug\..\include\openblas -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include\Imath -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include\suitesparse -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include\GKlib -external:W0 /nologo /DWIN32 /D_WINDOWS /W3 /utf-8 /GR /EHsc /MP  /Zc:alignedNew -openmp /D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1  -std:c++17 /bigobj /MP /EHsc /Zc:__cplusplus /showIncludes /Fosrc\aliceVision\mvsUtils\CMakeFiles\aliceVision_mvsUtils.dir\mapIO.cpp.obj /Fdsrc\aliceVision\mvsUtils\CMakeFiles\aliceVision_mvsUtils.dir\ /FS -c J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision\mvsUtils\mapIO.cpp
FAILED: src/aliceVision/mvsUtils/CMakeFiles/aliceVision_mvsUtils.dir/mapIO.cpp.obj
E:\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\cl.exe   /TP -DALICEVISION_EIGEN_REQUIRE_ALIGNMENT=1 -DBOOST_ALL_DYN_LINK -DBOOST_BIND_GLOBAL_PLACEHOLDERS=1 -DBOOST_TEST_DYN_LINK -DGFLAGS_IS_A_DLL=1 -DGLOG_NO_ABBREVIATED_SEVERITIES -DGLOG_USE_GFLAGS -DGLOG_USE_GLOG_EXPORT -DIMATH_DLL -DNOMINMAX -D_USE_MATH_DEFINES -D__SSE2__ -D__SSE3__ -D__SSSE3__ -DaliceVision_mvsUtils_EXPORTS -IJ:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src -IJ:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\generated -IJ:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\dependencies -IJ:\vcpkg_commit\vcpkg\installed\x64-windows\share\lemon\..\..\include -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include\eigen3 -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\debug\..\include\coin-or -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\debug\..\include\openblas -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include\Imath -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include\suitesparse -external:IJ:\vcpkg_commit\vcpkg\installed\x64-windows\include\GKlib -external:W0 /nologo /DWIN32 /D_WINDOWS /W3 /utf-8 /GR /EHsc /MP  /Zc:alignedNew -openmp /D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1  -std:c++17 /bigobj /MP /EHsc /Zc:__cplusplus /showIncludes /Fosrc\aliceVision\mvsUtils\CMakeFiles\aliceVision_mvsUtils.dir\mapIO.cpp.obj /Fdsrc\aliceVision\mvsUtils\CMakeFiles\aliceVision_mvsUtils.dir\ /FS -c J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision\mvsUtils\mapIO.cpp
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/mvsData/ROI.hpp(148): warning C4244: 'argument': conversion from 'float' to 'unsigned int', possible loss of data
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/mvsData/ROI.hpp(148): warning C4244: 'argument': conversion from 'float' to 'unsigned int', possible loss of data
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/mvsData/ROI.hpp(159): warning C4244: 'argument': conversion from 'float' to 'unsigned int', possible loss of data
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/mvsData/ROI.hpp(159): warning C4244: 'argument': conversion from 'float' to 'unsigned int', possible loss of data
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/mvsData/ROI.hpp(172): warning C4244: 'argument': conversion from 'float' to 'unsigned int', possible loss of data
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/mvsData/ROI.hpp(172): warning C4244: 'argument': conversion from 'float' to 'unsigned int', possible loss of data
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/prettyprint.hpp(489): warning C4099: 'Eigen::EigenBase': type name first seen using 'struct' now seen using 'class'
J:\vcpkg_commit\vcpkg\installed\x64-windows\include\Eigen\src/Core/EigenBase.h(30): note: see declaration of 'Eigen::EigenBase'
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/mvsUtils/MultiViewParams.hpp(161): warning C4267: 'return': conversion from 'size_t' to 'int', possible loss of data
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/image/io.hpp(24): warning C4099: 'aliceVision::rgb': type name first seen using 'struct' now seen using 'class'
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision/image/Rgb.hpp(11): note: see declaration of 'aliceVision::rgb'
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision\mvsUtils\mapIO.cpp(145): error C2039: 'make_iterator_range': is not a member of 'boost'
J:\vcpkg_commit\vcpkg\installed\x64-windows\include\boost/regex/v5/regex_split.hpp(24): note: see declaration of 'boost'
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision\mvsUtils\mapIO.cpp(145): error C2530: 'entry': references must be initialized
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision\mvsUtils\mapIO.cpp(145): error C3531: 'entry': a symbol whose type contains 'auto' must have an initializer
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision\mvsUtils\mapIO.cpp(145): error C2143: syntax error: missing ';' before ':'
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision\mvsUtils\mapIO.cpp(145): error C3861: 'make_iterator_range': identifier not found
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision\mvsUtils\mapIO.cpp(145): error C2143: syntax error: missing ';' before ')'
J:\vcpkg_commit\vcpkg\buildtrees\alicevision\src\v3.2.0-4ba1530adf\src\aliceVision\mvsUtils\mapIO.cpp(147): error C2672: 'boost::regex_match': no matching overloaded function found

The error seems to come from Boost::regex which is missing here:
https://github.com/alicevision/AliceVision/blob/develop/src/aliceVision/mvsUtils/CMakeLists.txt#L32

The error seems to come from Boost::regex which is missing here: https://github.com/alicevision/AliceVision/blob/develop/src/aliceVision/mvsUtils/CMakeLists.txt#L32

No, boost-regex was already added into dependencies and found in
https://github.com/alicevision/AliceVision/blob/4eb30dfa3c9054de183e335f08c21c4536cb52aa/src/CMakeLists.txt#L287

make_iterator_range should be included in boost-range, no idea whether it caused by the boost update their code.

No, boost-regex was already added into dependencies and found in https://github.com/alicevision/AliceVision/blob/4eb30dfa3c9054de183e335f08c21c4536cb52aa/src/CMakeLists.txt#L287

In the find_package, we list all the modules that we will need globally in the project, but then we need to list the boost modules that we are using in each element, like here:
https://github.com/alicevision/AliceVision/blob/4eb30dfa3c9054de183e335f08c21c4536cb52aa/src/aliceVision/calibration/CMakeLists.txt#L34

No, boost-regex was already added into dependencies and found in https://github.com/alicevision/AliceVision/blob/4eb30dfa3c9054de183e335f08c21c4536cb52aa/src/CMakeLists.txt#L287

In the find_package, we list all the modules that we will need globally in the project, but then we need to list the boost modules that we are using in each element, like here: https://github.com/alicevision/AliceVision/blob/4eb30dfa3c9054de183e335f08c21c4536cb52aa/src/aliceVision/calibration/CMakeLists.txt#L34

Add #include <boost/range/iterator_range.hpp> to mapIO.cpp fixed this issue, but got another link issue with target aliceVision_sfm:
[392/564] C:\WINDOWS\system32\cmd.exe /C "C:\WINDOWS\system32\cmd.exe /C "J:\vcpkg_commit\vcpkg\downloads\tools\cmake-3.29.0-windows\cmake-3.29.0-windows-i386\bin\cmake.exe -E __create_def J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir\.\exports.def J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir\.\exports.def.objs && cd J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg" && J:\vcpkg_commit\vcpkg\downloads\tools\cmake-3.29.0-windows\cmake-3.29.0-windows-i386\bin\cmake.exe -E vs_link_dll --intdir=src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100220~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100220~1.0\x64\mt.exe --manifests  -- E:\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\link.exe  @CMakeFiles\aliceVision_sfm.rsp  /out:Windows-AMD64\aliceVision_sfm.dll /implib:Windows-AMD64\aliceVision_sfm.lib /pdb:Windows-AMD64\aliceVision_sfm.pdb /dll /version:3.2 /machine:x64 /nologo    /debug /INCREMENTAL  /DEF:src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir\.\exports.def && cd ."
FAILED: Windows-AMD64/aliceVision_sfm.dll Windows-AMD64/aliceVision_sfm.lib
C:\WINDOWS\system32\cmd.exe /C "C:\WINDOWS\system32\cmd.exe /C "J:\vcpkg_commit\vcpkg\downloads\tools\cmake-3.29.0-windows\cmake-3.29.0-windows-i386\bin\cmake.exe -E __create_def J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir\.\exports.def J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir\.\exports.def.objs && cd J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg" && J:\vcpkg_commit\vcpkg\downloads\tools\cmake-3.29.0-windows\cmake-3.29.0-windows-i386\bin\cmake.exe -E vs_link_dll --intdir=src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100220~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100220~1.0\x64\mt.exe --manifests  -- E:\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\link.exe  @CMakeFiles\aliceVision_sfm.rsp  /out:Windows-AMD64\aliceVision_sfm.dll /implib:Windows-AMD64\aliceVision_sfm.lib /pdb:Windows-AMD64\aliceVision_sfm.pdb /dll /version:3.2 /machine:x64 /nologo    /debug /INCREMENTAL  /DEF:src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir\.\exports.def && cd ."
LINK Pass 1: command "E:\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\link.exe @CMakeFiles\aliceVision_sfm.rsp /out:Windows-AMD64\aliceVision_sfm.dll /implib:Windows-AMD64\aliceVision_sfm.lib /pdb:Windows-AMD64\aliceVision_sfm.pdb /dll /version:3.2 /machine:x64 /nologo /debug /INCREMENTAL /DEF:src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir\.\exports.def /MANIFEST /MANIFESTFILE:src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir/intermediate.manifest src\aliceVision\sfm\CMakeFiles\aliceVision_sfm.dir/manifest.res" failed (exit code 1189) with the following output:
LINK : fatal error LNK1189: library limit of 65535 objects exceeded

https://learn.microsoft.com/en-us/cpp/build/reference/bigobj-increase-number-of-sections-in-dot-obj-file?view=msvc-170

@fabiencastan @simogasp Any thought?

Maybe we should replace  add_compile_options(/bigobj) with append("/bigobj" CMAKE_CXX_FLAGS)
https://github.com/alicevision/AliceVision/blob/4eb30dfa3c9054de183e335f08c21c4536cb52aa/src/CMakeLists.txt#L140
Ad done here:
https://github.com/llvm/llvm-project/blob/main/llvm/cmake/modules/HandleLLVMOptions.cmake#L655C3-L655C36

I think add_compile_options() is working fine as this is happening at linking time, right?
https://developercommunity.visualstudio.com/t/fix-msvc-65535-symbol-limit-in-lib-files-lnk1189/220174
not sure there is a solution to this other than splitting up the library?
How was it working till now?

Maybe we should replace  add_compile_options(/bigobj) with append("/bigobj" CMAKE_CXX_FLAGS) https://github.com/alicevision/AliceVision/blob/4eb30dfa3c9054de183e335f08c21c4536cb52aa/src/CMakeLists.txt#L140 As done here: https://github.com/llvm/llvm-project/blob/main/llvm/cmake/modules/HandleLLVMOptions.cmake#L655C3-L655C36

This doesn't work since add_compile_options(/bigobj) == append("/bigobj" CMAKE_CXX_FLAGS).

Could you please try using this PR :
https://github.com/alicevision/AliceVision/pull/1717
Briefly tested on msvc 2022.

Could you please try using this PR :
alicevision/AliceVision#1717
Briefly tested on msvc 2022.

Will try later.

Current: cannot find openmp on x64-windows, trying to fix this.

@simogasp It's wired that openmp_cxx is not found in Windows but other ports which configured with openmp can find it, any idea on this?

Could you please try using this PR :
alicevision/AliceVision#1717
Briefly tested on msvc 2022.

Tried with this PR changes but failed on link process:
[295/566] C:\WINDOWS\system32\cmd.exe /C "C:\WINDOWS\system32\cmd.exe /C "J:\vcpkg_commit\vcpkg\downloads\tools\cmake-3.29.0-windows\cmake-3.29.0-windows-i386\bin\cmake.exe -E __create_def J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir\.\exports.def J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir\.\exports.def.objs && cd J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg" && J:\vcpkg_commit\vcpkg\downloads\tools\cmake-3.29.0-windows\cmake-3.29.0-windows-i386\bin\cmake.exe -E vs_link_dll --intdir=src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100220~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100220~1.0\x64\mt.exe --manifests  -- E:\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\link.exe  @CMakeFiles\aliceVision_sfm_bundle.rsp  /out:Windows-AMD64\aliceVision_sfm_bundle.dll /implib:Windows-AMD64\aliceVision_sfm_bundle.lib /pdb:Windows-AMD64\aliceVision_sfm_bundle.pdb /dll /version:3.2 /machine:x64 /nologo    /debug /INCREMENTAL  /DEF:src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir\.\exports.def && cd ."
FAILED: Windows-AMD64/aliceVision_sfm_bundle.dll Windows-AMD64/aliceVision_sfm_bundle.lib
C:\WINDOWS\system32\cmd.exe /C "C:\WINDOWS\system32\cmd.exe /C "J:\vcpkg_commit\vcpkg\downloads\tools\cmake-3.29.0-windows\cmake-3.29.0-windows-i386\bin\cmake.exe -E __create_def J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir\.\exports.def J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg\src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir\.\exports.def.objs && cd J:\vcpkg_commit\vcpkg\buildtrees\alicevision\x64-windows-dbg" && J:\vcpkg_commit\vcpkg\downloads\tools\cmake-3.29.0-windows\cmake-3.29.0-windows-i386\bin\cmake.exe -E vs_link_dll --intdir=src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100220~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100220~1.0\x64\mt.exe --manifests  -- E:\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\link.exe  @CMakeFiles\aliceVision_sfm_bundle.rsp  /out:Windows-AMD64\aliceVision_sfm_bundle.dll /implib:Windows-AMD64\aliceVision_sfm_bundle.lib /pdb:Windows-AMD64\aliceVision_sfm_bundle.pdb /dll /version:3.2 /machine:x64 /nologo    /debug /INCREMENTAL  /DEF:src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir\.\exports.def && cd ."
LINK Pass 1: command "E:\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\link.exe @CMakeFiles\aliceVision_sfm_bundle.rsp /out:Windows-AMD64\aliceVision_sfm_bundle.dll /implib:Windows-AMD64\aliceVision_sfm_bundle.lib /pdb:Windows-AMD64\aliceVision_sfm_bundle.pdb /dll /version:3.2 /machine:x64 /nologo /debug /INCREMENTAL /DEF:src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir\.\exports.def /MANIFEST /MANIFESTFILE:src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir/intermediate.manifest src\aliceVision\sfm\CMakeFiles\aliceVision_sfm_bundle.dir/manifest.res" failed (exit code 1120) with the following output:
   Creating library Windows-AMD64\aliceVision_sfm_bundle.lib and object Windows-AMD64\aliceVision_sfm_bundle.exp
BundleAdjustmentCeres.cpp.obj : error LNK2019: unresolved external symbol "public: class std::map<int,unsigned __int64,struct std::less<int>,class std::allocator<struct std::pair<int const ,unsigned __int64> > > __cdecl aliceVision::sfm::LocalBundleAdjustmentGraph::getDistancesHistogram(void)const " (?getDistancesHistogram@LocalBundleAdjustmentGraph@sfm@aliceVision@@QEBA?AV?$map@H_KU?$less@H@std@@V?$allocator@U?$pair@$$CBH_K@std@@@2@@std@@XZ) referenced in function "public: virtual bool __cdecl aliceVision::sfm::BundleAdjustmentCeres::adjust(class aliceVision::sfmData::SfMData &,enum aliceVision::sfm::BundleAdjustment::ERefineOptions)" (?adjust@BundleAdjustmentCeres@sfm@aliceVision@@UEAA_NAEAVSfMData@sfmData@3@W4ERefineOptions@BundleAdjustment@23@@Z)
BundleAdjustmentSymbolicCeres.cpp.obj : error LNK2001: unresolved external symbol "public: class std::map<int,unsigned __int64,struct std::less<int>,class std::allocator<struct std::pair<int const ,unsigned __int64> > > __cdecl aliceVision::sfm::LocalBundleAdjustmentGraph::getDistancesHistogram(void)const " (?getDistancesHistogram@LocalBundleAdjustmentGraph@sfm@aliceVision@@QEBA?AV?$map@H_KU?$less@H@std@@V?$allocator@U?$pair@$$CBH_K@std@@@2@@std@@XZ)

Windows-AMD64\aliceVision_sfm_bundle.dll : fatal error LNK1120: 1 unresolved externals

Edit: I tried to copy find_package(OpenMP) to top of root/CMakeLists.txt and openmp_cxx could be found:

To the top? Before project(), languages and the corresponding cmake variables are not initialized. This doesn't deliver valid information.
CMakeFiles/CMakeConfigureLog.yaml should be a good report of cmake configure checks. And there is --trace-expand.

Yeah, the thing is that we have 2 project(AliceVision...), one at the root that allows the user to also build the dependencies and the "real" project to build the library in the src directory like project(AliceVisionSrc...). This is not ideal at all (to say the least), we should change it. But that does not explain the behaviour of findOpenMP.

I don't complain about a second project.
I refer to "to top of root/CMakeLists.txt" which is before all project.

Edit: I tried to copy find_package(OpenMP) to top of root/CMakeLists.txt and openmp_cxx could be found:

To the top? Before project(), languages and the corresponding cmake variables are not initialized. This doesn't deliver valid information.
CMakeFiles/CMakeConfigureLog.yaml should be a good report of cmake configure checks. And there is --trace-expand.

I mean add it after all option.

I changed this to draft because the build is broken; please feel free to mark 'Ready for review' when it's working and you're happy with it

@fabiencastan @simogasp Any help in this issue?


IGNITE-8879 Blinking baseline node sometimes unable to connect to clu…

…ster

The ticket is resolved, closing PR.
Please close PRs for your resolved tickets and other non-needed PRs.
Alternatively, ask a committer

to use GitHub UI (committer  can associate accounts here: https://gitbox.apache.org/setup/ )
or /scripts/apply_pull_request.sh from Apache Ignite source.
or mention in commit message 'Fixes #(a number of PR)'.

These methods will automatically close PR.
Feel free to reopen this PR if it is actual.


configdrive: make fewer mountpoints on hosts

In the current implementation, for any config drive on a VM it creates a mount point specific to the parent directory i-x-y-VM on a host. This means, for each config drive enabled VM there will be a separate mount point per VM per host. The legacy code that points ISOs mounts based on the isopath's parent directory, to workaround this the config drive layout has been changed to: <sr or mount point>/configdrive/i-x-y-VM.iso.
This ensures that fewer mount points are made on hosts for either primary storagepools or secondary storagepools.
Types of changes

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

GitHub Issue/PRs

Screenshots (if appropriate):
How Has This Been Tested?
Created a L2 config drive enabled network, then deployed a VM to see config drive created and attached and then stopped VM to see config drive iso removed. Also confirmed that only one mount point is made specific to the configdrive directory. Performed the same test again with the config drive feature enabled on primary storage.
Checklist:

[x] I have read the CONTRIBUTING document.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
Testing
[ ] I have added tests to cover my changes.
[x] All relevant new and existing integration tests have passed.
 I'll keep you posted as I make progress.

@DaanHoogland <IP_ADDRESS> users can be advised in the release notes to simply stop/remove the iso files from the 'ConfigDrive' folder because as part of the changes/refactorings we also renamed the directory that hosts the iso files to configdrive. /cc @PaulAngus

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-2133

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-2136

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

LGTM based on manual testing:
Created multiple VMs with config drives (on primary storage)

All VMs start without issue, nad have config drive attached
Only one mountpoint per primary storage pool created for configdrives
[root@pr2716-t2772-kvm-centos7-kvm2 ~]# df
Filesystem                                                                                1K-blocks      Used  Available Use% Mounted on
/dev/mapper/centos-root                                                                         20445184   1730080   18715104   9% /
devtmpfs                                                                                4068428         0    4068428   0% /dev
tmpfs                                                                                4079500         0    4079500   0% /dev/shm
tmpfs                                                                                4079500      9128    4070372   1% /run
tmpfs                                                                                4079500         0    4079500   0% /sys/fs/cgroup
/dev/sda1                                                                                508588    139220     369368  28% /boot
tmpfs                                                                                815904         0     815904   0% /run/user/0
<IP_ADDRESS>:/acs/primary/pr2716-t2772-kvm-centos7/pr2716-t2772-kvm-centos7-kvm-pri1<PHONE_NUMBER> 589751296<PHONE_NUMBER>   9% /mnt/2438746d-d2b2-3f87-a2ae-a84546b2be3d
<IP_ADDRESS>:/acs/primary/pr2716-t2772-kvm-centos7/pr2716-t2772-kvm-centos7-kvm-pri2<PHONE_NUMBER> 589751296<PHONE_NUMBER>   9% /mnt/2ec3068e-c545-3f11-b914-3b31f792ed06
<IP_ADDRESS>:/acs/primary/pr2716-t2772-kvm-centos7/pr2716-t2772-kvm-centos7-kvm-pri1/configdrive<PHONE_NUMBER> 589751296<PHONE_NUMBER>   9% /mnt/247ea0b8-4647-34cc-9464-f93d81bd4d80
<IP_ADDRESS>:/acs/primary/pr2716-t2772-kvm-centos7/pr2716-t2772-kvm-centos7-kvm-pri2/configdrive<PHONE_NUMBER> 589751296<PHONE_NUMBER>   9% /mnt/ff06a485-bb78-3faa-861b-8490605aea3a
[root@pr2716-t2772-kvm-centos7-kvm2 ~]#

Trillian test result (tid-2770)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 20755 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr2716-t2770-kvm-centos7.zip
Intermitten failure detected: /marvin/tests/smoke/test_deploy_virtio_scsi_vm.py
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_vm_life_cycle.py
Smoke tests completed. 65 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

ContextSuite context=TestDeployVirtioSCSIVM>:setup
Error
0.00
test_deploy_virtio_scsi_vm.py

test_03_vpc_privategw_restart_vpc_cleanup
Error
115.11
test_privategw_acl.py

@PaulAngus did you also test the case of (KVM) VM migration with config drive?

Test LGTM, consider both Paul and Daan's lgtms I'll merge this.
@DaanHoogland you're right about manual gc, we should put something in the release notes since <IP_ADDRESS> that users should cleanup/delete the 'ConfigDrive' folder on secondary storage pool(s). Given the new introduction of the feature in <IP_ADDRESS>, most users don't have to do the manual GC.


Add workflow trigger filters

Summary

Add workflow trigger filters so the Code QL and test workflows only run when Go files or CHANGELOG.md change. The latter indicates we are cutting a new releases and all CI checks should be run in this case.
Release Note

Documentation

i think is better to use the action dorny/paths-filter to filter the trigger because it will skip the job and then in the PR status check will mark as skipped and not as waiting for required tests.
example, then in the following steps we use the if to skip or run it wdyt?
 - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: |
            terraform:
              - 'tests/**'

Sorry for the delay in response. This sounds good. I like the idea of seeing the check as skipped instead of waiting for required tests.

Unfortunately the Analyze (go) check still appears as expected because it is a step created from a matrix. I tried a few different things to get this to appear at skipped. All other checks that weren't run appear as skipped.


Unable to manually call Layout in Vue 2.0

Hi there! I really appreciate this library. Thanks for your work on it.
I'm afraid I'm missing one piece, though, which is how to call the built-in "layout" method manually. What I want is to manually invoke layout from a separate function call.
I have several functioning Vue.Isotope objects on the page, and am able to interact with them in other ways. I just can't figure out how to use the Methods described in the Readme. If my Vue object is called app, shouldn't app.layout('isotopeID') work? Or is there some way to refer to a specific Vue.Isotope object that I've missed?
I feel like I'm missing something pretty basic, but nothing I've tried has worked. Any help would be greatly appreciated!

Take a look at example in the example folder of the repo: index.html.
You can use ref for child component:
 <isotope ref="cpt" id="root_isotope" class="isoDefault" :options='getOptions()' :list="list" @filter="filterOption=arguments[0]" @sort="sortOption=arguments[0]">

        {{element.name}}

        {{element.id}}

</isotope>

And then use the built-in ``:$refs``` using the corresponding name:
<button @click="$refs.cpt.shuffle()">Shuffle</button>

This example use shuffle but it could be layout of course..

Thank you. Here's what I got to work:
My site has containers that change widths. The Isotopes were inside these containers. Sometimes, the Isotopes would layout before the width of the container had finished animating, which left the isotopes stacked on top of each other.
This may not be the most performant solution, but I attached these calls to the Vue2 "update" event, in the Vue declaration. My Vue vm is called "app".
updated: function() {     console.log('************** vue updated ****');     app.$refs.mainiso.layout('fitRows');   },
This calls the layout method each time the Vue model is updated. Since the Vue model really only updates when something happens to the Isotopes or one of these containers changes size, this seems to work for me.
Thanks again!


Add bind-dynamic to dnsmasq conf

We should enable the bind-dynamic option to allow our DHCP server to co-exist with other DHCP services - such as one for a libvirt network.
Without this the service will fail to start if there is a livirt network with DHCP enabled.
As a pull request owner and reviewers, I checked that:

[ ] Appropriate testing is done and actually running
[ ] Appropriate documentation exists and/or is up-to-date:

[ ] README in the role
[ ] Content of the docs/source is reflecting the changes

@hjensas heya! I'd rather prefer if you could have a look at #1741 and collaborate with @rebtoor to improve that other PR if you don't mind? Thanks!

Closing - this is addressed in https://github.com/openstack-k8s-operators/ci-framework/pull/1741


build(model-server): raise timeout for Ignite test

IgniteStoreClientParallelTransactionsTest kept failing in CI with a timeout.
See https://github.com/modelix/modelix.core/actions/runs/9447363808/job/26021069325?pr=800#step:6:3371
To be verified by reviewers

[ ] Relevant public API members have been documented
[ ] Documentation related to this PR is complete

[ ] Boundary conditions are documented
[ ] Exceptions are documented
[ ] Nullability is documented if used

[ ] Touched existing code has been extended with documentation if missing
[ ] Code is readable
[ ] New features and fixed bugs are covered by tests

:tada: This PR is included in version 8.1.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


GHA: pre-release + release actions

Add pre-release.yml and release.yml (superseding the old build.yml)

creates a tag+release latest for each merge on main. Attached is a jar with the latest successful build; e.g. see https://github.com/evacchi/drools-ansible-rulebook-integration/releases/tag/latest
creates a release for each tag pushed to main. Attached is the jar with the build for that tag; e.g. see https://github.com/evacchi/drools-ansible-rulebook-integration/releases/tag/v1.0.0

Replaced by https://github.com/kiegroup/drools-ansible-rulebook-integration/pull/2


Consider releasing smallfile via PyPI

I'll push a few PRs, putting smallfile into shape. If we don't get it pushed to PyPi we can at least make it installable with pip.
First PR: https://github.com/distributed-system-analysis/smallfile/pull/36

See also PR #40.

Have you got a PyPi organization/project for pushing smallfile there?

Good question.  I'll take a look into this.


Squeeze model outputs in model rather than trainer eval

Closes #310

Codecov Report
Patch coverage: 50.00% and project coverage change: +0.02 :tada:

Comparison is base (3aa0b2b) 70.43% compared to head (65a8d81) 70.46%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #315      +/-   ##
==========================================
+ Coverage   70.43%   70.46%   +0.02%
==========================================
  Files          43       43
  Lines        2425     2424       -1
==========================================
  Hits         1708     1708
+ Misses        717      716       -1

Impacted Files
Coverage Δ

src/gnn_tracking/models/edge_classifier.py
82.05% <ø> (ø)

src/gnn_tracking/training/tcn_trainer.py
85.01% <ø> (+0.31%)
:arrow_up:

...gnn_tracking/models/track_condensation_networks.py
74.80% <50.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


gem installation fails due to -Werror=calloc-transposed-args

Hello!
Building the prism gem at v0.24.0 fails on Fedora rawhide, where I have cc (GCC) 14.0.1 20240316 (Red Hat 14.0.1-0) —
$ gem install prism
Building native extensions. This could take a while...
ERROR:  Error installing prism:
	ERROR: Failed to build gem native extension.

    current directory: /home/jashank/.gem/ruby/3.3.0/gems/prism-0.24.0/ext/prism
/usr/bin/ruby -I/usr/share/rubygems extconf.rb
checking for prism.h in /home/jashank/.gem/ruby/3.3.0/gems/prism-0.24.0/include... yes
checking for prism/extension.h in /home/jashank/.gem/ruby/3.3.0/gems/prism-0.24.0/ext... yes
checking for whether -fvisibility=hidden is accepted as CFLAGS... yes
compiling build/static/regexp.o
compiling build/static/util/pm_char.o
compiling build/static/util/pm_list.o
compiling build/static/util/pm_strncasecmp.o
compiling build/static/util/pm_memchr.o
compiling build/static/util/pm_buffer.o
compiling build/static/util/pm_string_list.o
compiling build/static/util/pm_newline_list.o
compiling build/static/util/pm_state_stack.o
compiling build/static/util/pm_strpbrk.o
compiling build/static/util/pm_constant_pool.o
compiling build/static/util/pm_string.o
compiling build/static/diagnostic.o
src/diagnostic.c: In function ‘pm_diagnostic_list_append’:
src/diagnostic.c:328:69: error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
  328 |     pm_diagnostic_t *diagnostic = (pm_diagnostic_t *) calloc(sizeof(pm_diagnostic_t), 1);
      |                                                                     ^~~~~~~~~~~~~~~
src/diagnostic.c:328:69: note: earlier argument should specify number of elements, later size of each element
src/diagnostic.c: In function ‘pm_diagnostic_list_append_format’:
src/diagnostic.c:359:69: error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
  359 |     pm_diagnostic_t *diagnostic = (pm_diagnostic_t *) calloc(sizeof(pm_diagnostic_t), 1);
      |                                                                     ^~~~~~~~~~~~~~~
src/diagnostic.c:359:69: note: earlier argument should specify number of elements, later size of each element
cc1: all warnings being treated as errors
make: *** [Makefile:54: build/static/diagnostic.o] Error 1
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include=${opt-dir}/include
	--without-opt-include
	--with-opt-lib=${opt-dir}/lib64
	--without-opt-lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/usr/bin/$(RUBY_BASE_NAME)
	--enable-debug-mode-build
	--disable-debug-mode-build
extconf.rb:41:in `system': Command failed with exit 2: make (RuntimeError)
	from extconf.rb:41:in `block in make'
	from extconf.rb:40:in `chdir'
	from extconf.rb:40:in `make'
	from extconf.rb:92:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /home/jashank/.gem/ruby/3.3.0/extensions/x86_64-linux/3.3.0/prism-0.24.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/jashank/.gem/ruby/3.3.0/gems/prism-0.24.0 for inspection.
Results logged to /home/jashank/.gem/ruby/3.3.0/extensions/x86_64-linux/3.3.0/prism-0.24.0/gem_make.out

A similar issue also exists in src/prism.c, if I attempt to build from the repository source (at 02d93793da61ca099694a5dd427bbffa01d29d24):
compiling build/static/prism.o
src/prism.c: In function ‘parser_lex_magic_comment’:
src/prism.c:6776:67: error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
 6776 |         if ((magic_comment = (pm_magic_comment_t *) calloc(sizeof(pm_magic_comment_t), 1)) != NULL) {
      |                                                                   ^~~~~~~~~~~~~~~~~~
src/prism.c:6776:67: note: earlier argument should specify number of elements, later size of each element
src/prism.c: In function ‘parser_comment’:
src/prism.c:8208:60: error: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
 8208 |     pm_comment_t *comment = (pm_comment_t *) calloc(sizeof(pm_comment_t), 1);
      |                                                            ^~~~~~~~~~~~
src/prism.c:8208:60: note: earlier argument should specify number of elements, later size of each element
cc1: all warnings being treated as errors
make: *** [Makefile:54: build/static/prism.o] Error 1

Thanks for the report, I've opened a PR for this. I assume you can get this working with -Wno-calloc-transposed-args, or you can wait for the PR to merge.


Fix multi block argument and add some unit tests

Multi block commands were not working due to a conflict in clap settings which caused commands like this to fail with a parser error:
cryo txs --blocks 16000000 16000001 16000002

The allow_hyphen_values conflicted with the multiple arguments parsing for block values.
https://github.com/paradigmxyz/cryo/blob/5c060155a5b85ae3db5e3cebe269323d180771d8/crates/cli/src/args.rs#L17
This PR adds a value terminator which is required to end the block list
cryo txs --blocks 16000000 16000001 16000002;

Also added some unit tests while i was looking around

looks like formatter is failing but not sure how to fix locally, running cargo fmt in root directory

pr looks good
the allow_hyphen_values conflict with num_args is unfortunate. hyphen args is necessary for using things like --blocks -1000:latest which is a fairly important use case. but needing to use multiple blocks is another important use case
the semicolon syntax is not the end of the world but it's a bit jarring and it will be inconsistent with the usage of cryo's other multi-arg options
I think in a more perfect world the parsing of --blocks would be conditional. something like "if there are multiple args, make it allow_hyphen_values=true, but if there's just a single arg, make it allow_hyphen_values=false". not sure if there's a reasonable way to implement this in clap tho
some options here in order from easiest to hardest

--blocks 16000000 16000001 16000002;
--blocks "16000000 16000001 16000002"
do a multistage parse, try to parse with allow_hyphen_values=true num_args=1, if that fails, try with allow_hyphen_values=false num_args=1..
implement some custom clap args thing

I'm thinking that option 2 would be best because it is most consistent with other cli tools and with cryo's other multi-arg options

to pass format checks need to use cargo +nightly fmt. this should be added to the README...

i like option 2 as well, should just involve a minor change to arg parsing, will try it out

ok yea try it out. I think that would be the best short term solution
longer term we can explore more complex parsing options for making it so the quotations are optional

Converted to draft while I look into the alternative methods to the terminator

awesome stuff


C++ constructors have too many priveleges (PROTECTED MODE)

C++ CONSTRUCTORS HAVE TOO MANY PRIVILEGES (PROTECTED MODE)
When a C++ ELF module is loaded, its C++ constructors are called via sched/task_starthook.c logic.  This logic runs in protected mode.  The is a security hole because the user code runs with kernel-privileges when the constructor executes.  Further, I suspect that the constructors also run with interrupts disabled.  That is just wrong.
Destructors likely have the opposite problem.  The probably try to execute some kernel logic in user mode?  Obviously this needs to be investigated further.
Related to Issue #1263

close, already fix.