Fix Stargate BadRequest auth response due to invalid credentials

What this PR does:
WIP attempt to fix Stargate auth failures on GHA
Which issue(s) this PR fixes:
None
Checklist

[ ] Changes manually tested
[ ] Automated Tests added/updated
[ ] Documentation added/updated
[ ] CHANGELOG.md updated (not required for documentation PRs)
[ ] CLA Signed:  DataStax CLA

@adutra the latest failure in CreateStargateAndDatacenter appears to be caused by this:
INFO  [MigrationStage:1] 2021-09-29 20:25:39,811 ColumnFamilyStore.java:427 - Initializing data_endpoint_auth.token
ERROR [MigrationStage:1] 2021-09-29 20:25:40,838 CassandraDaemon.java:235 - Exception in thread Thread[MigrationStage:1,5,main]
org.apache.cassandra.exceptions.ConfigurationException: Column family ID mismatch (found 69ef6ba0-2163-11ec-9958-d18d6ebc904d; expected 68f8d6a0-2163-11ec-962f-b309ed200eca)
        at org.apache.cassandra.config.CFMetaData.validateCompatibility(CFMetaData.java:984)
        at org.apache.cassandra.config.CFMetaData.apply(CFMetaData.java:938)
        at org.apache.cassandra.config.Schema.updateTable(Schema.java:687)
        at org.apache.cassandra.schema.SchemaKeyspace.updateKeyspace(SchemaKeyspace.java:1478)
        at org.apache.cassandra.schema.SchemaKeyspace.mergeSchema(SchemaKeyspace.java:1434)
        at org.apache.cassandra.schema.SchemaKeyspace.mergeSchema(SchemaKeyspace.java:1403)
        at org.apache.cassandra.schema.SchemaKeyspace.mergeSchemaAndAnnounceVersion(SchemaKeyspace.java:1380)
        at org.apache.cassandra.db.DefinitionsUpdateVerbHandler$1.runMayThrow(DefinitionsUpdateVerbHandler.java:51)
        at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
        at java.lang.Thread.run(Thread.java:748)

This looks like a legitimate failure for a change 😅  It is due to creating the Deployments at the same time. I know we were discussing how to handle this the other day.
Here is my suggestion for now. It would be nice to have all tests passing for the alpha release. How about we 1) document this behavior in a ticket  and 2) change the test to deploy only a single Stargate node provided that isn't too much effort. wdyt?

@adutra I will go ahead and create the ticket and update the test since you are probably/hopefully out for the day.

How about we rename CreateStargateAndDatacenter to something like CreateMultiStargateAndDatacenter and then add a new test that deploys a single Stargate along with the CassandraDatacenter? Then we disable the multi-Stargate test for now.
Ultimately I think it would be better to update the test to create the schema before deploying Stargate. Currently this isn't possible as both the Stargate and CassandraDatacenter are created at the same time, and this would lead to a race condition. We would to make some changes to the test framework to better support this. I'd prefer to do that after the alpha release.


⚠ Bofrost.lu has degraded performance

In fe49ced, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1166 ms

Resolved: Bofrost.lu performance has improved in b59dc3e.


Sciplot submodule?

Is it possible to set sciplot up so that it can be pulled from a submodule or similar without requiring a system-wide install?
openjournals/joss-reviews#5165

Hi, vcpkg provides a package for Sciplot for local installs that doesn't break compatibility with CMake's find_package.
I'll work on it and come back to you as soon as a decent (ie. simple and documented) vcpkg integration is ready.


restore query context before polling

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

Ok.
Could you please tell in more detail, what is the affected case?


MenuItem: Add Label parameter

Description

Adds the Label parameter to MudMenuItem like MudMenu already has. It is overridden by ChildContent for backwards compatability.
How Has This Been Tested?

unit
Type of Changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation (fix or improvement to the website or code docs)

Checklist

[X] The PR is submitted to the correct branch (dev).
[X] My code follows the code style of this project.
[X] I've added relevant tests.

This might conflict the other menu PR so I don't know what is best. Probably merge this after the other one?

Fyi @ScarletKuro
If you find anything wrong with any of the menu changes I can work on or revert parts of them because there will be several PRs and we're between previews


CRAYSAT-1408: Add variable substitution to sat bootprep

Summary and Scope
Add the ability to perform variable substitution in certain fields of
sat bootprep input files using Jinja2 templates. Variables can be
loaded from the following three locations in order from lowest to
highest precedence:

In branches corresponding to versions of the HPC software recipe
repo that have been imported into gitea (VCS) on the system. The
version of the HPC software recipe is specified by --recipe-version.
In YAML files specified by the --vars-file command-line option.
Variables passed directly on the command line using the --vars
option.

Various general functionality was added to support this:

The ability to clone repositories was added to the VCSRepo class in
the apiclient.vcs module, and that class was refactored slightly.
A set_val_by_path function was added to support setting values in a
dictionary by a dotted path.
A deep_update_dict function was added to support deep dictionary
updates or merges.
A sat.recipe module was added for loading HPC Software Recipe data.
This will likely be useful for sat showrev and other commands in the
future.

Update the man page for sat bootprep to describe the new --vars,
--vars-file, and --recipe-version options. Also add missing doc for
--bos-version option. Add examples of using the new variable options.
Update bootprep input file schema property descriptions to indicate
which fields support rendering with Jinja template engine. Deduplicate
the branch property definition by defining it in refs and referring to
it in product- and git-based layer definitions.
Issues and Related PRs
List and characterize relationship to Jira/Github issues and other pull requests. Be sure to list dependencies.

Resolves CRAYSAT-1408

Testing
Tested on:

groot
local macbook

Test description:
Tested on groot-ncn-m001 by running sat bootprep run with various
options to specify different variable sources and ensured precedence
between the different variable sources works as documented.
Viewed rendered sat bootprep man page. Viewed sat bootprep run --help usage information.
Generated sat bootprep input file schema HTML docs and viewed in
browser.
Risks and Mitigations
No known risks.
Pull Request Checklist

[x] Version number(s) incremented, if applicable
[x] Copyrights updated
[x] License file intact
[x] Target branch correct
[x] CHANGELOG.md updated
[x] Testing is appropriate and complete, if applicable
[x] HPC Product Announcement prepared, if applicable

I don't see why license-checker is failing. It's flagging sat/cli/bootprep/vars.py, but it's fine with sat/recipe.py, and yet both have the same license text:
(sat) C02ZH00ALVCJ: sat (CRAYSAT-1408-product-version-substitutions) $ diff -u <(head -n 23 sat/recipe.py) <(head -n 23 sat/cli/bootprep/vars.py)
(sat) C02ZH00ALVCJ: sat (CRAYSAT-1408-product-version-substitutions) $

Running the recommended docker command just results in duplicated license text in vars.py.

I don't see why license-checker is failing. It's flagging sat/cli/bootprep/vars.py, but it's fine with sat/recipe.py, and yet both have the same license text:
(sat) C02ZH00ALVCJ: sat (CRAYSAT-1408-product-version-substitutions) $ diff -u <(head -n 23 sat/recipe.py) <(head -n 23 sat/cli/bootprep/vars.py)
(sat) C02ZH00ALVCJ: sat (CRAYSAT-1408-product-version-substitutions) $

Running the recommended docker command just results in duplicated license text in vars.py.

Oh, now it's working. I pushed a commit that added the period after the copyright notice. The checks all went away on the PR. Then they came back, and license-check was still "failed". However, now I see it is successful, so I must have just caught it at a bad time.

Full testing description can be found in this comment in the Jira.


Expose request & response in aggregator-proxy callback

As an aggregator operator
I would like to be able to use the request & response objects when handling a bundle in aggregator-proxy
So that I can determine if I should accept a bundle via additional HTTP request information and respond appropriately.

@jacque006 Are we sure we want to support aggregator-proxy this way?
It's a pretty small change, so maybe this is a good little win.
However, I think we should be mindful of the direction here. Right now, aggregator-proxy is more of a suggestion... it's suitable for forking or even just inspiration. If we expand upon it with more features, it becomes more like the tool you're supposed to use to get this done. Maybe that's something we want, but it requires a higher level of commitment from us, and comes at an increased cost for those who are more interested in directly using the code itself, rather than as a black box that's just supposed to work.

I would agree with you that we want to be careful that we don't add too much functionality to this component. However, since this is running as a proxy/"middleware" against an aggregator instance, it makes sense to expose/allow hooks to certain things such as:

Bundle for introspection/additions
HTTP request/responses for introspection/verification/mutation
(maybe) ability to add HTTP middleware via Koa router.

Beyond that scope, people can copy/pasta this, fork it, or fork/implement their own aggregator.


Ctrl+c doesn't work after have used ssh in Powershell in the same terminal session

Windows Terminal version
1.13.11432.0
Windows build number
10.0.22000.0
Other Software
Using ssh.exe
ssh.exe -V
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

Steps to reproduce

Login/try to login with SSH on any remote host that accepts ssh connections. Then exit that.
Run ping <IP_ADDRESS> -t
Try to exit with ctrl+c

Expected Behavior
The ping-action should stop
Actual Behavior
Nothing happens, the continuous ping keeps going.
Tried ctrl+break which prints out a new empty line briefly. But it doesn't exit the running operation and the pingin keeps going.
Other info
Other possibly related issues

https://github.com/microsoft/terminal/issues/6258
https://github.com/microsoft/terminal/issues/8034

Print screen of repro steps

Which ssh are you using? ssh.exe that ships with Windows? ssh from a WSL distro? Or some other ssh? And which version of ssh?

@zadjii-msft I've updated the description with the info
ssh.exe -V
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

This looks a bit like
https://github.com/PowerShell/Win32-OpenSSH/issues/1699
but

No issue using conhost.exe , there it works as expected

scares me, for sure.

Okay great, thanks. All that would have me think that this is, in fact, https://github.com/PowerShell/Win32-OpenSSH/issues/1699, so I'm gonna close this to track the downstream issue. Thanks!
/dup https://github.com/PowerShell/Win32-OpenSSH/issues/1699


Join node change in behaviour with 4.0 (resubmit of 4822)

Current Behavior
Please see #4822
Hi,
I have re-raised this as a new issue as the previous has had no updates. It still had a needs-info tag and I am not sure my updates have been seen, or what I need to do to make them visible.
If this is not going to be changed/fixed then I would appreciate it if you can let me know.
Thanks
Expected Behavior
Please see #4822
Steps To Reproduce
Please see #4822
Example flow
Please see #4822
Environment
Please see #4822

No need to open new issues to get attention on another issue


Error sending command: deviceInfo AxiosError: Request failed with status code 403

Describe The Bug
Light works on first setup, but after a minute or so starts responding with 403s for both deviceInfo and power
Expected behavior
Response code 200
Logs
[09/05/2024, 21:38:41] [TPLink Tapo Platform] Error sending command: deviceInfo AxiosError: Request failed with status code 403
at settle (/var/lib/homebridge/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/core/settle.js:19:12)
at IncomingMessage.handleStreamEnd (/var/lib/homebridge/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/adapters/http.js:585:11)
Plugin Config
{             "addresses": [                 "<IP_ADDRESS>"             ],             "name": "TPLink Tapo Platform",             "email": ****,             "password": ****,             "platform": "HomebridgeTPLinkTapo"         }
Plugin Version
4.1.0
Homebridge Version
1.8.1
Node.js Version
20.12.0
NPM Version
10.5.0
Operating System
Linux Buster

Yep, happening for me too.


dart2js CPS needs special handling of the Symbol constructor

In the SSA backend, when it is asked to compile the Symbol constructor, the compiler is hardcoded to compile something else instead.  Excerpted from ssa/builder.dart:
    ConstructorElement constructorDeclaration = constructor;
    ConstructorElement constructorImplementation = constructor.implementation;
    constructor = constructorImplementation.effectiveTarget;

    final bool isSymbolConstructor =
        constructorDeclaration == compiler.symbolConstructor;
    if (isSymbolConstructor) {
      constructor = compiler.symbolValidatedConstructor;
      callStructure = compiler.symbolValidatedConstructorSelector.callStructure;
    }

I'm sure there is a nicer way to handle this than hardcoding it in the compiler, but we have to do something equivalent.  @asgerf @rakudrama @sigmundch

The underlying issue is that the const Symbol constructor is not really const at all because it performs computation to validate the input string.  dart2js sees a dummy const constructor declaration but just compiles something else instead.
Though it's kind of fishy there isn't a simple way around it so I'll duplicate this behavior.


.cke_skin_kama { margin-left: 20%; } makes style picker strange

I tried this css, it works well, but make stype picker strange.
.cke_skin_kama {
margin-left: 20%;
}
And I tried
#cke_page_content {
float: left;
}
It seems  a better way for active admin

Hi,
I looked into this some more and found a proper solution. Put this in your active_admin.css.scss:
#wrapper .cke_skin_kama {
	margin-left: 20%;
}

I will update the readme soon.


Some addtion to Table doc page

Some explantions and one example of Table.isFullwidth use in the Table Doc page.
Feel free to merge it.
Regards;
Edouard

Thanks you :)


cps/spec: rework varargs rewrite

Mostly moving code around, but the difference is that brackets
are now kept when the node being rewritten is not the last node
or when the call node is a binary/unary call.
Fixes the issue @disruptek sent on IRC and a bunch more.

Nice; the tests are 10x the value of the code.  :kissing_heart:


Compiling from source not working

Running go get -u github.com/heroku/force produces an error:
github.com/ddollar/config/windows.go:8: (*Config).homeDirectory redeclared in this block
	previous declaration at github.com/ddollar/config/posix.go:9

This is typically a configuration error related to GOPATH.
Type the following into your terminal window:
go env

You should get something similar to this:
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/dcarroll/go:/Users/dcarroll/Documents/Projects/goforce/mergeplace/force"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

Give a try and post what you get.

Thanks for the reply, @dcarroll. I thought my env was properly set up.

Yes. Though I see that github.com/ddollar/config hasn't change for a while. Initially I thought there might be a problem with the dependencies, but it might just be my environment. Feel free to close this issue if you cannot reproduce it.

I was able to compile it once with go get -u github.com/heroku/force after completely wiping out the github.com/ddollar/config project from the pkg and src directories. It seems like once you have the source code there, you get the error.
The error itself makes sense, as a function with the same signature and in the same package is declared twice (once in windows.go and once in posix.go).
For reference, this seems to be the same issue reported at https://github.com/heroku/force/issues/130.

Here is a link to the go get command to understand why -u solved this issue.
https://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies
As to the fact that the error makes sense, this link should illustrate that this is a valid approach to go.
http://golang.org/pkg/go/build/#hdr-Build_Constraints

If I read http://golang.org/pkg/go/build/#hdr-Build_Constraints correctly, the problem is that the file is named "windows.go" but implicit build constraints only kick in when the os/arch is preceded by an underscore:
$ pwd
/Users/mburr/go/src/github.com/ddollar/config
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
$ go get .
github.com/ddollar/config
./windows.go:8: (*Config).homeDirectory redeclared in this block
previous declaration at ./posix.go:9
$ mv windows.go _windows.go
$ go get .
$

I ran into the same issue trying to build from source. I resolved it by removing "windows.go" from the project, as suggested by another commenter. I am building on MacOS.

A better solution is to add the build constraint
// +build windows
On Thu, Aug 13, 2015 at 11:14 AM, ccotofana<EMAIL_ADDRESS>wrote:

I ran into the same issue trying to build from source. I resolved it by
removing "windows.go" from the project, as suggested by another commenter.
I am building on MacOS.
—
Reply to this email directly or view it on GitHub
https://github.com/heroku/force/issues/138#issuecomment-130785491.

--
Thanks,
Dave


file output + stdout would be nice. maybe "verbose" command?

It would be nice having the option to export it into a text file while getting the same output printed to my console. Right now it's only one option at a time possible, right?

That’s what tee is for.
On Tue, Jul 10, 2018, 12:46 SimoniusVonZyrene<EMAIL_ADDRESS>wrote:

It would be nice having the option to export it into a text file while
getting the same output printed to my console. Right now it's only one
option at a time possible, right?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bramus/mixed-content-scan/issues/74, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAFAFpydJTod5RTB4_J0LqYzheSPlU64ks5uFIYcgaJpZM4VJLWy
.


Parse scale denominator

Important: This PR builds upon open PR #39. So please wait with merging until the other one was merged.
geostyler-openlayers-parser is now able to parse scaleDenominator in writeStyle. OlParserStyleFct checks the current scale and returns only those styles where the current scale lies within specified scaleDenominator(s).
MinScale is inclusive, MaxScale is exclusive.

@terrestris/devs open for review


FIX type naming

Proposing different naming, we should avoid prefixing as it's useless. I would maybe just leave it for too generic things like DB. But HTTPMethod should be okay especially because it is an enum inside a class (ClassName.HTTPMethod)
@joanromano @zzarcon overall very cool job, I have some changes in mind for the DB but that will come after. Awesome.

:+1:

+1 also we may want to avoid all that duplicate code and rename the method... Since that method actually intercept or spoof or find a proper name...
spoof(.GET, "/users/:id") {...}

@MP0w that was also my first idea but @zzarcon claims the API would be more idiomatic that way

Don't agree, you would have to call delete() even if actually is not deleting anything. Same for get() you don't get anything...

I also agree with @zzarcon but I come from a different world than you guys :wink:

I KNEW this discussion was going to happen :tada:


chore: export rollup types from dep-types (fix #12270)

Description
fix #12270

export origin rollup types from vite/dep-types/rollup.d.ts
change initial dep-types to bundled-types

Additional context

What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[ ] Documentation update
[x] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the PR Title Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.

Hey @sun0day! We discussed the PR in today's team meeting at the end we decided that the best approach is to export all types as a namespace, export * as Rollup from 'rollup'; in Vite's index.d.ts
The rationale is that it avoids the need for a new exported path (that as we saw, it wasn't easy to define), and it isn't bad that the imported types would end up being more explicit Rollup.
We would also like to export other deps types in the same way (for example the ones for Chokidar), and in a future major remove the flat exports we have for them. The types for Terser require extra attention as we are no longer bundling them, but we should be able to do the same. And we also discussed exposing Esbuild types but the consensus there was to wait until we have a feature request for them with a real use case.
I think we don't need to rename dep-types to bundled-types now either (it sounds like a better name for me but there isn't enough justification for the change now). Let us know if you would like to work on this PR, or we can take it over if not. Thanks for your patience with these changes!

That's ok. I'd love to continue working on this pr.  So I just need to add export * as Rollup from 'rollup'; in Vite's index.d.ts in this PR ? Or maybe you can offer me a  list of dep-types to export as namespaces?

I think we could do this in several PRs.

One to expose Rollup, that could be this one.

Then another one to expose as a namespace the types of the bundled deps we have exposed as flat named exports. So here:

// dep types
export type {
  AliasOptions,
  MapToFunction,
  ResolverFunction,
  ResolverObject,
  Alias,
} from 'dep-types/alias'
export type { Connect } from 'dep-types/connect'
export type { WebSocket, WebSocketAlias } from 'dep-types/ws'
export type { HttpProxy } from 'dep-types/http-proxy'
export type {
  FSWatcher,
  WatchOptions,
  AwaitWriteFinishOptions,
} from 'dep-types/chokidar'
export type { Terser } from 'dep-types/terser'
export type { RollupCommonJSOptions } from 'dep-types/commonjs'
export type { RollupDynamicImportVarsOptions } from 'dep-types/dynamicImportVars'
export type { Matcher, AnymatchPattern, AnymatchFn } from 'dep-types/anymatch'

It looks like Connect, HttpProxy, and Terser are already using a namespace.
We would need to do the same for WS, Chokidar, RollupCommonJS, RollupDynamicImportVars (we can discuss if we should add Plugin in the name or not)
I'm not sure about Anymatch (we are renaming Matcher in it), and Alias should be RollupAlias.* I think. cc @bluwy

Later on a PR to remove the named exports.

Cool. I'd love to work on these 3 PRs.


Add MCoyoneda

Sometimes it can be difficult to implement an MFunctor instance for a given type due to the lack of a Monad constraint on the result type of hoist. Especially if you only have access to what is exported in the API for that type (e.g. 1, 2). However this can be worked around using a coyoneda construction like this (from my answer in the second link):
{-# LANGUAGE RankNTypes, GADTs #-}

import Control.Monad.Morph

-- Slightly weaker than MFunctor due to the monad constraint on n.
class MFunctor' t where
  hoist' :: (Monad m, Monad n) => (forall b. m b -> n b) -> t m a -> t n a

data MCoyoneda t n a where
  MCoyoneda :: Monad m => (forall b. m b -> n b) -> t m a -> MCoyoneda t n a

liftMCoyoneda :: Monad m => t m a -> MCoyoneda t m a
liftMCoyoneda = MCoyoneda id

lowerMCoyoneda' :: (MFunctor' t, Monad n) => MCoyoneda t n a -> t n a
lowerMCoyoneda' (MCoyoneda f tma) = hoist' f tma

-- The result is actually slightly stronger than 'MFunctor', as we do not need
-- a monad for 'm' either.
hoistMCoyoneda :: (forall b. m b -> n b) -> MCoyoneda t m a -> MCoyoneda t n a
hoistMCoyoneda f (MCoyoneda trans tma) = MCoyoneda (f . trans) tma

instance MFunctor (MCoyoneda t) where
  hoist = hoistMCoyoneda

Would this be a useful addition to mmorph?

The only suggestion I'd make is to not add the MFunctor class (mainly because I'd like to avoid type class proliferation) and instead replace lowerMCoyoneda with another function which I'm calling withCoyoneda:
{-# LANGUAGE RankNTypes                #-}
{-# LANGUAGE ExistentialQuantification #-}

import Control.Monad.Morph

-- Minor simplification to use just `ExistentialQuantification`
data MCoyoneda t n a =
    forall m . Monad m => MCoyoneda (forall b . m b -> n b) (t m a)

liftMCoyoneda :: Monad m => t m a -> MCoyoneda t m a
liftMCoyoneda = MCoyoneda id

withCoyoneda
    :: (forall m .   For example, if you supply withCoyoneda with hoist, then you get this inferred type:
>>> :type withCoyoneda hoist
withCoyoneda hoist :: MFunctor t => MCoyoneda t n a -> t n a

... but if you supply withCoyoneda with hoist' then you get this inferred type:
>>> :type withCoyoneda hoist'
withCoyoneda hoist'
  :: (MFunctor' t, Monad n) => MCoyoneda t n a -> t n a

That then would let you keep MCoyoneda in mmorph but you could define MFunctor' separately and supply your hoist' function to withCoyoneda


feat Support tablesample in new optimizer

Proposed changes
Add table sample support like such SQL:
select * from test_table_sample_tbl tablesample(4 rows);
select * from test_table_sample_tbl t tablesample(20 percent);
select * from test_table_sample_tbl t tablesample(20 percent) repeatable 2;

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 48.18 seconds
stream load tsv:          551 seconds loaded<PHONE_NUMBER>9 Bytes, about 129 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          64 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          29.4 seconds inserted 10000000 Rows, about 340K ops/s
storage size:<PHONE_NUMBER>8 Bytes

run buildall

run buildall

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 46.12 seconds
stream load tsv:          528 seconds loaded<PHONE_NUMBER>9 Bytes, about 135 MB/s
stream load json:         21 seconds loaded<PHONE_NUMBER> Bytes, about 107 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          32 seconds loaded 861443392 Bytes, about 25 MB/s
insert into select:          29.1 seconds inserted 10000000 Rows, about 343K ops/s
storage size:<PHONE_NUMBER>3 Bytes

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 46.91 seconds
stream load tsv:          536 seconds loaded<PHONE_NUMBER>9 Bytes, about 133 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          29.0 seconds inserted 10000000 Rows, about 344K ops/s
storage size:<PHONE_NUMBER>2 Bytes

run buildall

run buildall

run buildall

run buildall

run buildall

could you add some explanation about the above sqls?
is "tablesample " keyword?
what is "repeatable" in the last sql?

could you add some explanation about the above sqls? is "tablesample " keyword? what is "repeatable" in the last sql?

This function is already implemented by legacy optimizer, you should find this informatioi

could you add some explanation about the above sqls? is "tablesample " keyword? what is "repeatable" in the last sql?

This function has already been implemented in legacy planner, more detailed description could be found here: https://github.com/apache/doris/pull/10170

run buildall

run buildall

run buildall


Declare functions using Cstubs.foreign

Currently, they're not declared, which leads to compiler warnings like:
src_gen/x_import_stubs.c: In function '_1_x_session_new':
src_gen/x_import_stubs.c:5:11: warning: implicit declaration of function 'x_session_new' [-Wimplicit-function-declaration]
    struct XSession* x83 = x_session_new();
           ^
src_gen/x_import_stubs.c: In function '_1_x_session_new':
src_gen/x_import_stubs.c:5:37: warning: initialization makes pointer from integer without a cast [enabled by default]
    struct XSession* x83 = x_session_new();
                                     ^

It would be great if all ctypes-generated code built with -Wall -Werror.

There are more of these, e.g. with Cstubs_inverted:
src_gen/x_export_stubs.c:86:30: warning: 'struct XEvent' declared inside parameter list [enabled by default]
                              uint64_t x55)
                              ^
src_gen/x_export_stubs.c:86:30: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]

Again with Cstubs_inverted and void return values:
src_gen/x_export_stubs.c: In function 'begin_render_frame':
src_gen/x_export_stubs.c:34:10: warning: unused variable 'x3' [-Wunused-variable]
    value x3 = caml_callbackN(x2, nargs, locals);
          ^

This seems to be all for gcc-4.8 and -Wall.

We should aim to avoid warnings in generated code, so the unused variable / void return value warning needs to be fixed.
To bring the function prototypes into scope in Cstubs-generated code the bindings author should arrange for the appropriate headers to be included in the generated code.  It'd be a significant loss of safety for Cstubs to include prototypes instead -- for example, suppose that you're binding to a function
int foo(int, int)

and you mistakenly bind it as
let foo = foreign "foo" (int @-> returning int)

If you compile against a header with a prototype of foo then the C compiler will complain.  If instead ctypes were to include the prototype int foo(int) in the output then the generated code would build without errors and the program would fail at runtime.

It would be great if all ctypes-generated code built with -Wall -Werror.

Agreed.  Treat anything that doesn't as a bug is a reasonable starting point, although there's always a possibility that we'll run into a perverse case.

Hm, you're right. It does not necessarily make sense to use headers in my case, but it's a bit special and probably irrelevant for most uses of ctypes.

Getting -Wunused-parameter on argc when generating the stubs for functions with more than 5 parameters.
Comes from here. Can be avoided by adding void(argc).


shop.js kills my custom js files and throw error

Bug Report

Please clarify what I should do so if I don't want to use shop.js. I read the shop.js.license and put exactly the same packages in the code, but no matter what I do, if shop.js is not in use, the vue components not show up, but if I use it, everything else breaks (like filter.js, etc) and has this error.
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'protocol') at shop.js:2:208607

Hi there,
If you don't want to use the shop.js file then you can replace the shop.js file with your custom js file in the blade file. And make sure all the components should be imported in your custom js file which is imparted in shop.js.

Hi there,
If you don't want to use the shop.js file then you can replace the shop.js file with your custom js file in the blade file. And make sure all the components should be compatible in your custom js file which is used in shop.js.

Please check the video it is more simple way for tell you what is my problem: https://watch.screencastify.com/v/boSPfvpIO6NKioA0yGhs
I don't know what packages need for this component for working without custom.js.

I already check what packages are included the bundle: shop.js.LICENSE.txt but when I added for my master.blade still not working just when is use shop.js (but it is conflicted my js)

Short, I would like to use some defaults vue.component like (layered-navigation, filter-attribute-item) but are only working when I use  in my master.blade.php.
BUT I don't want to use because has too many unnecessary js for me (and breaks my template js). I would like to use just necessary js (vue, vue-class-component) I guess. How can I import my master.blade.php or how can I build "my shop.js".

up.

Have you loaded Vue JS, as for running the component you needed to load up the Vue JS which shop.js is doing,
https://github.com/bagisto/bagisto/blob/master/packages/Webkul/Shop/src/Resources/assets/js/app.js#L2
May be some dependency got broken as yu are doing customization. So please check.

Have you loaded Vue JS, as for running the component you needed to load up the Vue JS which shop.js is doing, https://github.com/bagisto/bagisto/blob/master/packages/Webkul/Shop/src/Resources/assets/js/app.js#L2
May be some dependency got broken as yu are doing customization. So please check.

This issue exists even in your default theme! (refer to screenshot) Why would u guys close the issues without proper inspection or support?

Have you loaded Vue JS, as for running the component you needed to load up the Vue JS which shop.js is doing, https://github.com/bagisto/bagisto/blob/master/packages/Webkul/Shop/src/Resources/assets/js/app.js#L2
May be some dependency got broken as yu are doing customization. So please check.

This issue exists even in your default theme! (refer to screenshot) Why would u guys close the issues without proper inspection or support?

Did u solve your problem?

Have you loaded Vue JS, as for running the component you needed to load up the Vue JS which shop.js is doing, https://github.com/bagisto/bagisto/blob/master/packages/Webkul/Shop/src/Resources/assets/js/app.js#L2
May be some dependency got broken as yu are doing customization. So please check.

Hi, we have the same problem, can you explain please how include our vue.js files in our pages without mistakes, when i include my file with @extends('shop::layouts.master) and so on it doesn't work at all.

Hi there,
If you don't want to use the shop.js file then you can replace the shop.js file with your custom js file in the blade file. And make sure all the components should be compatible in your custom js file which is used in shop.js.

Please check the video it is more simple way for tell you what is my problem: https://watch.screencastify.com/v/boSPfvpIO6NKioA0yGhs
I don't know what packages need for this component for working without shop.js.

I already check what packages are included the bundle: shop.js.LICENSE.txt but when I added for my master.blade still not working just when is use shop.js (but it is conflicted my js)

Hi, did you solve your problem i have the same trouble but i don't know how to solve it, @extends('shop::layouts.master) break my vue.js files

Hi there,
See we have made sets of dependencies as per the requirement, but in your case, if you do not want to use that you can customize and rebuild your compiled files as per your need from here,
https://github.com/bagisto/bagisto/blob/master/packages/Webkul/Shop/src/Resources/assets/js/app.js
And for ui packages, you can remove them from here,
https://github.com/bagisto/bagisto/blob/master/packages/Webkul/Ui/src/Resources/assets/js/app.js
And if you do not want to edit the package file then you can just override the master file and use your custom-compiled JS by copying the above one.

Have you loaded Vue JS, as for running the component you needed to load up the Vue JS which shop.js is doing, https://github.com/bagisto/bagisto/blob/master/packages/Webkul/Shop/src/Resources/assets/js/app.js#L2
May be some dependency got broken as yu are doing customization. So please check.

This issue exists even in your default theme! (refer to screenshot) Why would u guys close the issues without proper inspection or support?

n

Have you loaded Vue JS, as for running the component you needed to load up the Vue JS which shop.js is doing, https://github.com/bagisto/bagisto/blob/master/packages/Webkul/Shop/src/Resources/assets/js/app.js#L2
May be some dependency got broken as yu are doing customization. So please check.

This issue exists even in your default theme! (refer to screenshot) Why would u guys close the issues without proper inspection or support?

Did u solve your problem?

this issue is still remain.

Hi there,
If you don't want to use the shop.js file then you can replace the shop.js file with your custom js file in the blade file. And make sure all the components should be compatible in your custom js file which is used in shop.js.

Please check the video it is more simple way for tell you what is my problem: https://watch.screencastify.com/v/boSPfvpIO6NKioA0yGhs
I don't know what packages need for this component for working without shop.js.

I already check what packages are included the bundle: shop.js.LICENSE.txt but when I added for my master.blade still not working just when is use shop.js (but it is conflicted my js)

Hi, did you solve your problem i have the same trouble but i don't know how to solve it, @extends('shop::layouts.master) break my vue.js files

I can't figure how can I add vue && requirement vue-components but I fixed my custom jQuery functions for work..

And one more thing, in the latest version we are removing the default theme. So, for all the support you needed for the legacy things, you can contact Webkul and that will be paid.

I can't use default theme && this issue is still exist.


WIP: InputService Cleanup + KeyBinding Support

I've broken this PR into a few stages to help make it a bit easier to review.  Please let me know if you have any questions or concerns.
29e3768

Removed some classes related to the previous hook implementation.
Removed the HotkeysService.
There is now an InputManager which provides a basic method of starting an input hook thread of a designated type.
MouseManager and KeyboardManager define the hook processing callback and manage/fire input events based on queued input.
InputService now contains mostly just a reference to each of the managers (GameService.Input.Keyboard & GameService.Input.Mouse).

7ba030b

Removed NOMOUSEHOOK from the default list of defined compiler constants.
Updated all of the primary Controls that needed to have signatures and more updated to match the new InputService implementation.

bb5425e

Added support for KeyBindings.
KeyBindings, if enabled, will listen for their combination to be pressed and will fire an event when that combination is completed.
KeyBindings are implemented similar to how GW2 does them where they are a combination of a modifier key (Control, Shift, or Alt) and a primary key (and other key).
KeyBindings can have a modifier key as the primary key if the modifier key is set to None.
KeyBindings don't currently support blocking the last key press in the combination, as that was not necessary for what is needed at this time.  Support for blocking or "exclusive" keybindings will come down the road.

3094d8b

Converted some of the code for the HotkeyAssignmentWindow and HotkeyAssigner controls to reference KeyBinding instead of Hotkey and commented out some code that would need significant reworks.
Since these will likely both get replaced with Views, much of this will be replaced anyways.

309ea7d

Created a new static class containing the beginnings of a reference to the built-in keybindings for other modules and services to listen to.
Currently just has "Interact/Action key."
Can be found under Common.Gw2.KeyBindings (e.g. Common.Gw2.KeyBindings.Interact).
Let me know if you feel there is a better place for this.

This PR allows for me to move forward with the TacO behavior implementation.
BREAKING CHANGES
The Killproof module referenced an undocumented field on the previous implementation of the InputService which caused the hook to block in the callback.  This field was affectively noop'd to resolve the issue previously, but this new InputService no longer exposes this field and will cause the Killproof module to crash when loaded.  If approved, I'll need to get a PR in the Killproof module to ensure this reference is removed.

I am not sure how much stuff gets reworked anyway when you move over to Views, so I just marked everything that I found and wasn't commented out.

Still WIP while I do some further benchmarking on the keybind lookups.

Found that right-click events don't appear to be working as expected.  I expect this is likely a mixup when differentiating right-clicks for the camera and those that are made within UI elements.  _cameraDragging (which causes Update() to exit early) is likely getting set to true for all right-clicks instead of just for those outside of the UI.

I'm going to work on the Killproof module now to remove the incompatible field reference now.

I'm going to work on the Killproof module now to remove the incompatible field reference now.

This has now been fixed in this copy of the module: https://github.com/blish-hud/KillProof-Module
I need to update it a bit to change how it mentions needing updates since right now it checks the old repo for the last build version and reports there is a new build available if the version number is different.

I'm going to work on the Killproof module now to remove the incompatible field reference now.

This has now been fixed in this copy of the module: https://github.com/blish-hud/KillProof-Module
I need to update it a bit to change how it mentions needing updates since right now it checks the old repo for the last build version and reports there is a new build available if the version number is different.

https://github.com/blish-hud/KillProof-Module/commit/5abb333150644c4a637a7f96edc6fb4419b9215c now reflects these needed changes in Release v1.4.3.


MR approvers not working in some cases

In several latest Gitlab releases, Gitlab doesn't support the "approvers" endpoint which gitlabform has historically been using to manage approvers... and then also approver rule (a single one).
That endpoint is no longer available on Gitlab 13, 14, 15 and I'm aware that https://github.com/gitlabform/gitlabform/pull/176 is unlikely to be merged in. It's unfortunate yet completely understandable  - if this functionality isn't essential for the author and community hasn't managed to provide a fix (well, myself included), it's only fair.
I wonder though, could it be useful perhaps to remove managing approvers from the feature list and mark using approvers + approver_group keys as obsolete? As it is, running Gitlabform accepts them but any configuration given has no effect.

Hi @weakcamel!
I am surprised that you write that it doesn’t work because we are using this at Egnyte with semi-latest GitLab and we do run the acceptance tests for it with the latest GitLab.
Perhaps the problem is that we use an old GitLab license for all of these purposes and it allows only a single approver rule?
We will upgrade to the Premium license in a month or two so then I can test and fix the bug.
If you or anyone wants to help make it happen faster then you either would have to share you license (it is allowed for dev purposes) securely with this project or just provide a PR with the fix.
Whatever we will do please know that this feature is NOT abandoned and will be working again. :)

Hello,
I've just checked again. Sorry for a false alert (again), it does seem to work if you use remove_other_approval_rules (although I was 99.99% sure I tested that with this flag as well - maybe just at the wrong level in Yaml tree?).

Perhaps the problem is that we use an old GitLab license for all of these purposes and it allows only a single approver rule?

The approvers endpoint has been removed in 13.11 (https://gitlab.com/gitlab-org/gitlab/-/blob/master/CHANGELOG-EE.md#13110-2021-04-22) and I thought gitlabform was using that, but no longer - that was my wrong assumption.
I just ran gitlabform with -d against a project and fiddled with Gitlab's UI and I think I know a bit more about what's happening: if you remove all custom rules, there's still one applying to "Any eligible approver" which you can't remove from the UI, but can with REST API:

After deleting the rule with REST, this UI element is still there, just showing 0. After adding remove_other_approval_rules: true this works quice nicely now. I'm really confused what I was doing wrong before!
I'm going to apply my changes to multiple projects now and verify. If there are any new findings, I'll post them here.

I know now what happened: what I was initially trying to achieve is reset the approvals to this single "Any eligible user" group
I tried that by providing:
  projects_and_groups:
  'mygroup/*':
    merge_requests:
      approvals:
        approvals_before_merge: 1
        reset_approvals_on_push: false
        merge_requests_author_approval: true
        disable_overriding_approvers_per_merge_request: true
      approver_groups: []
      remove_other_approval_rules: true

but that created me an empty approval rule:

So I removed the approver_groups key entirely but then gitlabform simply doesn't process this at all, whether remove_other_approval_rules is true or false.
Is there perhaps some special syntax in which one can remove the custom rules entirely?

Do I get it right that you want to keep the default "Any eligible user" rule with "Approvals required" set to approvals_before_merge value and not add the Approvers (configured using GitLabForm) rule at all, @weakcamel?

I would have to check what are the options to restore the default „any eligible dev” approval rule with the API and we should come up with a proposal for config syntax that would result in it. Any suggestions about the latter, @weakcamel?

How I got to the desired state was to remove all custom rules set and then set 1 in the UI for the built-in.
The built-in rule is tricky; it doesn't show in the Gitlab's UI unless the value for number of approvers was changed from the default 0; this means gitlabform might need to just delete all rules entirely and create this one back.
I was able to put it back in with python-gitlab:
$ gitlab project-approval-rule create --project-id group/project --approvals-required 1 --name 'All Members'
id: 667
$ gitlab -o json project-approval-rule list --project-id group/project
[{"id": 667, "name": "All Members", "rule_type": "any_approver", "eligible_approvers": [], "approvals_required": 1, "users": [], "groups": [], "contains_hidden_groups": false, "protected_branches": []}]

In debug mode to show the REST API:
$ gitlab -d project-approval-rule create --project-id group/project --approvals-required 1 --name 'All Members'
send: b'POST /api/v4/projects/group%2Fproject/approval_rules HTTP/1.1\r\nHost: gitlab.example.com\r\nUser-Agent: python-gitlab/3.6.0\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\nPRIVATE-TOKEN: <REDACTED>\r\nContent-type: application/json\r\nContent-Length: 50\r\nAuthorization: Basic <REDACTED>\r\n\r\n'
send: b'{"name": "All Members", "approvals_required": "1"}'
reply: 'HTTP/1.1 201 Created\r\n'
header: Server: nginx
header: Date: Mon, 04 Jul 2022 09:05:54 GMT
header: Content-Type: application/json
header: Content-Length: 183
header: Connection: keep-alive
header: Cache-Control: max-age=0, private, must-revalidate
header: Etag: W/"10ed494086d120718faec281193eecfc"
header: Vary: Origin
header: X-Content-Type-Options: nosniff
header: X-Frame-Options: SAMEORIGIN
header: X-Gitlab-Feature-Category: source_code_management
header: X-Request-Id: 01G747B1WVB3KVP78SW37SFKSB
header: X-Runtime: 0.087482
header: Strict-Transport-Security: max-age=31536000
header: Referrer-Policy: strict-origin-when-cross-origin
DEBUG:urllib3.connectionpool:https://gitlab.example.com:443 "POST /api/v4/projects/group%2Fproject/approval_rules HTTP/1.1" 201 183
id: 668

I am beginning working on this feature. For a start I would like to get feedback on a configuration syntax proposal.
The current syntax, f.e.:
    merge_requests:
      approvals:
        approvals_before_merge: 2
        reset_approvals_on_push: false
        disable_overriding_approvers_per_merge_request: true
        merge_requests_author_approval: false
      approvers:
        - user1
        - user2
      approver_groups:
        - my-group
        - my-group1/subgroup
        - my-group2/subgroup/subsubgroup
      remove_other_approval_rules: false

...would remain working for users who don't need more than 1 approval rule and related syntax complexity. The single approval rule managed this way would keep its current name - "Approvers (configured using GitLabForm)".
But the remove_other_approval_rules key would be deprecated and a more standard enforce: true key would replace it.
So the new syntax would look like this:
    merge_requests:
      approvals:
        # (no changes here)
        reset_approvals_on_push: false
        disable_overriding_approvers_per_merge_request: true
        merge_requests_author_approval: false
      approval_rules:
      	standard:
          approvals_required: 2
          name: "Regular approvers"
          groups:
            - developers
      	security:
          approvals_required: 2
          name: "Extra Security Team approval for selected branches"
          users:
            - secmember1
            - secmember2
          protected_branches:
            - sensitive-branch
        enforce: true

...where:

"standard" and "security" are just labels,
the values under these keys are like in https://docs.gitlab.com/ee/api/merge_request_approvals.html#create-project-level-rule but:

instead of "group_ids" there would be "groups" (names)
instead of "protected_branch_ids" there would be "protected_branches" (names)
instead of "user_ids" there would be "users" (names)

So to achieve what you wanted, @weakcamel, we would need to use the following config syntax:
    merge_requests:
      # (...)
      approval_rules:
      	default:
          approvals_required: 1
          name: "All Members"
          rule_type: any_approver
        enforce: true

Opinions?
cc @jimisola @amimas

The proposal looks good to me @gdubicki .
For the new syntax of setting custom approval rules:

the values under these keys are like in https://docs.gitlab.com/ee/api/merge_request_approvals.html#create-project-level-rule but:
instead of "group_ids" there would be "groups" (names)
instead of "protected_branch_ids" there would be "protected_branches" (names)
instead of "user_ids" there would be "users" (names)

Is it more work to support/remove the usage of ids? Personally I don't think I would use the ids, but we seem to support that for advanced branch protection settings (i.e. allowed to push, allowed to merge, etc.).
https://gitlabform.github.io/gitlabform/reference/protected_branches/#premium-only-features
So, having ids would make it consistent across gitlabform syntax. That could be useful if someone is modularizing their config using yaml anchors or other setup. Or, maybe the usage of ids in branch protection gets deprecated/removed in v4.
Also, I assume this is being planned for v3. Perhaps we create a separate issue for updating the existing approval rule syntax in v4. For example, instead of the following:
      approvers:
        - user1
        - user2
      approver_groups:
        - my-group
        - my-group1/subgroup
        - my-group2/subgroup/subsubgroup

This is probably more intuitive and again keeps the overall syntax consistent with other areas of gitlabform (i.e. branch protection, members, etc.)
      approvers:
        users:
          - user1
          - user2
        groups:
          - my-group
          - my-group1/subgroup
          - my-group2/subgroup/subsubgroup

I like the proposal for approval rules syntax, it's concise and logical.
It does sound much more convenient to use group/user/branch names instead of IDs, I've not used the IDs so far though to be honest so I don't have an opinion.

Is it more work to support/remove the usage of ids? Personally I don't think I would use the ids, but we seem to support that for advanced branch protection settings (i.e. allowed to push, allowed to merge, etc.).
https://gitlabform.github.io/gitlabform/reference/protected_branches/#premium-only-features
So, having ids would make it consistent across gitlabform syntax. That could be useful if someone is modularizing their config using yaml anchors or other setup. Or, maybe the usage of ids in branch protection gets deprecated/removed in v4.

Oh, right, we do support both names and ids there. So we can easily do the same here then.

Also, I assume this is being planned for v3.

Yes, we are talking about adding this to v3.x, probably 3.2.

Perhaps we create a separate issue for updating the existing approval rule syntax in v4. For example, instead of the following:
(...)

I am not yet sure about the syntax for v4, but you are right that we should strive for consistency with the areas.

It does sound much more convenient to use group/user/branch names instead of IDs, I've not used the IDs so far though to be honest so I don't have an opinion.

It would be optional. F.e. you can use either use a field "group_ids" with numerical ids or a field "groups" with strings with the names (but not both).

I'm not that familiar with merge request approval rules to be honest. We use them but very basic configuration.
I therefore have a few questions:

The group id/names, what groups are these? Are this standard groups in GitLab (i.e. that can contain wiki, subgroups, projects etc) or some sort of user group that I've missed?
There seems to be several different levels/types of approval rules - project-level and merge request as well as general configuration and project/merge request level rule?
Project-level MR approvals: Change configuration (general) and project-level rule
Merge request-level MR approvals: Change approval configuration (general?) and merge request level rule

Do I understand it correctly that GitLabForm sets the project-level MR approval both change configuration (general) and project-level rule(s)? Ant that, the Merge request-level MR approvals ("Configuration for approvals on a specific merge request") is not set by GitLabForm and is normally set by a user in GUI when the user wants to change approval rules for a indeed specific individual MR?
I've read all comments and agree with what you have come up with so far, i.e.

@gdubicki's syntax proposal
@weakcamel input on supporting both names and ids
@weakcamel input a separate issue for updating the existing approval rule syntax (can you create the and add and link it to #331 and the corresponding wiki page?)

We've been doing some Gitlab housekeeping and reorg within my team and as it turned out, we are now very interested in having the feature of multiple approval rules (and being able to name them instead of the generic "Configured with Gitlabform" rule name).
I'm not sure I'm familiar enough with code base and inner workings of Gitlabform to contribute it as a PR, but if there's some way I could help - e.g. with testing or something else - I'll be happy to.

Thanks @weakcamel! I plan to implement this feature over the next few weeks and will release a RC version and I will appreciate testing it. :)

What @zanella is tackling in #423 made me realize that from the implementation point of view it would be easier to treat managing Merge Requests approvals split into:

approvals settings - with a SingleEntityProcessor,
approval rules - with a MultipleEntitiesProcessor,

The simplest way to do it would be to change the new syntax to this (note that merge_requests_approvals and merge_requests_approval_rules are new sections just below group/project):
    merge_requests_approvals:
      # (no changes here)
      reset_approvals_on_push: false
      disable_overriding_approvers_per_merge_request: true
      merge_requests_author_approval: false
    merge_requests_approval_rules:
      standard:
        approvals_required: 2
        name: "Regular approvers"
        groups:
          - developers
      security:
        approvals_required: 2
        name: "Extra Security Team approval for selected branches"
        users:
          - secmember1
          - secmember2
        protected_branches:
          - sensitive-branch
      enforce: true

Please try out v3.4.0rc1 with this feature and a syntax working like described above, @weakcamel. Let me know what you think!

When running if i have
projects_and_groups:
  "*":
    merge_requests_approval_rules:
      standard:
        approvals_required: 1
        name: "All eligible users"
      enforce: true

  "config/kustomize/*":
    merge_requests_approval_rules:
      dev-uat:
        approvals_required: 1
        name: "Dev Code Review - UAT"
        groups:
          - developers
          - insights
        protected_branches:
          - uat
      devops-uat:
        approvals_required: 1
        name: "DevOps Code Review - UAT"
        groups:
          - devops
        protected_branches:
          - uat
      inf-pp:
        approvals_required: 1
        name: "Inf/DevOps Approval - PP"
        groups:
          - devops
          - infrastructure
        protected_branches:
          - pp
      inf-prod:
        approvals_required: 1
        name: "Inf/DevOps Approval - Prod"
        groups:
          - devops
          - infrastructure
        protected_branches:
          - prod
      enforce: true

The rules are created but non of the groups have been added

but removing the merge_requests_approval_rules from the top level into the sub-level it works fine

For me - so far, so good. A fairly basic scenario works fine:
$ gitlabform  --config config_multiple.yml ALL_DEFINED
🏗 GitLabForm version: 3.4.0rc1 = pre-release 🤩 (the latest stable is 3.3.0)
>>> Getting all groups and projects defined in the configuration...
:: # of groups to process: 0
:: (# of omitted groups - empty effective config: 1)
:: # of projects to process: 2
* (1/2) Processing project: very-silly-test-group-for-ldap-and-fun/test-project-2
* (2/2) Processing project: very-silly-test-group-for-ldap-and-fun/testy-project
:: # of groups processed successfully: 0
:: # of projects processed successfully: 2
:: All requested groups/projects processed successfully! ✨

Config:
---
config_version: 3
gitlab:

projects_and_groups:
  #
  # COMMON settings, applicable to all projects
  #
  '*':
    merge_requests_approvals:
      reset_approvals_on_push: false
      merge_requests_author_approval: true
      disable_overriding_approvers_per_merge_request: true
    merge_requests_approval_rules:
      enforce: true
      all_users:
        approvals_required: 1
        name: Approval by anyone in Engineering
        groups:
          - 'teams/engineering'

  'very-silly-test-group-for-ldap-and-fun/*':
    merge_requests_approvals:
      disable_overriding_approvers_per_merge_request: false
    merge_requests_approval_rules:
      owners:
        name: Approval by Cloud Team
        approvals_required: 1
        groups:
          - 'teams/cloud'
      enforce: true
  'very-silly-test-group-for-ldap-and-fun/testy-project':
    merge_requests_approvals:
      reset_approvals_on_push: true
      merge_requests_author_approval: false
      disable_overriding_approvers_per_merge_request: true
    merge_requests_approval_rules:
      others:
        name: Approval by SRE Team
        approvals_required: 1
        groups:
          - 'teams/sre'
      enforce: true

I'm going to fiddle a bit more with more complex combinations of enforce/inherit as well as the scenario mentioned in this issue in the first place ("Any eligible user")

As for the "Any eligible user" rule, I might be using it wrong or something's going on:

Using just merge_requests_approvals.approvals_required had no effect and was ignored; built-in rule was reset to "Any eligible user" but number of required approvals was 0
Adding the approvals_before_merge value resulted in a failure

The config I used:
$ gitlabform  --config config_reset.yml ALL_DEFINED
🏗 GitLabForm version: 3.4.0rc1 = pre-release 🤩 (the latest stable is 3.3.0)
>>> Getting all groups and projects defined in the configuration...
:: # of groups to process: 0
:: (# of omitted groups - empty effective config: 1)
:: # of projects to process: 2
* (1/2) Processing project: very-silly-test-group-for-ldap-and-fun/test-project-2
Error: Setting the 'approvals_before_merge' in the 'merge_requests_approvals' sections is not allowed as it is not clear which rule does it apply to. Please set it inside the specific approval rules in the 'merge_requests_approval_rules' section.

The config I used:
---
config_version: 3
gitlab:

projects_and_groups:
  #
  # COMMON settings, applicable to all projects
  #
  '*':
    merge_requests_approvals:
      reset_approvals_on_push: false
      merge_requests_author_approval: true
      disable_overriding_approvers_per_merge_request: true
    merge_requests_approval_rules:
      enforce: true
      all_users:
        approvals_required: 1
        name: Approval by anyone in Engineering
        groups:
          - 'teams/engineering'

  'very-silly-test-group-for-ldap-and-fun/*':
    merge_requests_approvals:
      disable_overriding_approvers_per_merge_request: false
    merge_requests_approval_rules:
      owners:
        name: Approval by Cloud Team
        approvals_required: 1
        groups:
          - 'teams/cloud'
      enforce: true
  'very-silly-test-group-for-ldap-and-fun/test-project-2':
    merge_requests_approvals:
      approvals_required: 1
      approvals_before_merge: 1
    merge_requests_approval_rules:
      inherit: false
      enforce: true

Hang on :) I re-visited this comment and tried that recipe.
That worked!
  ...
  'very-silly-test-group-for-ldap-and-fun/test-project-2':
    merge_requests_approval_rules:
      inherit: false
      enforce: true
      default:
        approvals_required: 1
        name: "All Members"
        rule_type: any_approver

One tiny cosmetic thing is, name doesn't really apply for such a rule, so UI won't be showing All Members anywhere. I don't think that's a problem, merely an observation.

Big thanks for the tests @Siythrun and @weakcamel!
I did also notice that transforming from the olx syntax is not working like it should too - the groups seem to not be transformed - so I definitely have some fixes to do before this goes final.

More to note is that
protected_branches:
only supports 1 branch
and should also allow for the keywords All Branches and All Protected Branches

Have you tried using applies_to_all_protected_branches: true, @Siythrun ? The „all branches” is not supported by the GitLab API but it can be implemented, sure. But I prefer to root out the bugs first and finally release this with the current set of features first.

Awesome! that works, thanks!

Please check out the new v3.4.0rc2 with the fix mentioned.

I will do my best to release a final version of v3.4.0 after this weekend (not before to not surprise you on New Year's Eve/New Year in case of some bugs remaining in the code :P).

One tiny cosmetic thing is, name doesn't really apply for such a rule, so UI won't be showing All Members anywhere. I don't think that's a problem, merely an observation.

Really? It should be visible on a MR main page, just next to the Approve button. Example for the legacy name:

but removing the merge_requests_approval_rules from the top level into the sub-level it works fine

Sorry for a delay in responding to that but I was able to reproduce your issue in https://github.com/gitlabform/gitlabform/pull/467. I haven't got this resolved yet but I am on track. :)

Sorry for missing your questions too, @jimisola, see my answers below:

The group id/names, what groups are these? Are this standard groups in GitLab (i.e. that can contain wiki, subgroups, projects etc) or some sort of user group that I've missed?

No, you haven't missed anything. These are just standard GitLab groups that can be used for so many things, but here they are used as groups of people (= their members).

There seems to be several different levels/types of approval rules - project-level and merge request as well as general configuration and project/merge request level rule?

Project-level MR approvals: Change configuration (general) and project-level rule

Merge request-level MR approvals: Change approval configuration (general?) and merge request level rule

Do I understand it correctly that GitLabForm sets the project-level MR approval both change configuration (general) and project-level rule(s)? And that, the Merge request-level MR approvals ("Configuration for approvals on a specific merge request") is not set by GitLabForm and is normally set by a user in GUI when the user wants to change approval rules for a indeed specific individual MR?

Yes, exactly.

I did also notice that transforming from the old syntax is not working like it should too - the groups seem to not be transformed - so I definitely have some fixes to do before this goes final.

This is fixed.
But for some reason the list of users as approvers has not been passed correctly in the new test, see https://github.com/gitlabform/gitlabform/actions/runs/3878237640/jobs/6614258215.
I have to fix this before I release a final version of 3.4.0, sorry.

Phew, I found the reason for the remaining test failure - see above commit.
I'll be finally releasing v.3.4.0 final just after the weekend. :)

If anyone wants to test what will most probably be in v3.4.0 final, please check out v3.4.0rc4 released a moment ago.
Please don't hesitate with sharing any issues you may find - I will release a final release asap after the weekend if no one will report any issue.

I am happy to report that the v3.4.0 with this feature has finally been released as a new stable release. 🥳
The docs are available at https://gitlabform.github.io/gitlabform/reference/merge_requests/.
Big thanks to everyone for your cooperation on this!
Please open new issues if you find any bugs in the new features.


Error with launch

Hey
thank you for the tutorial for point cloud use within ROS2 foxy. I have a few questions about pcd_demo. I have followed the steps in the readme file, and if I want to launch automatic mode I get errors:
LookupError: Could not find the resource 'pcd_publisher' of type 'packages'
And if I want to do manual start using ros2 run I get problem with dependency 'open3d', even though I have open3d installed with pip for python 3. I get the error for missing open3d:
ModuleNotFoundError: No module named 'open3d'
So I have question about the problem, is it due to colcon build or something else?
Thank you.

I haven't used this demo in a while.
I'll have a look at it when I have time to see if I can figure out what's going on. :)

@Zeleni9 Sorry for the long wait.
I have now had time to investigate this and have made some corrections to fix the lookup error.
I couldn't replicate the second error ModuleNotFoundError: No module named 'open3d'. Are you sure that you installed it using the correct pip version? It's sometimes common to have multiple version of python installed on a system.
Whats the output when you run the following commands?
dpkg -L ros-foxy-rclpy | grep /lib/python | cut -d\/ -f6 | sort -u
# and
pip --version

On my system, it outputs the first command outputs python3.8, which also happens to be the python version my pip command uses:
> pip --version
pip 21.3.1 from /home/grans/.local/lib/python3.8/site-packages/pip (python 3.8)

If this is not the case for you, you can try to install it with the correct python version:
python3.8 -m pip install open3d


please import PR from https://github.com/threefoldtech/jumpscaleX_threebot/pull/727

@zaibon can we close this one?

sorry, I'll reopen until I have time to test this properly. Last time I tried it still didn't work, but I need to test with latest code

I did try the delete node feature. This is still buggy. It seems whatever node is selected to be deleted it's always the last one from the table that gets deleted. Probably a bug in the javascript code that trigger the delete.

@DylanVerstraete was kind enough to help, he apparently knows where is the issue coming from :)

Since we added a deleted field on a node instead of deleting a node from the db the UI needs to adapt. When we fetch the nodes we should filter on those that have the deleted fields as false.
The node deletion still works but it was the table rendering that gave issues.

When you list nodes, by default node marked as deleted are not shown. So I don't think this is the problem. Or this means there is a bug and deleted node are not filtered out


Only allow keyword arguments in load_mcstas_nexus.

Loader accepts many arguments, so it'd better accept keyword arguments only.
Once sciline is released with the keyword arguments feature,
we can turn the loader into keyword-only function.

Sciline has been release.


Test commodity price

moving adrivinca/message_ix#1 to here for better communication

ok @danielhuppmann I have updated our scenario tests to have multiple test cases. For example, we can now test objective functions and carbon prices. There is a README in the directory tests/ci which explains how to run things locally (fetching the database, make the test file, etc.). Would you mind adding an integration test for the price commodity there?

will rebase this after #173 is merged

moved merge base to master, since #171 was closed

rebased following merge of #173

changing target for clean integration into all changes related to release 1.2


Upgrades: Add proposal to the repo

Add the upgrade proposal for the upgrade work we are completing in this iteration.

Closed via #323


Use ngtemplate-loader with JEST transform

Hello,
I'm new to AngularJS and I recently started working on an old codebase.
I've simplified the code in order to have the minimum required dependencies to reproduce what I'm trying to solve.
Code: https://github.com/adyz/old-angular-stuff
Install locally: npm install
Run locally: npm start
Test locally: npm test
My Webpack file has:
    rules: [

      {
        test: /\.ts$/,
        loader: "ts-loader"
      },
      {
        test: /\.ts$/,
        enforce: 'pre',
        use: [{ loader:'baggage-loader?[file].html&[file].css'  }]
      },
      {
        test: /\.html$/,
        use: [
          { loader: 'ngtemplate-loader?requireAngular' },
          { loader: 'html-loader' }
        ]
      }
    ]

With this I am able to load a HTML template using the templateUrl syntax like so:templateUrl: require('./kcd-hello.html'),
This is very nice and it works as expected.
The problem is that I want to do the same transformations or to apply the same loaders in JEST via the transform property that kind of works the same way as Webpack does, but not quite.
This is my current jest.config.js file:
module.exports = {
    "roots": ["app"],
    "moduleNameMapper": {
        "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
    },
    "transform": {
        "^.+\\.ts?$": "ts-jest",
        "^.+\\.html$": "<rootDir>/jest.htmlLoader.js"
    },
};

The ts-jest works without no artifacts, but the html-loader has a twist. You need to create a new file that requires the html-loader and it returns a process function.
Found this solution here: https://stackoverflow.com/questions/39483893/how-can-i-use-my-webpacks-html-loader-imports-in-jest-tests
That's why the "^.+\\.html$": "<rootDir>/jest.htmlLoader.js"
Now, I've tried the same thing with ngtemplate-loader but I can't seem to make this work for multiple reasons, but one bottleneck I've had is that when I do const ngtemplateLoader = require('ngtemplate-loader?requireAngular')node already gives me an error.
What would you recommend to do in this case so that my test run with the same code as in Webpack?
Could I use this as the html-loader? How can I pass the options to the ngtemplate-loader like requireAngular or other options?
If you want to see that the test pass you can change from templateUrl to template in theapp/directives/kcd-hello.ts file.
Thank you!

Did you have any success figuring this out?


I‐94 Capability to handle split seat reservations on a leg

There is a need to make it possible to give the passenger place reservations on different parts of a leg.
Use case is: The train is fully booked between leg (A - C). But there is seats available between A-B and B-C. The passenger is OK with the need of changing place at stop B.
To present this in reservation we need a change. Suggested solution could be (TBD).

Would it be an option to provide multiple reservation offers to handle this case. This would not require any changes in the messages and the handling would follow the standard flow. It would make the split also transparent for the customer at offer level so he could select another trip or offer.

Good thinking!
That could work. Two reservations has tripCoverage with different coveredSections for the same startLegId and endLegId
@.***
//Linus
From: CGantert345 @.>
Sent: Monday, October 16, 2023 3:59 PM
To: UnionInternationalCheminsdeFer/OSDM @.>
Cc: Linus Johansson @.>; Author @.>
Subject: Re: [UnionInternationalCheminsdeFer/OSDM] I‐94 Capability to handle split seat reservations on a leg (Issue #356)
Caution: This is an external email and may be malicious. Please take care when clicking links or opening attachments.
Would it be an option to provide multiple reservation offers to handle this case. This would not require any changes in the messages and the handling would follow the standard flow. It would make the split also transparent for the customer at offer level so he could select another trip or offer.
—
Reply to this email directly, view it on GitHubhttps://github.com/UnionInternationalCheminsdeFer/OSDM/issues/356#issuecomment-1764544254, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A5GHP6XKGS72KZMENTPYM4TX7U4SBAVCNFSM6AAAAAA56Z3S4WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRUGU2DIMRVGQ.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>

After more thinking. It might not be that good.
To have two reservations will give problems with the pricing. You are not supposed to pay for two places at splitting the reservation. With the fist suggested solution that problem is out of scope when the reservation part is in one record.
//Linus
From: Linus Johansson
Sent: Tuesday, October 17, 2023 8:25 AM
To: UnionInternationalCheminsdeFer/OSDM @.>; UnionInternationalCheminsdeFer/OSDM @.>
Cc: Author @.***>
Subject: RE: [UnionInternationalCheminsdeFer/OSDM] I‐94 Capability to handle split seat reservations on a leg (Issue #356)
Good thinking!
That could work. Two reservations has tripCoverage with different coveredSections for the same startLegId and endLegId
@.***
//Linus
From: CGantert345<EMAIL_ADDRESS>Sent: Monday, October 16, 2023 3:59 PM
To: UnionInternationalCheminsdeFer/OSDM<EMAIL_ADDRESS>Cc: Linus Johansson<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [UnionInternationalCheminsdeFer/OSDM] I‐94 Capability to handle split seat reservations on a leg (Issue #356)
Caution: This is an external email and may be malicious. Please take care when clicking links or opening attachments.
Would it be an option to provide multiple reservation offers to handle this case. This would not require any changes in the messages and the handling would follow the standard flow. It would make the split also transparent for the customer at offer level so he could select another trip or offer.
—
Reply to this email directly, view it on GitHubhttps://github.com/UnionInternationalCheminsdeFer/OSDM/issues/356#issuecomment-1764544254, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A5GHP6XKGS72KZMENTPYM4TX7U4SBAVCNFSM6AAAAAA56Z3S4WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRUGU2DIMRVGQ.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>

[ ] @Linus-Turnit You could have a dedicated TYPE=RESERVATION product for splitted reservation and basically calculate the price as fraction of total of price for one? Other operators may support the feature but without the discount...

Hello Linus,
the pricing for reservations is not on the individual reservation but is modelled as a fee linked to one or more reservations. So pricing is not a problem (e.g. at DB all reservations of a trip are linked to one fee).
Best regards
Clemens
Von: Linus-Turnit @.>
Gesendet: Dienstag, 17. Oktober 2023 15:32
An: UnionInternationalCheminsdeFer/OSDM @.>
Cc: Clemens Gantert @.>; Comment @.>
Betreff: Re: [UnionInternationalCheminsdeFer/OSDM] I‐94 Capability to handle split seat reservations on a leg (Issue #356)
After more thinking. It might not be that good.
To have two reservations will give problems with the pricing. You are not supposed to pay for two places at splitting the reservation. With the fist suggested solution that problem is out of scope when the reservation part is in one record.
//Linus
From: Linus Johansson
Sent: Tuesday, October 17, 2023 8:25 AM
To: UnionInternationalCheminsdeFer/OSDM<EMAIL_ADDRESS>UnionInternationalCheminsdeFer/OSDM<EMAIL_ADDRESS>Cc: Author<EMAIL_ADDRESS>Subject: RE: [UnionInternationalCheminsdeFer/OSDM] I‐94 Capability to handle split seat reservations on a leg (Issue #356)
Good thinking!
That could work. Two reservations has tripCoverage with different coveredSections for the same startLegId and endLegId
<EMAIL_ADDRESS>//Linus
From: CGantert345 @.@.mailto:***<EMAIL_ADDRESS>Sent: Monday, October 16, 2023 3:59 PM
To: UnionInternationalCheminsdeFer/OSDM @.@.mailto:***<EMAIL_ADDRESS>Cc: Linus Johansson @.@.mailto:***<EMAIL_ADDRESS>Author @.@.mailto:***<EMAIL_ADDRESS>Subject: Re: [UnionInternationalCheminsdeFer/OSDM] I‐94 Capability to handle split seat reservations on a leg (Issue #356)
Caution: This is an external email and may be malicious. Please take care when clicking links or opening attachments.
Would it be an option to provide multiple reservation offers to handle this case. This would not require any changes in the messages and the handling would follow the standard flow. It would make the split also transparent for the customer at offer level so he could select another trip or offer.

Reply to this email directly, view it on GitHubhttps://github.com/UnionInternationalCheminsdeFer/OSDM/issues/356#issuecomment-1764544254, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A5GHP6XKGS72KZMENTPYM4TX7U4SBAVCNFSM6AAAAAA56Z3S4WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRUGU2DIMRVGQ.
You are receiving this because you authored the thread.Message ID: @.@.mailto:***<EMAIL_ADDRESS>

Reply to this email directly, view it on GitHubhttps://github.com/UnionInternationalCheminsdeFer/OSDM/issues/356#issuecomment-1766427412, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANS4YNLTCCTKRVWNYEG7DOTX72CE5AVCNFSM6AAAAAA56Z3S4WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRWGQZDONBRGI.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>
Pflichtangaben anzeigenhttps://www.deutschebahn.com/pflichtangaben/20231010
Nahere Informationen zur Datenverarbeitung im DB-Konzern finden Sie hier: https://www.deutschebahn.com/de/konzern/datenschutz

There is a need to make it possible to give the passenger place reservations on different parts of a leg.
Use case is: The train is fully booked between leg (A - C). But there is seats available between A-B and B-C. The passenger is OK with the need of changing place at stop B.
To present this in reservation we need a change. Suggested solution could be (TBD).

--> additional element in the offer search required: acceptedSpecialFeatures with vaule SPLIT_RESERVATION

Turnit doesn't think it is feasible to manage split-reservations by having several reservations covering different sections of a leg.
The reservation-object describes a logical and physical reservation with product descriptions, after sales rules, price, places and so on. It is only the placeAllocation that describes the physical part, all other parts are logical related.
There is already a possibility to have a list of placeAllocations for a reservation, in specification described to handle bicycle reservation together with the seat. Another use-case is to present a product where next seat is free (actually already a case in Sweden). In that case you get one reservations with two placeAllocations.
For split-reservations there will be two placeAllocations as well with different reservationSection's covering different parts of a leg.
Our opinion is that this is a small, non required, addon to the placeAllocation object. It is only IMS's with this functionality that will return reservationSection:s and it is only returned if the productTag "SPLIT_RESERVATION" is provided in offer search from the customer. With good comments in the API it can be clear for the consumers when to handle this.
The need for split reservations can be discussed, but the seat reservation algorithm is active at booking time and optimize the reservations at that time. Closer to departure, cancellations will change the situation and suddenly a split-reservation booking is possible. With seat-maps, the algorithm is more out of control as well, even if not all free places are shown as selectable.
For Turnit one new carrier (not in Sweden) has split-booking as a requirement and since we aim to be OSDM-compliant in all our API's this is very important for us.

Decision:

Use ProductTag
Add the split as option, to be applied only in case the product tag is set
Add a comment that defined this as workaround solution for special cases and describe the already existing solution via multiple reservations in the offer.

In POST /offers

    OfferSearchCriteria:
      type: object
      additionalProperties: false
      properties:
        requestedOfferParts:
          type: array
          items:
            $ref: '#/components/schemas/OfferPartType'
        productTags:
          type: array
          items:
            $ref: '#/components/schemas/ProductTag'
          nullable: true
        flexibilities:
          description: |
            Defines the flexibility levels desired of the fares returned.
            This refers to the after sales flexibility levels as defined in IRS-90918-10
          type: array
          items:
            $ref: '#/components/schemas/Flexibility'
        travelClasses:
          description: |
            The classes returned might be different from the requested classes.
          type: array
          items:
            $ref: '#/components/schemas/TravelClass'
        serviceClassTypes:
          description: |
            The classes returned might be different from the requested classes.
          type: array
          items:
            $ref: '#/components/schemas/ServiceClassType'
          maxItems: 4
        offerMode:
          $ref: '#/components/schemas/OfferMode'
        currency:
          $ref: '#/components/schemas/Currency'

    ProductTag:
      description: |
        Known values:
        - SPLITED_RESERVATION
          Indicate for the provider that the distributor is prepared to get splitted reservations in the response
      type: string
      x-extensible-enum:
        - SPLITED_RESEVATION

GET /booking/{bookingId}


Detox hangs on "Trying permissions" on CircleCI

Describe the bug
Attempting to run tests on CircleCI results in a timeout in the beforeAll hook. Logs reveal the last successful entry is "Trying permissions".
I set the following in my init.js:
before(async () => {
  await detox.init(config, { launchApp: false })
  await device.launchApp({
    permissions: {
      notifications: 'YES',
    },
  })
})

Works perfectly locally with the same environment settings.
To Reproduce

[x] I have tested this issue on the latest Detox release and it still reproduces

Environment (please complete the following information):

Detox: 12.11.0
React Native: 0.59.5
Node: 11.13.0
Device: iPhone X
Xcode: 10.2.0
iOS: 11.4
macOS: 10.14.4

Device and Verbose Detox Logs
Provide the device and "trace" Detox logs so we can understand what happened.
  1) "before all" hook

 0 passing (2m)
  1 failing

  1) "before all" hook:
     Error: Timeout of 120000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
      at listOnTimeout (internal/timers.js:535:17)
      at processTimers (internal/timers.js:479:7)

detox[34516] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onAfterAll()
detox[34516] DEBUG: [DetoxServer.js/DISCONNECT] role=tester, sessionId=b0b44eb6-5691-d7a6-e3a3-325fe65d48ff
detox[34516] DEBUG: [DetoxServer.js/WS_CLOSE] Detox server connections terminated gracefully

I'm facing the same issue. Our circleci build is running on Xcode 10.1.0, otherwise similar config to @mglaze

Same here. Worked fine one\two weeks ago and without changing any configurations - fails with timeout on  "Trying permissions".
Circle CI config: https://github.com/RocketChat/Rocket.Chat.ReactNative/blob/37db977a22ad3da43ddd31d712e531bf8cc9ee41/.circleci/config.yml#L45
Circle CI job logs: https://circleci.com/gh/RocketChat/Rocket.Chat.ReactNative/8810

I ran into the same issue. Upgrading Detox to version 12.11.1, which has been released 4 days ago, fixed the issue for me. It apparently had to do with an old API of AppleSimUtils being used (see https://github.com/wix/Detox/releases/tag/12.11.1).
Hope this fixes your issues as well.

@thabemmz thanks! Upgrading detox to 12.11.1 solved the issue

Why is the "I have tested this issue on the latest Detox release and it still reproduces" checkbox ticked if it clearly isn't the case?


feat: adding helper script to list versions and their revisions

Adds a simple script that looks for all the flutter_release/* branches, search for their revision and prints them on the output.
Not sure if we should put that under version control or not, or if this is the best place, but I felt like an useful script to have in here. Lmk what you think
Example output:
origin/flutter_release/3.10.0 6b9b5ff45af7a1ef864038dd7d0c32b620b357c6
origin/flutter_release/3.10.1 7cd77f78a51576652edc337817152abf4217a257
origin/flutter_release/3.10.2 b7ad8d5759c4889ea323948fe589c69a39c26135
origin/flutter_release/3.10.3 d93eb3686c60b626691c8020d7353ea22a0f5ea2
origin/flutter_release/3.10.4 0b0086ffa92c25c22f50cbadc3851054f08a9cd8
origin/flutter_release/3.10.5 ba444de6ceb9313320a70563d7b6203344e0cd87
origin/flutter_release/3.10.6 03e895ee09dfbb9c18681d103f4b27671ff65429
origin/flutter_release/3.13.0 d84d466eacbeb47d6e81e960c22c6fdfe5a3917d
origin/flutter_release/3.13.1 6116674ab0d6449104f9f342d96cef0abe30a9a1
origin/flutter_release/3.13.2 402424409c29c28ed69e14cbb39f0a7424a47e16
origin/flutter_release/3.13.3 012153de178d4a51cd6f9adc792ad63ae3cfb1b3
origin/flutter_release/3.13.4 5de12cedfe6002b79183bc59af04561a98c8aa82
origin/flutter_release/3.13.5 47db6d73cfe3227129a510445dd82c45c2dbe347
origin/flutter_release/3.13.6 ef4b661ddc0c71b738432ae59c6bc573e917854b
origin/flutter_release/3.13.7 45d609090a2313d47a4e657d449ff25710abc853
origin/flutter_release/3.13.8 02454bae6bf3bef150171c9ce299279e8b875b2e
origin/flutter_release/3.13.9 a3d5f7c614aa1cc4d6cb1506e74fd1c81678e68e
origin/flutter_release/3.16.3 b9b23902966504a9778f4c07e3a3487fa84dcb2a
origin/flutter_release/3.16.4 7e92b034c5dddb727cf5e802c23cddd39b325a7f
origin/flutter_release/3.16.5 4e8a7c746ae6f10951f3e676f10b82b21d7300a5
origin/flutter_release/3.16.7 ba46e8490348d6989283c9cff2b95727f0969d04
origin/flutter_release/3.16.9 771d07b2cf97cf107bae6eeedcf41bdc9db772fa
origin/flutter_release/3.19.0<PHONE_NUMBER>d040e779463461c7c79ba08d130209
origin/flutter_release/3.19.0-0.4.pre 9d3f4fcf6f9adf1e4951e0b35adde89ca1be5899
origin/flutter_release/3.19.1 f6e79dd6ccfd36e5d2b7a289bd37cb5236c7fed7
origin/flutter_release/3.19.2 5b9d29d67adb059103beefb65710ee3dabae2f85
origin/flutter_release/3.19.3 0addba5b750987523c04ebe69e9755509369615a
origin/flutter_release/3.19.4 931d8d0d82f0c1a29731ca7601100804d09b3f33
origin/flutter_release/3.19.5 47571af6a3acdebedf88255099ff1de1c3324049
origin/flutter_release/3.19.6 4b22a31bd9911c8317319292a9a103217919649e
origin/flutter_release/3.22.0 f97740f758b5b145d687909bd09714c80875d772
origin/flutter_release/3.22.1 2f366bd7c9cdb59a1231fdb13c985be48f47149b
origin/flutter_release/3.22.2 853d13d954df3b6e9c2f07b72062f33c52a9a64b

I realized I could simply just add this bash scrip into the sql script that we will use to update the versions, closing this PR in favor of that simpler approach.


Lettable operators4

Correct lettable operators:
mergeAll
concatAll

Coverage decreased (-0.01%) to 97.466% when pulling f0b703b1f2925a20e905a5f8016688c5233e8e56 on jasonaden:lettable_operators4 into e8d8c08b356dbdf8a608745408533599f09a5ba8 on ReactiveX:master.


As a member of the public, I want to learn more about each phase of the engagement in the Engagement Phases widget (Mobile)

Same as https://app.zenhub.com/workspaces/met-ops-6254279dcfa60b0010ea5a0d/issues/bcgov/met-public/670
but vertical for mobile view.
Matches wireframes:
https://xd.adobe.com/view/d0671e99-d506-4ed5-b51e-2bf6e3fcb523-8534/screen/e2cc907c-749c-4dfb-bd1c-f4e547aa3588
https://xd.adobe.com/view/d0671e99-d506-4ed5-b51e-2bf6e3fcb523-8534/screen/8e7e58bf-1656-4336-81b9-50e1fac42fd1
https://xd.adobe.com/view/d0671e99-d506-4ed5-b51e-2bf6e3fcb523-8534/screen/17002b5b-acae-4f51-8637-f939d82f0854
https://xd.adobe.com/view/d0671e99-d506-4ed5-b51e-2bf6e3fcb523-8534/screen/deb9e27a-8344-4481-892c-305267404ad4

Hey team! Please add your planning poker estimate with Zenhub @djnunez-aot @jadmsaadaot @saravanpa-aot @VineetBala-AOT

verified & closed


[Scenario] The_Lost_Treasure_pt1

What kind of mission do you want to add (mark with an X, e.g. [X] Descent)?

[ ] Mansions of Madness
[ X] Descent

This scenario just uses the base game
What expansions does the scenario require?

[ ] Conversion Kit (CK)
[ ] First Edition (MoM1E) - Also Recurring Nightmares
[ ] Fatal Alchemy (FA) - Also Suppressed Memories
[ ] Call of the Wild (CotW) - Also Suppressed Memories
[ ] Beyond the Threshold (BtT)
[ ] Streets of Arkham (SoA)
[ ] Sunctum of Twilight (SoT)
[ ] Horrific Journeys (HJ)
[ ] Path of the Serpent (PotS)

What expansions can the scenario optionally use?

[ ] Conversion Kit (CK)
[ ] First Edition (MoM1E) - Also Recurring Nightmares
[ ] Fatal Alchemy (FA) - Also Suppressed Memories
[ ] Call of the Wild (CotW) - Also Suppressed Memories
[ ] Beyond the Threshold (BtT)
[ ] Streets of Arkham (SoA)
[ ] Sunctum of Twilight (SoT)
[ ] Horrific Journeys (HJ)
[ ] Path of the Serpent (PotS)

Please enter the GitHub Url to your scenario here
https://github.com/Neuntoter82/The_Lost_Treasure_pt1

Great, @Neuntoter82 , I will add it to the manifest.

Added to manifest and to Descent statistics.
By the way, @Neuntoter82, it would be great if you add a cover picture for this scenario. It makes it more appealing.

The cover picture is in the image folder in the package and the quest ini shows it being a thing. It has an image in the editor... Did I miss something??
Thanks again
Derek     On Friday, February 10, 2023, 12:37:55 PM EST, Vidimus @.***> wrote:
Added to manifest and to Descent statistics.
By the way, @Neuntoter82, it would be great if you add a cover picture for this scenario. It makes it more appealing.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Hello, @Neuntoter82 , you nees to add the picture on the repository as well. Otherwise, the picture is not shown on the scenario list, even if you can see it when clicking on the scenario and watch the scenario briefing

Thank you for pointing that out. I uploaded the image. Thanks again.     On Friday, February 10, 2023, 06:54:24 PM EST, Vidimus @.***> wrote:
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Nice, could you close this issue, please?


Registry path is not correct

[
At the page end, it mentioned registry path, but it seems like it missed "Cloud" in the path.
For example, the document use "HKEY_CURRENT_USER\Software\Policies\Microsoft\office\16.0\common\privacy".
But when I did test, I found the registry is "HKEY_CURRENT_USER\Software\Policies\Microsoft\Cloud\office\16.0\common\privacy"
Please help double confirm.
]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ef4debee-6a1e-53c7-7bec-2dbd208f4f2d
Version Independent ID: b93ad6a2-0976-6f5f-7aae-1756079bdc1d
Content: Use policy settings to manage privacy controls for Microsoft 365 Apps for enterprise - Deploy Office
Content Source: DeployOffice/privacy/manage-privacy-controls.md
Service: o365-proplus-itpro
GitHub Login: @DHB-MSFT
Microsoft Alias: danbrown

@FullStackEngN -- Did you use Office cloud policy service to configure & apply the policy setting? The Office cloud policy service writes settings to the \Cloud\ location in the registry, whereas Group Policy writes settings to the other location listed in the article.

You are right, I test local GPO and it's in the path mentioned in the document.
Thanks. We can close this question.


Revert "Assert golden files use the right extension"

Reverts flutter/flutter#99016

The original PR caused this test to fail: https://ci.chromium.org/ui/p/flutter/builders/prod/Mac tool_integration_tests_2_4/3362/overview


Result file gets detected as Trojan by Microsoft Windows Defender

The resulting HTML file is detected as a Wacatac Trojan by Microsoft Defender, while not very believable due to many false positives by Microsoft Defender, this is still making the project suspicious in its safety

https://github.com/sixem/ivfi-php/issues/48#issuecomment-2049867952
appears to be a false positive that tends to happen with any file that has JavaScript in it. not much I can do on my end


Support automatically reload when config file changes

We are developing a eth staking infrastructure, using web3signer for signatures, and it looks great. It has been running stable for six months in mainnet.  There is a small feature that we hope to implement, since our environment is in k8s. When we have a new user staking eth, we will modify the configmap and the final application time to the container is uncertain. We have to poll to call the interface that queries the load key and call /reload manually. So is it possible to listen to the configuration file via fsnotify(I am not a Java expert, this is a Go -based open source library) or some technique that allows web3signer to automatically reload when changes occur?
Relevant issue: #689
Kubernetes: https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/
configMapAndSecretChangeDetectionStrategy

Thank you for opening this issue. We are currently working on Shanghai/Capella upgrade, so after those upgrades we'll prioritize this issue accordingly. But in the meantime if you had other feedback on web3signer, please feel free to reach out on Discord or GitHub.

Thank you for opening this issue. We are currently working on Shanghai/Capella upgrade, so after those upgrades we'll prioritize this issue accordingly. But in the meantime if you had other feedback on web3signer, please feel free to reach out on Discord or GitHub.

Thank you for opening this issue. We are currently working on Shanghai/Capella upgrade, so after those upgrades we'll prioritize this issue accordingly. But in the meantime if you had other feedback on web3signer, please feel free to reach out on Discord or GitHub.

Related to  https://github.com/ConsenSys/web3signer/issues/512

Related to  https://github.com/ConsenSys/web3signer/issues/512


Refactor automountServiceAccountToken

Refactor automountServiceAccountToken audit to use proper error messages instead of numbers.

@csgregorian You forgot to add the test for ASAT4 in autom.._test.go. ASAT4 is missing for rest of resources like DaemonSet etc.


should scroll of post route be synced with image gallery navigation

:tada: This issue has been resolved in version 1.0.0-dev.1 :tada:
The release is available on:

GitHub release
v1.0.0-dev.1

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.0.0 :tada:
The release is available on:

v1.0.0
GitHub release
v1.0.0

Your semantic-release bot :package::rocket:


Error "simple-bar-index.jsx: Something went wrong..." with custom yabaiPath

After modifying the yabaiPath variable in index.jsx to "/opt/homebrew/bin/yabai", I encounter an error message at the top of my screen that reads "simple-index.jsx: Something went wrong...". This error is occuring no matter what I do. I am on a m2 air.

Did you use the correct yabai path? It should be the output of which yabai.

Yes it is correct, I ran which yabai and it matches the path I have in index.jsx.

same error (m3 sonoma)

I had to update it here as well
https://github.com/Jean-Tinland/simple-bar/blob/master/lib/settings.js#L529

This is weird as the line you referred in your message is the default setting which should be overridden by this setting:

I'll let you close this issue if everything is working fine now :)