Remove organisations from whitehall frontend

I found this old branch of whitehall.  It changed the rendering app for org pages from
    def rendering_app
      if court_or_tribunal?
          The branch was never merged.
Since then, the rendering app change was made in #4864, but the frontend code was never deleted.

Trello card

@sihugh Is any of this frontend code still needed?  Or was removing it just missed in the other PR?

It seems there are still a fair few requests hitting these pages because of the prefix routing, eg:

/government/organisations/ministry-of-justice/about.html (different page to /government/organisations/ministry-of-justice/about)
/government/organisations/uk-visas-and-immigration%20 (different page to /government/organisations/uk-visas-and-immigration)

@thomasleese Do we want to put something in place to redirect the bad URLs, or do we just accept that they're going to start 404ing?  We're not ensuring feature parity between collections and whitehall-frontend, so they're already broken in a sense.
I've checked that paegs like https://www-origin.integration.publishing.service.gov.uk/government/organisations/nuclear-decommissioning-authority/about.cy and https://www-origin.integration.publishing.service.gov.uk/government/organisations/medicines-and-healthcare-products-regulatory-agency/email-signup still work with this branch

I don't think we need to put in redirects.
This feels like something we're going to hit more and more as we move things over to Collections, and staying on top of it seems like an impossible task. Getting rid of the /government prefix route is a long term goal of this migration, and adding redirections for this will make that harder.

  The /courts-tribunals page is still rendered from whitehall.
I wanted to remove all this when I could get rid of everything, but that time has never quite arrived.  There's also a bunch of assets that might be removable.

I don't think the deleted partials are still in use anywhere, and /courts-tribunals works with this branch

I'll merge this today and leave it on staging for a little bit when I get to deploying it as a final check


Use WebActivatorEx to register VPP from App_Start

If this is OK I can update the sample projects. Not sure how to build the NuGet package though, building it using the spec got me a package without the actual library.

Is it me or is this pushed to NuGet straight from AppVeyor without your consent?

Issue #13

Um yes it pushes without my consent, due to a badly configured appveyor
project, I'll fix that tomorrow .. oops.
Does that package that was produced work ok?
On 31 Aug 2016 9:49 p.m., "mycroes"<EMAIL_ADDRESS>wrote:

Issue #13
https://github.com/mcintyre321/EmbeddedResourceVirtualPathProvider/issues/13
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mcintyre321/EmbeddedResourceVirtualPathProvider/pull/22#issuecomment-243896710,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAQ0-meYya0xS4GkTBg_nPtmxiplRx9qks5qlejagaJpZM4JyCNA
.

Just tested, works as expected. Has the DLL and the startup file.


Always register clusters to KCP

Current behavior generates the following issues:

An upgrade of the KCP version will not deploy existing syncers.
KCP syncers can have different version for each cluster, which breaks
consistency.
If the creation of the syncer on the compute cluster fails for any reason,
the syncer will not be deployed on the next run as it is already declared
in the KCP workspace.

Proposed behavior generates the following issues:

An upgrade of the KCP version will deploy on all clusters, which may trigger
an interruption of service if there is an issue with the syncer.
The team operating the KCP workspace into which the clusters are registered
cannot customize the configuration of the syncer, as it would get overwritten
at every run.

Signed-off-by: Romain Arnaud<EMAIL_ADDRESS>

At a design level I am not for the change for the reasons previously explained:

more operational knowledge than what is offered by GitOps/Argo CD may be needed for component lifecycle management

to avoid continuous disruptions
to avoid "magical" things happening by triggers unknown to the users
to cleanly manage upgrades and like

At a practical level I tried to run the sync command twice and the result was:
error: failed to create WorkloadCluster: workloadclusters.workload.kcp.dev "api-crc-testing" already exists

I believe this is an important PR as it drives us to define the expectations of Pipeline Service on certain things. Thanks @Roming22 for raising it.
I think we need to maintain the consistency between the kcp stable versions and kcp syncer image. And to address the issues mentioned by @fgiloux, we need to test when a new version is released. Perhaps, in the future, this will be a CI that will be triggered with each upgrade which checks e2e functionality. But until we get there, we would need to do it manually. Because, the alternative to this is a mismatch between kcp stable and syncer image which should not be the case.

I think we need to maintain the consistency between the kcp stable versions and kcp syncer image.

From an operation point of view it won't be possible to have consistency at all time. During an upgrade, the control plane  will be upgraded first, workload clusters, i.e syncers later in a rolling manner. For some period of time versions won't be aligned. This is very similar to what happens between Kubernetes control plane and kubelet versions. Compatibility is ensured at n-2 so that the cluster stays functional. This is currently not the case with kcp/syncer but will eventually be. Nevertheless we should aim to limit version skew to what is strictly necessary.
I do agree to what @bnallapeta wrote:

we need testing/validation for each kcp version bump (and we added this item to our sprint for release-0.5)
ideally this would be supported by a CI workflow

@bnallapeta @ramessesii2 @Mo3m3n PR ready for review.
The PR can be tested with:
./images/kcp-registrar/register.sh --kcp-org root:default --kcp-workspace pipeline-service-compute --kcp-sync-tag v0.8.0 --workspace-dir $WORK_DIR
./images/kcp-registrar/register.sh --kcp-org root:default --kcp-workspace pipeline-service-compute --kcp-sync-tag v0.8.2 --workspace-dir $WORK_DIR

and checking the version of the kcp-syncer image in between the calls.

[bnr@bnr pipelines-service]$ ./images/kcp-registrar/register.sh --kcp-org root:default --kcp-workspace pipeline-service-compute --kcp-sync-tag v0.8.2 --workspace-dir /tmp/tmp.3L7vDNpAvp/
Workspace: root:default:pipeline-service-compute
Registering clusters to kcp
Getting the list of registered clusters
Processing cluster api-ci-ln-x5c6ghb-76ef8-origin-ci-int-aws-dev-rhcloud-com (1/1)
Registering cluster
Synctarget "4d9ca4ba136a227d71855d82743b7c80" already exists.
Updating service account "kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i".
Updating cluster role "kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i" with

 1. write and sync access to the synctarget "kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i"
 2. write access to apiresourceimports.

Creating or updating cluster role binding "kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i" to bind service account "kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i" to cluster role "kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i".

Wrote physical cluster manifest to /tmp/syncer-api-ci-ln-x5c6ghb-76ef8-origin-ci-int-aws-dev-rhcloud-com.yaml for namespace "kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i". Use

  KUBECONFIG=<pcluster-config> kubectl apply -f "/tmp/syncer-api-ci-ln-x5c6ghb-76ef8-origin-ci-int-aws-dev-rhcloud-com.yaml"

to apply it. Use

  KUBECONFIG=<pcluster-config> kubectl get deployment -n "kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i" kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i

to verify the syncer pod is running.
namespace/kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i unchanged
serviceaccount/kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i unchanged
secret/kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i-token unchanged
clusterrole.rbac.authorization.k8s.io/kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i unchanged
clusterrolebinding.rbac.authorization.k8s.io/kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i unchanged
**secret/kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i configured
deployment.apps/kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i configured**
Configuring KCP workspace
clusterrole.rbac.authorization.k8s.io/apibinding:kubernetes unchanged
clusterrolebinding.rbac.authorization.k8s.io/apibinding:kubernetes:all-users unchanged

Changed
from:
[bnr@bnr pipelines-service]$ k -n kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i describe pod/kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i-79b85bzxmd | grep -i Image:
    Image:         ghcr.io/kcp-dev/kcp/syncer:v0.8.0

to:
[bnr@bnr pipelines-service]$ k -n kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i describe pod/kcp-syncer-4d9ca4ba136a227d71855d82743b7c80-1aatv34i-d9d889t7nq | grep -i Image:
    Image:         ghcr.io/kcp-dev/kcp/syncer:v0.8.2

/lgtm

/approve


frameit: Added font_scale_factor as a fraction of the screen width

Allows to limit the font size in order to achieve the same font size for all shots;
should fix #1728;
As requested in #7334 review, I isolated the parts in separate PRs. This is one of them.
Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Example of this in use - first picture is default (font size = .1 * width), second is using a font-scale-factor of .05.


[Fix bug 1289118] Add helper method to check for spam using Akismet API

Coverage decreased (-0.09%) to 92.401% when pulling fe53e9842ad79e95fa343c0244ee216a95f375b6 on johngian:1289118 into 032f85f888aabf055e4e928dfd9bdca9ddc15eff on mozilla:master.

Coverage increased (+0.04%) to 92.533% when pulling 339c75361560faaca0d2781bd55e445d337f9937 on johngian:1289118 into 032f85f888aabf055e4e928dfd9bdca9ddc15eff on mozilla:master.

r+ with tests passing

Coverage increased (+0.04%) to 92.535% when pulling 72e56d09d4d0ba4f468eabc2d02830ed65f79413 on johngian:1289118 into 0d654a9f6b6306a1f97f460d42f610791a3ef964 on mozilla:master.


Automate unit tests running on pushes to repository

User story
As a developer, I want to ensure all code quality is consistent with unit tests when I push any changes to the repository.
Acceptance criteria

All unit tests are run when commits are pushed to the repository
I can view any tests that have failed so I can fix them
Branches cannot be merged into master if any tests are failing

Blocking
Currently, this issue is blocked by #29 as we cannot verify if our automated script works until we have tests to run.

I also assume that both the front-end and the back-end unit tests to be run on push?
Since this is technically 2 projects in 1 repository.

Closing this ticket since it was marked as done.


cp_mgmt_host: use UID to rename object name

Request to add UID as a key to rename object name

Hi,
Thanks for using our collection.
Sorry but We intentionally removed this functionality because it damages one of Ansible requirements for idempotency.
Thanks,
Or


Use the self-bootstrap-job to install PKO in dev and test

Signed-off-by: Nico Schieder<EMAIL_ADDRESS>

/honk


Separate Error and Data handling

Hello,
is it possible to handle errors for each request separately, like in the following example?
const { data: createData, error: createError } = await db.collection('test').create({
       "test1": "testdata1",
       "test2": "testdata2"
});

if (createError) throw new Error("Failed to create test");

This is helpful because now I can throw a custom error messages for the enduser without having to reveal any backend details.
I have already tried this, but it seems like .code isn't always send with every kind of error.
const create = await db.collection('test').create({
       "test1": "testdata1",
       "test2": "testdata2"
});

if (create.code) throw new Error("Failed to create test");

Many thanks

Like any other native JS method, the SDK throws errors, it doesn't return them as value. The Promise value will be always a result of a success call.
Or in other words, you have to catch the error:
try {
    const create = await db.collection('test').create({
        "test1": "testdata1",
        "test2": "testdata2"
    });
} catch (err) {
    console.log(err.data);
}

All SDK errors are normalized and wrapped as ClientResponseError.
You can find more information about the error handling and all available error fields in https://github.com/pocketbase/js-sdk#error-handling.

Hmm okay, thank you again for the very quick reply!


Add a loading spinner to the topics view

I would like to add this loading spinner to the topics page to help with the User Experience. When the code is loading, the UI says "No Topics Available", which is pretty confusing to me since there may be topics, but they just haven't loaded yet. A user may see "No Topics Available" while having a slow connection, and assume there really are no topics available. Adding a spinner is better UX since at least the User knows something is happening in the background, and they should wait.
Also, 1ca4616 allows me to pass linter checks on pull. When I run npm lint, this error shows:
/Users/jalil/Programs/augur/src/modules/markets/reducers/event-markets-map.js
  10:95  error  Arrow function should not return assignment  no-return-assign

This commit is a fix for that, where I just use a reduce statement to aggregate the unique items instead of a stateful filter.

@stephensprinkle I'll check it out! Thanks.


fix: vue-virtual-scroll-grid build setup

fixes #164

closed because  I need to update my main branch on my fork with unrelated commits to be able to test my fork


This patch makes changes to use the features, replacing govendor (so vendor directories are deleted).
This closes #56.

@ynamiki How did you convert to go modules? I tried to first remove the vendor directories and define all our source code as a single module. I've got somewhat more concise go.mod file:
module github.com/hyperledger-labs/minbft

go 1.12

require (
	github.com/a8m/envsubst v1.1.0
	github.com/golang/mock v1.2.0
	github.com/golang/protobuf v1.3.1
	github.com/inconshreveable/mousetrap v1.0.0 // indirect
	github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
	github.com/spf13/cobra v0.0.3
	github.com/spf13/viper v1.3.2
	github.com/stretchr/objx v0.1.1 // indirect
	github.com/stretchr/testify v1.2.2
	golang.org/x/net v0.0.0-20190313220215-9f648a60d977
	golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6
	google.golang.org/grpc v1.19.0
	gopkg.in/yaml.v2 v2.2.2
)

I am also not sure if and how we should keep this separation between core packages and those under sample directory. It is somewhat discouraged https://github.com/golang/go/wiki/Modules#faqs--multi-module-repositories.

@sergefdrv As a first step, I do go mod init with export GO111MODULE=on in minbft and minbft/sample then remove vendor directories. I tried conversion from vendor.json supported by go mod init. I have not checked whether result is reasonable and I cannot make it to be able to build at this time.
Actually, I opened this (draft) PR to test the CI trigger (#65) so I have not studied the module system enough.
I will study the module system, including how should we organize modules in our project, then I will post some findings here. Thanks for providing the pointer about a multi-module project.

@ynamiki Thanks for clarifying this. We would also need to consider that usig/sgx is a special package because its usig-enclave.go file has to be generated with make, thus cannot be retrieved from the repository. Maybe we can change the way we build the enclave to make this an ordinary Go package.
Another concern would be regarding the assumption in the current code that the enclave binary is located at $GOPATH/src/github.com/hyperledger-labs/minbft/usig/sgx/enclave/libusig.signed.so. I can remember this assumption in peer command default configuration and somewhere in testing. After we have converted minbft into a Go module, it would no longer be an appropriate assumption.

I cannot make it to be able to build at this time.

I think the problem is that Go requires GO111MODULE=on to be able to recognize a Go module under $GOPATH/src. Note that this is not required for directories outside of $GOPATH/src.

@sergefdrv Some notes:

Single module: We have two vendor directories (minbft/vendor and minbft/sample/vendor) before but we have one module now. I cannot find a strightforward way to define the two modules in our case. Go supports a multi-module repository and there is an example which is very similar to our case (we could have modules .../minbft and .../minbft/sample that share a prefix). Actually I tried, but I faced an error in the test. I cannot fix this error by adding require .../minbft/sample v0.0.0 and to .../minbft/go.mod. Since the multi-module style is somewhat discouraged, this patch defines single module.

core/integration_test.go:31:2: unknown import path "github.com/hyperledger-labs/minbft/sample/authentication": cannot find module providing package github.com/hyperledger-labs/minbft/sample/authentication

C codes: We have some codes written in C (i.e. usig/sgx). This means a module user needs to build this separately. Does Go system have something like hooks to build the codes automatically within go get?

Single module: We have two vendor directories (minbft/vendor and minbft/sample/vendor) before but we have one module now. ...

Not a strong opinion, but generally speaking, I agree with single-module approach. The project is still small and we need focus on core functionality, so keeping other parts simple looks better to me.

C codes: We have some codes written in C (i.e. usig/sgx). This means a module user needs to build this separately. Does Go system have something like hooks to build the codes automatically within go get?

According to Go command page, it seems that extra build configurations are decided not to be supported for simplicity. I'm not sure now how we work around this constraint, but it seems not "Go module" issue but "package delivery" issue. So I think we don't have to block this PR to be merged due to this issue.

@Naoya-Horiguchi Thanks for your helpful comments. I have updated the subject of the commits and move on to #82.

@ynamiki

Single module

Given your rationale, I think it is fine to have a single module. At least, it is not an issue to focus on now.

C code

This is a bit more complicated matter. We can roughly split the code into three parts:

enclave code itself (shared library, C code)
wrapper (shim) for the enclave (static library, C code)
cgo wrapper around the shim library (part of Go codebase)

We cannot significantly change the way the enclave binary (libusig.signed.so) is build, if we keep using Intel SGX SDK.
The shim library was mainly introduced to hide low-level details of interaction with SGX SDK interface and the enclave instance itself. It was built as a static library rather than shared one because we didn't want to require users to install it in the system, neither use any potentially unsecure method to resolve dynamic linking dependencies, like setting LD_LIBRARY_PATH environment variable or passing -rpath option to the linker.
The cgo wrapper is generated by make from usig-enclave.go.in template file. This was necessary because it had to be linked with appropriate SGX SDK libraries: simulation- or hardware-based. The mode is determined by the user at build time. The cgo wrapper depends on the SDK libraries directly because the shim library is a static library and does not carry its own shared library dependency information.
As mentioned before, Go employs a simplistic approach to build packages. Namely, it only considers certain file types and simple built-in rules to compile those. This is certainly not enough to build the enclave binary, since it requires a special build process, including generation of edge routines. The generated edge routines are also required to compile the untrusted code - the shim library, in our case. So at least those parts have to be built separately from the main Go code base.
Another difficulty is the dependency on SDK dynamic libraries (sim/hw). We could either add those dependencies to cgo part, or make the shim library dynamic. We currently use the first option, thus require generated Go code. We could try to break the dependency by making the cgo part a dynamically loadable Go plugin. But this would still require building Go code by unconventional building tools (make). Alternatively, we can make two identical cgo files, each depending on different set of SDK libraries (sim/hw). However, it is not clear how much code would have to be duplicated.
Making the shim library dynamic is another possible solution. Such a library can be easily built alongside with the enclave, automatically depending on correct SDK libraries. The issue of resolving the library itself could be solved by using ldopen in the main Go codebase. We can even embed the enclave binary into the shim library, thanks to the new SGX SGK API sgx_create_enclave_from_buffer_ex. This approach would allow to split building of the encalve-related C stuff from the main Go codebase. So one could build the main code base as a normal Go package. In order to run it with SGX USIG, one would also have to build the shim library, with enclave embedded. Then the path to the shim library could be specified as a configuration parameter.

@sergefdrv Thank you for the details and your suggestions. The last option looks good for me, but I need to study security risk.
Can we proceed with #82, without changes in the build system, as a first step and separate the refinement as future work?

@ynamiki

Can we proceed with #82, without changes in the build system

I agree that we would benefit from Go modules. I plan to review #82 in the coming days.


Propose to add Insert/Update support

Hi @jmoiron ,
Would you like to add insert/update features to sqlx? I have made some prototype. And here is the design.
In order to support insert and update, we need a way to get the table name.
One simplest way is by function parameter, so we may use the following signature
func Insert(table string, arg interface{}) (sql.Result, error)

So far so good. However, if we want to support update, we need a way to indicate the filter condition(maybe primary key).
So we may use the following signature
func Insert(table, key string, arg interface{}) (sql.Result, error)

According to my experiment, even Insert need to know which key used as primary key. So I introduced the Modeler interface
type Modeler interface {
  TableName() string
  KeyName() string
}

And the above functions become like this
func Insert(arg Modeler) (sql.Result, error)
func Update(arg Modeler) (sql.Result, error)

A full example is like this
var schema = `
CREATE TABLE IF NOT EXISTS users (
  id integer primary key,
  age integer,
  name varchar(30),
  created datetime default CURRENT_TIMESTAMP
)
`

type user struct {
        ID      int
        Name    string
        Age     int
        Created time.Time
}

u1 := &user{Name: "foo", Age: 18, Created: now}
// insert into users(name,age,created) values (?,?,?)
result, err := db.Insert(u1)

id, _ := result.LastInsertId()

u1.Name = "bar"
u1.ID = int(id)

// update users set name=?,age=?,created=? where id=?
_, err = db.Update(u1)

Please make your comments and classify if I could make the pull request.
Thanks.

I like the feat

hi @jmoiron , I have implemented a prototype. If this feature could be implemented in sqlx, only 50 lines are needed.
Here are the main logic
https://github.com/go-kiss/sqlx/blob/master/sqlx.go#L116-L165
Would you like to make any comment? Thanks.


replace dummy with example

to avoid offending anyone.

Is there a related GitHub Issue?
No
What is this change about?
This change replaces the term "dummy" with "example" to avoid using terms people could find offensive or triggering.
Does this PR introduce a breaking change?
No
Acceptance Steps

Normal tests should cover it. The change only affects a single test file.
Tag your pair, your PM, and/or team

:sigh:
the list of offensive works keeps on growing...


Made cond() works also with match

Is your feature request related to a problem? Please describe.
Now, cond() works only with if.
For some more complicated cases for e.g. menu()
use match will easier to use.
Describe the solution you'd like
It is probably enough for cond() to return the result of the argument passed to it, without changing it to bool.
Describe alternatives you've considered
Made new similar to cond() method just for use with match.

@theludovyc I think no longer relevant as we will have it fixed by ifs in gdscript blocks in RakuScript.


Possible Improvement to Comments

In the spec, the syntax for Comments states that comments are opened with '{{!' and closed with '}}', the consequence being that  '}}' cannot appear inside comments. That's fine and works fairly well. But one thing I've found useful during everyday coding is to comment out Mustache code fragments using Mustache comments. Our "Mustache-like" parser achieves this by using '{{!' as the open token and '!}}' as the close token. So in our parser, when you have a code fragment like:
{{#foo}}{{bar}}{/foo}}

you can easily comment it out via:
{{! TODO: Determine why this code fragment does not work {{#foo}}{{bar}}{{/foo}} !}}

A similar thing cannot be achieved with a spec-compliant parser which I think is a shame.
As far as I understand it, this request would be backwards compatible too since existing code must not nest '}}' in comments.
What do you guys think?

Please close/delete all open is please Check and close the issues

Please close/delete the issues

Take it slow and relax 😊


Response from RestClient only contains response.data (not response.headers, response.status, etc).

Using API.get() like the following:
API.get(apiName, path, null)
    .then((response) => {
        resolve(response)
    },
    (err) => {
        resolve(err)
    })

....the response comes back with only the data, and it's not possible to access the headers, status, statusText, etc.
Being able to access the response headers is a key feature needed so we can access data such as total number of objects (x-total-count), etc.

Hi @chapeljuice thanks, we have a feature request for this in this issue #232
We are adding this to the next release.


Transitioning from Meetup API version 2 to 3

Fixes #9
Thanks @sidntrivedi012 for pointing out array.maps being synchronous and how it should be handled.

Thanks @daemon1024 . Great work. 🎉 💯


Duplicate from curse just in case

Idk if this a bug or planned feature or not, but I'll mention it here :/
1.19.4 Purification Flast deals 50 damage to all mobs in game, not tested on players. Also it's ultimate way to kill any boss, like Warden or ED only with 4 or 6 bottles.
Also, infused mobs are spawning and detecting wardens like enemies, so it becomes infinitely lasting combat of sculk and modded sculk.
Great thanks for your work! As a person who used to play tc4 with its infection mechanics I found Gravemind a bit OP for singleplayer, because even in late-late game it consumes all of your recourses to hold horde back, not to attack it's heart.
Not tested in big mp, only in 2 person lobby, cuz i don't have friends. :(

Thanks for letting me know about this oversight. The flask is not supposed to do any damage, but just clean up infestation. This will be resolved in the next update.


Various fixes

refactor: move modules to xxx.rs from xxx/mod.rs and make public

The modules need to be public so that the fields on the ColorSupport
struct can be accessed from code outside the crate. The modules are
moved to xxx.rs from xxx/mod.rs to follow the newer rust module
convention.
https://doc.rust-lang.org/book/ch07-05-separating-modules-into-different-files.html#alternate-file-paths

cargo fmt
Remove atty

Replaced with is_terminal() method in rust 1.70.0

Fix flakey tests by using temp-env crate

Tests run in parallel, which causes environment variables to be shared
between tests. This can cause flakey tests if one test sets an
environment variable that another test relies on. This commit fixes the
flakey tests by using the temp-env crate to temporarily set environment
variables for each test.

PS. this came up as something that we need in Ratatui apps to be able to check for appropriate color support. More discussion over in https://github.com/ratatui/ratatui/issues/1387

PS. this came up as something that we need in Ratatui apps to be able to check for appropriate color support. More discussion over in ratatui/ratatui#1387

Cool. I am glad it is useful somewhere. :) @joshka


Request for full source code for demo

I am using Angular CLI version 1.0.2 and Angular Core version 4.3.6.
My problem is I can get it work based on your example usage in README.md.
It did not return any error.
It is possible to share full source code for demo at https://innqube.github.io/ng2-iq-select2-demo/
?

Hi, that demo is pretty outdated. It is in the following repo if you would like to take a look: https://github.com/Innqube/ng2-iq-select2-demo. Anyways, I repeat, I don't think it will be helpful.
If you share your code, I would be glad to help you.


[KV] Update Python version requirements in perf test README.md

It is python >= 3.7 preferred in the perf test documentation


Allow paste to work on mobile

Thanks a ton for this!
On android, this doesn't seem to work, as there's no field to allow the long press menu to shown itself. (Specifically speaking android here.)
A small field that displays on it own (perhaps only visible on mobile, for clarity) might be a decent solution.
Thanks for any attention someone might feel inclined to offer to this. Open to pointers to the right place to look. :)

I'm not actively maintaining this project right now so I'm not able to look into this. The way this works is a bit of a hack in that it hijacks the key combination for pasting to focus the content editable field. I don't think any analogy would be possible off the top of my head for touch devices.

Normally it should just work as easy as typing
javascript: const event = document.createEvent('customevent'); event.initEvent('paste', true, false); document.dispatchEvent(event);
In the browser address bar in chrome android.
Sadly for some reason this does nothing..
If someone figures out why it doesnt work you could just add a button to fire the event in index.html


Volume Profile Indicator Does Not Distribute Volume over the Trader Bar

Expected Behavior
The Volume Profile indicator should distribute the volume across the range of the trade bar (high to low).
Actual Behavior
All the volume is assigned to the close price which is used in the volumePerPrice calculations. https://github.com/QuantConnect/Lean/blob/master/Indicators/MarketProfile.cs#L201-L213
Potential Solution
The ability to pass in a row size to the Volume Profile indicator. Row size could be calculated more granularly from tick size and price per row as well. See here for the parameters passed into this market profile implementation: https://github.com/bfolkens/py-market-profile/blob/master/src/market_profile/init.py#L11-L13
Reproducing the Problem
Using daily bars, calculate the volume profile for Apple over a 20 day period. The volume profile calculations will be different than when calculated on ThinkOrSwim or when using the py-market-profile package.
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues

Hey @anthbauer!

The Volume Profile indicator should distribute the volume across the range of the trade bar (high to low).

I think this behavior could be achieved using hourly/minute data with a higher period?

All the volume is assigned to the close price which is used in the volumePerPrice calculations.
Using daily bars, calculate the volume profile for Apple over a 20 day period.

This is because of using daily bars, expected behavior I'd say

The ability to pass in a row size to the Volume Profile indicator. Row size could be calculated more granularly from tick size and price per row as well.

This can be achieved defining a custom data type with this format and adjusting the indicator, creating a custom indicator based on it, to use this new data type.

Closing issue for now


Remove Virtual Environment Folder from "client" Directory

Description:
The "client" directory currently includes a "source" folder containing a virtual environment.
Proposed Solution:

Add "source/" to the .gitignore file to exclude the virtual environment folder from version control.
or
When creating virtual environments, let's adhere to the existing naming conventions in the .gitignore file, such as "env," "venv," and "ENV."

Can you submit a PR for this?

Closing to wait for PR.


Consider 0.12 Terraform update

Action from retro 7 June 2019
https://www.terraform.io/downloads.html

In conclusion: yes, we will upgrade.


Setting Up Nuxt With Nginx

Hello,
I've been facing problems when serving only the nuxt .js files through Nginx.
Well,
I have a subdomain subdomain.domain.com that runs a wordpress blog and e-commerce. However, I intend to serve nuxt on a specific location of this subdomain, something like subdomain.domain.com /nuxtproject
Here is my nginx conf
server {
    # SSL configuration
        listen 443 ssl;
       server_name subdomain.domain.com.br;

        ssl on;
        ssl_certificate /etc/nginx/ssl/certs/ssl.crt;
        ssl_certificate_key /etc/nginx/ssl/private/certificate.key;

    root /var/www/html/cursosabertosv2;

    location /pay {
      alias /var/www/html/crescimentum.pay/source;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_pass http://localhost:3000;
}

location / {
      root /var/www/html/cursosabertosv2;
      index index.php index.html index.htm;
      set $php_root /var/www/html/cursosabertosv2;
      try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
      root /var/www/html/cursosabertosv2;
      index index.php index.html index.htm;
      set $php_root /var/www/html/cursosabertosv2;
      include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 }

    location = /favicon.ico { root /var/www/html/cursosabertosv2; log_not_found off; access_log off; }
    location = /robots.txt { root /var/www/html/cursosabertosv2; log_not_found off; access_log off; allow all; }

    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        add_header Access-Control-Allow-Origin "*";
    }

}

https://subdomain.domain.com.br/nuxtProject/nuxtBuild/dist/app.eef42378ecb0188c013a.js
error 404 not found
** I am using nuxt build, with the build Path set to nuxtBuild
Can someone help me please ?

If you use nuxt build, you need to start the node server by nuxt start, then forward all request from nuxtProject to node server.
  location /nuxtProject {
    # node server address, e.g., localhost:3000
    proxy_pass http://localhost:3000/
  }

If you want to use static files, you need to generate files by nuxt generate and set root to dist folder.
  location /nuxtProject {
        root   /dist/;
        index  index.html index.htm;
    }

What if I am using express ?
Should I serve the dist file through express?

You need to embed nuxt into express.
Use https://github.com/nuxt-community/express-template
or
https://github.com/nuxt-community/create-nuxt-app to setup the project

If use static files, use express to serve the generated files is also ok

HI @clarkdo
I have pretty much the same problem; I don't get
# Site global
server {
	listen 443 ssl http2;
	server_name	www.myapp.com;
	access_log	off;

	location = /robots.txt	{ access_log off; log_not_found off; }
	location = /favicon.ico	{ access_log off; log_not_found off; }
	location / {
		proxy_pass http://<IP_ADDRESS>:3042/;
		include /etc/nginx/conf.d/proxy.conf;
		root /var/www/myapp/site;
		add_header Access-Control-Allow-Origin *;
	}

	location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|txt|srt|swf)$ {
		root /var/www/myapp/site/;
		expires 30d;
	}

	ssl_certificate /etc/letsencrypt/live/myapp.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/myapp.com/privkey.pem;
}

Watching the example you provided, I wondered if I needed to target the dist folder (which is in .nuxt folder once build, right?).
Knowing my projectfolder is the sitefolder, I tried with /myapp/site/.nuxt, /myapp/site/dist, /myapp/site/.nuxt/dist (for both root commands), but none of it worked.
In the log error, it seems that it's trying to reach _nuxt folder? Why not .nuxt? I assume this is a simple route stuff, but how can I be sure that it target the needed folder?
I’m confused right there…
Thanks!

Do you use nuxt start or nuxt generate ?
If start, you shouldn't forward requests to .nuxt/dist, it should be the url of node server which is started by nuxt start, such as: http://localhost:3000
If you use generate for deploying static project, you need forward request to the resources as the second way I mentioned above: root   /dist/.

nuxt start, i want it to be SSR.

it should be the url of node server which is started by nuxt start, such as: http://localhost:3000

Well, that’s the case: proxy_pass http://<IP_ADDRESS>:3042/; And the app is partially loading, header is loaded and some parts. But there’s all of these missing:

Hello guys,
I'm currently facing the exact same issue ! The Nuxt app try to load all these files in /.nuxt/ but the nuxt build commande put all the files in the /.nuxt/dist folder...
Any idea to fix this ?

@TheEcho _nuxt is the default publicPath, you can change it through build.publicPath in nuxt.config.js.
https://nuxtjs.org/api/configuration-build/#publicpath
https://webpack.js.org/guides/public-path/

@EmmanuelBeziat Sorry for the late reply, if the issue is still existing, could you please paste you nginx config here and provider a reproducible repo ?

It's due to that .nuxt/dist is the default output.path and _nuxt is the default output.publicPath of webpack config.
Related Documents:
https://webpack.js.org/configuration/output/#output-path
https://webpack.js.org/configuration/output/#output-publicpath

Thanks a lot :)


How can I custom the select source list?

Hello, I want to know how you can customize the list of options to choose the image. I am not talking about UI. For example, if I want only the camera and gallery options appear. Its like remove or not to display the external options like dropbox, bitmoji, zedge, etc. Thanks in advance.

Walk through the code, it relatively straightforward.


WIP: pyjulia updates

This does two things:

A rebase of some of the previous pull requests to bring pyjulia up to date with more modern versions of julia
Attempt to solve the challenges encountered with PyCall (i.e. #51)

The approach taken to 2) is to
a. Separate out cache files into a separate directory to reflect the fact that this is a quite different environment. It may be theoretically possible to share packages that do not depend on PyCall, but this could turn out to be quite brittle and the necessary logic does not currently exist in julia to handle this situation. I think a clean separation as is done here is the best way to go.
b. Use a python script that calls the argument parsing routines directly. This is necessary because the precompilation and runtime environment needs to be the same in order for PyCall to be able to be used without major modification (small PyCall PR to enable loading in-process symbols is forthcoming). I played with a couple of variants here, but I think I've arrived at a very simple/effective solution.
Remaining todo:

[x] Only enable this if python is statically linked?
[x] COFF Wrapper for windows
[x] Test on other Unix platforms
[ ] Mac CI
[x] Enable AppVeyor
[ ] Make sure new code path is actually tested

There's a travis failure here I don't understand: Type str doesn't support the buffer API. Works fine for me locally, even with python 3.

Do we really want julia-debug.exe to be checked into git?

Yes, it's not the real julia-debug.exe, it's just a very small COFF wrapper.

win32 or win64?

win64, though as long as your os is 64bit it doesn't matter. I suppose I could just compile it as 32bit and have it work anywhere.

Your Travis syntax is broken here and is eating up a lot of JuliaLang's queue. Could you enable it on your fork and work things out on a different branch for now?

We could also move this package to JuliaInterop.

Yep, will move to JuliaInterop

I enabled AppVeyor here so if you have pyjulia under your AppVeyor account, you can modify it to point here. :)

Windows test failure is due to it trying to find rint in the executable and of course not finding it since python is not linked against openlibm. I'm not sure why that's happening, but since it seems fixed on 0.5, I'm not going to put too much effort into attempting to figure out why.

Ok, I'm gonna go and merge this. Travis OS X is complaining, but that's an ecosystem wide problem right now, so oh well. If it turns out to be broken after, I'll fix that separately.


3.0 alpha release

This is the parent branch all others are being raised against. So this will give us a CI indication of where we are up to (As the child branches don't get ran against Travis)
There isn't an indicative plan of when to cut this. I'll probably just cut it in September some time when I've done a reasonable amount of coding against it.

Note to @ineverov / @tgaff - The master branch here now is being shaped as per v3 alpha work. As I've just cut a stable 2.16 release.
There are no immediate plans for any more feature / bug fix releases in the 2.x series. But if they're required I'll cut them. The plan is in the next 2-3 weeks to have a reasonably chunk (40%+) of the work done for v3 and I'll release an alpha version of the gem.


Support for custom header for Authorization for Basic HTTP auth

Is your feature request related to a problem? Please describe.
Currently HTTP Basic authentication uses Authorization header for extracting username and password from request.
We have a use case where the header is either remapped to a different header for example Authorization -> X-Amzn-Remapped-Authorization or completely consumed if Authorization contains Signature Version 4 signature by AWS API Gateway.
https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html
Describe the solution you'd like
A way in the securityconfig/config.yml file to define the custom header used for authentication.
If security plugin already has this feature please guide us to the right documentation.

Security plugin currently does not have this feature. We will have to do some investigation about the security concerns about this.

[Triage] Closing this issue because of significant security concerns. A workaround solution would be to add a proxy in-front of OpenSearch and routing through there. Thank you.


Homekit showing initial state of GarageDoorOpener as OPEN

I'm using HAP-NodeJS with good success except:
Whenever I load my garage opener, the initial state of Characteristic.CurrentDoorState is OPEN but I want it to be CLOSED.
The Wemo Maker device is just a toggle so when I select close in my app, the door opens, then I can select Open and the door closes... not ideal!
Here is my accessory code:
var Accessory = require('../').Accessory;
var Service = require('../').Service;
var Characteristic = require('../').Characteristic;
var uuid = require('../').uuid;

var Wemo = require('/home/pi/node_modules/wemo-client/index');
var wemo = new Wemo();
var garagedoor;

// bind the the Wemo Maker called Garage Door
function bindDevice(device) {
  if (device.friendlyName === "Garage Door") {  //lets just check to see if we have the right wemo
    console.log('Connected to: %s', device.friendlyName);

    garagedoor = this.client(device);
    garagedoor.on('attributeList', function(name, value) {
      console.log('Wemo "%s" changed %s to %s', this.device.friendlyName, name, value);
    });

  }

}

// load the Wemo Maker at a predefined IP
wemo.load("http://<IP_ADDRESS>:49153/setup.xml", bindDevice);
console.log('Loading Wemo Maker at <IP_ADDRESS>:49153');

// expose to Wemo Maker to HomeKit
var GARAGE_DOOR = {
  opened: false,
  open: function() {
    console.log("Opening the Garage!");
    garagedoor.setBinaryState(1);
    GARAGE_DOOR.opened = true;
  },
  close: function() {
    console.log("Closing the Garage!");
    garagedoor.setBinaryState(1);
    GARAGE_DOOR.opened = false;
  },
  identify: function() {
    console.log("Identify the Garage");
    // nothing to do.
  }
};

console.log("Garage door set as %s",GARAGE_DOOR.opened);

// Generate a consistent UUID for our GarageDoorOpener that will remain the same even when
// restarting our server. We use the `uuid.generate` helper function to create a deterministic
// UUID based on an arbitrary "namespace" and the word "garage".
var garageUUID = uuid.generate('hap-nodejs:accessories:garage');

// This is the Accessory that we'll return to HAP-NodeJS that represents our Garage opener.
var garage = exports.accessory = new Accessory('Garage Door', garageUUID);

// Add properties for publishing (in case we're using Core.js and not BridgedCore.js)
garage.username = "C1:5D:3F:EE:5E:FA";
garage.pincode = "031-45-154";

// set some basic properties
garage
  .getService(Service.AccessoryInformation)
  .setCharacteristic(Characteristic.Manufacturer, "White")
  .setCharacteristic(Characteristic.Model, "Rev-1")
  .setCharacteristic(Characteristic.SerialNumber, "TW000165");

// listen for the "identify" event for this Accessory
garage.on('identify', function(paired, callback) {
  GARAGE_DOOR.identify();
  callback(); // success
});

// Add the actual Garage Opener Service and listen for change events from iOS.
// We can see the complete list of Services and Characteristics in `lib/gen/HomeKitTypes.js`
garage
  .addService(Service.GarageDoorOpener, "Garage Door Opener")
  .setCharacteristic(Characteristic.CurrentDoorState, Characteristic.CurrentDoorState.CLOSED) **// try to force initial state to CLOSED**
  .getCharacteristic(Characteristic.TargetDoorState)
  .on('set', function(value, callback) {

    if (value == Characteristic.TargetDoorState.CLOSED) {
      GARAGE_DOOR.close();
      callback();

      // now we want to set our garage "actual state" to be CLOSED so it shows as Closed in iOS apps
      garage
        .getService(Service.GarageDoorOpener)
        .setCharacteristic(Characteristic.CurrentDoorState, Characteristic.CurrentDoorState.CLOSED);
    }
    else if (value == Characteristic.TargetDoorState.OPEN) {
      GARAGE_DOOR.open();
      callback();

      // now we want to set our garage "actual state" to be OPEN so it shows as Open in iOS apps
      garage
        .getService(Service.GarageDoorOpener)
        .setCharacteristic(Characteristic.CurrentDoorState, Characteristic.CurrentDoorState.OPEN);
    }
  });

// We want to intercept requests for our current state so we can query the hardware itself instead of
// allowing HAP-NodeJS to return the cached Characteristic.value.
garage
  .getService(Service.GarageDoorOpener)
  .getCharacteristic(Characteristic.CurrentDoorState)
  .on('get', function(callback) {

    // this event is emitted when you ask Siri directly whether your gate is locked or not. you might query
    // the gate hardware itself to find this out, then call the callback. But if you take longer than a
    // few seconds to respond, Siri will give up.

    var err = null; // in case there were any problems

    if (GARAGE_DOOR.opened) {
      console.log("Query: Is Garage Open? Yes.");
      callback(err, Characteristic.CurrentDoorState.OPEN);
    }
    else {
      console.log("Query: Is Garage Open? No.");
      callback(err, Characteristic.CurrentDoorState.CLOSED);
    }
  });

Solved: Line 80 should have been: .setCharacteristic(Characteristic.TargetDoorState, Characteristic.TargetDoorState.CLOSED)
not .setCharacteristic(Characteristic.CurrentDoorState, Characteristic.CurrentDoorState.CLOSED)


Fix font style for code blocks

Could this be set to some sans-serif font? Maybe the same font used for the editor?
var(--font-family-editor)

Thanks for the suggestion, you are right, I totally missed that one. I just pushed your suggested fix to the repo so you might need to re-download the theme. Don't think they update on their own.


Type refinement doesn't work with the conditions in while loops

STR code:
type Test = string | null;

function returnSomething(): Test {
  return 'foo';
}

let test;
while ((test = returnSomething()) !== null) {
  test.toLowerCase(); // call of method `toLowerCase`. Method cannot be called on possibly null value
}

See this example online

Why ? Because this is a quite common idiom in some specific cases. The best-known is when iterting over regexp results:
const re = /word/g;
let result;
while ((result = re.exec(input)) !== null) {
  // do something with result
}

So, yes, we can do otherwise (which I do now). But because this is a common idiom, and it shouldn't be more difficult to support than for if blocks, I believe Flow should support this too.

@lll000111

Flow is designed to understand idiomatic JavaScript. It understands common JavaScript patterns and many of the weird things we JavaScript developers love to do.

It understands common JavaScript patterns

And as we have seen, and as you as a frequent commenter here of course knows (so what are you trying to do now?), the opinion about what constitutes "common JS patterns" of Flow are much narrower than that of many programmers, from things such as filter to treating every single function as one that invalidates a type refinement.

But because this is a common idiom

@julienw
You are competing with a thousand other "nice to have" things, see list of issues. My attitude towards Flow has been shaped by what is actually possible, including the speed of development and the nr. of ignored issues. I did not say "close your ticket".

@lll000111 I understand this; I said that I think this is not difficult to implement. Yet I don't know anything about how Flow internally works. In the end, this is not my call, I won't be able to implement this myself.

Upgrading to a newer Flow brought me the new typedef for RegExp.prototype.exec, which gave me this problem again.
Here is a try exhibiting this issue:
declare var regex: RegExp;
declare var str: string;
let match;

while ((match = regex.exec(str)) !== null) {
   console.log({ start: match.index, end: match.index + match[0].length });
}

Error is:
    6:    console.log({ start: match.index, end: match.index + match[0].length });
                                     ^ Cannot get `match.index` because property `index` is missing in null [1].
        References:
        [LIB] ..//static/v0.79.1/flowlib/core.js:338:     exec(string: string): RegExp$matchResult | null;
                                                                                ^ [1]
    6:    console.log({ start: match.index, end: match.index + match[0].length });
                                                       ^ Cannot get `match.index` because property `index` is missing in null [1].
        References:
        [LIB] ..//static/v0.79.1/flowlib/core.js:338:     exec(string: string): RegExp$matchResult | null;
                                                                                ^ [1]
    6:    console.log({ start: match.index, end: match.index + match[0].length });
                                                                     ^ Cannot get `match[0]` because an indexer property is missing in null [1].
        References:
        [LIB] ..//static/v0.79.1/flowlib/core.js:338:     exec(string: string): RegExp$matchResult | null;
                                                                                ^ [1]

@julienw While I also think this should be implemented, look at this "workaround":
const regex = /A/g;
const string = "ABABA";

let match;

while ((match = regex.exec(string))) {
	console.log({ start: match.index, end: match.index + match[0].length });
}

That works perfectly fine, because the while loop will stop on null AND flow also knows that, so type refinement works again.
Try Flow Link

Oh, that's interesting! Thanks for this workaround!

This is expected limitation


Motivation: Why did we build it?
Comparison: How is it different from existing query tools: Query, Cube?

Mechanics: How does it work?

Query "DNA Sequence": What form(s) of query are support?
Synchronized Multi-Editor: How do users make updates with form editor and grid interactions simultaneously?
Pluggable Engine: How does it adapt to different execution engine backend?

→
What is it?
A data-first query builder tool backed by the new Relation API that draws inspiration from the workflow of Slang's Seview DataCube.
→ Unlike Query, no modeling is needed to start querying data.
→ Relation, i.e. using tabular/flat projection data as source.
→ Battle-tested streamlined workflow to build interactive data report (with styling and layout support).
→
Why did we build it?
A data-first query builder tool backed by the new Relation API that draws inspiration from the workflow of Slang's Seview DataCube.
→ Strategic and low-effort entry point into Legend data platform. [ref: Studio SQL playground]
→ Flexible and versatile enough to be positioned as the drop-in grid result display component for various parts of the ecosystem. [ref: REPL, VSCode Notebook]
Better type-check, code complete, support for pivot, OLAP aggregations, time series.
→ Inherit the goodness and capture the market of Slang. [ref: Slang TDS Reader]
→
Comparison with existing query tools
| Query | Cube | DataCube
-- | -- | -- | --
Model Source (model-first) | ✅ | 🚧* | 🚧*
TDS Source (data-first) | ❌ | ✅ | ✅
Flexible Query Form | ❌ | ✅ | ❌
Relation API Support | ❌ | ❌ | ✅
Grouping Drilldown | 🚧** | 🚧** | ✅
Layout Configuration | ❌ | ❌ | ✅

<button style="height: 30px; float:left; width: 100px; display: flex; align-items: center; justify-content: center; border-radius: 4px; border-width: 1.5px; background: #fcd34d">→</button>

Thank you and Happy DataCubing!

FAQ / Future Plan / AMA 😎 (if time permits)

# **DataCube** Mechanics
!https://file+.vscode-resource.vscode-cdn.net/Users/blacksteed232/Developer/legend/studio/temp/knowledge_transfer_datacube_mechanics.gif
Agenda

Context: What is it?

Motivation: Why did we build it?
Comparison: How is it different from existing query tools: Query, Cube?

Mechanics: How does it work?

Query "DNA Sequence": What form(s) of query are support?
Synchronized Multi-Editor: How do users make updates with form editor and grid interactions simultaneously?
Pluggable Engine: How does it adapt to different execution engine backend?

[→](https://file+.vscode-resource.vscode-cdn.net/Users/blacksteed232/Developer/legend/studio/temp/knowledge_transfer_datacube_mechanics.md#what-is-it)
What is it?
A data-first query builder tool backed by the new Relation API that draws inspiration from the workflow of Slang's Seview DataCube.
→ Unlike Query, no modeling is needed to start querying data.
→ Relation, i.e. using tabular/flat projection data as source.
→ Battle-tested streamlined workflow to build interactive data report (with styling and layout support).
→
Why did we build it?
A data-first query builder tool backed by the new Relation API that draws inspiration from the workflow of Slang's Seview DataCube.
→ Strategic and low-effort entry point into Legend data platform. [ref: Studio SQL playground]
→ Flexible and versatile enough to be positioned as the drop-in grid result display component for various parts of the ecosystem. [ref: REPL, VSCode Notebook]
Better type-check, code complete, support for pivot, OLAP aggregations, time series.
→ Inherit the goodness and capture the market of Slang. [ref: Slang TDS Reader]
[→](https://file+.vscode-resource.vscode-cdn.net/Users/blacksteed232/Developer/legend/studio/temp/knowledge_transfer_datacube_mechanics.md#comparison-with-existing-query-tools)
Comparison with existing query tools

Query
Cube
DataCube

Model Source (model-first)
✅
🚧*
🚧*

TDS Source (data-first)
❌
✅
✅

Flexible Query Form
❌
✅
❌

Relation API Support
❌
❌
✅

Grouping Drilldown
🚧**
🚧**
✅

Layout Configuration
❌
❌
✅

Model source can be projected into TDS

Supported via local mode, i.e. no pushdown execution

[→](https://file+.vscode-resource.vscode-cdn.net/Users/blacksteed232/Developer/legend/studio/temp/knowledge_transfer_datacube_mechanics.md#nb-datacube--cube)
N.B. DataCube != Cube
😳😵💫😵😰🫨🤯🤕😒🙄
[→](https://file+.vscode-resource.vscode-cdn.net/Users/blacksteed232/Developer/legend/studio/temp/knowledge_transfer_datacube_mechanics.md#1st-mechanism-query-dna-sequence)
1st Mechanism: Query DNA Sequence
#{TDS}#
->extend()->filter()->select()
->pivot()->groupBy()
->extend()->sort()->limit()
→ Prune + Wrangle
→ Aggregate + Group/Drilldown
→ Sanitize
→
2nd Mechanism: Synchronized Multi-Editor
Problem [demo]
User can modify the underlying query using either the form-editor or by interacting with the grid (e.g. toggle sort on a column). These editors need to be in-sync.
| Inconsistencies increase the risk of losing work and confuse users!
Approach
Use pub/sub pattern to synchronize editor states via query snapshots.

Each editor takes a snapshot as the input.
Then apply it to populate the editor state.
When changes are to be published, the editor is responsible for producing a valid and consistent snapshot to then be broadcasted to other editors.

Note: If an invalid snapshot is accidentally published, other editors will not be able to apply this corrupted snapshot and stay out-of-sync until another valid snapshot is broadcasted.

User makes update using form-editor:
EngineGridForm EditorSnapshot ManagerUserEngineGridForm EditorSnapshot ManagerUserNo actionGrid configuration updated(Hit "Apply" button)publish(newSnapshot)alert(newSnapshot)alert(newSnapshot)apply(newSnapshot)fetchData()data(Display new data)

User makes update by interacting directly with the grid:
EngineGridForm EditorSnapshot ManagerUserEngineGridForm EditorSnapshot ManagerUserGrid configuration updatedNo actionEditor state updated(Toggle sort on a column)publish(newSnapshot)alert(newSnapshot)alert(newSnapshot)apply(newSnapshot)Display updated editor statefetchData()data(Display new data)

Advanced Usage Patterns:

Readonly editor
Decoupling and breaking-down complex editor

e.g. extended column editor, instead of having to propagate changes if it were part of the main form editor, before publishing snapshot, this editor only need to do a compilation check to ensure the modification is valid.

[→](https://file+.vscode-resource.vscode-cdn.net/Users/blacksteed232/Developer/legend/studio/temp/knowledge_transfer_datacube_mechanics.md#3rd-mechanism-pluggable-engine)
3rd Mechanism: Pluggable Engine
DataCube as a component has a very clean and simple usage interface
<DataCube engine={...} />

DataCube "knows" how to build the query, but relies on Legend engine for execution (and various operations: compilation, parsing, code completion, etc.). i.e. provided engine implementation changes depending on the usage context.
// simplified engine interfaceinterface DataCubeEngine {
  parse(code: string): Promise<ValueSpecification>;
  compose(value: ValueSpecification): Promise<string>;
  compile(value: ValueSpecification): Promise<void>;
  typeahead(code: string): Promise<CompletionItem[]>;
  execute(query: Lambda): Promise<DataCubeExecutionResult>;
// ...
}

Usage Context Examples

Application
Engine Implementation

REPL
Client of local REPL server

VSCode Notebook
Client of local Legend LSP server server (?)

Hosted DataCube
Client of remote Legend engine server. For execution, use the server to generate SQL to execute against browser-local DuckDB instance

[→](https://file+.vscode-resource.vscode-cdn.net/Users/blacksteed232/Developer/legend/studio/temp/knowledge_transfer_datacube_mechanics.md#thank-you-and-happy-datacubing)
Thank you and Happy DataCubing!

FAQ / Future Plan / AMA 😎 (if time permits)

!https://file+.vscode-resource.vscode-cdn.net/Users/blacksteed232/Developer/legend/studio/temp/knowledge_transfer_datacube_mechanics_ending.gif
# DataCube Mechanics

### Agenda

- **Context:** What is it?
  - **Motivation:** Why did we build it?
  - **Comparison:** How is it different from _**existing**_ query tools: `Query`, `Cube`?
- **Mechanics:** How does it work?
  - **Query _"DNA Sequence"_:** What form(s) of query are support?
  - **Synchronized Multi-Editor:** How do users make updates with `form editor` and `grid interactions` _**simultaneously**_?
  - **Pluggable Engine:** How does it adapt to different execution engine backend?

<button style="height: 30px; float:left; width: 100px; display: flex; align-items: center; justify-content: center; border-radius: 4px; border-width: 1.5px; background: #fcd34d">→</button>

# What is it?

A data-first query builder tool backed by the new Relation API that draws inspiration from the workflow of Slang's Seview DataCube.

         → Unlike `Query`, no modeling is needed to start querying data.

         → `Relation`, i.e. using tabular/flat projection data as source.

         → Battle-tested streamlined workflow to build interactive data report (with styling and layout support).

<button style="height: 30px; float:left; width: 100px; display: flex; align-items: center; justify-content: center; border-radius: 4px; border-width: 1.5px; background: #fcd34d">→</button>

# Why did we build it?

A data-first query builder tool backed by the new Relation API that draws inspiration from the workflow of Slang's Seview DataCube.

         → Strategic and _low-effort_ entry point into Legend data platform. [ref: Studio SQL playground]

         → Flexible and versatile enough to be positioned as the drop-in grid result display component for various parts of the ecosystem. [ref: REPL, VSCode Notebook]

             Better type-check, code complete, support for pivot, OLAP aggregations, time series.

         → Inherit the goodness and capture the market of Slang. [ref: Slang TDS Reader]

<button style="height: 30px; float:left; width: 100px; display: flex; align-items: center; justify-content: center; border-radius: 4px; border-width: 1.5px; background: #fcd34d">→</button>

# Comparison with _existing_ query tools

|                            |       Query       |       Cube        | DataCube |
| :------------------------- | :---------------: | :---------------: | :------------------------------------------------------------------: |
| Model Source (model-first) |        ✅         |  🚧\*  |                           🚧\*                            |
| TDS Source (data-first)    |        ❌         |        ✅         |                                  ✅                                  |
| Flexible Query Form        |        ❌         |        ✅         |                                  ❌                                  |
| Relation API Support       |        ❌         |        ❌         |                                  ✅                                  |
| Grouping Drilldown         | 🚧\*\* | 🚧\*\* |                                  ✅                                  |
| Layout Configuration       |        ❌         |        ❌         |                                  ✅                                  |

> \*     Model source can be _projected_ into TDS
 \*\*   Supported via `local mode`, i.e. no pushdown execution

<button style="height: 30px; float:left; width: 100px; display: flex; align-items: center; justify-content: center; border-radius: 4px; border-width: 1.5px; background: #fcd34d">→</button>

# N.B. DataCube != Cube

😳😵💫😵😰🫨🤯🤕😒🙄

<button style="height: 30px; float:left; width: 100px; display: flex; align-items: center; justify-content: center; border-radius: 4px; border-width: 1.5px; background: #fcd34d">→</button>

# 1st Mechanism: Query _DNA Sequence_

<scan style="font-family: monospace; font-weight: bold">#{TDS}#
  ->extend()->filter()->select()
  ->pivot()->groupBy()
  ->extend()->sort()->limit()

         → Prune + Wrangle

         → Aggregate + Group/Drilldown

         → Sanitize

<button style="height: 30px; float:left; width: 100px; display: flex; align-items: center; justify-content: center; border-radius: 4px; border-width: 1.5px; background: #fcd34d">→</button>

# 2nd Mechanism: Synchronized Multi-Editor

### Problem [demo]

User can modify the underlying query using either the form-editor or by interacting with the grid (e.g. toggle sort on a column). These editors need to be in-sync.

| **Inconsistencies increase the risk of losing work and confuse users!**

### Approach

Use pub/sub pattern to synchronize editor states via query snapshots.

- Each editor takes a snapshot as the input.
- Then apply it to populate the editor state.
- When changes are to be published, the editor is responsible for producing a valid and consistent snapshot to then be broadcasted to other editors.

> Note: If an invalid snapshot is accidentally published, other editors will not be able to apply this corrupted snapshot and stay out-of-sync until another valid snapshot is broadcasted.

#### User makes update using form-editor:

```mermaid
sequenceDiagram
  participant user as User
  participant manager as Snapshot Manager
  participant editor as Form Editor
  participant grid as Grid
  participant engine as Engine

  user ->>+ editor: (Hit "Apply" button)
  editor -)+ manager: publish(newSnapshot)
  deactivate editor
  manager -) editor: alert(newSnapshot)
  Note over editor: No action
  manager -)- grid: alert(newSnapshot)
  activate grid;
  grid ->> grid: apply(newSnapshot)
  Note over grid: Grid configuration updated
  grid -)+ engine: fetchData()
  deactivate grid;
  engine --)- grid: data
  activate grid;
  grid --) user: (Display new data)
  deactivate grid;

User makes update by interacting directly with the grid:
sequenceDiagram
  participant user as User
  participant manager as Snapshot Manager
  participant editor as Form Editor
  participant grid as Grid
  participant engine as Engine

  user ->>+ grid: (Toggle sort on a column)
  Note over grid: Grid configuration updated
  grid -)+ manager: publish(newSnapshot)

  manager -) grid: alert(newSnapshot)
  Note over grid: No action
  manager -)- editor: alert(newSnapshot)
  activate editor;
  editor ->> editor: apply(newSnapshot)
  note over editor: Editor state updated
  editor --)- user: Display updated editor state
  grid -)+ engine: fetchData()
  deactivate grid;
  engine --)- grid: data
  activate grid;
  grid --) user: (Display new data)
  deactivate grid;

Advanced Usage Patterns:

Readonly editor
Decoupling and breaking-down complex editor

e.g. extended column editor, instead of having to propagate changes if it were part of the main form editor, before publishing snapshot, this editor only need to do a compilation check to ensure the modification is valid.

→

3rd Mechanism: Pluggable Engine
DataCube as a component has a very clean and simple usage interface
<DataCube engine={...} />

DataCube "knows" how to build the query, but relies on Legend engine for execution (and various operations: compilation, parsing, code completion, etc.). i.e. provided engine implementation changes depending on the usage context.
// simplified engine interface
interface DataCubeEngine {
  parse(code: string): Promise<ValueSpecification>;
  compose(value: ValueSpecification): Promise<string>;
  compile(value: ValueSpecification): Promise<void>;
  typeahead(code: string): Promise<CompletionItem[]>;
  execute(query: Lambda): Promise<DataCubeExecutionResult>;
  // ...
}

Usage Context Examples

Application
Engine Implementation

REPL
Client of local REPL server

VSCode Notebook
Client of local Legend LSP server server (?)

Hosted DataCube
Client of remote Legend engine server. For execution, use the server to generate SQL to execute against browser-local DuckDB instance

→

Thank you and Happy DataCubing!

FAQ / Future Plan / AMA 😎 (if time permits)

Updating from react 18 to 19 as well as updating ag grid to a new major version seem in themselves as big and impactful  changes.
Could we please not add more things to this PR besides these dependency updates. I would hope other changes could be moved to separate PRS ?
Thanks. This will help the team manage impact :)

Updating from react 18 to 19 as well as updating ag grid to a new major version seem in themselves as big and impactful changes. Could we please not add more things to this PR besides these dependency updates. I would hope other changes could be moved to separate PRS ? Thanks. This will help the team manage impact :)


Testing

Tested and approved. We're moving all the features from back_end_experimental and searchB into main from testing.

looks phenomenal


Prevent items and layouts in attributes

This is a potential fix for #469.
This makes the checksummer explicitly abort when finding an item or a layout as an attribute, since this could potentially lead to an infinite loop, and is generally not well-supported.
An alternative fix could be to not allow items and layouts to end up in attributes in the first place.

Better fix in #518.


The args of "action" cannot be optional after version 1.3

Hello, I noticed that in version 1.3, the help method converts Python objects into a JSON structure. However, the current implementation prevents the use of UnionType in action definitions, which makes the args unable to be optional.
I looked at the code, and the main reason for this is:
# type
 sig_annotation = signature.parameters[arg_name].annotation
 if sig_annotation is not None and sig_annotation.__name__ != "_empty":

When the argument type is a UnionType, sig_annotation does not have the __name__ attribute.
Is this a design decision?

Add a possible reference https://json-schema.org/understanding-json-schema/reference/combining.html#oneof

You mean individual optional arguments? Yeah those are not yet supported yet. It's only because I haven't gotten to it.
The API currently assumes all method args are required and are plain JSON serializable types like (dict, list, string, ...). I should add that to the documentation I think.
This wasn't so much a design decision but just that I haven't explored it yet. I will tinker with this to see how the API can be adjusted to allow optional args.

Yes, because after Python 3.10, the optional type is a special case of the union type, which can be written as int | None. In many scenarios, this is convenient for code reuse. However, what may need to be considered here is whether the action tends to be designed as a function with a single responsibility, which is also the reason I'm asking if it is a design decision.


Why does this happen?
Is it possible to prevent this from happening so that only files > 0 bytes are put there?
Edit:
I have discovered that the filenames are timestamps. But why do they exists?

Hey, it is definitely possible but would require a patch that I have not had time to PR.
I'm not at my computer at the moment, but if you're interested in looking there's an upload.go file (I believe) where you'd likely check the byte length of the multipart fields and ignore anything that is == 0.
I would like to change the API a bit before v1 so that only multipart encoded form requests even go down the path of an upload and enable create/update requests to be in any other encoding. That would be an awesome PR if you are interested...

I could only implement a workaround to not show the zero-byte files in the GUI. I could not figure out how to get the files to not be uploaded.
I think in order to do this several functions will have to be split up. As it stands now, it seems like the functions in question will only write to the database if the file is uploaded. So- no file, no database entry. This means that content cannot be created without a timestamped file being created first, which needs to be split out of the functions and made to be a separate, optional, operation.

Files and functions that are involved:

system/admin/handlers.go

editHandler() (calls on storeFiles())

system/admin/upload/upload.go

storeFiles()

Perhaps, if storeFiles() is aptly named, then we can then just focus on editHandler() and split out the calls to storeFiles() to call on only if actually storing a file. I'll have to actually read the code.

Thought I would take a look at this, but I can not replicate this behaviour. Fixed already?  Anyone else see empty files created? I see folders, but not files.

Closing this on the basis that it is now old and I could not replicate - either with file or filerepeater. It may have been addressed. Please re-open if anyone finds this to still be an issue.


OgnlContext(Map) construct always throws exception

In this commit https://github.com/jkuhnert/ognl/commit/e30b2112979d1be7bed8073f1f47bffed6277fb2 OgnlContext(MemberAccess memberAccess, ClassResolver classResolver, TypeConverter typeConverter, Map values) was updates to throw an exception if memberAccess is null.
The constructor OgnlContext(Map values) always passes null and thus cannot ever work.
This impacts Thymeleaf since it calls OgnlContext(Map values) from its OGNL expression code.

You are using unstable release, also those changes were introduced to improve security.
I would rather change Thymeleaf to use a proper constructor of OgnlContext instead.

Now that 3.2.3 was released.
Where can I find an example of the proper way to create and use the memberAccess  in a proper OgnlContext?
I looked at http://commons.apache.org/proper/commons-ognl/developer-guide.html but didn't find a clear example.

It was released but it is still WIP :)
The simplest way is to implement your own AccessMember based on the DefaultAccessMember and create context like this
Ognl.createDefaultContext(root, new MyMemberAccess())


Home can i specify the resource file, read resource faild

My project structure is as follows
- MainApp
- HomeModule
- ProfileModule

MainApp does not depend on any libraries.
HomeModule and ProfileModule depend on R.swift, they have their own resource files
I want them to generate their own R.generated.swift file. R.generated.swift was successfully generated, but no resource files were read.
Example.zip
Thanks

This should now work correctly in Rswift 7.0.0


Mirroring of external repository does not work after rebase

Gitea version (or commit ref): 1.8.0 built with go1.12.4
Git version: 2.21.0
Operating system: Linux Debian
Database (use [x]):

[ x] MySQL

Can you reproduce the bug at https://try.gitea.io:

[ x] Yes

Description
If gitea is mirroring an external repository and the external repository undergoes a rebase or a force push (so that the histories diverge), then the mirrored repository fails to show those changes.
Steps to reproduce:

Create a repository with an inital commit on GitHub
Mirror this with gitea
Reword the initial commit, and force push up to Github
Observe that the changes are not shown on the master branch of the mirrored repository

For an example please see https://try.gitea.io/samangh/teset, which is supposed to be a mirror of https://github.com/samangh/test.

Interesting, if I delete the repository manually and then re-create with git clone --mirror, then gitea correctly mirrors the repository even if after forced pushes.

Have you ever modified "Mirror Interval"?

My mirror repo is getting weird after #6593 merged, can you check it? @zeripath
The mirror is unable to update the new commits to the proper branch after I update the mirror settings.
xxxxx.git/config:
before:
[core]
    ...
[remote "origin"]
	url = https://xxxx
	fetch  = +refs/*:refs/*
	mirror = true

after mirror settings updated:
[core]
    ...
[remote "origin"]
	url = https://xxxx
	fetch = +refs/heads/*:refs/remotes/origin/*

Have you ever update the mirror settings on the settings page?

No. I've just tried to manually mirror things by pressing the 'Sync' button.
Interesting, this is not 100% reproducible. I just setup another mirror on my local gitea server and the mirroring worked fine even with rebases. However, the example mirror that I setup on https://try.gitea.io/samangh/teset is still broken.

Hmm... I wonder if this needs to be
_, err = git.NewCommand("remote", "add", "origin", "--mirror", addr).RunInDir(repoPath)


[Hub Generated] Review request for Microsoft.RecoveryServices to add version stable/2023-08-01

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
ARM (Control Plane) API Specification Update Pull Request
PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

 Click here to see the details of Step 1
Breaking changes review (Diagram Step 1)
If the automation determines you have breaking changes, i.e. Step 1 from the diagram applies to you,
you must follow the breaking changes process.
IMPORTANT This applies even if:

The tool fails while it shouldn't, e.g. due to runtime exception, or incorrect detection of breaking changes.
You believe there is no need for you to request breaking change approval, for any reason.
Such claims must be reviewed, and the process is the same.

 Click here to see the details of Step 2
ARM API changes review (Diagram Step 2)

If this PR is in purview of ARM review then automation will add the ARMReview label.
If you want to force ARM review, add the label yourself.
Proceed according to the diagram at the top of this comment.

 Click here to see the diagram footnotes
Diagram footnotes
[1] ARM review queue (for merge queues, see [4])
The PRs are processed by time opened, ascending. Your PR may show up on 2nd or later page.
If you addressed Step 1 from the diagram and your PR is not showing up in the queue, ensure the label ARMChangesRequested
is removed from your PR. This should cause the label WaitForARMFeedback to be added.
[2] https://aka.ms/azsdk/support/specreview-channel
[3] List of SDK breaking changes approvers in pinned Teams announcement
[4] public repo merge queue, private repo merge queue (for ARM review queue, [1])
If you need further help with anything, see Getting help section below.

Purpose of this PR
What's the purpose of this PR? Check all that apply. This is mandatory!

[ ] New API version. (If API spec is not defined in TypeSpec, the PR should have been generated using OpenAPI Hub).
[ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix swagger quality issues in S360.
[ ] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[ ] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[ ] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the Diagram Step 2, "ARM API changes Review", for this PR.

Additional information

 Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.

Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
Swagger-Suppression-Process
to get approval.

Getting help

For general PR approval workflow, see the diagram at the top of this comment.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
If the PR CI checks appear to be stuck in queued state, please add a comment with contents /azp run.
This should result in a new comment denoting a PR validation pipeline has started and the checks should be updated after few minutes.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

This is just am API version update from last swagger stable version. There are no feature updates.

        "OnlyCrashConsistent"

Other enums in this file have Invalis as first value, so add that ?

Refers to: specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/bms.json:5832 in 1a19164. [](commit_id = 1a19164202f2f5fc82667b1a3522b2b173e42b3c, deletion_comment = False)

        "OnlyCrashConsistent"

Other enums in this file have Invalis as first value, so add that ?
Refers to: specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/bms.json:5832 in 1a19164. [](commit_id = 1a19164, deletion_comment = False)

No, Invalid is not the correct option here. Cx is not supposed to pass this property if snapshot consistency is not set

"version": "2023-08-01",

This version became 2023-08 only in iteration 3.
Usaully first iteration is drop of previous version, second iteration we drop chnages (including version chnage) --
This is hub generated, do you why it revised verison only in iteration 3 ?

Refers to: specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/bms.json:4 in 1a19164. [](commit_id = 1a19164202f2f5fc82667b1a3522b2b173e42b3c, deletion_comment = False)

        "name": "IAASVMSnapshotConsistencyType",

IaasVM, acronymns more than 2 should not be capital.
other than the policyType peorpty above, everywhee it follows IaasVM

Refers to: specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/bms.json:5836 in 1a19164. [](commit_id = 1a19164202f2f5fc82667b1a3522b2b173e42b3c, deletion_comment = False)

{

Please get SDK breaking changes reviewed and approved from SDK reviewers (Go/JavaScript).

Refers to: specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/bms.json:1 in ae50268. [](commit_id = ae502689ffd888665bdf117a7c47462195783cbc, deletion_comment = False)

tag: package-2023-06

Does this need to be updated also?
Also, check this: https://github.com/Azure/azure-rest-api-specs/pull/26828/checks?check_run_id=19211818992.

Refers to: specification/recoveryservicesbackup/resource-manager/readme.md:31 in ae50268. [](commit_id = ae502689ffd888665bdf117a7c47462195783cbc, deletion_comment = False)

tag: package-2023-06

Does this need to be updated also?
Also, check this: https://github.com/Azure/azure-rest-api-specs/pull/26828/checks?check_run_id=19211818992.
Refers to: specification/recoveryservicesbackup/resource-manager/readme.md:31 in ae50268. [](commit_id = ae50268, deletion_comment = False)

Yes updated

correctness fix in last API version - #26665

done

Breaking change was added by @hiaga which was reverted back. I think we dont need breaking changes review

@visingla-ms Could you pls review now, I've reverted the commit which was causing breaking change.

    "identityArmId": {

Please check https://github.com/Azure/autorest/blob/main/docs/extensions/readme.md#x-ms-arm-id-details if it is an ARM Resource Id.

Refers to: specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/bms.json:9694 in 30a8233. [](commit_id = 30a8233b7a44cec549dd6a8a1fd8b55e795569ec, deletion_comment = False)

    "principalId": {

You don't need tenantId for a User Assigned Identity?

Refers to: specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/bms.json:9684 in 30a8233. [](commit_id = 30a8233b7a44cec549dd6a8a1fd8b55e795569ec, deletion_comment = False)

    "principalId": {

You don't need tenantId for a User Assigned Identity?
Refers to: specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2023-08-01/bms.json:9684 in 30a8233. [](commit_id = 30a8233, deletion_comment = False)

PrincipalID and ClientID suffice for all operations.
For SAPHana we use clientID to fetch the AAD token for snapshot operations.

/pr RequestMerge


Priority? Fees

How do we add priority fees or compute units to this to ensure the transaction is successful?

you can add priority_fee parameter by yourself to the method swap() at jupiter.py
Line:645
priority_fee: int=0
and Line:690
transaction_parameters = {
"quoteResponse": quoteResponse,
"prioritizationFeeLamports":priority_fee,  # <- add here
"userPublicKey": user_public_key,
"wrapAndUnwrapSol": wrap_unwrap_sol
}

Hello, sorry for the delay. I just updated the library, thanks a lot jhliu2019


Cannot be installed with React and React DOM v18.3.1

Problem:
While installing I got this error:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/react
npm ERR!  peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!  node_modules/react-dom
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! rocketicons@"*" from the root project
npm ERR!
npm ERR! Conflicting peer dependency<EMAIL_ADDRESS>npm ERR! node_modules/react
npm ERR!  peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!  node_modules/react-native
npm ERR!   peer react-native@"*" from<EMAIL_ADDRESS>npm ERR!   node_modules/react-native-svg
npm ERR!    peer react-native-svg@">=15" from<EMAIL_ADDRESS>npm ERR!    node_modules/rocketicons
npm ERR!     rocketicons@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

As I can see @dependabot created a pull request #95
To reproduce:

Create new react app with react 18.3.1
Run npm install rocketicons
Get error

Also, it might be a good idea to separate React and React Native libraries into different packages

Also, it might be a good idea to separate React and React Native libraries into different packages

We thought about that, but it makes no sense since the goal here is to use exactly the same code on React and React Native, allowing devs to share the same code base across the project.


Should we add docs on using Bun as runtime?

As you know, Bun has existed for quite a while now.
I tested it recently with Astro and it works fine. Should we document this somewhere?
Willing to pick this up for sure!

But I did notice that the @astrojs/image integration does not work!

Interesting. How would you imagine documenting it? Is it effectively a replacement for npm/pnpm/Yarn so e.g. we’d add bun i astro anywhere we show  npm i astro or is it more complicated than that?

At this moment, I feel like it's indeed something like 'bun install' and 'bun run ...'. But maybe there's more here then we see at first sight, for example, what with 'npx create-astro' and such.
I'll take a deeper look into this tomorrow and gather some more thoughts!
I'll update this issue sometime tomorrow!

Thanks! If that were the case, that’s a pretty big change to go through updating all our package manager prompts to also include bun — especially if it turns out to still be a bit experimental and not support everything (like the image integration). So definitely something to chat through and figure out what’s best.

Just pinging this for freshness... and wondering whether this could be a good recipe as an experiment, until we figure out whether it seems like something stable enough for more general purpose?

Yes, I definitely think this would fit better in the recipes section than an overall page! Want me to write this out?
In the meantime, I verified that Bun is very usable with astro, except for the creation of a project, but we can mention that in docs for sure!

@ElianCodes Would be happy to have this in docs if you're up for writing it out!  🙌


WIP: Retain ip

@StrongMonkey whats the story behind this PR? we want retainIp on per launch config basis?

@alena1108
About this issue https://github.com/rancher/rancher/issues/9317 .
Our new networking option(host-subnet), need to enhance the logic of the scheduler.
It needs retain_ip and AllocatedIPAddress.

@niusmallnan so it is not really about defining it on per container (launchConfig) basis on the API level, but rather propagating the info to the scheduler, correct?
In 2.0, we start supporting the retainIp field on per container level basis. If we decide to do the same in 1.6.x branch, we need to support 2 formats - on per service basis, and on per container basis - for backwards compatibility. It means that all referencing places in the services code (upgrade is one fo them I believe) have to be revised and modified if needed. Or in 1.6.x we can just derive the boolean flag from the corresponding service field for now, and ip address from the instance's service index.
@StrongMonkey ^^


Change course names according to the naming convention

All words capitalized, including "to", "and", etc.
Explicit words instead of symbols ("And" instead of "&", etc.)
Shorten extra-long names (Classify handwriting digits using shallow, deep, and CNN -> Classify Handwritten Digits With Neural Networks

Also, delete corresponding Kaggle notebooks. Maintain the courses only in one place, with one version

two more naming conventions to add:
4. The only special characters allowed are - (dash) and : (colon)
5. the course file paths and course url paths should be derived from the displayed names. The rule is to replace all spaces and : (colon) with - (dash) and make everything lowercase, like so:
Example 1:
displayed name:
Classify Handwritten Digits With Neural Networks

path and url name:
classify-handwritten-digits-with-neural-networks

Example 2:
displayed name:
Pytorch: Tensor Manipulation

path and url name:
pytorch-tensor-manipulation

Done. All course names are changed.


[Feature Request] Permission Check

Can you make a permission check that makes that only permitted users get shown a command, e.g.
only if a user have the permission ban_members, he can see the command /ban

No. Unfortunately discord doesn't provide that functionality for slash commands.
A permissions decorator is being worked on, but unfortunately it works based on roles as per Discord's API


[JOSS] Missing contributing guidelines

Hi, CBXpy team!
The repository needs contribution guidelines for the community. This is required for acceptance based on the JOSS review checklist: "Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support".
I would encourage you to have a look at GitHub - Setting guidelines for repository contributors for some ideas.

Hi,
thanks a lot for pointing this out, and sorry for missing including the guidelines. I just added the CONTRIBUTING.md here and hope that it gives a good overview of how to contribute.
Let me know if you think it's fine, and thanks again.
Best
Tim

Looks good, thank you for your quick answer!


Having a bad or missing values in stage 1 or 3 causes an error in stage 4 viewer

I can get these errors in a couple circumstances. After all of the data have been taken, if I go back and change a velocity to a bad value
In stage 1:

or if I am in stage 3 and I refresh and click the "tape measure" after the distances have been filled in already
In stage 3:

I get these errors. I am not sure what is triggering the next stage... this isn't fixed by #335 (which solves it's issue), and this seems to be unrelated to that issue.

closed as it was a duplicate of #332


New command: m365 pp dataverse table list

Usage
m365 pp dataverse table list
Description
Lists dataverse tables in given environment
Options

Option
Description

-e, --environment <environment>
The name of the environment to list all tables for

--asAdmin
Set, to retrieve the dataverse tables as admin for environments you are not a member of

Examples
List all tables for the given environment
m365 pp dataverse table list -e "Default-2ca3eaa5-140f-4175-8261-3272edf9f339"

List all tables for the given environment as Admin
m365 pp dataverse table list -e "Default-2ca3eaa5-140f-4175-8261-3272edf9f339" --asAdmin

Additional Info
We can retrieve from the runtime endpoints the same way we retrieve the https://europe.api.bap.microsoft.com URL the value for Dynamics and call the following URL to get all details.
We should do a get on the environment details to get the properties that contain the correct url:
"linkedEnvironmentMetadata": {

      "instanceUrl": "https://xx.crm4.dynamics.com/",
      "instanceApiUrl": "https://xx.api.crm4.dynamics.com",

    },

And then call something like:
https://ORGURL/api/data/v9.0/EntityDefinitions?%24select=MetadataId%2CIsCustomEntity%2CSchemaName%2CIconVectorName%2CLogicalName%2CEntitySetName%2CIsActivity%2CDataProviderId%2CIsRenameable%2CIsCustomizable%2CCanCreateForms%2CCanCreateViews%2CCanCreateCharts%2CCanCreateAttributes%2CCanChangeTrackingBeEnabled%2CCanModifyAdditionalSettings%2CCanChangeHierarchicalRelationship%2CCanEnableSyncToExternalSearchIndex&%24filter=(IsIntersect%20eq%20false%20and%20IsLogicalEntity%20eq%20false%20and%0APrimaryNameAttribute%20ne%20null%20and%20PrimaryNameAttribute%20ne%20%27%27%20and%20ObjectTypeCode%20gt%200%20and%0AObjectTypeCode%20ne%204712%20and%20ObjectTypeCode%20ne%204724%20and%20ObjectTypeCode%20ne%209933%20and%20ObjectTypeCode%20ne%209934%20and%0AObjectTypeCode%20ne%209935%20and%20ObjectTypeCode%20ne%209947%20and%20ObjectTypeCode%20ne%209945%20and%20ObjectTypeCode%20ne%209944%20and%0AObjectTypeCode%20ne%209942%20and%20ObjectTypeCode%20ne%209951%20and%20ObjectTypeCode%20ne%202016%20and%20ObjectTypeCode%20ne%209949%20and%0AObjectTypeCode%20ne%209866%20and%20ObjectTypeCode%20ne%209867%20and%20ObjectTypeCode%20ne%209868)%20and%20(IsCustomizable%2FValue%20eq%20true%20or%20IsCustomEntity%20eq%20true%20or%20IsManaged%20eq%20false%20or%20IsMappable%2FValue%20eq%20true%20or%20IsRenameable%2FValue%20eq%20true)&api-version=9.1
All details on https://docs.microsoft.com/en-us/power-apps/developer/data-platform/webapi/query-metadata-web-api
As pointed out by @waldekmastykarz as a list command the following properties should be part of the output when using text output: DisplayName (table name), EntitySetName, IsManaged, IsCustomizable
⚠ requires additional permissions when going live; needs the Dynamics CRM user_impersonation permissions

@pnp/cli-for-microsoft-365-maintainers please chime in on the command structure. I added the table segment as I can see that the CLI at some point should be able to add new tables as well, and dataverse also provide options to add things like dataflows / synapse links and connectors. If we all agree I can open it up for help or build it ;)

I like it @appieschot, you have my blessing!

Looks good to me. Great suggestion @appieschot!

all in on this one 👍 I also agree on adding more commands for the pp. I think it will be a good time investment since a lot is going on the PP side now and users are probably looking for a good CLI tool which could support it and not only that 😉

Since this is a list command, let's extend the spec to mention which properties we'll show by default in text output

Great feedback! Updated the specs 🦾

Okey minor update, after creating a custom app reg I can confirm that
m365 request --url "https://digiwijs.api.crm4.dynamics.com/api/data/v9.0/EntityDefinitions" --debug works (requires some filtering / selecting of proper values) and an update to the base pp command class to figure out what the dynamics URL is as that differs per environment. But I do get a response. Suggest that I pick up this one and work out the basics