Add CLI command to delete a workload cluster

User story

As a user I want to simply delete a workload cluster and all resources related to it, via a CLI.

Details
Deleting a cluster is not as straightforward as deleting a Cluster CR, and it varies between product generations and potentially also between providers.
The goal here is to provide one CLI command like kubectl gs delete cluster NAME --namespace NAMESPACE which handles all the internal differentiation.
Tasks

[ ] Spec (Rainbow)

@calvix explained cluster deletion for CAPA like this:
# create resource manifests
kubectl gs template cluster --provider=capa --organization giantswarm --name=vac01 > ./cluster-vac01.yaml

# create cluster
kubectl apply -f ./cluster-vac01.yaml

# delete cluster
kubectl delete -f ./cluster-vac01.yaml

The kubectl gs template cluster for CAPI clusters yields four resource manifests: 2 x App, 2 x ConfigMap. To delete the cluster, all four resources have to be deleted.
Based on this thread this is the same in all CAPI providers.

Spec
For your feedback
General description
Command to delete workload cluster resources on a management cluster.
General syntax
kubectl gs delete cluster NAME [FLAGS]

Flags

--organization: The organization owning the cluster. Can be specified instead of --namespace to indicate the namespace in which resources should be deleted.
--namespace: The namespace in which resources should be deleted (Default: default).
--keep-apps: If set true, App resources for this cluster will not be deleted. Does not affect the cluster-app and the default-apps bundle, which will be deleted in any case. (Default: false)
--keep-app-config: If set true, ConfigMaps and Secrets belonging to App resources will not be deleted. Does not affect the ConfigMap resources for the cluster-app and the default-apps bundle, which will be deleted in any case. (Default: false)
--dry-run: If set true, a list of the resources to be deleted will be printed, but deletion will not take place.  The same as above, but using --namespace instead of --organization.
$ kubectl gs delete cluster abc12 \
  --namespace org-acme

Cluster info and confirmation prompt
If cluster and node pool resources exist for the cluster to be deleted, information will be shown and a prompt asks for confirmation:
You are about to delete this cluster from
installation gollum (region eu-westeurope-1):

Name:              abc12
Service priority:  HIGHEST
Description:       Prod cluster K8s 1.25
Created:           12 May 2022 - 5 months ago

Node pools:        2
Worker nodes:      12

Do you really want to delete this cluster? There is no undo!
If yes, please type the installation and cluster name,
separated by a slash, and hit Return.
If no, enter anything else or hit Ctrl-C.

>

TODO: Decide what to show if no cluster resource, or no node pool resource, exists for the cluster.
Behind the scenes

Based on the flags used (--namespace, --organization, --keep-*) we compile a list of resources to be deleted.
We also look up whether actual main cluster resource exists. We store the region, service priority label, cluster description from the main cluster resource if it exists.
If a cluster resource exists, we also look up whether node pools exist and store the number of worker nodes.
For the resources in the "to be deleted" list, we check get and list permissions, to ensure that the user can find all existing resources to be deleted. If permission is lacking for at least on of the resources, we exit with a specific error message that lists all missing permissions.
Then existing resources to be deleted are looked up.
For all resources to be deleted, we check whether the acting user has permission to delete. If permission is lacking for at least one of the resources, we exit with a specific error message that lists all missing permissions.
If --dry-run is true, we print a list of all resources to be deleted and exit.
If the main cluster resource exists, we show a general info block regarding the cluster.
Then we delete resources one by one and print one line for each one.

Comments from refinement in Team Rainbow

In other commands, specifically login --workload-cluster, if organization or namespace is not defined, we look up in all accessible organization namespaces. If the result is unique, we use the resulting org/namespace. We should apply the same logic here.

For now we should not offer the --organization flag here, and only offer --namespace (which is a global flag). Later we can implement the --organization flag as an alternative in all commands where it makes sense.
--keep-apps should also keep config and secrets. We remove --keep-app-config from the spec.

We improve the prompt like below:
You are about to delete this cluster:

Name:              abc12
Installation:      gollum
Region:            eu-westeurope-1
Service priority:  HIGHEST
Description:       Prod cluster K8s 1.25
Created:           12 May 2022 - 5 months ago

Node pools:        2
Worker nodes:      12

Do you really want to delete this cluster? There is no undo!
If yes, please type the installation and cluster name,
separated by a slash, and hit Return.
If no, enter anything else or hit Ctrl-C.

> gollum abc12

Error: Installation and cluster name do not match format 'gollum/abc12'.

$>

Dry-run output format should be specified
We discussed that the interactive prompt will mean that the command is not easily used in automation. If needed, the expect utility can be used to work around this. Offering a --force flag to circumvent the prompt, like gsctl delete cluster has, can be a way to form dangerous habits.

Question:

In vintage, or specifically: where a cluster namespace is used for apps and config, is there an automation in place to delete that entire namespace if a cluster is deleted?

Spec v2
For your feedback
Changes compared to Spec v1:

Removed --organization flag
Removed --keep-app-config flag. Instead --keep-apps will also mean that configmaps and secrets will not be deleted.

General description
Command to delete workload cluster resources on a management cluster. In terms of the semantics, we provide this command to express that a certain workload cluster should not exists. This means that the command does whatever required to remove resources belonging to this cluster, even if the cluster has not been created completely.
General syntax
kubectl gs delete cluster NAME [FLAGS]

Flags

--namespace: The namespace in which resources should be deleted. If not specified, all organization namespaces the user has access to will be searched for a cluster matching the given NAME.
--keep-apps: If set true, App resources for this cluster will not be deleted. Does not affect the cluster-app and the default-apps bundle, which will be deleted in any case. (Default: false)
--dry-run: If set true, a list of the resources to be deleted will be printed, but deletion will not take place. (Default: false)

Example commands
Delete cluster abc12 and find the namespace automatically:
$ kubectl gs delete cluster abc12

Delete cluster abc12, to be found in namespace org-acme:
$ kubectl gs delete cluster abc12 \
  --namespace org-acme

Show what deleting cluster abc12, to be found in namespace org-acme, would mean:
$ kubectl gs delete cluster abc12 \
  --namespace org-acme \
  --dry-run

Cluster info and confirmation prompt
If cluster and node pool resources exist for the cluster to be deleted, information will be shown and a prompt asks for confirmation:
You are about to delete this cluster from
installation gollum (region eu-westeurope-1):

Name:              abc12
Service priority:  HIGHEST
Description:       Prod cluster K8s 1.25
Created:           12 May 2022 - 5 months ago

Node pools:        2
Worker nodes:      12

Do you really want to delete this cluster? There is no undo!
If yes, please type the installation and cluster name,
separated by a slash, and hit Return.
If no, enter anything else or hit Ctrl-C.

>

TODO: Decide what to show if no cluster resource, or no node pool resource, exists for the cluster.
Dry-run output
The following resources will be deleted directly:

NAMESPACE   KIND       NAME                            API GROUP                  VERSION
org-acme    App        abc12                           application.giantswarm.io  v1alpha1
org-acme    App        abc12-default-apps              application.giantswarm.io  v1alpha1
org-acme    App        abc12-nginx-ingress-controller  application.giantswarm.io  v1alpha1
org-acme    ConfigMap  abc12-userconfig                                           v1
org-acme    ConfigMap  abc12-default-apps-userconfig                              v1

Note: This list only shows resources that will be deleted through kubectl-gs directly.
More resources (cluster, node pools) will be deleted as a consequence, if they exist.

Behind the scenes

Based on the namespace and the --keep-apps flag, we compile a list of resources to be deleted.
We also look up whether actual main cluster resource exists. We store the region, service priority label, cluster description from the main cluster resource if it exists.
If a cluster resource exists, we also look up whether node pools exist and store the number of worker nodes.
For the resources in the "to be deleted" list, we check get and list permissions, to ensure that the user can find all existing resources to be deleted. If permission is lacking for at least on of the resources, we exit with a specific error message that lists all missing permissions.
Then existing resources to be deleted are looked up.
For all resources to be deleted, we check whether the acting user has permission to delete. If permission is lacking for at least one of the resources, we exit with a specific error message that lists all missing permissions.
If --dry-run is true, we print a list of all resources to be deleted and exit.
If the main cluster resource exists, we show a general info block regarding the cluster (confirmation prompt).
Then we delete resources one by one and print one line for each one.

Special cases

The cluster specified by name cannot be found at all: This will be reported as an error with exit code > 0. We see it as an indicator that the user may have mistyped the name or namespace.

Blocked by #1599

@marians based on this PR description

All apps for a cluster not being managed by cluster-apps-operator are being deleted when cluster CR is deleted.

How the --keep-apps flag is going to work in this case?

@gusevda @marians are you okay with closing this one? Or is this still needed even with flux?

Still relevant to me


Noob help - pingpong admin @create

Hello.
I cant find a manual or anything on the pingpong admin, and im pretty new to Laravel too.
Im creating custom tables to the backend, and ive got one issue that is taking me forever.
Everything pretty much works, except creating /views/newtable/create
Undefined variable: xxxxxxxxxx (View: /home/vagrant/Sites/sitename/laravel/vendor/pingpong/admin/src/views/newtable/form.blade.php) (View: /home/vagrant/Sites/sitename/laravel/vendor/pingpong/admin/src/views/newtable/form.blade.php)
The thing is, i cant atm figure out how " $categories " is being called in articles/form.blade.php ??? ->
@if(Request::is('admin/articles/create'))

	{{ Form::label('category_id', 'Category:') }}
	{{ Form::select('category_id', >>>>    $categories      <<<<<, null, ['class' => 'form-control']) }}
	{{ $errors->first('category_id', '
:message
') }}

@else
{{ Form::hidden('type', 'page') }}
@endif

Hope it makes a little sence, and really hope i someone can helo me out,
Best regards,
Christian

Hi,
The categories variable were taken from ArticleFormComposer class which uses the technique of Laravel View Composer. You can learn about the view composer here.

Thanks alot! It seems to be where the problem gets solved, but it doesnt work for me :-S
with(compact('newcategories'));
    }
}

		{{ Form::label('category_id', 'Category:') }}
		{{ Form::select('category_id', $newcategories, null, ['class' => 'form-control']) }}
		{{ $errors->first('category_id', ':message') }}

ErrorException (E_UNKNOWN)
Undefined variable: newcategories

Its a total replica of the original, with database and everything .. Hmm, whats wrong here ?

Got it :-) !


update hencommunity.quest > teia.art links

Describe the bug
There are a lot of links to hencommunity.quest and vote.hencommunity.quest that can both point to teia.art TLD now, including references in siteMetadata

Check my pr it address all of them https://deploy-preview-69--teia-blog.netlify.app

sure enough, closed in #69


⚠ Bofrost.at has degraded performance

In b306d40, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 964 ms

Resolved: Bofrost.at performance has improved in d3ca5f7 after 7 minutes.


Code postal des communes est incorrect

Code postal des communes est incorrect

Send a PR 😊

Yes there's a mistake, The postal code is linked to the post office, not the communes ( has many post offices ),
so I think we need to drop code postal because the data isn't correct.

@n4ss1m I think each commune has only one postal code

@kossa Yes, that's right

So it's correct :)

@kossa, could you enable Discussions for this repo to facilitate community interaction? Thanks!

Done.
On Tue, Oct 29, 2024 at 11:25 AM Nassim @.***> wrote:

@kossa https://github.com/kossa, could you enable Discussions for this
repo to facilitate community interaction? Thanks!
—
Reply to this email directly, view it on GitHub
https://github.com/kossa/algerian-cities/issues/10#issuecomment-2443822578,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAI7AIAJJEZEWD365CD5ZWTZ55PBTAVCNFSM6AAAAABQZLUMA2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINBTHAZDENJXHA
.
You are receiving this because you were mentioned.Message ID:
@.***>


Support OAuth authentication

You are using HTTP basic authentication. That should work, but it is deprecated and may be removed in a future version of oVirt. I'd suggest you consider implementing OAuth authentication. Not an urgent thing, as it would make no difference in the contract that users of the SDK will see.

+1

@Shashwatsh please see PR #83 .


Exception gets thrown when zooming in and out of the canvas

Here is what happens when I try zooming in and out. I'll prepare the repo in case you want to check it out.
https://github.com/Blazor-Diagrams/Blazor.Diagrams/assets/6266635/4b066a22-b33e-493d-a563-f25f33ba975c

Hey, what version are you using?
And please try disabling Virtualization.

Repo: https://github.com/mrakgr/helix/tree/zoom-error
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">

    <PropertyGroup>
        <TargetFramework>net7.0</TargetFramework>
        <Nullable>enable</Nullable>
        <ImplicitUsings>enable</ImplicitUsings>
        <LangVersion>11</LangVersion>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="7.0.5" />
        <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="7.0.5" PrivateAssets="all" />
        <PackageReference Include="MudBlazor" Version="6.2.5" />
        <PackageReference Include="Z.Blazor.Diagrams" Version="2.1.6" />
    </ItemGroup>

</Project>

The dotnet SDK version I am using is 7.0.302. I'll try disabling virtualization as soon as I figure what that is.

I am confused, is virtualization something that the MudBlazor components are using under the hood? How do I turn that off?

Yeah, that helped a lot. I can't get it to trigger anymore.

@mrakgr, I have been using Blazor Diagrams with Mudblazor for awhile now and have seen the same issue. I recommend changing to the 3.0 beta releases. It plays much nicer with the MudBlazor component library.


[docs] Where to put 3rd party addons?

I've got some CodeMirror addons that might be useful to some people:

load-share - attach a ShareJS context to a CodeMirror editor
soft-nav - use "soft" tabs for navigation
detect-indent - detect indention
detect-mode - detect mode based on file extension

Is there a good place to put these? Originally, I wanted to get them merged in, but they all require external dependencies.

List them on our wiki


Live reload on master not working (500 error)

Hey when I've changed in my package.json ember-cli-live-reload from 1.4.1 to master branch of this repo then after npm install and ember s live reload script errors:

And when I open this 500 error file in browser I can see:

Working package.json:
  "devDependencies": {
    "broccoli-asset-rev": "^2.4.2",
    "ember-ajax": "^2.0.1",
    "ember-cli": "2.8.0-beta.2",
    "ember-cli-app-version": "^1.0.0",
    "ember-cli-babel": "^5.1.6",
    "ember-cli-dependency-checker": "^1.2.0",
    "ember-cli-fastboot": "0.6.2",
    "ember-cli-font-awesome": "0.1.1",
    "ember-cli-foundation-sass": "1.2.0",
    "ember-cli-htmlbars": "^1.0.3",
    "ember-cli-htmlbars-inline-precompile": "^0.3.1",
    "ember-cli-inject-live-reload": "1.4.1",
    "ember-cli-qunit": "^2.1.0",
    "ember-cli-release": "0.2.8",
    "ember-cli-sass": "^5.5.1",
    "ember-cli-sri": "^2.1.0",
    "ember-cli-uglify": "^1.2.0",
    "ember-computed-decorators": "0.2.2",
    "ember-data": "2.8.0-beta.1",
    "ember-export-application-global": "^1.0.5",
    "ember-load-initializers": "^0.5.1",
    "ember-network": "0.3.0",
    "ember-resolver": "^2.0.3",
    "loader.js": "^4.0.1",
    "ember-cli-test-loader": "^1.1.0",
    "ember-cli-jshint": "^1.0.0"
  }

Package.json with master and not working:
  "devDependencies": {
    "broccoli-asset-rev": "^2.4.2",
    "ember-ajax": "^2.0.1",
    "ember-cli": "2.8.0-beta.2",
    "ember-cli-app-version": "^1.0.0",
    "ember-cli-babel": "^5.1.6",
    "ember-cli-dependency-checker": "^1.2.0",
    "ember-cli-fastboot": "0.6.2",
    "ember-cli-font-awesome": "0.1.1",
    "ember-cli-foundation-sass": "1.2.0",
    "ember-cli-htmlbars": "^1.0.3",
    "ember-cli-htmlbars-inline-precompile": "^0.3.1",
    "ember-cli-inject-live-reload": "rwjblue/ember-cli-inject-live-reload#master",
    "ember-cli-qunit": "^2.1.0",
    "ember-cli-release": "0.2.8",
    "ember-cli-sass": "^5.5.1",
    "ember-cli-sri": "^2.1.0",
    "ember-cli-uglify": "^1.2.0",
    "ember-computed-decorators": "0.2.2",
    "ember-data": "2.8.0-beta.1",
    "ember-export-application-global": "^1.0.5",
    "ember-load-initializers": "^0.5.1",
    "ember-network": "0.3.0",
    "ember-resolver": "^2.0.3",
    "loader.js": "^4.0.1",
    "ember-cli-test-loader": "^1.1.0",
    "ember-cli-jshint": "^1.0.0"
  }

Also if I fix that error by using:
if (liveReloadOptions && liveReloadOptions.snipver === undefined) {
      liveReloadOptions.snipver = 1;
    }

I get another error:

By the way, I started working on creating tests etc. but seems to me like master is fundamentally broken or I'm missing something very important... but seems like there is a problem with:
"window.LiveReloadOptions = " + JSON.stringify(liveReloadOptions) + ";\n " +

Because when:
var liveReloadOptions = options.liveReloadOptions;

is undefined then script will still create window.LiveReloadOptions which will be equal to undefined and then livereload.js script checks first:
if ('LiveReloadOptions' in window) {
  // parse window.LiveReloadOptions but obviously it's undefined here so we will get ws://null:xxx
} else {
  // find script with livereload.js by regex in scripts and get host from there
}

So, please check if master is working because to me it looks like it's wrong. @rwjblue

So I was able to fix all the problems by also replacing line in dynamicScript:
"window.LiveReloadOptions = " + JSON.stringify(liveReloadOptions) + ";\n " +

with:
(liveReloadOptions ? "window.LiveReloadOptions = " + JSON.stringify(liveReloadOptions) + ";\n " : '') +

I can submit pull request with some tests if this solutions is cool.

https://github.com/ember-cli/ember-cli-inject-live-reload/pull/25#discussion_r96803298 may be the issue. Likely just needs an extra guard or default value.


cmd/link: -X fails with periods

what used to work in go 1.7.3 no longer works in go 1.8
What version of Go are you using (go version)?
go version go1.8.3 linux/amd64
What operating system and processor architecture are you using (go env)?
$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/sig/gopath"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build896116486=/tmp/go-build"
CXX="g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
What did you do?
run test_golink.sh (see below for script)
What did you expect to see?
"Version = 1.0.0"
What did you see instead?
"Version = dev"
test_golink.sh script
$ cat test_golink.sh
rm -rf gopath
mkdir gopath
cd gopath
export GOPATH=$HOME/gopath
mkdir -p src/mypackage.git/hello
cat << EOF > src/mypackage.git/config.go
package mypackage
var Version = "dev"
EOF
cat << EOF > src/mypackage.git/hello/main.go
package main
import (
"fmt"
"mypackage.git"
)
func main() {
fmt.Printf("version = %s\n", mypackage.Version)
}
EOF
go clean -i mypackage.git
go install -ldflags "-X mypackage%2egit.Version=1.0.0" mypackage.git mypackage.git/hello
go install mypackage.git/hello
./bin/hello

What is the output of go tool nm bin/hello | grep Version ?

Replace "%2e" with ".", then your problem will be solved.

$ go tool nm bin/hello | grep Version
  4fa4e0 D mypackage%2egit.Version
  4b0a48 R mypackage%2egit.Version.str
  4fa510 D runtime.buildVersion
  516ba8 D runtime.processorVersionInfo

It seems like replacing %2e with . works but I dont understand why. I can see how it works logically but am not sure if this is expected behavior given the ambiguity.

This changed in 1.8 because of #16710.  The new approach seems better, so I don't see any reason to revert to the old one.  This should probably have been in the 1.8 release notes, but I guess we forgot.
Closing because I don't think there is anything to do.


The "request user location" button does not work on iOS (works fine on macOS and Android)

Safari for iOS & iPadOS disables the Geolocation API out of the box. The user needs to enable it manually before proceeding.


Remove Carthage Search Parts from Xcodeproject

On building the iOS App, the linker issues a "file not found" warning as it can't find the Carthage files.
Since it seems like Carthage isn't used anymore, I suggest to remove the Carthage Path from the Framework Search Paths in:
ARPen ->Build Settings -> Search Paths -> Framework Search Paths

Fixed—thanks!


Activity return NewCancel error keeps getting retried

If activity (or local activity) code return NewCanceledError(detail) with details, workflow will keep retry this activity instead of keep moving.
Possible bug on workflowexecution retryLocalActivity

This will be include in release v0.10.1


WSL processes show up with a capital starting letter in Windows task manager

Processes run under WSL show up with a capital starting letter in the "Processes" tab in the Windows task manager - so for example "Cmake" instead of "cmake", but it applies to all processes I've seen. See the screenshot.

Your Windows build number: Microsoft Windows [Version 10.0.16299.402]

What you're doing and what's happening:

What's wrong / what should be happening instead: Task manager should show the correct process name, which is lowercase (e.g. cmake)

Okay, cool!
Is there any way to upgrade WSL, or is the only way to switch to Windows Insider builds (or wait until the next "consumer update" is released)?

Only the latter as far as I know.

That would be too bad, thank you @ax0!

I can confirm that this is fixed in Version 10.0.17134.1 (1803) that officially came out today.


fix: use prettier for formatting markdown

What does this PR do?
Use prettier for markdown, instead of biome.
Partially reverts 83c9bccd8556a9e13f5cf3eb6575fcafdc152a22
Screenshot / video of UI

What issues does this PR fix or reference?

#10482

How to test this PR?
pnpm format:check

[x] Tests are covering the bug fix or the new feature

Checking formatting...
[warn] website/blog/2024-10-05-kubernetes-blog.md
[warn] website/blog/2024-10-29-creating-an-extension.md
[warn] website/blog/2024-10-31-release-1.14.md
[warn] website/blog/2024-11-14-podman-desktop-cncf.md
[warn] website/blog/2024-11-26-ai-lab-first-app.md
[warn] website/blog/2024-12-12-release-1.15.md
[warn] website/blog/2024-12-16-cncf-projects.md
[warn] website/docs/extensions/index.md
[warn] website/docs/extensions/install/using-extension.md
[warn] website/docs/installation/macos-install.md
[warn] website/docs/installation/windows-install/index.md
[warn] website/docs/kind/installing-extension.md
[warn] website/docs/kubernetes/applying-a-yaml-manifest.md
[warn] website/docs/kubernetes/configuring-editing-kube-object.md
[warn] website/docs/kubernetes/deploying-a-pod-to-kubernetes.md
[warn] website/docs/kubernetes/port-forwarding.md
[warn] website/docs/migrating-from-docker/index.md
[warn] website/docs/migrating-from-docker/managing-docker-compatibility.md
[warn] website/docs/migrating-from-docker/using-the-docker_host-environment-variable.md
[warn] website/docs/minikube/installing-extension.md
[warn] website/docs/podman/creating-a-podman-machine.md
[warn] website/docs/troubleshooting/access-logs.md
[warn] website/docs/troubleshooting/troubleshooting-extension-issues.md
[warn] website/docs/troubleshooting/troubleshooting-podman-on-macos.md
[warn] website/docs/troubleshooting/troubleshooting-podman-on-windows.md
[warn] website/docs/troubleshooting/troubleshooting-podman.md
[warn] website/tutorial/deploying-a-kubernetes-application.md
[warn] Code style issues found in 27 files. Run Prettier with --write to fix.

FYI there are conflicts (website/docs/migrating-from-docker/managing-docker-compatibility.md)

FYI the website build is failing

FYI the website build is failing

Some kind of significant whitespace..
The actual website build (cd website && pnpm build) is also broken, since it is missing the "storybook" requirement


DRILL-5937: ExecConstants: changed comment, timeout default is 30 sec.

Changed comment to reflect default prepared statement timeout as 30 sec. (same as hive) .
10 seconds timeout is also failing in some cases in our mapr environment.

@vrozov @vdiravka Could you please review this?

@pushpendra-jaiswal-90 please mind Drill convention about naming commit message.
Example: https://github.com/apache/drill/commits/master

@arina-ielchiieva I've done the required changes.

@pushpendra-jaiswal-90 two more points:

In drill-module.conf default for prepare.statement.create_timeout_ms is set 10000 ms, which does not correspond to the value you have indicated. Please make sure both values are in sync.
Please do not do merge, it's not convenient when we are cherry-picking range of commits. But for your case I suggest you do squash the commits into one.

@arina-ielchiieva Can you please tell me which drill-module.conf has it ?

@pushpendra-jaiswal-90 try searching for the occurrence of prepare.statement.create_timeout_ms in the project using your IDE :)

@arina-ielchiieva I have done the changes. Could you please review?

@arina-ielchiieva I have removed comment.

+1

@vrozov  @vdiravka Could you please review this?

@pushpendra-jaiswal-90
You already have +1 from Drill committer :)
Your changes will be merged to master branch soon.

@pushpendra-jaiswal-90 Please squash commits to a single commit.


Update to nixpkgs 24.05

About the PR
Updates from nixpkgs 23.11 to 24.05
Why / Balance
With the release of 24.05, 23.11 is now deprecated, and we should move to the new release as soon as possible.
Technical details
This update only affects nix users, and has no impact on normal building of the project.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
N/A
Changelog
N/A

gradient sighting


Wrong Version number

Hi, I tried to deploy that in AKS but in updating step (run step-2-update-voting-analytics-to-1.1.yaml ) shows an error like,
upstream connect error or disconnect/reset before headers. reset reason: connection failure, transport failure reason: TLS error: 268435703:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.
Where I am missing now??

I tried old one thanks

I tried old one thanks


Web server config examples

Considering that we (internal contributors) are running femgoose alongside a webserver, proxying requests to the femgoose node app (server.js), it would make sense to add default web server config files.
Requirements:

Needs to proxy requests from HTTP/HTTPS (80/443) to the default port value in the config.NODE_ENV.js file.
Needs to handle proxying web socket traffic, this one has a prerequisit of me having the websocket module plumbed in, also an example project to test the different web servers, if we so choose to give an example outside of NGINX.

Web Servers:

NGINX
Apache (Optional lol)

Did someone say, FemgooseVM? lol


Fixes #1270: install all python prerequisites for RPM build

Currently, sandboxed RPM build fails when pip install tries to fetch wheel from pip.
This change installs wheel beforehand, so it is detected and install is skipped.

This failed only on a known unrelated issue

https://github.com/skupperproject/skupper-router/issues/1335

and the testing-farm rpm builds have progressed past the flake8-is-missing failure. So I think this is a good progress.


Pinging via lxc exec fails when running from a bash script

Issue description
I want to script the creation of images. However when I run commands that access the network like apt-get I get and Unknown host error.
Steps to reproduce
Create the following script build.sh
#!/bin/bash

lxc launch ubuntu:16.04 build

lxc exec build -- ping ubuntu.com

Output
$ ./build.sh
Creating build
Starting build
ping: unknown host ubuntu.com

However when I run these commands separately and not via a shell script pinging does work.
frank@franktop:~/src/sandbox-lxd$ lxc launch ubuntu:16.04 build
Creating build
Starting build
frank@franktop:~/src/sandbox-lxd$ lxc exec build -- ping ubuntu.com
PING ubuntu.com (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from ovinnik.canonical.com (<IP_ADDRESS>): icmp_seq=1 ttl=51 time=16.2 ms
64 bytes from ovinnik.canonical.com (<IP_ADDRESS>): icmp_seq=2 ttl=51 time=15.2 ms
^C
--- ubuntu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 15.212/15.737/16.263/0.540 ms

System Information

Distribution: Ubuntu
Distribution version: 16.04

apiextensions:
- storage_zfs_remove_snapshots
- container_host_shutdown_timeout
- container_syscall_filtering
- auth_pki
- container_last_used_at
- etag
- patch
- usb_devices
- https_allowed_credentials
- image_compression_algorithm
- directory_manipulation
- container_cpu_time
- storage_zfs_use_refquota
- storage_lvm_mount_options
- network
- profile_usedby
- container_push
apistatus: stable
apiversion: "1.0"
auth: trusted
environment:
  addresses: []
  architectures:
  - x86_64
  - i686
  certificate: <SNIP>
  certificatefingerprint: <SNIP>
  driver: lxc
  driverversion: 2.0.5
  kernel: Linux
  kernelarchitecture: x86_64
  kernelversion: 4.4.0-45-generic
  server: lxd
  serverpid: 11875
  serverversion: 2.4.1
  storage: dir
  storageversion: ""
config: {}
public: false

That's simply because you're running that ping before your client is done getting an IP from DHCP.
If you had a couple seconds delay between the two (which you effectively do when running them by hand) then it'll be fine.


feat: add docker-node packege & integrate node cli

integrate kuai/cli & kuai/core

[x] add docker-node packege
[x] add builtin node task
[x] node task test

resolve: https://github.com/ckb-js/kuai/issues/8

Any update on this PR?


Aded overloaded build method for addExitMenuItem

This is an easy one ... I just added one overloaded method in the Builder for addExitMenuItem to provide the option of setting a custom label to the exit menuItem. I also updated the exit menu method itself so that it uses these calls to exit the app:
Platform.setImplicitExit(true);
Platform.exit();
And I also updated the implementation of that menuItem to check for the custom label and use it if it was set in the Builder.
I just wanted to get this one out of the way - ill start working on the other issue next.

Looks good, thank you! Merging, hoping to push a release this weekend.


Add support for turbo replication

We need to add support for a new metadata field rpo. Full details are available in this doc.
Please wait for approval from myself before merging or releasing this change so we can coordinate around release dates.

@ddelgrosso1: It's not clear that anything actually needs to be done for the C# library. We rely on the generated REST library, which already contains the Rpo property.
Users of Google.Cloud.Storage.V1 will have access to the Rpo property via the generated Bucket class - I doubt that anything else is required here.

Thanks @jskeet. I spoke with @shivgautam and @amanda-tarafa the request was that I open 2 issues, 1 for samples 1 for the library. If this requires no work, I will go ahead and close it.


Bug in svg generation code

Bug leads to blurry svg graphs.
Bug present both in grapheditor and draw.io
How to reproduce:

goto draw.io
create rectangle, set width to 2pt, height 2pt, line width 2 pt.
select rectangle. Export selection as SVG.
open created svg code in a browser and take a screenshot
zoom in and see that rectangle is not 4x4 pixels, but blurred 3.5x3.5 pixels
look into source of generated SVG and see the cause:
transform="translate(0.5,0.5)"

Removing this part from SVG makes everything clear and beautiful.

Oh. This relates to 'crisp' option of getSvg method. It shoud be named 'nocrisp' ;)

I am reopening this ticket.
After some research I am assured that getSvg method is bugged.
crisp option of getSvg method was added to mitigate the fact, that lines in svg are drawn around the basis, and 1pt lines are shown as 0.5+0.5 points. So to make them clear there is crisp option of getSVG method to shift the viewpoint by 0.5x0.5. But it has problems with 2pt width lines, because crisp option becomes harmful and makes lines blurred.
But there is better way. getSVG should get exact (float values) bounding box and shift the graph so that there is no spaces between bounding box and the graph. This will make svg export always "crisp" without crisp option.
And even now with 0.5x0.5 crisp shift it works incorrectly, because shift should be -0.5x-0.5, not 0.5x0.5.
What do you think ?

Thanks for the detailed report, we'll investigate.

For backwards compatibility with older versions of IE we cannot use svg.getBBox.


2127: Patch DelegatingCodeStyleManager for IDEA-244645

Checklist

[x] I have filed an issue about this change and discussed potential changes with the maintainers.
[ ] I have received the approval from the maintainers to make this change.
[x] This is not a stylistic, refactoring, or cleanup change.

Please note that the maintainers will not be reviewing this change until all checkboxes are ticked. See
the Contributions section in the README for more
details.
Discussion thread for this change
Issue number: https://github.com/bazelbuild/intellij/issues/2127
Description of this change
Delegates the new scheduleReformatWhenSettingsComputed method to avoid OperationNotSupported exception in 2020.2+. Currently running this patch on our fork of this repository without issue.

This PR will require a sdkcompat layer. Will refactor once there is approval from maintainers for this change.

Superseded by #2229.


fix(editor): allow user removing data source trait

If I remove the datasource trait for a Dummy component, does the schema leave an empty dummy component that cannot be removed on the editor?

If I remove the datasource trait for a Dummy component, does the schema leave an empty dummy component that cannot be removed on the editor?

Yes. It will leave a empty dummy, but you can remove it.

When I remove the trait from dummy component, it shows the undefined category in the editor. It might be better to show it as an unknown category.


[Feature Request] Jobs category or 2 level categories

Hello,
Please provide the jobs category field so that programmers can search based on the category as shown in jobs.37signals.com or better 2 level categories.
Example,
Main Category       -> Sub Category
Programming Jobs -> ruby, rails, android, sintara
Design Jobs -> ruby, rails
Miscellaneous Jobs -> ruby, rails
Customer Service/Support Jobs -> ruby, rails
Thanks.

Please send a pull request! Thank you.


Add Integration tests in Python

Also a rebase, PRs that were open before the GH Action was merged won't be caught.


Declared for typed-ast 1.4.1

Type: Missing
Summary:
Declared for typed-ast 1.4.1
Details:
Hard to tell "declared" from "discovered" on the license file.
Based on the metadata here - https://pypi.org/project/typed-ast/1.4.1/ - going to put Apache-2.0 as "declared" and leave Python and MIT as discovered.
Resolution:
https://pypi.org/project/typed-ast/1.4.1/
Affected definitions:

typed-ast 1.4.1

@ariel11 I agree. I could only find two files that stated Python license
    :copyright: Copyright 2008 by Armin Ronacher.
    :license: Python License.


My thoughts on the Recent DNF issues

This issue is multi-faceted; I'll attempt to put all the things that I think are true out there.

Nobody's asking me; I'm on the sidelines here. This is more for me than anyone else.
The .NET Foundation has an issue with expectations
There is a gap between what the Foundation can do and how many project maintainers trusted them to wield that power based on expectations.
Claire is one of the absolute bedrock contributors to the .NET OSS Ecosystem and is a hero of mine. We owe her our gratitude.
This was a perfect storm of a personal mistake and surprise systemic issues around communication.
Claire was at helm of DNF when these things happened.
I believe Claire's resignation is sad; I also believe it is the proper choice in this case. I respect it immensely.
Resigning doesn't mean that people thing Claire is bad
Sexism and misogyny is real, is present in computer science, and is present in the .NET Community.
I don't think Claire's resignation is related to sexism or misogyny, nor was the escalation -- though I understand why that concern would exist.
Will this move decrease psychological safety? I don't think so. If people hide their thoughts and actions as a result of this, DNF will disintigrate.

Where does DNF go from here to reset trust? My suggestions:

Anyone who wants to leave needs to be off-boarded amicably with the opportunity to return.
Proactive Ultra-transparency in planning, actions, and communications -- work out loud and in public as often as possible. Share meeting minutes; share member positions; it's OK for discussions to get messy.
Adding a step before any action is taken that aims for, in order of preference: 1) collaboration 2) consent 3) acknowledgment 4) multiple rounds of communication.
A clarity around a social contract of what projects can expect to get out of this, and also what Microsoft aims to get out of this. It's OK for Microsoft to have a founding position and a lot of control (some disagree with this). I think it's OK to say something like "Microsoft through the .NET Foundation aims to support member projects and it return it expects to create a more uniform experience for the consumers of that software, which benefits everyone including Microsoft." This clarity around purpose and motivations would be welcome and helpful I think.

Closing this because I don't think it's entirely relevant anymore, others have said what I want to say, and I have no need to pile on.
note to self: publish things earlier.


[Improvement-#9680][task-plugin] add hive sql log listener, print MapReduce progress log and obtain application_id allows developers to better track tasks

Purpose of the pull request

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

hi @fengjian1129 , why do you want to closed pr

@EricGao888 @MonsterChenzhuo
I mean, with my latest submission


Backspace and delete stop working after opening inkscape files in svg editor

System Details:
VsCode Version:
Version: 1.28.2 (user setup)
Commit: 7f3ce96ff4729c91352ae6def877e59c561f4850
Date: 2018-10-17T00:23:51.859Z
Electron: 2.0.9
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
Architecture: x64
System Information:
Intel i5-6200U - 64bit
8G Ram
Windows 10 Home Edition
Inkscape
Steps to reproduce:
Open VsCode;
Load a project that already contain inkscape .svg files
Open svg editor on an Inkscape .svg file;
try to erase code by using BackSpace or DELETE;
Code should  not delete even when the editor has been closed

Could you paste the svg code of inkscape?

Heres the code from the file that I used:

                    image/svg+xml

                    image/svg+xml

Sorry, how do you get the svg markup to show in this dialog box? I can't attach the file here somehow...

Better yet I've linked the repository/folder where I've saved the file 👍
https://github.com/mesa123123/7211Ass1Prototype/tree/master/prototype assets

Thank you, I surely reproduced the problem when editing the file. I'm now investigating the reason 🤔

Same here. :-). Good luck with the search.


Feature Request: Choose Embedding Model

Is your feature request related to a problem? Please describe.
When you create an embedding now with Nhost, you are not given a choice of embedding model to use. The embeddings default to text-embedding-ada-002, which is the largest, but necessarily the best choice for many users. Howevever, Open AI has additional models: Embedding Models. Aside from other factors, the cost difference is substantial between the small and the ada model. It is also important to note that there have been studies that show that the smaller models could actually be more performant for vector search with pgvector. See this article from Supabase, pgvector: Fewer dimensions are better.
Describe the solution you'd like
Much like you allow for a choice of the type of model in the AI Assistant, you should allow for a choice of the embedding from Open AI when setting up an embedding in Nhost. The list of potential embeddings is here Embedding Models
Describe alternatives you've considered
There are no alternatives.
Additional context
Choice is important for AI, especially given the many external factors, that can effect performance and/or cost.

Also requesting this. We would like to use auto embeddings with the small model and not ada.
This is Dylan with revtron.ai btw.
Excellent call out.

Thanks for reporting this, this makes sense and should be an easy addition. We will take a look as soon as possible.

Would you mind testing v0.5.0-beta1? This version adds a new column model to the autoembeddings_configuration table that can have one of the following values:

text-embedding-ada-002 (default)
text-embedding-3-small
text-embedding-3-large

We still don't have support in the dashboard so you will have to update the value directly using the database tab

Sure, I can test, but probably won't get to it until later next week. btw, how do we install the v0.5.0-beta1?

if you are using the cli/toml just place it under:
[ai]
version=xxx

(it should already be there so just udpate the version)
If you aren't, just go the dashboard->settings->ai and enter the version (don't worry if it doesn't show in the menu, just enter the custom value)

I changed the version, in the settings, but all I see now is that my nhost workspace is updating, and I don't see the "model" column added.

And I just got this error in my project: "Error deploying the project most likely due to invalid configuration. Please review your project's configuration and logs for more information."

Apologies, it should be 0.5.0-beta1.

OK, it updated and I change the embeds. I'll test it soon.

Quick question: When we are setting the query for the autoembedding, it says that the "id" field is required, but what about the other fields that are in query. Are the other fields the ones that are used to create the actual vector? So we should only include those fields with the text we want to create a vector for? For example, your sample query below. The embed will be created for "name, genre, overview" fields? These fields are concatenated and a vector is created? So if we want to only let's say embed, "overview", we would just include that field in the query and remove the others?
query GetOutdatedMovies {
  movies(where: {
    _or: [
      {embeddings: {_is_null: true}}, # new rows without embeddings
      {outdated: {_eq: true},         # existing rows with changed data
    },
  ]}) {
    id                                # id column is mandatory
    name
    genre
    overview
  }
}

BTW, I just ran the embeds with the "small embedding", and the vector searches are meaningless for the most part. For example, I did a graphite search with the keyword: " supercalifragilisticexpialidocious" and it turned up a result, even though none of our content has anything to do with that at all. I would have expected this to return nothing. Also, for other real searches, the results don't match the query at all. I can't say if this is a problem with the model or pgvector, and it's possible this error would have occured before this update. Just that there is something wrong here.

There is nothing wrong with the models. The queries will return the best matches (even if they are unrelated). There is another feature coming alongside this one when 0.5.0 is released that will allow to set the maximum distance to avoid the issue you describe.

OK that makes sense, I was actually wondering about what distance was used. Also, is there an easy way to turn off embeddings on a table without deleting the auto embeddings set up? Was thinking of just deleting the triggers we created based on the docs for the outdated field.

You can try with 0.5.0. I still need to update documentation and we need to add the feature to the dashboard but it should be usable so no need to wait. Re maxDistance, you now have a maxDistance option when doing similarity/search queries. Something like:
graphiteXXXSearch(args={
      query: "blah",
      amount: 10,
      maxDistance: 0.20,
  }) {
      ...
}

maxDistance is a float between 0 (exact match) and 1 (nothing in common) and it defaults to 1 (for backwards compatibility).

Can we already use 0.5.0? We can just change the version in the AI Settings page?

Yes


Use a more fitting error type

Currently this crate uses anyhow, which is usually meant for applications, not libraries. This makes it very hard to match on an error, because the error is essentially opaque. As far as I can see, we mostly return ´tonic::Status`, but there may be some APIs that also can return other errors.
The classic way of dealing with this is create a newtype that wraps Status, has a From<Status> impl and allows basically the same functionality (especially matching on Code). We could also create an enum instead, but I should note that this will either make the implementation, the user interface or both needlessly complex. If we have API calls that can return other errors, either have them return their own specific error type or convert whatever error we get to our predefined error type internally.
Another way would be to make the error type opaque, but that has the downside of making it harder for users to implement From<QdrantError> for their own error types, essentially requiring a Box or other indirection.

Is this one already taken?

I don't see the great benefit of thiserror compared to a plain declarative macro, and the latter certainly compiles faster.
Btw. it's often a good idea to have specific error types for classes of operations, or even per method, so you don't get variants that don't ever exist. Makes matching easier.

I meant that thiserror is a typical choice for libraries to use instead of anyhow. I think the main issue with anyhow is not only that the error is opaque, but also that it makes it hard to use a library if the product is using a different error type, e.g. if my app does not use anyhow, but eyre instead, I can't really call functions from qdrant client and use ? on them, instead, I need to do something like .map_err(|err| eyre!(err))? which get a bit cumbersome.


CorrDiff integration: Support wandb logging

Modulus Pull Request
Description

Checklist

[ ] I am familiar with the Contributing Guidelines.
[ ] New or existing tests cover these changes.
[ ] The documentation is up to date with these changes.
[ ] The CHANGELOG.md is up to date with these changes.
[ ] An issue is linked to this pull request.

Dependencies

/blossom-ci

/blossom-ci

/blossom-ci


URL hash is dropped by redirect from reference.html

After #5493, we use redirects for pointing reference.html to the latest version (like reference-1.0.3.html). Unfortunately, the redirection mechanism currently drops the URL hash, so for example linking to http://leafletjs.com/reference.html#icon ends up just redirecting to http://leafletjs.com/reference-1.0.3.html, not the section about L.Icon.
This affects many links from the tutorials, among other things.

Fixed by #5824


AOT build on Android flashes on start

With an AOT build on Android, I'm seeing the following sequence after tapping the icon for the app:

draw full screen black
then show the app launcher background
then draw black
then load the app

Here's a slow-mo video: https://dl.dropboxusercontent.com/u/316685/for-github-issues/IMG_0006.mp4.mp4

I believe @abarth looked at this briefly last week.

Yeah, we wait for Dart to paint the first frame.  Instead, we should push one black frame in parallel with starting Dart.

I'm assigning this issue to myself to keep track of it, but feel free to steal it.  (I'll post again before starting work on it.)

Related: https://github.com/flutter/flutter/issues/3447

I'm closing this as a dupe of https://github.com/flutter/flutter/issues/3447


Function calling example

Would you please share with me an example  for function calling please to have a clear picture on how it's being used for the beta version

Currently only available in playground. I will update Wikipage after releasing the Beta
https://github.com/betalgo/openai/blob/feature/functionCall/OpenAI.Playground/TestHelpers/ChatCompletionTestHelper.cs

Thank you very much. May I know please when the beta will be released?

https://github.com/betalgo/openai/wiki/Function-Calling


Update dependencies

Closes #111

Hm. After some researching it seems like the error seems to come from something in npm. I think it has nothing really to do with hbs.

tests need to pass before this can be merged. Please fix.

Apparently this is just a hickup:
stackoverflow.com/npm-doesnt-work-get-always-this-error-error-cannot-find-module-are-we-there-yet

Closing this as it seems to be a npm problem, and their answers are extremely slow. See https://github.com/npm/npm/issues/8759#issuecomment-150170426


Create a remote Pharo Snippet

We need a dedicated snippet for working with a remote Pharo image (through PharoLink)

Even if not 'remote' (as in the same computer) this could enable using multiple cores and/or leveraging a stripped down 'server' image or non-GT image, which is a good thing for heavy computation which would be good in a notebook use-case. I had asked on Pharo discord a while back about multi-core support and this could be of great help in enabling such use cases :+1:

The basic snippet has been added, the latest commit is: https://github.com/feenkcom/lepiter/commit/8f81e42625765293e30dde60a53a82a72f9b688f
Additional functionality can be added with separate issues.


MWPW-157460 Allow Ungated Marketo One Page Experience

Allows "Ungated" One Page Experience for Marketo
[Cleanup] Updates Marketo lana logs to correct format

Add query parameter ?form=off to any Marketo One Page Experience url to bypass the form. The form won't show up, and instead, the content (video, pdf, etc) will be immediately visible.
Resolves: MWPW-157460
Test URLs:

Before: https://main--milo--adobecom.hlx.live/drafts/bmarshal/one-page/one-page-html?form=off&martech=off
After: https://methomas-one-page-ungated--milo--adobecom.hlx.live/drafts/bmarshal/one-page/one-page-html?form=off&martech=off

Here are the other examples:
Video

Before: https://main--milo--adobecom.hlx.live/drafts/bmarshal/one-page/one-page-video?form=off&martech=off
After: https://methomas-one-page-ungated--milo--adobecom.hlx.live/drafts/bmarshal/one-page/one-page-video?form=off&martech=off
PDF
Before: https://main--milo--adobecom.hlx.live/drafts/bmarshal/one-page/one-page-pdf?form=off&martech=off
After: https://methomas-one-page-ungated--milo--adobecom.hlx.live/drafts/bmarshal/one-page/one-page-pdf?form=off&martech=off
Marquee
Before: https://main--milo--adobecom.hlx.page/drafts/methomas/one-page-marquee?form=off&martech=off
After: https://methomas-one-page-ungated--milo--adobecom.hlx.page/drafts/methomas/one-page-marquee?form=off&martech=off

A note on performance: There are known issue with performance, see ticket MWPW-157460. The team has decided to release this now for a small-scale test on bacom in order to gather data, and we'll revisit the issue of performance after crux data is available.

Might be good to have a test that shows the triggered catch statement from your showSuccessSection function that occurs on line 118 marketo/marketo.js

@JasonHowellSlavin Good point. I decided to remove the try/catch in favor of catching the errors in if statements - less nested and made more sense with the setInterval code. Added tests for those two use cases.


GTK4 Dialogs

Support modern system dialogs for GTK, like these:

I'm not sure about the scope or the features you asked for in this issue. Could you be a bit more specific or offer some examples/use cases?

The dialogs on Linux don't really look consistent with GNOME, they don't use the same dialog as the ones that the system uses, instead they use a custom GTK3 one, so what I'm asking for an update to them that uses the actual system dialogs. This could maybe be achieved with xdg-portals? That way it'll look consistent even between distros.

Could you provide more info about which distros look inconsistent? A screenshot of the dialog shown by this plugin vs. the one you would expect to see would be very useful. I have tested this plugin with Ubuntu and they look fine.

I can only provide screenshots from Fedora as that's the distro I use.
Expected (GNOME):

https://docs.gtk.org/gtk4/class.MessageDialog.html
Current:

I suspected this may happen. The library portable-file-dialogs checks your distro at compile time. Since I compiled this plugin on Ubuntu, you see the Ubuntu theme even on Fedora. I need to find a library that checks your distro at runtime, because I can only provide one version of this plugin for every Linux distro. In the meantime, you can compile this plugin on Fedora, and it should work.

The thing is, Ubuntu and Fedora use the same toolkit, GTK, so that shouldn't happen since Ubuntu is basically just a reskin of default Gnome. I believe the lib you're using might be outdated or uses a custom dialog for linux.


Public sass version to npm as well

If I npm install only the CSS comes along.

Because the properties files and main in package.json still have the values from the original stylus version, from which it was copied.
btw: issues tracker url in package.json also has the name of the original repo

thank you for the notes @RickEyre , @simbo . Its fixed in v0.1.1


add cssselect to requirements.txt

as subject: i tryed to create a aur package, but I discovered that there is also dependency on cssselect module.

Hi KarlFiabeschi,
If I'm not mistaken cssselect is encapsulated in the LXML module, which is the only dependency for amzSear. The separate cssselect module is not necessary.

If I'm not mistaken cssselect is encapsulated in the LXML module
not at least in arch linux:

https://www.archlinux.org/packages/extra/any/python-cssselect/
https://www.archlinux.org/packages/extra/x86_64/python-lxml/
btw i create a aur package if you are interested:
https://aur.archlinux.org/packages/amzsear/

Thanks for creating the package KarlFiabeschi! I really appreciate it.


[core] Let command hooks be filtered by platform

Command hooks execute a system command. There may be times where the command is not available on a given platform. Add an option to define which platforms mark the hook for inclusion/exclusion such that
Excludes the hook from Windows
hooks:
  command:
    success:
      - cmd: 'echo {{event.name}} {{event.type}}'
        platforms:
          - '!windows'

Includes the hook only for Linux
hooks:
  command:
    success:
      - cmd: 'echo {{event.name}} {{event.type}}'
        platforms:
          - linux

Released in v1.5.0 -> https://github.com/jreleaser/jreleaser/releases/tag/v1.5.0


Exit the terminal without terminating monitoror

Sorry if this is so basic. I've tried a few options which you would normally do with bash scripts but couldn't get anything to work.

Hey!
I see two main possibilities:

use screen: quick and dirty
create a daemon: robust solution

We will work on some guides to do that in the next few weeks :)

Great, screen -d -m ./monitoror is good enough for me so I can automate this easily. Thanks.

Hey,
You can reuse the documention for raspberry

Take a look to Raspberry pi Guide to setup auto start with systemd if you want ^^
Systemd is a linux standard to start daemon

Happy to ad a sample unit file if you tell me where to put it :)


Percentage, need to calculate?

Something I noticed... But it's for sure not linked to the way you implemented it, but we can share some thoughts on it...
For the Internet, the percentage calculation at Youfone side seems wrong. They indicate 5%, but I currently only used 54Mb of the 12288Mb. Are you sure the percentage value is refering to the used amount? But perhaps it's a calculation error at Youfone's side :-)

I noticed the same recently. It seems mainly an issue at start of a new period I believe.
But I checked and this is the data shared by Youfone.
Youfone is using this to show the progress bar/slider on their site.
I might add my own percentage calculation. Will check on it, but currently mainly busy with dev on my other intergration (bibliotheek.be ;))

No worries and no rush. Perhaps I'll modify it and send you the code .
And bibliotheek I saw indeed in your projects this week and also added it,
will come in handy since my wife just got some books that she forgot about
😂
Op za 4 feb. 2023 20:41 schreef myT @.***>:

I noticed the same recently. It seems mainly an issue at start of a new
period I believe.
But I checked and this is the data shared by Youfone.
Youfone is using this to show the progress bar/slider on their site.
I might add my own percentage calculation. Will check on it, but currently
mainly busy with dev on my other intergration (bibliotheek.be ;))
—
Reply to this email directly, view it on GitHub
https://github.com/myTselection/youfone_be/issues/4#issuecomment-1416834389,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAOCG623FOHCTGRWR7LOHETWV2WHVANCNFSM6AAAAAAURKD5WA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Correction done and tested for both ComponentInternetSensor and ComponentMobileSensor
        self._used_percentage = round(int(self._includedvolume_usage)/int(self._total_volume.split(" ")[0]),2)

So feel free to add it whenever you have time :-)

added a multiply with 100 since it's already expected to be a percentage. Fixed since R1.2.1. Thanks for your support again Geert!


Using PHP, create a Shopify-style shopping cart with sticky checkout.

Proposed title of the article
Using PHP, create a Shopify-style shopping cart with sticky checkout.
Proposed article introduction
PHP is the primary technology that powers the majority of online shopping cart software. Creating a full-featured PHP shopping cart application is not as simple as it appears.
We'll look at how to make a featured sticky shopping cart script in PHP in this tutorial. Sticky shopping cart checkout is a feature of Shopify, which is an eCommerce platform.
Key takeaways

Benefits of a Stuck Shopping Cart
Product gallery and shopping cart components on a landing page
Create a gallery of product tiles.
Show items in the cart from a PHP session 4. Edit, delete and empty the cart

Article quality
This article will be unique and easy to comprehend
References
N/A
Happy coding

Good afternoon and thank you for submitting your topic suggestion.
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

I'm going to close this topic due to inactivity.
It can be reopened.


proposal: Add a testing.ParallelCount() func that reports the go test -p flag value

Summary:
Add a helper to the testing package that exposes the value of the go test -p flag. This is similar to testing.Verbose() or testing.Short() functions that expose the values of other flags.
Problem:
By default, go test runs with with the -p flag defaulting to GOMAXPROCS, normally the number of CPUs available. This results in tests within separate packages running in parallel, which is great, I get fast test runs.
However, occasionally I am forced to write tests that are racy with concurrent tests. For example when two tests in separate packages each call t.Setenv() to set the same env var.
The workaround is to run go test -p=1 to force the tests to run sequentially. But that drastically slows down the tests, plus most of the time I actually want tests to run concurrently to catch unexpected races etc.
Often there's just two or three tests out of hundreds within a package that need to be run sequentially. So it's not feasible to use the -run flag to exclude all the other tests... instead I end up with something like this in my code:
if os.GetEnv("TESTS_ARE_BEING_RUN_SERIALLY") != "true" {
	t.Skip("Skipping " + t.Name() + " as it is racy when run concurrently with other tests due to using t.Setenv().")
}

which I then have to invoke in CI via something like:
- go test ./...
- TESTS_ARE_BEING_RUN_SERIALLY="true" go test -p=1 -run <regex of tests that are racy> ./...

The TESTS_ARE_BEING_RUN_SERIALLY env var is clunky, and certainly confusing if you're not familiar with the code.
So it'd be great if the testing package had a helper similar to testing.Verbose() or testing.Short() functions that exposed the value of the -p flag:
func ParrallelCount() int {
	// return value of `-p` flag to `go test`
}

which I would use in my test like this:
if testing.ParrallelCount() > 1 {
	t.Skip("Skipping " + t.Name() + " as it is racy when run concurrently with other tests due to using t.Setenv().")
}

Notes:

For my use case, a bool would suffice, I don't actually care how many, just whether it's more than 1 or not. But I suspect there may be use cases where knowing the actual number of parallel test runners would be useful.
The parallel count of running test runners can change dynamically--ie, if some packages finish their tests before others. For my purposes, I don't want the "real time" count, but rather the max-allowed which is what -p flag controls.
The scope of this proposed helper is confusing because the parallel count of running tests is affected by both go test -p=n and t.Parallel() helper. Since t.Parallel() does nothing if -p=1 (at least that's my understanding), then for my purposes, I only care about the -p flag setting.
The naming is confusing... if I saw a testing.ParallelCount() helper, it's easy to think it's related to the t.Parallel() helper... But I struggled to come up with a more appropriate name. Perhaps the scoping of a pkg level helper (testing) vs a test-level helper (t) is enough disambiguation?

However, occasionally I am forced to write tests that are racy with concurrent tests. For example when two tests in separate packages each call t.Setenv() to set the same env var.

Tests in separate packages run in separate processes; Setenv applies per-process, not globally. Moreover, even if go test reports the number of processes it is running in parallel, you still don't know how many invocations of go test the user is running in parallel.
If a test needs to access a non-hermetic resource, it should coordinate access to that resource explicitly with other tests. For example, a test that needs access to a shared, mutable database, or a shared, mutable file, might need to lock the relevant records and/or files explicitly. (Better still, write the tests such that they do not mutate global resources!)

Tests in separate packages run in separate processes; Setenv applies per-process, not globally.

Oh, I didn't realize that!

For example, a test that needs access to a shared, mutable database, or a shared, mutable file, might need to lock the relevant records and/or files explicitly. (Better still, write the tests such that they do not mutate global resources!)

Yes, but sometimes the reality is that it's not that easy.

Closing, because this isn't relevant for my use case since my shared state is within the process, not cross-process.


"Too many requests" error with ibm_cf causes hang with no explanation

I found that my code was frequently hanging in exactly the same spot, showing only 88 out of 256 activations having succeeded. The debug logs showed that only 88 activations successfully started, and there was no indication of what happened to the other 168 activations.
I added a bunch of extra print statements throughout the code and found that the 168 activations took this codepath.
The issue is that there's no external indication what went wrong. Hangs are not fun to debug - this one cost me over 4 hours. There are two places in this function that return None, which leads to a hang. I suggest that both places raise exceptions instead.
Debugging was also made difficult by this exception handler which doesn't reraise KeyboardInterrupts, causing code to continue running after the exception, which makes it hard to get a good stack trace of where the code is hanging. There are several except KeyboardInterrupts in the code that don't reraise - I suggest making sure that they all reraise the exception so that future debugging is easier.

@LachlanStuart Those activations that took this codepath should not hang the execution. 429 Error indicates "To many requests in flight" This is not an error, this is a Quota limit, so in this particular, these invocations go to a pending queue in order to be invoked at a later stage instead of stopping the whole execution. That's why it returns None instead of raising an exception.
Maybe the error is that when a failed invocation go to a pending queue, the async invoker is unable to retry the invocation.

@JosepSampe Ah, that makes sense. I didn't notice they were being put into a queue. It would be useful if this was logged.
I tried adding extra logging inside _run_invoker_process and this was the result to figure out why it was hanging. It looks like it's getting stuck waiting for more tokens to be added to token_bucket_q when there have been multiple repeated 429 responses. Even after 20 minutes it hasn't resumed.

Tokens are added to the token_bucket_q once an active function finishes its execution. Maybe the thread that is monitoring finished activations is not adding tokens to the queue. Can you add logging here?
btw, what kind of job are you running? theoretically the quota limit is more than 1000 activations, and you get 429 only with 256 activations?

@JosepSampe Here are the logs with the extra logging: https://gist.github.com/LachlanStuart/ec3c7e218a5007771b90c3bc1a18cdb9
On today's run it happened first time I ran the pipeline, so it shouldn't have started with any existing API usage from the previous run. These were the jobs & timestamps:
2020-06-29 12:15:57,397 [INFO] ExecutorID 8bed6a/0 | JobID M000 - Starting function invocation: calculate_peaks_chunk()  - Total: 256 activations / 2048MB
2020-06-29 12:16:23,536 [INFO] ExecutorID 8bed6a/0 | JobID M001 - Starting function invocation: get_segm_stats()  - Total: 256 activations / 1024MB
2020-06-29 12:17:06,334 [INFO] ExecutorID 8bed6a/0 | JobID M002 - Starting function invocation: get_segm_stats()  - Total: 1 activations / 2048MB
2020-06-29 12:17:14,632 [INFO] ExecutorID 8bed6a/0 | JobID M003 - Starting function invocation: clip_centr_df_chunk()  - Total: 256 activations / 512MB
2020-06-29 12:17:31,130 [INFO] ExecutorID 8bed6a/0 | JobID M004 - Starting function invocation: get_first_peak_mz()  - Total: 256 activations / 512MB
2020-06-29 12:17:44,378 [INFO] ExecutorID 8bed6a/0 | JobID M005 - Starting function invocation: segment_centr_chunk()  - Total: 256 activations / 512MB

Only the last call received 429 warnings.

I think I already understand where is the error. Thanks for your logs @LachlanStuart  :)
Just to put me in context, which region are you using? Do you always had these 429 errors? or they appeared recently?

@JosepSampe I'm using eu-de. I suspect it's something to do with my account setup, as I recently had to change accounts and didn't have these issues with previous accounts.
The default limit is supposed to allow 5000 API calls per minute, but in my case it seems like it might be set to only allow 600... Maybe they've changed the default without updating the documentation. Once you've fixed it I'll contact support, because apparently they can increase that limit. I just don't want to take away this opportunity to reproduce the issue, because I know we'll hit 5000 calls per minute at some point, and it'll be much harder to debug once we're running at that scale.

Added fix in #330


[CDBO] Change Value for CDS Types

We have update the CDBO Type for CDS Views from 2 to 3 .

@ABEDI30 besides the change from 02 to 03 you propose to change the name of the example file. Most, if not all, examples are in customer namespace. Can you explain?

@ABEDI30 besides the change from 02 to 03 you propose to change the name of the example file. Most, if not all, examples are in customer namespace. Can you explain?

Is fixed now. We created a Z example object in the system


[SPARK-21842][MESOS] Support Kerberos ticket renewal and creation in …

…Mesos
tl;dr: Add a class, MesosHadoopDelegationTokenManager that updates delegation tokens on a schedule on the behalf of Spark Drivers. Broadcast renewed credentials to the executors.
We recently added Kerberos support to Mesos-based Spark jobs as well as Secrets support to the Mesos Dispatcher (SPARK-16742, SPARK-20812, respectively). However the delegation tokens have a defined expiration. This poses a problem for long running Spark jobs (e.g. Spark Streaming applications). YARN has a solution for this where a thread is scheduled to renew the tokens they reach 75% of their way to expiration. It then writes the tokens to HDFS for the executors to find (uses a monotonically increasing suffix).
We replace the current method in CoarseGrainedSchedulerBackend which used to discard the token renewal time with a protected method fetchHadoopDelegationTokens. Now the individual cluster backends are responsible for overriding this method to fetch and manage token renewal. The delegation tokens themselves, are still part of the CoarseGrainedSchedulerBackend as before.
In the case of Mesos renewed Credentials are broadcasted to the executors. This maintains all transfer of Credentials within Spark (as opposed to Spark-to-HDFS). It also does not require any writing of Credentials to disk. It also does not require any GC of old files.
Manually against a Kerberized HDFS cluster.
Thank you for the reviews.
Author: ArtRand<EMAIL_ADDRESS>Closes #19272 from ArtRand/spark-21842-450-kerberos-ticket-renewal.
What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)
Please review http://spark.apache.org/contributing.html before opening a pull request.

:+1:


Diff updates: rebuild indexes and recluster tables

A note from @paulnorman at osm-dev recently - related to growing storage of long running updated PostGIS/Postrgres - which may be relevant to OSM2VectorTiles machine doing the diff updates:
http://paulnorman.ca/blog/2016/06/improving-speed-with-reclustering/

BTW a nice ticket number on this issue ;-)

If you have a container-based infrastructure and sufficient capacity I'd just import a new database every 6 months.


Warn if  is incorrectly used with  and

Sometimes it happens that developers use a <list> in the documentation, but mix up the <term> and <description> parts.
the documentation at MSDN may confuse some as well.
So we should inspect the usage and report a violation.
An example of correct usage can be found here

For lists of type table there should be a single <term> and <description> per <item> or the same amount of <term> elements per <item>. The <term> and <description> elements should not be mixed as in following example:
/// <list type='table'>
/// <listheader>
/// <term>Some text</term>
/// <term>Some more text</term>
/// <listheader>
/// <item>
/// <description>Even more text</description>
/// <description>Still text</description>
/// </item>
/// </list>


Add a group of five dynamic fields on button click

Hi, im working with react-form and it's all ok but i need to dynamicly add a group of five inputs on every "Add" button click, same code as the examples work well with one field but i can't figure it out how to add dynamicly more than one input field.

Pass a object as value
  newTimeSlot() {
    return { week_day: this.props.day, from: '09:00', till: '17:00' };
  }

  this.props.formApi.addValue(['days', this.props.index, 'working_time_slots'], newTimeSlot());

In the time slot component
this.slotField = ['days', this.props.dayIndex, 'working_time_slots', this.props.index];

<StyledSelect field={this.slotField.concat('from')} />

Above works for me.  never fill initial values of siblings.

Add a nested form dynamically and the nested form can have multiple fields

Are you all set with this? Have u tried nested forms?

Closing this as its been a while without any updates


Add a new test for dotnet containers that checks that createdump is working.

Thanks!

@phracek Does this look good to merge?

[test]


Wazi Technology Preview Feedback

Where can we get support for any issue we get working with wazi ? I have installed it. The docker process is started successfully as show below, but i can't seem to open a browser on localhost:3000:
$ docker run -it -p 3000:3000 ibmcom/wazi:tp1
Starting the master backend process with 5000 (ms) timeout.
Starting server worker...
Server worker has been started. [ID: 1 | PID: 11]
Server worker is ready to accept messages. [ID: 1 | PID: 11]
root INFO Theia app listening on http://<IP_ADDRESS>:3000.
Received message which is neither a response nor a notification message:
"3000"
on the browser, i get
"Firefox can’t establish a connection to the server at localhost:3000"
I have tried to start the docker process on different ports, but with the same result( btw the server always says it is listening on http://<IP_ADDRESS>:3000 even if you start and map it with a different port number).
Any help is welcome ;-)

"docker-machine ip default" command gave me the docker machine IP address http://<IP_ADDRESS>, and when i tried http://<IP_ADDRESS>:3000 on my browser it worked ...


Update review.yml

AI Pull Request Summary:
The pull request removes the entire GitHub Actions workflow defined in .github/workflows/review.yml. This workflow was set up to trigger on pull requests (when opened or synchronized), granting permissions for reading content and writing to pull requests and issues. It included a job that checked out the repository and executed a GPT-based code review using the PierreGode/GPTcode-reviewer action with specified secrets for GitHub and OpenAI API credentials, while excluding .json and .md files from review.


Protocol Amendments

Need to ensure that M11 protocol amendments can be supported. Three aspects

Amendment support aligns with the updated M11 specification
Ensure we can support the detailed rationale for changes. Note we dont need exact details of change as an electronic comparison can be made (see #305)
Align with any review comments on Organizations arising from release 3.6. This overlaps because of the need to note enrollment at the time of an amendment being approved.

Item
Ticket

Model
#473

CT
#474

API
#475

Rules
#477

IG
#476

Test Data
#478

Associated Tickets
#305, #264

GeographicScope and dates
Considerations:

The scope is a direct feature of an amendment according to M11. At the same time it is the feature of the study Version (date) that links to the current amendment. We have included that based on the governance date of the studyVersion.
An amendment is a feature of a study version. We do not want to include multiple versions of a study in the USDM (using a previous attribute in StudyVersion) as all other classes are nested in the StudyVersion class and that would require to keep submitting all information of previous versions. At the same time we want to store dates, scopes and current enrollment of each amendment which is also required by M11.
Enrollment, geographic scope and signature dates are all directly related and linked to 1 version of the study/amendment. All three features are required for the amendment history.
We now have a versionIdentifier in StudyVersion and a StudyAmendment.number which (partly?) overlapping.

Based on this I will propose an idea at the scrum today.

Based on the template, the protocol requires:
Front page(s)

Original Protocol identifier
Version number
Version Date – (without a scope)
Amendment identifier (if applicable)
Amendment scope (global / country(ies) / region(s) / site(s) )
Sponsor approval date
Current amendment
Approximate number/percentage enrolled at time of approval
Reason(s) for amendment (primary/secondary)
o	Select closest match / if none apply – choose “other”
Summary
Substantial impact on safety or rights of participants
Substantial impact on reliability and robustness of the data generated in the clinical trial
Changes
o	Description
o	Brief rationale
o	Section # and Name
Paragraph 12.3 Prior Protocol Amendments
Summary of changes from previous amendments
Keep number/percentage enrolled at time of approval
Listing approximate enrolment by cohort in an option
The overview of changes from all prior protocol amendment (i.e. description, brief rationale, section # and name)

@dih-cdisc @czwickl @EMuhlbradt @ASL-rmarshall
See points to consider in the ticket above. Below the suggested changes.
Some points of discussion for scrum today:

Scope linked to date/direct?
Date types
Substantial impact types - separate class? or two attributes?

Suggestions
Impact Class
Make impact a separate class, AmendmentImpact, with attributes

rationale: string
substantial: boolean
type: Code (code list extensible, SafetyRights and ReliabilityRobustness)

This will allow for the two substantial impacts but allow sponsors to add other impacts (substantial or non-substantial) if they wanted.
Geographic Scope
Rather than GeographicScope having a type of 'site' which just feels wrong, keep the existing SubjectEnrollment appliesTo to the StudySite class, feels like a more consistent approach (enrollment statistics apply to either a geographic scope, or a cohort or a site and only one of them).
The site will thus need some geographic info. Site could be an Organization in its own right (type = StudySite) and thus an address or could explicitly state the site's geographic location using a AliasCode attribute (or point at GeographicScope)
Governance Dates
For governance date the referring class provides the context for a date, we might want to consider 'Approval Date' and 'Effective Date' for the code list which then gives:

StudyVersion Approval
Amendment Approval
Document Approval
StudyVersion Effective
Amendment Effective
Document Effective

Thus, from an implementation perspective, from a Document class for example it is "give me my (the document's) effective date"
Might also be useful to nice to have an 'Issued Date' or something similar, for draft versions?

@EMuhlbradt @czwickl @dih-cdisc @ASL-rmarshall
See below the updated StudyVersion/amendment part of the data model based on the discussions today.
Note that the boolean attribute substantialimpact has been deleted from the studyAmendment class and has been replaced by a relationship called 'substantialImpacts to the new StudyAmendmentImpact class.

corrected small typo in substantialImpacts and pushed to Github

@BSnoeijerCD @EMuhlbradt @ASL-rmarshall @czwickl
Have a think about the name of the relationship from StudyAmendment to StudyAmendmentImpact labelled 'substantialImpacts'. The 'substantialness', if there is such a word, is. incorporated in the 'substantial' attribute of the Impact class. It was to allow a sponsor to add their own 'impacts' that they may not consider substantial in addition to the ones required by M11. Has the downside that you need to set the flag True for the M11 ones. Anyway, the relationship might be better named 'impacts' or something along those lines.

@BSnoeijerCD @EMuhlbradt @ASL-rmarshall @czwickl
Have a think about the name of the relationship from StudyAmendment to StudyAmendmentImpact labelled 'substantialImpacts'. The 'substantialness', if there is such a word, is. incorporated in the 'substantial' attribute of the Impact class. It was to allow a sponsor to add their own 'impacts' that they may not consider substantial in addition to the ones required by M11. Has the downside that you need to set the flag True for the M11 ones. Anyway, the relationship might be better named 'impacts' or something along those lines.

Good point. For background info, I just found a related protocol reference Article 10(a) of Directive 2001/20/EC of the European Parliament:

@BSnoeijerCD It's interesting that, according to that Article, it's the amendments that are substantial, not the impacts. If M11 is trying to implement that Article, the resultant M11 questions aren't quite accurate.

@dih-cdisc @czwickl @EMuhlbradt @ASL-rmarshall
I made the updates as discussed during scrum today. This includes some cardinality changes. See diagram below:

@BSnoeijerCD @EMuhlbradt A couple of thoughts triggered by looking at the new country relationship from StudySite:

This relationship looks like it's intended to be defined in the same way as the country relationship from Address - i.e., it goes to Code and am I right to assume that the expectation is that the ISO 3166-1 alpha-3 codelist will be used?

The code relationship from GeographicScope looks like it might perform a similar function when GeographicScope.type = "Country" but, in this case, the relationship is to AliasCode and the CT file says:

Point out to external dictionaries: Standard code is ISO-3166; Alias codes drawn from GENC, UN Region Codes, etc.

However, I don't think this will work because the code relationship is also used to identify regions when the GeographicScope.type = "Region" (hence the reference to "UN Region Codes"). In order to use AliasCode, you must specify a standard codelist and always provide a standard code from that codelist - but the ISO-3166 codelist does not contain the type of region codes we need for geographic regions. I think we probably just need to change the comment in the CT file to say:

Point out to external dictionaries: Standard code is ISO-3166 alpha-3 for countries and UN Region Codes for regions; Alias codes drawn from GENC, etc.

We might then need a rule to ensure the correct standard coding for countries vs regions - but we'd need to define what's checkable for ISO 3166 vs UN Region codes (possibly just the codeSystem).

Is it OK to insist on only ISO 3166 codes for address and study site, but to allow other types of country coding for geographic scopes? Or should we allow country alias codes for address and study site too?

@BSnoeijerCD Also:

The target cardinality for StudyEnrollment -- appliesTo -> GeographicScope should be 0..1, not 1..*. A study enrollment applies to either a (single) geographic scope, a (single) study site, or a (single) cohort. If you need to define enrollments for multiple geographic scopes, sites or cohorts, you'd just create additional instances of StudyEnrollment, each with an appliesTo relationship to a single target.
Does every study amendment have to have a defined study enrollment (even if it's for something as trivial as typographical changes)? If not, the target cardinality for StudyAmendment -- enrollments -> StudyEnrollment should be 0..*, not 1..*. (It may have been defined as 1..* before because StudyEnrollment "was" the geographic scope (via inheritance), and a geographic scope is required for every amendment).

@ASL-rmarshall
I looked in the template and technical specs but did not see in both that there can be multiple section numbers and titles specified for a change. Can you indicate where you got that indication from.
@EMuhlbradt, @dih-cdisc  @czwickl : I see that M11 specifies the whole list of optional section numbers and titles as CT. What are your opinions about including this CT in USDM? Should we point to a codelist with the prespecified section numbers and titles aligning to M11 as indicated in ticket #472? On the other hand, this is very M11 specific, might be subject to change and if an (older) protocol template is used not applicable.

@BSnoeijerCD Also:

The target cardinality for StudyEnrollment -- appliesTo -> GeographicScope should be 0..1, not 1..*. A study enrollment applies to either a (single) geographic scope, a (single) study site, or a (single) cohort. If you need to define enrollments for multiple geographic scopes, sites or cohorts, you'd just create additional instances of StudyEnrollment, each with an appliesTo relationship to a single target.
Does every study amendment have to have a defined study enrollment (even if it's for something as trivial as typographical changes)? If not, the target cardinality for StudyAmendment -- enrollments -> StudyEnrollment should be 0.., not 1... (It may have been defined as 1..* before because StudyEnrollment "was" the geographic scope (via inheritance), and a geographic scope is required for every amendment).

I will correct appliesTo in the model to 0..1.
Also, since enrollment is optional according to the M11 technical specis I will change that cardinality too to optional.

@ASL-rmarshall I looked in the template and technical specs but did not see in both that there can be multiple section numbers and titles specified for a change. Can you indicate where you got that indication from.

@BSnoeijerCD See:

Template: lines 94-95 on page 5:

If the same change affects multiple parts of the protocol, it is acceptable to list multiple locations in the right column.

Technical Specification: item 113 on pages 46-50:

Repeating and/or Reuse Rules: Yes, repeatable for each description of change in the amendment

It's also interesting that the technical spec suggests that controlled terminology will be used for section numbers and titles.

@ASL-rmarshall I looked in the template and technical specs but did not see in both that there can be multiple section numbers and titles specified for a change. Can you indicate where you got that indication from.

@BSnoeijerCD See:

Template: lines 94-95 on page 5:

If the same change affects multiple parts of the protocol, it is acceptable to list multiple locations in the right column.

Technical Specification: item 113 on pages 46-50:

Repeating and/or Reuse Rules: Yes, repeatable for each description of change in the amendment

It's also interesting that the technical spec suggests that controlled terminology will be used for section numbers and titles

Thank you. The "Repeating and/or Reuse Rules" are identical for rationale of the change and for description of the change itself. So therefore can be interpreted in different ways. However, the template text and also the logic of having the same change represented at different places in the protocol. Let's discuss at the scrum how to handle, as section numbers and titles are pairs and we have that CT issue as well.

@BSnoeijerCD @ASL-rmarshall
Be careful. Divide the logic into what USDM needs to model versus how M11 presents the information, the two may not be the same. In this case I reckon the model versus presentation could well be quite different.
Also be careful in the sense that we need to accommodate M11 but not necessarily be driven by it.
Also, if M11 is not clear or we consider it to be in error, we can feedback this information into the ICH review

Based on input above and scrum discussion yesterday we felt that an amendment change is likely to reference to multiple sections of a document. E.g. one specific change may be reflected in multiple sections of the protocol.
The reference includes a pair of section number and title. Combining both into 1 reference attribute would make the data less structured and limit the option to link this to the actual previous document. However, the link between the two needs to be preserved also when we have multiple references. Therefore we decided that creating a separate class for the references would make sense (see diagram below).
Other changes discussed will not be included.

We do not include CT for section numbers and titles as USDM can include other types of (historical) protocols
We keep the country code relationships as is for now.
StudyAmendmentImpact class and relationships are to be reviewed based on actual use cases

See updated diagram below:

@BSnoeijerCD @dih-cdisc @ASL-rmarshall See draft CT file here:
469.xlsx

@czwickl : Did you already review the M11 CT that is applicable for amendments?

Are there any changes expected for amendment reason (e.g. what about other / NA? )
The rest can be more generalized and then mapped to M11. I did not see any other potential CT issues for the amendments part.

One more general question: Do we want to include Location of Sponsor Approval Date as specified in the template?

@daveih @ASL-rmarshall @EMuhlbradt @czwickl
See below snippets of how amendment changes were covered in a sample of 8 studies. 3 additional studies (of which 2 were from big pharma companies) did not include a list of changes at all.
The following examples are all including a short description and rationale. two are from the same company.

Only 1 had the strikethrough/replacement option. The description and rationale of change as others present them were both combined in the rationale field:

There were a few other variants as well:


Add Pipeline to v1alpha2 🎋

Changes
This port Pipeline spec to v1alpha2, nothing really change from v1alpha1.
With this one, we are getting closer to all structs ported to v1alpha2 :angel: (only PipelineRun is missing) —
Signed-off-by: Vincent Demeester<EMAIL_ADDRESS>/cc @bobcatfish @dibyom @sbwsg
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[x] Includes tests (if functionality changed/added)
[ ] Includes docs (if user facing)
[x] Commit messages follow commit message best practices

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.

/lgtm
Looking Good! 🤙🏽


[AST] NFC: Pretty stack trace for Traversal::visitNominalTypeDecl

This helps a bit in getting more readable stack traces when the compiler crashes.

@swift-ci please smoke test


Convert/Duplicate Default Debugger Memory Views (HexEditor) to a Memory View

Is your feature request related to a problem? Please describe.
VSCode provides a mechanism to launch a memory viewer for certain items in the Variables/Watch panels. It users its own HexEditor to provide the visualization. There is no user-level customization provided by VSCode to change which extension/visualizer/editor should be used to display the memory contents. We have been in discussion s with Microsoft for over a year and got many votes but there is no interest from them in providing such a customization.
To launch a memory viewer, this is the button in the Variable/Watch panels I was referring to. The button on the far right that looks like binary data

Describe the solution you'd like
As a stopgap, could we detect a new HexEditor being launched and convert that into a view in the memory panel?
Describe alternatives you've considered
Tried to get the HexEditor to be more debugger-friendly, so this extension is not even needed. 2+ years and here we are. It is focused on editing files
Additional context
The following issues we have filed with VSCode. We made near-zero progress
https://github.com/microsoft/vscode/issues/155597
https://github.com/microsoft/vscode/issues/197287
https://github.com/microsoft/vscode/pull/197458

I implemented the following settings and what you see below are the defaults. You probably installed our extension because you are more interested in seeing memory views done better. It should be released shortly

Please vote to give us feedback. Like, hate, useless, distracting, improvements, etc. Use emojis in this box but please also leave feedback if you have suggestions focused on this topic

How to attach the memory viewer to Debugger ?

Not sure what debugger you are using.
See https://github.com/mcu-debug/memview/issues/21


Changing format/beautifying json

Maybe I missed a newly added config but doesn't look like it's mentioned in the readme.
Just updated from 0.4.2 to 0.5.3 and the exported json files that I use are now all single line files. Before 0.4.2 all json values were on a new line with indents.
This is the command I'm using:
Export
.\pak-extracter.exe `
    -assets "C:\Program Files (x86)\Steam\steamapps\common\New World\assets" `
    -output ".\extract"

Convert
.\datasheet-converter.exe `
    -input ".\extract\sharedassets\springboardentitites\datatables" `
    -output ".\extract\datasheets" `
    -format json

Any chance reverting that change? or maybe I need to add new command line argument?

Just noticed the "-withIndents" in commit:
https://github.com/new-world-tools/new-world-tools/commit/139cb44b20c6ae2e284d7610af57a8db1d355205
That probably is the reason. Going to the run the convert script again with that argument.

Working fine.
.\datasheet-converter.exe `
    -input ".\extract\sharedassets\springboardentitites\datatables" `
    -output ".\extract\datasheets" `
    -format json `
    -with-indents


Add singularity compatibility for users without root access

Many academic collaborators don't have root access and therefore can't run docker. Since viash containerises everything, openproblems becomes entirely unusable if you can't run docker.

This can be split up into two discussions:

Running the benchmarks is possible with Singularity. All of the pipelines should have the profiles 'docker', 'singularity', and 'podman'. This means anyone should be able to run a release of openproblems-v2 in singularity, docker, podman, and get the same results.
Creating components currently still requires having Docker installed to test their component locally. However, a contributor can test their own code by adding a native platform to the component. It's easy enough to simply list the required packages in the component config when creating a PR. However, the unit tests should pass before the PR is merged, so that will let us know whether the specified docker container instructions work or not.

I wouldn't look into supporting both singularity images and Docker images at the same time, as this opens up another can of worms regarding technical challenges and reproducibility that I think we want to avoid.
I propose documenting this discussion in a section on the website. WDYT?

As far as I can tell from the website, a contributor who wants to add a new method won't get past "Getting Started" if they can't install docker. If you can't run create_component, then it doesn't matter if you can test your method or not.

Why don't we just use nextflow to run the components to begin with if it's capable? Then it's as simple as switching between -profile docker and -profile singularity

Since singularity isn't something we currently support in v1, this shouldn't be a blocker to switch from v1 to v2.