Why don't we use f-m-p for the java projects?

/cc @burrsutter @rafabene @yanaga @kameshsampath

The F8-M-P did not work with OpenShift 3.7 which is what we have been using since we began this tutorial effort 3 months ago.  When the new version arrives F8-M-P, it could be stable and elegant enough to offer value.
With that said, I do feel that seeing how the Docker Image is created and how the actual Kubernetes Deployment is crafted is very valuable.
This Tutorial is still targeted at "early adopters" for the next several months, those folks who can handle some seriously rough edges and wish to dig deeper.

F8-M-P did not work with OpenShift 3.7
The bug reported concerning f-m-p and openshift 3.7 has been fixed recently. Then, you can now envision to use again f-m-p top of openshift 3.7.

FYI: A f-m-p enricher has been designed for istio and is available here
It can be easily used if you define a f-m-p profile within your maven module - see example here

so -- fmp works fine with OpenShift 3.7
I'm still not convinced to use fmp for istio enrichment but we should at least have an option to use fmp.

Closing since @christian-posta will fork this repo


Cleanup addBindingToImportList

#916 was tricky and didn't work in some cases. Now the procedure has become clearer, and I add some comments to show how it works. I'm not sure all cases are covered, and we may need more tests.

The tests are unreliable because the code action needs the package exports map to be populated, which is done implicitly by kick. To wait until kick is done, I think it should be enough to change the test template to wait for progress after waiting for diagnostics:
      void (skipManyTill anyMessage message :: Session WorkDoneProgressEndNotification)

Thanks! Should we adopt this implementation? If so, how to handle unknown cases? I don't think error is suitable here, since it will crash ghcide.

I would handle the unknown cases by returning a Nothing so that no code action is provided. After all, we don't know how to apply GHC's suggestion.
In a follow-up change, rework this using ghc-exactprint. For this, I suggest asking @isovector for permission to inline the very useful https://github.com/haskell/haskell-language-server/blob/master/plugins/tactics/src/Ide/TreeTransform.hs in ghcide

@pepeiborra please do. It's only where it is for convenience to me, but always was intended to be upstreamed.


Iterator response for getPrivateDataQUeryResult is not an interator

When making a call to StubHelper.prototype.getQueryResultAsList using Fabric 1.4 (haven't tested with other versions) and<EMAIL_ADDRESS>the iterator response is not an actual iterator, but an object containing an iterator as a prop.

This produces the error TypeError: iterator.next is not a function


chore(deps): update slate libs in storybook and peer dep semver

Signed-off-by: Diana Lease<EMAIL_ADDRESS>FLAGS
When I ran the lerna command in the README, it created a package-lock.json file in my storybook directory, but this file was not being tracked by git so I did not commit it. Not sure if it needs to be.

Signed-off-by: Diana Lease<EMAIL_ADDRESS>FLAGS
When I ran the lerna command in the README, it created a package-lock.json file in my storybook directory, but this file was not being tracked by git so I did not commit it. Not sure if it needs to be.

With lerna bootstrap ? I don't see that on my local build.

I think @dselman should take a look at this.


[Adblock BUG] Popups ads do not get blocked some times

Describe bug
The banner/popups ad does not get blocked and stays for a few minutes before being blocked by the extension again
Steps to replicate
Happens randomly
Necessary screenshots

Spicetify and Spotify Version
Spotify for Windows <IP_ADDRESS>4.gccacfc8c
Spicetify v2.9.2

Same has happened to me, I came here to see if someone else had already made an issue on it.
Screenshot:

Seems like that is the homepage ad, you can use my theme which will block it using CSS: https://github.com/Daksh777/SpotifyNoPremium
But the popup ads still come a few times for some reason.

Smoothest plug I have seen

I mean this is just the new update,
Will patch it in a quick sec once i'm done with vacation. @Scherso

It works after playing with my backup, running spicetify backup then making sure the css mappings load somehow fixed it once I re-ran spicetify backup apply. Still weird that it just stops working sometimes though.

@Scherso Alright, i'll check it out in depth after I get back

Oh yeah, this has not been an issue for me recently, You have the go-ahead from me to close this.

Oh yeah, this has not been an issue for me recently, You have the go-ahead from me to close this.

Appreciate it

Yes @CharlieS1103, works well!
Thank you :D


Self-Service Enhancements T-Shirt Size

Starting with a 30 point placeholder to cover:

Email infrastructure setup and notifications
User help
Notes and communication between curator and contributor

Closing, as this was a placeholder card for grant forecasting purposes.


[Release] sdk/resourcemanager/sphere/armsphere/0.1.0

https://github.com/Azure/sdk-release-request/issues/4310
namespace: https://github.com/Azure/azure-sdk-pr/issues/1162

/azp run prepare-pipelines

/azp run go - armsphere - ci

/check-enforcer override


Cannot override queue in publish() or subscribe()

When a queue name is passed in the overrides to a publish() or a subscribe() call, it seems to be ignored and the original queue defined in the broker configuration will be used. This is particularly problematic for dynamically-generated response queues.
Here is a reproduction: https://github.com/stevenhair/ubiquitous-adventure

Hi @stevenhair,
Thanks for reporting and the excellent reproduction. Rascal was designed this way to ensure that the queues and exchanges exist when the broker starts, and that they can be optionally torn down on shutdown, but I agree it makes things problematic for dynamically generated response queues. I suspect making this change may be difficult, but I'll have a think and see if it's something Rascal can support. In the meantime your best option is to use [broker.connect].(https://github.com/guidesmiths/rascal#connect)

Thanks for the quick response. For context, I'm using a request-reply pattern, which was implemented using amqplib using a temporary queue for the response. I recently needed the ability to fail over to another RabbitMQ instance which is not supported by amqplib, so I decided to give Rascal a try. Of course, I tried to translate the original pattern, but since Rascal doesn't support this, I changed the pattern a bit.
Now I use a single response queue that lives for the life of the application. I subscribe to that and just push all of the messages to an rxjs Subject. After sending a request, the caller then subscribes to the response observable and filters out responses that don't have the same correlationId.
If you don't feel that this functionality is a fit for Rascal, feel free to close this ticket. I'll move this issue over to DefinitelyTyped, since the types imply that this functionality exists.

Hi @stevenhair,
Thanks for your response and the extra context. I took a walk through the code, and I think the feature will be difficult to implement, mainly because when I started Rascal I wanted it to be config driven. This led me to put quite a lot of logic in the configuration, initialisation and shutdown phases which would need to be either duplicated or extracted so they could be called dynamically. I'm not against the change, but not sure I'll get time to make it for a little while.
I do have one other idea...
Rascal has an undocumented feature where if you specify replyTo: true in the queue configuration, it appends a uuid to the queue name, making it unique per application. You may also need to configure the queue as exclusive: true, durable:false and autoDelete: true as well.
This would mean each instance of the application could be subscribe to a dedicated, temporary reply queue. To publish messages to the reply queue you would need to publish a message to the default exchange, using the unique queue name as the routing key. The queue name would have to be specified in the original message (probably via a header). One catch though - I'm not sure how easy it is to get the queue name, but I don't imagine it would be hard to expose this on the publication.
Would the above fit your needs?

I think that's basically what I ended up implementing - I just generate a random queue name before creating the broker and use that name in the configuration passed to the create() function. I'm not sure how much overhead queue creation added (my application is relatively low-volume), but this is probably a better solution than what I had before.


feat: custom doc-layout components

Summary
The DocLayout uses internal components to render MDX nodes. There is no documented way (as far as I can tell) to override these nodes without providing an entirely custom DocLayout component altogether.
To address this, allow the user to provide components to the Layout component. In the future, maybe the DocLayout could be extended to handle arbitrary nodes as well.
Related Issue

Related to #1362 because this feature will allow the user to override and customize known MDX nodes.
Checklist

~[ ] Tests updated (or not required).~
[x] Documentation updated (or not required).

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


Adding pyh5md conda-forge conda package

Hello,
I'm Edis, an undergraduate at ASU working with Dr. Oliver Beckstein and Beckstein Lab over the summer as an REU student.
The project I've been working on is implementing an h5md file coordinate reader/writer in MDAnalysis, where I've been using the pyh5md library to create and read from .h5md files. Here's a link to the issue on MDA where some of the progress has been documented.
I've opened this issue because we eventually need a pyh5md conda package for MDA and we are happy to help :).

Hello Edis,
Nice iniative to include H5MD in MDAnalysis :-) I wrote a message in the related PR to present the situation with pyh5md. Let me know what you think and what plan you pick to include the writer functionality.
Cheers,
Pierre

Hey Dr. de Buyl,
Thanks for the quick reply!
After talking to Oliver I think we're going to use h5py for our MDA reader and borrow code from pyh5md for the writer. Do you mind if I ask you questions along the way as I try to understand exactly how pyh5md works?
Thanks,
Edis

I think that this is a good plan. You can ask questions in a github issue or by email. My email is available at https://www.kuleuven.be/wieiswie/en/person/00092351 (the page has spam prevention JS - I don't write it in plain online).

@edisj I think that this issue can be closed.


[WIP]: Separate overview and setup instructions pages

WHY:
Next iteration from PR #388
An organisation that has setup GovWifi and is running it should see something that gives them an overview of their current installation. They do not need to see the setup instructions on the same page. Similarly, an organisation that has NOT set up GovWifi does not need to see an overview of their current installation but should definitely see how to setup.
IN THIS PR:

SetupController and itsindex.html were added. The instructions for setting up were moved to this index.html. Organisations that have not yet setup GovWifi (determined by number of IPs for now) will be redirected to this page from root. Organisations that have setup GovWifi will not be redirected from the root page i.e. Overview.

Tests were added and/or edited & made to pass before the transfer of contents from Overview to Setting Up as a precaution. Suggestions and feedback on this aspect would be appreciated.

BEFORE:

AFTER:

Unless an Organisation has setup GovWifi, they will not see Overview as a link in the navigation.

All users (regardless of setup status) will see Setting Up as a link in the navigation.

Active IPs was renamed Added IPs to avoid confusion between Number of IPs with and without sessions running on them.  Active IPs may be implemented as a later feature. Suggestions and feedback on this change would be appreciated.

Added IPs and Admins link to the IPs page and Team Members Page respectively.

Based on commit fa1c5ea.
Did not make Locations a link in the overview as there was no unique page to link to this. The closest was the IPs page which is already being linked to Settings and Added IPs.
Any suggestions & feedback on this would be appreciated.


Zeppelin script should be consistent with Shell Style Guide

Found following issues:

indentation inconsistency
lack of verbose error messages
mixed variables/constants with functions
no main function despite actions' length
no systemd configuration

closing this one in favor of #200


Worker can only be started within bin folder

When starting the worker from outside of the bin folder the following error occurs:
$ ./bin/substratee-worker run
*** Starting substraTEE-worker
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: SGX_ERROR_ENCLAVE_FILE_ACCESS', worker/src/main.rs:104:46
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I don't think that's the way it should work..

This is partially solved. The worker was changed to look in the same directory as it's binary for the enclave file. It does not look in the bin folder. Polkadex does not have that yet.
Furthermore, the launch.py does setup directory working directory.

The problem is that at one point the worker needs to look for the enclave file. Hence, the make file should probably copy it to an absolute path that the worker can access.

Partially meaning this issue can be closed or not just yet?

I am unsure if the current solution suffices. Keep it open

such problems are usually solved by adding a derivation path with priorities, like

CLI option to define enclave file
ENV variable pointing to enclave file
working dir
some userspace location that should be standardized
some systemwide location that should be standardized

I think it is worth solving this properly because it is essential to use the correct enclave file and there may be cases where the same machine will validate more than one sidechain and therefore have multiple envclave files lying around


JSONAlchemy: Improper Syntax Error

When trying to use 3 @connect operators, I receive Syntax Error. For example, given this field configuration:
author_note:
    """Contains public note."""
    derived:
        @parse_first('_public_note', '_private_note', '_curators_note')
        @connect('_public_note', sync_notes)
        @connect('_private_note', sync_notes)
        @connect('_curators_note', sync_notes)
        @only_if('_public_note' in self or '_private_note' in self
                 or '_curators_note' in self)
        sum_notes(self, '_public_note', '_private_note', '_curators_note')

Note that:

Changing the order of the decorators doesn't help
Changing only_if call to one line doesn't help
Removing any of the @connects helps

This is the pyparsing grammar definition for derived fields.
der_calc_body = (Optional(field_decorators).setResultsName('decorators') +
                     PYTHON_ALLOWED_EXPR)
    derived = (
        Keyword('derived:').suppress() +
        indentedBlock(der_calc_body, indent_stack)
    ).setParseAction(lambda toks: {
        'source_format': 'derived',
        'source_tags': None,
        'function': compile(toks[-1].strip(), '', 'eval'),
        'type': 'derived',
        'decorators': toks.decorators.asDict()}).setResultsName('derived_def')
    calculated = (
        Keyword('calculated:').suppress() +
        indentedBlock(der_calc_body, indent_stack)
    ).setParseAction(lambda toks: {
        'source_format': 'calculated',
        'source_tags': None,
        'function': compile(toks[-1].strip(), '', 'eval'),
        'type': 'calculated',
        'decorators': toks.decorators.asDict()
    }).setResultsName('calculated_def')

Which looks fine. No idea where does the error come from.

The problem is in multiline decorator definition:
 @only_if('_public_note' in self or '_private_note' in self
                 or '_curators_note' in self)

vs.
 @only_if('_public_note' in self or '_private_note' in self or '_curators_note' in self)

@MSusik can you verify it?

@jirikuncar
Tried it, didn't work.

Closed as issue was moved to the new repo.


Implement promote_after_deploy for chain deployments

:rocket: What
Wires in the promote_after_deploy parameter in chain deployments.
We should only merge this once https://github.com/basetenlabs/baseten/pull/9192 is fully deployed & the frontend is implemented.

:computer: How

:microscope: Testing
See https://github.com/basetenlabs/baseten/pull/9192 for details here

Will this be wired up with CLI in a follow up?

Will this be wired up with CLI in a follow up?

I'll actually just add it in this PR

Actually @marius-baseten , it's already wired in

Actually @marius-baseten , it's already wired in

LOL that's why Bola asked about it...


Switch on User, not UserInterface and include id

This won't work unfortunately.
Me is not a User. There's another fix possible though.

also the fragment should not include data the component isn't using. This should be requested where it's needed. This has been making things very confusing.


postgresql: Improve and cleanup module.

Essentially why I'm doing a pull request instead of directly pushing here is because of a6c2e79af979530769e0727bf51a735e3f3f1297, which could break configurations out there.
At the current master enableTCPIP has no effect at all, because of the reason I described in the mentioned commit.
So, with this commit, it will essentially break configurations where users have just ignored enableTCPIP, which leads to PostgreSQL listening to local TCP/IP connections by default (which I presume wasn't intended, because enableTCPIP defaults to false).
Which brings me to the main question: Should we enable listening to local TCP/IP connections by default?

@aszlig let's close this?


Remove client-side hash creation when creating a job

Idea: remove the requirement to specify the job hash when the Job JSON blob is submitted to the master. It may be hard for non-Java clients to create the job hash in the same exact way that the helios-client Java code does (which is dependent on JSON serialization settings in Jackson).
Additionally, the current requirement that the server is able to create the same hash from the Job arguments and have it match what the client sends means it is impossible to have the client send along new fields in the Job that the master does not yet know about. This means it's not really possible to deploy a new version of the client/CLI ahead of upgrading the master.
related to https://github.com/spotify/helios/pull/378

For this use case of wanting to add new fields to the Job definition, the reverse situation of running the master at a newer version than the client/CLI (where the master knows of a new Job field) works fine.


Document  iter().copied() vs iter() for small data types

As the issues https://github.com/rust-lang/rust/issues/106539 and https://github.com/rust-lang/rust/issues/113789 indicate, iter().copied() is more efficient than iter() for small data types because the former one results in less indirections and hence opens up the room for more optimizations. How small is small needs more investigations, but anything <= usize should definitely be small(in fact, the original reply in the issue suggests 8*usize is probably still small enough).

Indeed, there is a comment form a compiler developer that this is extremely difficult for LLVM to optimize, and that putting .copied() early should be encouraged: https://github.com/rust-lang/rust/issues/106539#issuecomment-1374021037


Feature - Add Appointment Deletion

Changes
This PR adds a functionality to delete appointments currently in the system.
Related Issues

Closes #105

Codecov Report

Merging #139 (e46ac9e) into master (46e5997) will increase coverage by 1.77%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #139      +/-   ##
============================================
+ Coverage     75.25%   77.02%   +1.77%
- Complexity      538      568      +30
============================================
  Files            84       86       +2
  Lines          1580     1606      +26
  Branches        170      173       +3
============================================
+ Hits           1189     1237      +48
+ Misses          352      333      -19
+ Partials         39       36       -3

Impacted Files
Coverage Δ

.../main/java/seedu/contax/commons/core/Messages.java
0.00% <ø> (ø)

src/main/java/seedu/contax/model/Schedule.java
100.00% <ø> (+14.28%)
:arrow_up:

...ontax/logic/commands/DeleteAppointmentCommand.java
100.00% <100.00%> (ø)

...a/seedu/contax/logic/parser/AddressBookParser.java
100.00% <100.00%> (ø)

...x/logic/parser/DeleteAppointmentCommandParser.java
100.00% <100.00%> (ø)

src/main/java/seedu/contax/model/ModelManager.java
100.00% <100.00%> (+4.47%)
:arrow_up:

...tax/model/appointment/DisjointAppointmentList.java
100.00% <100.00%> (+8.16%)
:arrow_up:

...rc/main/java/seedu/contax/model/person/Person.java
100.00% <0.00%> (+2.38%)
:arrow_up:

...va/seedu/contax/model/appointment/Appointment.java
97.29% <0.00%> (+2.70%)
:arrow_up:

... and 7 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 46e5997...e46ac9e. Read the comment docs.


Support requested for Athena / PrestoDB / Trino

See https://github.com/ontop/ontop/issues/462#issuecomment-1224764143

Support for Trino added: #599

Support for PrestoDB added: https://github.com/ontop/ontop/pull/601

Support for Athena added: #602


[Settings] [Color picker] Attribution links not translated

Do we need translation for the link names?

no


Linter: Error when setting initial state in constructor of class component

The eslint-plugin-react(no-direct-mutation-state) linting rule doesn't seem to differentiate between methods and the constructor method. Mutating this.state in constructor is fine and a common pattern to set the initial state.
import { Component } from "preact";

class Foo extends Component{
  constructor() {
    super();
    this.state = { i: 1 };
  }
  componentDidMount() {
    doRender = () => this.setState({ i: 2 });
  }
  render(props, { i }) {
    return <WithDefaultProps fieldA={1} fieldB={i} fieldD={i} />;
  }
}

This pattern should be correct as indicated in the original linting rule here https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-direct-mutation-state.md

The issue doesn't reproduce for me with the example, it does however show on https://github.com/preactjs/preact/blob/main/test/browser/spec.test.js#L41-L52

Whoops, yeah updated the example snippet.

It's pretty odd, even that snippet does not reproduce in tests when I run them. Trying to investigate how that's possible

Fixed in v0.3.5 https://github.com/oxc-project/oxc/releases/tag/oxlint_v0.3.5


Create Care4ther_Landing_Page.svg

Related Issuse
-Design File
Closes: #46

@unnati914 Could you please merge it?


Some general cleaning and getting things in place to fix #3091

First review/merge: https://github.com/qiita-spots/qiita/pull/3163

Coverage increased (+0.001%) to 91.08% when pulling a78712d922a0ae6492530b07944a032a8b70d7b9 on antgonza:fix-3091 into 16af20e552d039f67783b3f003e4552dc962d725 on qiita-spots:dev.

@wasade once the test pass, this should be ready to be reviewed; thank you. Note that this could solve #3091 but don't think is worth deploying as explained here but I think the general improvement and having the lines commented out is a good way forward; please let me know what you think.

@wasade; could you review/merge when you get a second? Thank you.

ha! yes, it has been almost 3 months since we worked on this but I guess that's good enough ... thank you, I'll merge it!


Major update: template, pipeline rename, documentation, linting, biocontainers

PR checklist

[x] This comment contains a description of changes (with reason).
[x] If you've fixed a bug or added code that should be tested, add tests!
[x] If you've added a new tool - have you followed the pipeline conventions in the contribution docs- [ ] If necessary, also make a PR on the nf-core/omicsgenetraitassociation branch on the nf-core/test-datasets repository.
[x] Make sure your code lints (nf-core lint).
[x] Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
[x] Usage Documentation in docs/usage.md is updated.
[x] Output Documentation in docs/output.md is updated.
[ ] CHANGELOG.md is updated.
[x] README.md is updated (including new tool citations and authors/contributors).

Updates:

Template update to nf-core/tools v2.11.1
pipeline rename from multiomicsintegration --> omicsgenetraitassociation
documentation added (output.md,CITATIONS.md,usage.md,README.md)
updated containers and added conda environment.yml files where needed.

@nf-core-bot fix linting


Features comparison table vs angular-i18n, ngx-translate, angular-l10n, ...

Hello,
Would be really great if you can add features comparison table like what the angular-l10n has, that will ease developers to make decision which library is best to use depending on their situations.
ref. https://github.com/robisim74/angular-l10n
Thanks.

Did you check out this section of the README file?

Can you add something like translation file support to the table? Would be good to know if it supports xliff or other formats on first look.
Also translation of plurals should be added for comparison.
And what about a comparison against the build in translation tool (+ the i18n Polyfill for components)? I think what @dsuwirya meant was adding those other tools/packages to the table.
Keep up the good work. For me the features above are missing and there is no path for a migration to the official next gen internationalisation library from the angular team. But it should solve the problems of a good amount of people as it seems pretty easy to.use ;)

@DanielHabenicht
A table is just a tool for a quick comparison, all the needed information is in the README,
but I see what you mean, I will talk to the team and we will decide what should be added.
We don't want to make it too big.

We have added Pluralization to the table but decided that it's the last thing we'll add to it.
A comparison with Angular's i18n will be added shortly 🎉

@MickL I found the most recent version of the comparison chart before they redid the docs here: https://web.archive.org/web/20191004014440/https://github.com/ngneat/transloco/

Is it possible to add the current comparison table again somewhere?
I think the table in the link above might not be up-to-date.

@rala72 We decided to remove the comparison (due to several reasons). I'm sure that quick research will provide you with all the information needed.


[FLINK-8904][cli][tests] always restore the previous sysout when changing it in the test

What is the purpose of the change
Several tests inside the org.apache.flink.client.cli package change System.out to point towards a black whole using CliFrontendTestUtils.pipeSystemOutToNull() but do not restore the default sysout after the test finishes.
Brief change log

add a proper restoration of the previous System.out by caching it during pipeSystemOutToNull()

Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

merging.


chore: Strip BOM character

Just ran a script from https://ngeor.wordpress.com/2017/08/02/strip-the-bom/ to strip the BOM character from the MD files because they YAML frontmater doesn't render on GH when the BOM is included in the file
find . -type f -iname "*.md" -exec node -e "var f = process.argv[1]; var contents = fs.readFileSync(f, 'utf8'); if (contents.charCodeAt(0) === 0xFEFF) { fs.writeFileSync(f, contents.slice(1), 'utf8'); } " \{\} \;
Feel free to run this internally instead if easier.

@nschonni : Thanks for your contribution! The author, @davidmu1, has been notified to review your proposed change.

Reviewed the one topic under /active-directory/develop/* and the change is good. Signing off for that topic, but other writers should take a look at their topics as well.

Hi @nschonni, Thank you for the contribution. Due to the our processes, we do human reviews on public pull requests, and unfortunately this PR contains too many files to review in an efficient manner. I am looking into ways that we might be able to add an automated process to strip the byte order marker for the files in the future.

@SyntaxC4 I figured that would probably be the case, so I included the lines used to do this in the PR description. It would probably be better for it to be run internally on with a folder scope anyway.


Update README.md with instructions for OS without symlinks

fixes #42

superseded by https://github.com/mrtazz/checkmake/pull/65


Fixed typo on *Preparation

Thanks for this very resourceful repo. Been going through all the links. Hope these minor fixes are helping and not an overhead.

"an overhead" - not at all! I appreciate your efforts and contributions, thank you 😉


[Network] az network private-endpoint-connection: Add Provider Microsoft.Monitor/Accounts

Related command
az network vnet create
Description
Added support to manage Private Endpoint of Microsoft.Monitor accounts with Azure CLI.
Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[X] The PR title and description has followed the guideline in Submitting Pull Requests.

[X] I adhere to the Command Guidelines.

[X] I adhere to the Error Handling Guidelines.

Network

Hello, How do we track the release for this change?

https://github.com/Azure/azure-cli/milestone/127

Thanks. Is there a way for us to take the intermediate version and install it in the local machine to run the new commands added?

Thanks. Is there a way for us to take the intermediate version and install it in the local machine to run the new commands added?

You can leverage https://github.com/Azure/azure-cli/blob/dev/doc/try_new_features_before_release.md in the current PR.


Use environment variables to configure healthcheck server

Signed-off-by: Dmitry Golushko<EMAIL_ADDRESS>Description
Full description and motivation can be found here:  https://github.com/emissary-ingress/emissary/issues/4274
I decided to make it flexible and keep backward compatibility.
I introduced 3 new environment variables:

Name
Description
Default value
Possible values

AMBASSADOR_HEALTHCHECK_BIND_ADDRESS
allows to configure bind address for healthcheck server
<IP_ADDRESS>
Any valid IPV4 or IPV6 address

AMBASSADOR_HEALTHCHECK_BIND_PORT
allows to configure port for healthcheckserver
8877
Any valid port value

AMBASSADOR_HEALTHCHECK_IP_FAMILY
allows to configure prefered IP family(IPV4, IPV6 or both)
ANY
IPV4_ONLY, IPV6_ONLY, ANY

As I already described in the feature request in case of any wildcard IP(<IP_ADDRESS>, :: or just empty string) golang will try to bind to all available interface. Even if you specified IPV4 address (<IP_ADDRESS>) and host system is properly configured to use IPV4 mapped IPV6 address it will bind to IPV6 socket. To allow explicitly set preferred IP family the AMBASSADOR_HEALTHCHECK_IP_FAMILY was introduced.
Related Issues
https://github.com/emissary-ingress/emissary/issues/4274
Testing
A few sentences describing what testing you've done, e.g., manual tests, automated tests, deployed in production, etc.
Checklist

[ ] I made sure to update CHANGELOG.md.
Remember, the CHANGELOG needs to mention:

Any new features
Any changes to our included version of Envoy
Any non-backward-compatible changes
Any deprecations

[x] This is unlikely to impact how Ambassador performs at scale.
Remember, things that might have an impact at scale include:

Any significant changes in memory use that might require adjusting the memory limits
Any significant changes in CPU use that might require adjusting the CPU limits
Anything that might change how many replicas users should use
Changes that impact data-plane latency/scalability

[ ] My change is adequately tested.
Remember when considering testing:

Your change needs to be specifically covered by tests.

Tests need to cover all the states where your change is relevant: for example, if you add a behavior that can be enabled or disabled, you'll need tests that cover the enabled case and tests that cover the disabled case. It's not sufficient just to test with the behavior enabled.

You also need to make sure that the entire area being changed has adequate test coverage.

If existing tests don't actually cover the entire area being changed, add tests.
This applies even for aspects of the area that you're not changing – check the test coverage, and improve it if needed!

We should lean on the bulk of code being covered by unit tests, but...
... an end-to-end test should cover the integration points

[ ] I updated DEVELOPING.md with any any special dev tricks I had to use to work on this code efficiently.

[ ] The changes in this PR have been reviewed for security concerns and adherence to security best practices.

@TimonOmsk hey there 👋
I started looking at your PR and testing it. Would you be able to rebase PR off of master?

@ddymko hi!
Great news. I've resolved conflict.

@TimonOmsk thanks for taking care of that!
I'll spend some time testing this out if all goes well then we will get this worked into the v3.2.0 release

@ddymko Great. Feel free to reach me in the Ambassador Labs Community Slack chat if you'd have any questions. I'm in CEST time zone(GMT+2)


[Feature] Support metadata in volumeClaimTemplates

Describe the solution you'd like
Be able to specify metadata in the volumeClaimTemplates fields, both in the MariaDB and the Galera one. This can be achieved by changing from corev1.PersistentVolumeClaimSpec to corev1.PersistentVolumeClaim in the following types:

https://github.com/mariadb-operator/mariadb-operator/blob/a820746605ed15aadd7c969e230808ca4f5cf704/api/v1alpha1/mariadb_types.go#L104
https://github.com/mariadb-operator/mariadb-operator/blob/a820746605ed15aadd7c969e230808ca4f5cf704/api/v1alpha1/mariadb_galera_types.go#L167

Alternatively, consider creating our own mariadbv1alpha1.PersistentVolumeClaim.
Additional context
Sometimes annotations need to be added to PVCs:

https://www.vcluster.com/docs/architecture/storage#how-does-it-work

I would like to work on this, please assign it to me.

Absolutely, go ahead. Reach out if you have any questions!

I have created PR, where I replaced Spec. Please review it. Also, you were talking about changing some annotations and I have read the article in the description of this issue, but I don't think I understand what annotations should be updated.
When I forked this repository I had trouble running some tests, so I am not 100% sure my change didn't break anything.

Hey @vavrajosef, just left a comment in the PR regarding this!


Explicitly set java version as a query parameter in the java-quarkus zip urls

What does this PR do?:
Explicitly set java version in the java-quarkus zip urls to java 17, in order to fix the error from the init-compile command:
INFO] Recompiling the module because of changed dependency.
[INFO] Compiling 2 source files with javac [debug release 21] to target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  15.345 s
[INFO] Finished at: 2024-04-12T10:05:13Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.12.1:compile (default-compile) on project code-with-quarkus: Fatal error compiling: error: release version 21 not supported -> [Help 1]

Which issue(s) this PR fixes:
N/A
PR acceptance criteria:

[ ] Contributing guide
Have you read the devfile registry contributing guide and followed its instructions?
[ ] Test automation
Does this repository's tests pass with your changes?
[ ] Documentation
Does any documentation need to be updated with your changes?
[ ] Check Tools Provider
Have you tested the changes with existing tools, i.e. Odo, Che, Console? (See devfile registry contributing guide on how to test changes)

How to test changes / Special notes to the reviewer:

Is there a reason not using 21 by default here?

The init-compile command fails with java 21. The error is in the description.

In the pom file? Yes.
No other way to guarantee the performanct logger gets installed first.
That should not give such error. When does that happen?

@michael-valdron

I think to follow versioning I'd suggest the following:
Create patch version copies with the PR changes:
1.3.1
1.4.1
Deprecate the base versions that are broken by adding the Deprecated tag:
1.3.0
1.4.0
See deprecation example.
This also mean 1.4.1 becomes the new default version.

Done

/ok-to-test

/retest

@michael-valdron do you have an idea why the tests are failing?

@vinokurig
The odo v2 failure is an ongoing issue we are tracking: https://github.com/devfile/api/issues/1514
The odo v3 failure seems to be triggerred by test case failures on the redhat-product starter project:
Summarizing 4 Failures:
  [FAIL] test starter projects from devfile stacks [It] stack: java-quarkus version: 1.3.0 starter: redhat-product
  /home/runner/work/registry/registry/tests/odov3/odo_test.go:263
  [FAIL] test starter projects from devfile stacks [It] stack: java-quarkus version: 1.4.0 starter: redhat-product
  /home/runner/work/registry/registry/tests/odov3/odo_test.go:263
  [FAIL] test starter projects from devfile stacks [It] stack: java-quarkus version: 1.3.1 starter: redhat-product
  /home/runner/work/registry/registry/tests/odov3/odo_test.go:263
  [FAIL] test starter projects from devfile stacks [It] stack: java-quarkus version: 1.4.1 starter: redhat-product
  /home/runner/work/registry/registry/tests/odov3/odo_test.go:263

In fact, almost looks like it could be the same issue causing https://github.com/devfile/api/issues/1514:
odo logs stderr:
  [FAILED] in [It] - /home/runner/work/registry/registry/tests/odov3/odo_test.go:263 @ 04/24/24 14:24:43.977
  Executing: odo delete namespace -f btpymstq
  << Timeline

  [FAILED] Expected
      <*errors.errorString | 0xc0003280c0>:
      http://<IP_ADDRESS>:44665/ did not return 200
      {
          s: "http://<IP_ADDRESS>:44665/ did not return 200",
      }
  to be nil
  In [It] at: /home/runner/work/registry/registry/tests/odov3/odo_test.go:263 @ 04/24/24 14:24:43.977

I'll open an issue to investigate this one as well. https://github.com/devfile/registry/pull/369 will temporarily skip odo testing on java-quarkus until these issues are resolved.

Opened an issue tied to odo v3 test failures: https://github.com/devfile/api/issues/1533
FYI @vinokurig

@michael-valdron Thank you for the explanation, can we proceed with current changes?

@michael-valdron Could you please merge?


Support basic data types

Support should be added for

Booleans
String with default and paramaterisable character types
Lists
Integers with size variants
Floats with size variants

Type class style constraints should allow all of these to easily interoperate.
This will probably also require infix/mixfix operators+calls.

Added basic support for Integer (non-sized) literals in Primitive Operations (currently only used in PrimLoad) in #66. This should later be converted to support something more low level like binary or hex strings (which we can use to encode our high level values).


Project due date

I would like to have the ability to assign due dates to projects.

Assigning a due date to a project seems very useful, but generally, one project can have several due dates (e.g. to target v1, v2, ...). So, a roadmap feature (#424) seems to fit better this objective.

Project / Milestone / Task due dates are of increasing specificity, so they all have their own merits.

There is now a start and end date for projects in the development version.


Remove repetitive wording.

Fixes rdar://59618453

@amartini51 I am not the person to review this change. I would ask one of the stdlib folks. I think that @lorentey would be a good one.

@swift-ci smoke test

@gottesmm Thanks. Looks like I can't remove you as a reviewer, but you can "dismiss" the request to review.
@lorentey I'm not 100% sure of the last piece of this change — do you use ManagedBufferPointer in addition to, or instead of ManagedBuffer when multiple classes are being used for storage?

Ah -- ManagedBufferPointer does support wrapping classes that aren't ManagedBuffer subclasses, although this isn't exercised very often. (The big limitation is that such a class must have no stored properties.)
(One use case for this is having all empty instances of a generic container type use the same type-punned empty singleton storage, no matter what the Element type is.)

@swift-ci smoke test Linux platform


Add crate for serving Scalar via utoipa

Hi, thanks for your excellent work on utoipa!
This is a PR for adding Scalar API visualization to the utoipa ecosystem. Scalar is yet another web application for OpenAPI specifications, but I prefer it over Redoc/Rapidoc since it shows the model types too! (also, it's very pretty :D)
Most of the things here were mimicked after the Redoc PR (#720).

The crate has been added to the CI/publish/test scripts
The todo-axum/todo-actix/todo-rocket examples now serve Scalar too under /scalar
The crate has been implemented for axum, actix-web, and rocket

Here are some things that I didn't implement now, but could definitely see being useful:

Configuration
Themes & Styling

And finally, here is a preview of what the todo-axum docs look like :smiley:

Scalar is gorgeous - was considering implementing this feature myself until I saw someone beat me to it! Thank you :]

Thank you, when do you think you'll be able to make a release for it?

Thank you, when do you think you'll be able to make a release for it?

I could make a release soon. There are also some other changes that has been quite a long  time there waiting to be released.

Thanks for the release!


Xbox port

Hello everyone who is involved in this mod, could be possible some day to port this mod for Xbox? Or you think it would be impossible due to the many scripts PC mods have? Would at least a light version be possible?

How does Joy of Perspective work on Xbox, if at all?
I'll try to remember looking back here as the NG version is the more up to date and official.

To do it a bit more successfully it is not possible unfortunately due to papyrus missing vital functionality which Skyrim Script Extender adds.


Missing required poperies ClearML Metrics Event

System.Text.Json.JsonException: JSON deserialization for type 'SIL.Machine.AspNetCore.Models.ClearMLMetricsEvent' was missing required properties, including the following: min_value_iteration, max_value_iteration

@ddaspit  and @Enkidu93  - its it ok if I change ClearMLMetricsEvent so that MinValueIteration and MaxValueIteration are not required?  Should it be purely optional?

Yeah, judging from the Clearml API docs, all of the fields in the last metrics event are optional (although it seems odd to me that the metric name and variant would be). See here. Damien is the one who most recently altered code that has to do with that functionality, so he might have a reason.


FullXPath isn't working correctly

What versions are you running?

$ go list -m github.com/chromedp/chromedp
github.com/chromedp/chromedp v0.0.0-20190617065505-d55cf9043e05
$ google-chrome --version
Version 75.0.3770.100 (Official Build) (64-bit)
$ go version
go version go1.12.1 darwin/amd64

What did you do? Include clear steps.
Here is an example of page, with dynamic DOM tree, that provides bad xpath:
https://github.com/ZzEeKkAa/chromedp-xpath
Some snippets:
main.go
ctx, cancel := chromedp.NewContext(context.Background())
defer cancel()

absPath, err := filepath.Abs("template.html")
if err != nil {
   panic(err)
}
if err := chromedp.Run(ctx, chromedp.Tasks{
   chromedp.Navigate("file://" + absPath),
   chromedp.Query("a.toggle-nav", chromedp.ByQuery),
   chromedp.QueryAfter("a[href='#mm-2']", func(ctx context.Context, nodes ...*cdp.Node) error {
   	fullPath := nodes[0].FullXPath()
   	fmt.Println("[[FullXPath]]", fullPath)
   	if fullPath != "/html[1]/body[1]/div[1]/div[1]/div[1]/ul[1]/li[1]/a[1]" {
   		return errors.New("wrong path")
   	}
   	return nil
   }, chromedp.ByQuery),
}); err != nil {
   log.Fatal(err)
}

template.html
<!DOCTYPE html>

        Nav

                    Item

Unfortunately I don't have sources of libs.min.js. I took it from some site I was playing with.
It's strange, that bug disappears, when scripts are loading through the tag, not through js, or if chromedp.Query("a.toggle-nav", chromedp.ByQuery), removed.
What did you expect to see?
xpath to a[href='#mm-2'] should be /html[1]/body[1]/div[1]/div[1]/div[1]/ul[1]/li[1]/a[1].
You can check it, by open template.html in chrome and run
$x('/html[1]/body[1]/div[1]/div[1]/div[1]/ul[1]/li[1]/a[1]')[0] and document.querySelector('a[href='#mm-2']') in console.
What did you see instead?
Instead xpath is /html[1]/body[1]/div[3]/div[1]/div[1]/ul[1]/li[1]/a[1].

Appreciate the work. I'll look at this in the morning. If I had to guess, the difference in xpath is because the DOM is still changing. There can definitely be sync issues with the DOM that's represented on Go, as not all of the events may have finished processing before the FullXPath() call returns.

@kenshaw thank you!
I guess so, but it is not true. FullXPath() doesn't change over time. Changing Tasks to
chromedp.Navigate("file://" + absPath),
chromedp.Query("a.toggle-nav", chromedp.ByQuery),
chromedp.QueryAfter("a[href='#mm-2']", func(ctx context.Context, nodes ...*cdp.Node) error {
	fullPath := nodes[0].FullXPath()
	fmt.Println("[[FullXPath]]", fullPath)
	if fullPath != "/html[1]/body[1]/div[1]/div[1]/div[1]/ul[1]/li[1]/a[1]" {
		//return errors.New("wrong path")
	}
	return nil
}, chromedp.ByQuery),
chromedp.Sleep(time.Second * 10),
chromedp.QueryAfter("a[href='#mm-2']", func(ctx context.Context, nodes ...*cdp.Node) error {
	fullPath := nodes[0].FullXPath()
	fmt.Println("[[FullXPath]]", fullPath)
	if fullPath != "/html[1]/body[1]/div[1]/div[1]/div[1]/ul[1]/li[1]/a[1]" {
		return errors.New("wrong path")
	}
	return nil
}, chromedp.ByQuery),

will show you, that xpath, didn't change even after 10s

Here are some updates and possible solution. Problem is more likely with timing and old cache of DOM tree, chromedp.Sleep(time.Second) after Navigate solves the issue. It would be nice to have function to reload dom tree. There should be easier way, but following issue still is not resolved: https://github.com/ChromeDevTools/devtools-protocol/issues/20.
So DOM.getDocument, DOM.requestChildNodes is still only one solution, I guess =(
Alternatively, It is possible to create event listeners for DOM Mutations and update local copy of DOM in real time. https://developers.google.com/web/updates/2012/02/Detect-DOM-changes-with-Mutation-Observers

It would be really nice to have feature to get js object not through xpath, but through something more stable. Unfortunately I could not find anything. The only think I think can be 100% stable is to put background Javascript on pause, build valid xpath, run snippet, resume background javascript.

In the original versions of chromedp, I can assure you FullXPath worked when dom nodes changed. Either this is due to the recent refactor, where we more or less rewrote all of the internals, and (accidentally) stripped out most frame invalidation and the event handlers for the node updates. Also a possibility (however much more unlikely) is that Chrome has changed how dom modifications are sent to attached clients.

@ZzEeKkAa so -- the expected behavior of Chrome (or at least it used to be -- assuming it still is) was that after the client sent a request for specific child nodes, then all the nodeIds that had been returned would be tracked by Chrome and any subsequent updates on those nodes would be sent as async events to the attached client (ie, the various cdproto/page.Event* handling on chromedp.Target).
I'm going through the target handling code now, and I need to cross reference it with the actual nodes sent on the wire. Apologies on this.

I'm going through this now. The events (I believe) are being sent to chromedp, which means there could be a bug in the dom walking for inserting/removing nodes.

@ZzEeKkAa I believe I might have found the issue: not respecting the sibling ID on a add node event.

There's a very good chance that this is a 1-line, completely incorrect logic issue from the original implementation 2 years ago, and has always been present. The issue (possibly) isn't with FullXPath, as I've verified that the way the dom insertNode node operation was treating previous IDs.
This simple change:
diff --git a/util.go b/util.go
index 066fa15..05add01 100644
--- a/util.go
+++ b/util.go
@@ -247,7 +247,7 @@ func insertNode(n []*cdp.Node, prevID cdp.NodeID, c *cdp.Node) []*cdp.Node {
        }

        if !found {
-               return append(n, c)
+               return append([]*cdp.Node{c}, n...)
        }

        i++

Is the change in behavior. I need to closely review and examine this change, before we merge it into master, as I really do not know what the correct behavior should be.
An explanation of the issue, if the above change is, indeed the correct change:
In the initial implementation, when adding a child node on a insert (add) event, I had thought that when the previous node ID was 0, that it meant to insert it at the end of the list. If instead this meant insert it at the head of the list, then this logic has been completely flopped for the entirety of the existence of this project. It has been hard to track down, because the previous issues reporting problems with FullXPath this did not supply specific HTML + JavaScript that would have allowed me to track this down readily. Additionally, the tree building logic is partially correct, and would not cause issues when there are no other siblings, and was meant to be inserted at the beginning.
Apologies to all. I will be digging through many different projects to determine the correct behavior, because unfortunately the DevTools Protocol documentation doesn't seem to cover this in depth. In the interim, if the above change works for you, I'd suggest temporarily using a GitHub fork with that applied in your project(s).

@ZzEeKkAa can you apply this change in your code and let me know if that fixes the specific issue you were using with the original code you were attempting this with?

I'm fairly certain this change is necessary, however due to the potential backwards compatibility issues, we are likely to defer adding this until v0.4.0

@kenshaw thank you! It looks like the problem is solved. Thanks to you, I was able to create clear test, to show the root of the problem:
package main

import (
	"context"
	"errors"
	"fmt"
	"log"
	"path/filepath"

	"github.com/chromedp/cdproto/cdp"
	"github.com/chromedp/chromedp"
)

const jsSnippet = `(function() {
	var body = document.querySelector("body");
	var div = document.createElement("div");
	div.id="div2";
	div.innerText = "div2";
	%s;
	return {};
})()
`

func insert(f string) chromedp.Action {
	var res interface{}
	return chromedp.Evaluate(fmt.Sprintf(jsSnippet, f), &res)
}

func assertXPath(sel, needle string) chromedp.Action {
	return chromedp.QueryAfter(sel, func(ctx context.Context, nodes ...*cdp.Node) error {
		if len(nodes) < 1 {
			return errors.New("nodes not found")
		}
		fullPath := nodes[0].FullXPath()
		if fullPath != needle {
			return fmt.Errorf("fullPath mismatch: got %s, want %s", fullPath, needle)
		}
		return nil
	}, chromedp.ByQuery)
}

func main() {
	absPath, err := filepath.Abs("template.html")
	if err != nil {
		panic(err)
	}

	ctx, cancel := chromedp.NewContext(context.Background())
	defer cancel()

	if err := chromedp.Run(ctx, chromedp.Tasks{
		// Test 1
		chromedp.Navigate("file://" + absPath),
		assertXPath("#div1", "/html[1]/body[1]/div[1]"), // this line is required to build DOM before js.
		insert("body.appendChild(div)"),
		assertXPath("#div1", "/html[1]/body[1]/div[1]"),
		assertXPath("#div2", "/html[1]/body[1]/div[2]"),
		// Test 2
		chromedp.Navigate("file://" + absPath),
		assertXPath("#div1", "/html[1]/body[1]/div[1]"), // this line is required to build DOM before js.
		insert("body.insertBefore(div,body.childNodes[0])"),
		assertXPath("#div1", "/html[1]/body[1]/div[2]"), // this check will fail, without fix.
		assertXPath("#div2", "/html[1]/body[1]/div[1]"),
	}); err != nil {
		log.Fatal(err)
	}
}

<!DOCTYPE html>

div1

you can also check it on my git repo. It is also updated.


Authorization rules conditions cannot be applied to list

Hey
first off, thank you so much for making this project. It has been awesome to be integrate it with our CDK setup and although I am just getting started with it, its been awesome so far.
I am hoping this is more user error than a bug, but wanted to report it anyway.
In the handler.ts I have one rule, which is
	app.deny({
		action: AuthActions.all,
		subject: 'Task',
		condition: { isAdmin: true },
		reason: 'Only admins can access admin tasks',
	});

however when running the listTasks query, I now get the error
Authorization rules conditions cannot be applied to list (no where clause available)
I have tried different conditions, like
condition: { isAdmin: {$eq: true} }

But still no luck
Anything obvious I am missing here?
Again thanks for the great work!
EDIT:
Sorry should have put in that we are using the mongodb preview from prisma, so it could be that?
generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["mongodb"]
  binaryTargets   = ["native", "rhel-openssl-1.0.x"]

}

generator appsync {
  provider                  = "prisma-appsync"
  directiveAlias_adminsOnly = "@aws_iam @aws_cognito_user_pools(cognito_groups: [\"Admin\"])"
  debug                     = true
  directiveAlias_default    = "@aws_iam @aws_cognito_user_pools(cognito_groups: [\"Admin\", \"User\"])"
  customSchema              = "./custom-schema.gql"
}
``

Hey @mikerudge! Thanks for your words, that is great to hear!
With the current implementation of Prisma-AppSync, conditions in rules can only apply to single record queries (get, update, delete).
The reason is that when querying multiple records, you could potentially get back hundreds of results (some authorized, some unauthorized). So Prisma-AppSync would have to control access of each individual record. Not impossible, but more complex to implement (especially if the condition includes a related model).
Access-control is something that will be re-engineered in the future - to cover more use cases like yours, but also to solve a known limitation on nested fields (see: https://github.com/maoosi/prisma-appsync/issues/8).
Assuming I have interpreted your use case correctly, one way to solve it would be writing your own access control logic, such as:
/**
Code to add in your handler function.
Just after `app.parseEvent(event)` and before `app.resolve()`.
**/

const customAccessControl = async (
    { authIdentity, args, operation, subject }: BeforeResolveProps
) => {
    let isAuthorized = true

    // custom function that returns true if the user is an admin
    const isUserAdmin = await isUserAdmin(authIdentity)

    // if trying to read tasks (get or list) as non-admin
    if (!isUserAdmin &&
        ['get', 'list'].includes(operation) &&
        ['task'].includes(subject.toLowerCase())
    ) {
        // find all tasks matching query
        const requestedTasks = app.prisma.task.findMany({
            select: { isAdmin: true },
            ...(args.where && { where: args.where }),
            ...(args.skip && { skip: args.skip }),
            ...(args.take && { take: args.take }),
        })

        // amongst requested tasks, only authorize if task.isAdmin === false
        isAuthorized = requestedTasks.filter((task: any) => task.isAdmin === true).length === 0
    }

    return isAuthorized
}

app.beforeResolve(async (props: BeforeResolveProps) => {
    return await customAccessControl(props)
})

I haven't tried it myself, but you should also be able to combine both built-in and custom access control:
app.beforeResolve(async (props: BeforeResolveProps) => {
    // first :: custom access control
    const isAuthorized = await customAccessControl(props)
    if (!isAuthorized) return false;

    // second :: built-in access control
    app.deny({
        action: [AuthActions.delete, AuthActions.deleteMany],
        subject: 'Task',
        reason: 'No one can delete tasks',
    })
})

@maoosi thank you for the answer and code examples. That really helped. Totally understand that this is a big challenge to tackle, and it feels frustrating that this isn't just a solved problem, especially for AppSync.
In the example you have given (which is spot on by the way), the behaviour is,
if any of these tasks have isAdmin: true then fail then entire request
I think in this example, the behaviour we would want is,
If non-admin, filter the request so that it does not contain tasks that have isAdmin: true
Also does the above approach mean that it's calling the database twice? Once to check the list, then running the same query again to return the results if isAuthorised = true
From my understanding we could solve it two ways,

Create a new custom query called listAdminTasks and then protect that query with @aws_cognito_user_pools(cognito_groups: ["Admin"])

Create a customer resolver for listTasks that filters out admin tasks if the user is not in the Admin group.

I will have a go at making custom resolvers tomorrow and see if this makes sense.
Again thanks for all the advice!

I think in this example, the behaviour we would want is, If non-admin, filter the request so that it does not contain tasks that have isAdmin: true

The current implementation of hooks doesn't allow to modify the data, only to return true or false to reject or approve a given operation.
But this is interesting! Maybe in the future we could have 2 different modes for built-in access control, allowing developers to select whether they prefect the access-control to be strict (aka. reject the entire request) VS. cherry-pick (aka. filter out non-authorized fields, but return the rest). Similarly, we could have ways to modify the data from within the hooks.

Also does the above approach mean that it's calling the database twice?

Correct! One way to reduce this to only one API call only could be to dynamically intercept and modify the query (to make sure isAdmin is part of the requested fields) and the results (to filter out unauthorized fields based on the user). This can probably be done using Prisma middleware:
https://prisma-appsync.vercel.app/reference/client-api.html#prisma
https://www.prisma.io/docs/concepts/components/prisma-client/middleware

From my understanding we could solve it two ways...

If you are happy to create a custom resolver, then yes this is another perfectly valid solution to your use case - and probably the easiest to implement as well.
By following this guide, you should be able to add a new query, that you can then protect using AppSync authz directives in your Schema.

Closing this issue for now. Let me know if more questions about this.


Add update to run on linux

Hi @KojoBoat, thanks for the PR!  Can you please follow the steps in the contributing guide (https://github.com/morganstanley/Crossroads/blob/main/CONTRIBUTING.md) and add a DCO file and reference it with your commit.  Thank you.

Hello Brain,
Thanks for the response. I will do just that. Thank you.
Best Regards,
Christian.
On Tue, 18 Jan 2022 at 1:31 PM, Brian Ingenito @.***>
wrote:

Hi @KojoBoat https://github.com/KojoBoat, thanks for the PR! Can you
please follow the steps in the contributing guide (
https://github.com/morganstanley/Crossroads/blob/main/CONTRIBUTING.md)
and add a DCO file and reference it with your commit. Thank you.
—
Reply to this email directly, view it on GitHub
https://github.com/morganstanley/Crossroads/pull/11#issuecomment-1015414802,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJELFKOIMVCC3YJFHCIUEDDUWVTR5ANCNFSM5MGYIKRQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Brian**  sorry about the typo :)
On Tue, 18 Jan 2022 at 1:37 PM, Christian Egyir @.***>
wrote:

Hello Brain,
Thanks for the response. I will do just that. Thank you.
Best Regards,
Christian.
On Tue, 18 Jan 2022 at 1:31 PM, Brian Ingenito @.***>
wrote:

Hi @KojoBoat https://github.com/KojoBoat, thanks for the PR! Can you
please follow the steps in the contributing guide (
https://github.com/morganstanley/Crossroads/blob/main/CONTRIBUTING.md)
and add a DCO file and reference it with your commit. Thank you.
—
Reply to this email directly, view it on GitHub
https://github.com/morganstanley/Crossroads/pull/11#issuecomment-1015414802,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJELFKOIMVCC3YJFHCIUEDDUWVTR5ANCNFSM5MGYIKRQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Closed and replaced with #12


Using YuMi Camera with Yumipy

Hi, I would like to know if there's any way of accessing the camera in the grippers of the yumi via yumipy? I'd like to be able to capture an image using it to then process with openCV to detect shapes in my workspace, however I see no mention of the camera usage in the API.
Many thanks,
Jonathon

Hi Jonathon, unfortunately YuMiPy does not support this feature as we do not have access to the cognex hand cameras in our lab.


splunk-kubernetes-logging - allow pod and container exclusion

Hi everybody,
first off: Great work. This is really easy to use!
What would you like to be added:
I'd like to be able to limit the collected pod logs, in order to limit what is send to Splunk. Currently I am doing the following:
global:
  fluentd:
    # path of logfiles, default /var/log/containers/*.log
    path: /var/log/containers/*.log
    # paths of logfiles to exclude. object type is array as per fluentd specification:
    # https://docs.fluentd.org/input/tail#exclude_path
    exclude_path:
     - /var/log/containers/prometheus*.log
     - /var/log/containers/istio*.log
     - /var/log/containers/kube*.log

This works if I want to exclude pods (even though it is cumbersome), but this won't affect side car containers. So for Istio for example, I might only be interested in the logs of my apps, but not of the istio-proxy sidecar.
Why is this needed:
Limit the input into Splunk and increase visibility

Hey @stiller-leser, thanks for the kudos.
I think that you might be able to add an exclude path for the pods you dont want.
For example, if your app's pod name is "my-awesome-pod-xxxxxxx" I think you would be able to ignore logs for that using "/var/log/containers/my-awesome-pod*.log".
I agree that this approach is cumbersome.
But I think if you really you could do a pull request for us in the following way:
Approach A)

In values.yaml file take a list of pod names you want to ignore
Then add a function to https://github.com/splunk/splunk-connect-for-kubernetes/blob/develop/helm-chart/splunk-kubernetes-logging/templates/_helpers.tpl file to check for pod_name ancd check if its in the ignore list, if yes drop the record.
Approach B)
use a custom filter https://github.com/splunk/splunk-connect-for-kubernetes/blob/develop/helm-chart/splunk-kubernetes-logging/templates/_helpers.tpl to drop the records using a similar logic.

Please try out some other ideas too, if you want and let me know if you need help. I would be happy to review a PR for the implementation.
Thanks, Happy Friday.

+1 for updating the configmap to write the proper regex in the path. It can also take comma separated lists:
<source>
      @id containers.log
      @type tail
      @label @SPLUNK
      tag tail.containers.*
      path /var/log/containers/*.log
      pos_file /var/log/splunk-fluentd-containers.log.pos
      path_key source
      read_from_head true
      <parse>
        @type json
        time_key time
        time_type string
        time_format %Y-%m-%dT%H:%M:%S.%NZ
        localtime false
      </parse>
    </source>

https://docs.fluentd.org/v/0.12/input/tail#path-required
exposing it in helm is definitely useful, but in practice, updating the config in git then pushing with some CI/CD pipe is probably ideal anyways.

Hi @chaitanyaphalak,
thank you for the feedback. I am currently using the exclude_path to exclude pods. This works fairly well. However, my main point here was that I do want to ignore containers in pods. So I guess since the containers log into the same log file as the pods, I would need to additionaly filter the log files to exlude the lines that describe a different container.
For now, I think this is good enough for me.
Best regards,
stiller-leser

@stiller-leser I am glad this approach works for you, let me know what you explore for containers in a pod, possibly post an example so that people in the community can benefit from your work :) Possibly you create a PR to support this use-case :)
Thanks.

Closing as resolved. Please reopen/create a new one if you need further support.

Hi @chaitanyaphalak, is it possible to use customerFilter for nodes or Namespaces? It will be nice to logging only the pods that are running in specific nodes or Namespace.

@fulvi0 yes, that was the purpose for adding it:)
For namespace you could do something similar to https://github.com/splunk/splunk-connect-for-kubernetes/issues/220#issuecomment-519156055
For nodes, you can use taints so that logging pods dont run on tainted nodes.

HI @chaitanyaphalak : i am using exclude_path to remove logs of the sidecar pod running in my kubernetes cluster. But it doesnt work. i tried annotating the pod with splunk.com/exclude=true but that also doesnt work as i am facing issue in restarting the pod and secondly i am suing kubectl to annotate. it should be done via script such values.yaml file. I only want logs of my application pod
any help is appreciated


Optimize raycast

Raycasting seems to be one of the big performance bottlenecks.
Maybe https://github.com/gkjohnson/three-mesh-bvh

Done


Joining channel creates duplicate entry in channel list

At least some of the time, joining a channel puts the channel into the channel list twice.

I did some investigation on this last night and found the problem. I also tried some different fixes. I should be able to have this fixed this weekend.

@aisamanra @dagit If you get time, please take a close look at the commit message that fixed this bug! https://github.com/aisamanra/matterhorn/commit/c07f82f28864c2fe0b115de343c4cb383147a34c

@travitch this should also fix the issue you ran into with the HashMap ! crash.


wrong method on parser.py - should be oneOf instead of one_of

@cyrultech, PyParsing aliases one_of as oneOf to remain compatible with pre-PEP8 versions of the library. See pyparsing/helpers.py:
@replaced_by_pep8(one_of)
def oneOf(): ...


Implement GET /record endpoint

Implements an endpoint that lists all records in the record collection.

the diffs in this PR help illustrate some of the safety aspects of Rust and how to build some other apps in the HL ecosystem. Glad I saw this in the feed. Dig it.

the diffs in this PR help illustrate some of the safety aspects of Rust and how to build some other apps in the HL ecosystem. Glad I saw this in the feed. Dig it.

Glad this is helpful! Diesel (the query builder used here) is pretty nice, but we've found that it can be tricky to execute highly complex queries. It provides an API for writing raw SQL (diesel::sql_query), but doing so sacrifices some of the type safety benefits of Rust. You can also treat views as tables, which might get used in a later PR for track and trace integration.


docs: update iOS docs with new speech pipeline content

PR Checklist
Please review the guidelines for contributing to this repository.

[x] I am requesting to pull a topic/feature/bugfix branch (right side). In other words, not master.
[x] I have run npm test against my changes and tests pass.
[x] I have added or edited necessary documentation, or no docs changes are needed.

Description
Update site docs for new iOS speech pipeline content

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


[feature request] Support for Hozelock Smart Valves

Hey. It would be nice to add some kind of support for Hozelock smart valves.
The problem with them is that they dont necessarily allow manual opening and closing of valves. Instead there's one preset length of irrigation which can happen once per day at set time or twice at sunrise and sunset and this irrigation time can be adjusted daily (using a HA script) by round numbers like 25%, 50%, 75%,150%, 200% percent.

hi @Dinth - I am not familiar with Hozelock smart valves neither do I see an integration in HA. How do you interact with them? Can you share some more specifics? I am thinking you could just use the value of sensor.smart_irrigation_daily_adjusted_run_time and plug it into whatever you have currently to tell the valves to run for that long. Just guessing here.

Hi and thanks for the reply.
sensor.smart_irrigation_daily_adjusted_run_time may actually be what i need. Sorry for missing it earlier.
Basically Hozelock valves can be controlled using Restful API:
hozelock_adjust:
url: 'https://hoz3.com/restful/support/hubs/{{ hub_id }}/controllers/actions/adjust'
method: POST
payload: '{"controllerIDs":[{{ controler_id }}],"duration":{{ duration }},"wateringAdjustment":{{ percentage }}}'
content_type:  'application/json'
hozelock_unadjust:
url: 'https://hoz3.com/restful/support/hubs/{{ hub_id }}/controllers/actions/unadjust'
method: POST
payload: '{"controllerIDs":[{{ controller_id }}]}'
content_type:  'application/json'

ok, so you could build an automation that looks much like what I have here that in the actions calls hozelock_adjust and then hozelock_unpause (assuming that unpause starts the sprinkler - weird name...), right?

Adjust/unadjust are adjusting watering duration by XX percent for next XX days and pause/unpause are switching off watering for XX days (for example when its raining)

interesting. can you read the current irrigation time value from somewhere? I am thinking you could do something like this: in your automation call hozelock_adjust with: the percentage increase/decrease as indicated by sensor.smart_irrigation_daily_adjusted_run_time compared to current irrigation time rounded to a whole number.

So basically ive got this:
{"errorCode":0,"controller":{"name":"Backyard lawn sprinkler","image":null,"controllerID":"0","scheduleID":"default_xxxxxxx","schedule":{"scheduleID":"default_HVV7NE","name":"Sunrise and Sunset Watering Schedule","description":null,"scheduleDays":{"Monday":{"dayOfWeek":"Monday","wateringEvents":[{"startTime":-2000,"endTime":598000,"duration":600000,"enabled":true},{"startTime":-1000,"endTime":599000,"duration":600000,"enabled":true}]},"Thursday":{"dayOfWeek":"Thursday","wateringEvents":[{"startTime":-2000,"endTime":598000,"duration":600000,"enabled":true},{"startTime":-1000,"endTime":599000,"duration":600000,"enabled":true}]},"Friday":{"dayOfWeek":"Friday","wateringEvents":[{"startTime":-2000,"endTime":598000,"duration":600000,"enabled":true},{"startTime":-1000,"endTime":599000,"duration":600000,"enabled":true}]},"Sunday":{"dayOfWeek":"Sunday","wateringEvents":[{"startTime":-2000,"endTime":598000,"duration":600000,"enabled":true},{"startTime":-1000,"endTime":599000,"duration":600000,"enabled":true}]},"Wednesday":{"dayOfWeek":"Wednesday","wateringEvents":[{"startTime":-2000,"endTime":598000,"duration":600000,"enabled":true},{"startTime":-1000,"endTime":599000,"duration":600000,"enabled":true}]},"Tuesday":{"dayOfWeek":"Tuesday","wateringEvents":[{"startTime":-2000,"endTime":598000,"duration":600000,"enabled":true},{"startTime":-1000,"endTime":599000,"duration":600000,"enabled":true}]},"Saturday":{"dayOfWeek":"Saturday","wateringEvents":[{"startTime":-2000,"endTime":598000,"duration":600000,"enabled":true},{"startTime":-1000,"endTime":599000,"duration":600000,"enabled":true}]}}},"hasWaterNowEvent":false,"pause":null,"adjustment":null,"waterNowEvent":null,"currentWateringEvent":null,"nextWateringEvent":{"startTime":1590177000000,"endTime":1590177600000,"duration":600000,"enabled":true},"lastCommunicationWithServer":1590175924000,"nextCommunicationWithServer":1590177360000,"batteryStatus":"LOW","signalStrength":"GOOD","overrideScheduleDuration":null,"isChildlockEnabled":false,"isWatering":false,"isPanelRemoved":false,"isTested":true,"isAdjusted":false,"isScheduleUpToDate":true,"isPaused":false},"currentTime":1590176529242}

Hard for me to help here, but I think duration is returned in milli seconds? You should be able to use that and create the calculations you need.

Hard for me to help here, but I think duration is returned in milli seconds? You should be able to use that and create the calculations you need.

yes, the thing is that duration is set so it doesnt change. I will try to tinker with it thanks!


fix: correct name of annotate_svs in Snakefiles (#344)

Coverage: 84.324%. Remained the same when pulling 3851d5ff1d1e9b39802598fdf1bb24a90106dcc5 on 344-annotate_sv-renamed-to-annotate_svs into 20bb62cd2ae7fc7ed8f795133946b7a709504363 on main.


Some clarification required

Hi Phil,
I was experimenting with FSQ/LFQ for 3d-motion autoencoder and was wondering how to work through LFQ variety of options?
With FSQ its quite straight forward as it does not have any losses and you just need to find suitable levels for particular task.
However when I start training LFQ immediately I face negative aux_loss issue which is of course due to entropy_aux_loss.
I understand that we can combat it with decreasing diversity but i dont like the idea, another approach would be lowering entropy_loss_weight which can lead to poor codebook utilisation i believe...
So what are the options to tune LFQ parameters? btw even with negative aux_loss it still seems to train fine, at least reconstruction loss goes down

Hi @inspirit ,
I am definitely not an expert on using LFQ (on which there is quite some work going on on this repo, if I am not mistaken), but why the negativity of the entropy_aux_loss is an issue?
I thought the same at some point, but in the end the goal is to get the minimum of a function loss, not necesseraily a positive one.

Hey @MisterBourbaki, you right and as i pointed above even with negative aux_loss the training progresses as expected with reduction of overall reconstruction error, but we still need to carefully select weight for entropy part of aux_loss since it affects code book usage and overall reconstruction error.
when tuning entropy weight we increase code book usage it does not lead to lower reconstruction error as one would hope for, or may be it requires much longer training to generalise for larger code book use... i wonder

Hi @inspirit , I am definitely not an expert on using LFQ (on which there is quite some work going on on this repo, if I am not mistaken), but why the negativity of the entropy_aux_loss is an issue? I thought the same at some point, but in the end the goal is to get the minimum of a function loss, not necesseraily a positive one.

the reconstruction loss over VQ is a positive value, while the LFQ  returns a negtive value

Hey @MisterBourbaki, you right and as i pointed above even with negative aux_loss the training progresses as expected with reduction of overall reconstruction error, but we still need to carefully select weight for entropy part of aux_loss since it affects code book usage and overall reconstruction error. when tuning entropy weight we increase code book usage it does not lead to lower reconstruction error as one would hope for, or may be it requires much longer training to generalise for larger code book use... i wonder

have you found a good reconstruction loss weight there? I have the same issure.  We are training a VQVAE-GAN, as a result of the negtive value of aux_loss, the whole generative loss is a negative value.


Add ability to change the grid size

Currently the grid is a fixed 3x3 size. This should be changed so that the grid is instead variable size. Instructions should also be added to existing documentation that the grid axes must be equal for diagonals to be a valid way of winning.
In addition, the user must be able to select the grid size on game startup, using the console

Larger grid sizes will likely cause issues, will add a task to test this and determine if bug fixes are needed for release

Reopening as documentation changes are required


WIP datadog tracing for envoy

Status:
Basic functionality working and tested.
Able to collect traces and transmit them to the agent using envoy as the HTTP client.
Refactor of dd-opentracing-cpp to support envoy's processing model are done (DataDog/dd-opentracing-cpp#35), including removing the general libcurl dependency.
TODO:

Find internal staging environment that uses envoy directly for full E2E tests
Finalize configuration we want to expose and maintain, based on outcome of staging test and internal feedback
Add code for those configuration items to tracer extension and other parts of envoy (including schema)
Add tests for tracer extension (based on other existing extensions)
Add documentation / examples
Rebase, retest, final internal review and submit?

Description:
This PR adds support for a Datadog tracer to envoy using dd-opentracing-cpp.
Risk Level:
Low.
Testing:
TBD
Docs Changes:
TBD
Release Notes:
TBD
Fixes #3861

@willgittoes-dd could you give this another review, along with DataDog/dd-opentracing-cpp#35 please

This is submitted upstream at envoyproxy/envoy#4699


webapp starter disables standard directories for static resources

camunda-bpm-spring-boot-starter-webapp seems to disable the Spring Boot standard directories for static resources as described here: http://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot
Files in src/main/resources/static should be served in the context root of the webapp. With camunda-bpm-spring-boot-starter that works fine. The class CamundaBpmWebappAutoConfiguration seems to overwrite this:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
  registry.addResourceHandler("/**").addResourceLocations("classpath:/");
  super.addResourceHandlers(registry);
}

Note: using formKey embedded:/static/forms/my-form.html works


feat: add support for array-based command setting when running containers via docker run

Previously, all commands had to be quoted, as they were passed as is to an entrypoint that only understood a single argument- /bin/bash -l -c. This caused issues with generic usage of docker run where the command often isn't quoted.
This change allows folks to use either quoted commands (existing) or an array of commands (new). It does so by treating the passed arguments as a single string in all cases via $*.
See https://stackoverflow.com/a/64689634 and https://unix.stackexchange.com/a/129077 for more details on how variable expansion works in shell.
Closes #658

[ ] Tests are added/updated if needed
[x] Docs are updated if needed

Not sure what tests need to be changed since a bunch of tests fail for me locally even on master (Running M1 Mac if that matters).

How should I add tests? This is what I did locally:
cargo run -- build --label key=value --name derp examples/python
docker container run --rm -it --entrypoint '' derp cat /usr/local/bin/entrypoint
docker container run --rm -it derp "ls -lah /app && python \"main.py\""
docker container run --rm -it derp ls -lah /app
docker container run --rm -it derp python main.py

With the following output:
   Compiling nixpacks v1.9.0 (/Users/josediazgonzalez/Dropbox/go/src/github.com/railwayapp/nixpacks)
    Finished dev [unoptimized + debuginfo] target(s) in 2.22s
     Running `target/debug/nixpacks build --label key=value --name derp examples/python`

╔═══════════════════════════════ Nixpacks v1.9.0 ══════════════════════════════╗
║ setup      │ python38, gcc                                                   ║
║──────────────────────────────────────────────────────────────────────────────║
║ install    │ python -m venv --copies /opt/venv && . /opt/venv/bin/activate   ║
║            │ && pip install -r requirements.txt                              ║
║──────────────────────────────────────────────────────────────────────────────║
║ start      │ python main.py                                                  ║
╚══════════════════════════════════════════════════════════════════════════════╝

[+] Building 22.8s (14/14) FINISHED
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 1.05kB                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for ghcr.io/railwayapp/nixpacks:ubuntu-1684957838                                                                                0.2s
 => CACHED [stage-0 1/9] FROM ghcr.io/railwayapp/nixpacks:ubuntu-1684957838@sha256:eb26a5ad60faad269d01ac896a4eefb5e7987040d39549dbe5d8cdfd1a830b75                   0.0s
 => [internal] load build context                                                                                0.0s
 => => transferring context: 2.38kB                                                                                0.0s
 => [stage-0 2/9] RUN printf '#!/usr/bin/env bash\nexec bash -l -c -- "$*"\n' > /usr/local/bin/entrypoint && chmod +x /usr/local/bin/entrypoint                       0.3s
 => [stage-0 3/9] WORKDIR /app/                                                                                0.0s
 => [stage-0 4/9] COPY .nixpacks/nixpkgs-293a28df6d7ff3dec1e61e37cc4ee6e6c0fb0847.nix .nixpacks/nixpkgs-293a28df6d7ff3dec1e61e37cc4ee6e6c0fb0847.nix                  0.0s
 => [stage-0 5/9] RUN nix-env -if .nixpacks/nixpkgs-293a28df6d7ff3dec1e61e37cc4ee6e6c0fb0847.nix && nix-collect-garbage -d                                           17.8s
 => [stage-0 6/9] COPY . /app/.                                                                                0.1s
 => [stage-0 7/9] RUN --mount=type=cache,id=ApobWLr7gNk-/root/cache/pip,target=/root/.cache/pip python -m venv --copies /opt/venv && . /opt/venv/bin/activate && pip  3.1s
 => [stage-0 8/9] RUN printf '\nPATH=/opt/venv/bin:$PATH' >> /root/.profile                                                                                0.5s
 => [stage-0 9/9] COPY . /app                                                                                0.1s
 => exporting to image                                                                                0.9s
 => => exporting layers                                                                                0.9s
 => => writing image sha256:45bd914a9cbffe5c82d9da4e6290e8db7a3832841ddc164a7f8c7c8d7334a5c0                                                                          0.0s
 => => naming to docker.io/library/derp                                                                                0.0s
=== Successfully Built! ===

Run:
  docker run -it derp
#!/usr/bin/env bash
exec bash -l -c -- "$*"
total 8.0K
drwxr-xr-x 1 root root  64 May 26 03:48 .
drwxr-xr-x 1 root root   0 May 26 03:48 ..
drwxr-xr-x 1 root root 124 May 26 03:48 .nixpacks
-rw-r--r-- 1 root root  27 May 26 03:48 main.py
-rw-r--r-- 1 root root 112 May 26 03:48 requirements.txt
Hello from Python
total 8.0K
drwxr-xr-x 1 root root  64 May 26 03:48 .
drwxr-xr-x 1 root root   0 May 26 03:48 ..
drwxr-xr-x 1 root root 124 May 26 03:48 .nixpacks
-rw-r--r-- 1 root root  27 May 26 03:48 main.py
-rw-r--r-- 1 root root 112 May 26 03:48 requirements.txt
Hello from Python

This is neat! I will do some testing with how we use Railway internally and hope to get this merged this week

@coffee-cup long shot, but anything I can do to help out with testing?

@coffee-cup long shot, but anything I can do to help out with testing?

Hey @josegonzalez, sorry I haven't had a solid chance to dig into this yet. I would still like to get this merged and will hopefully have time this week. Normally we would get this merged much quicker, but this change effects all apps deployed with Nixpacks so I just want to give it the attention it deserves.

No worries! This one is a bit selfish of a PR for me, so let me know if I can help in any way :)

If I re-issue this PR, is it likely to be reviewed/merged? If there isn't any interest, I'll just hold off on doing so.

There is still interest in this. But will likely be added when we cut the next major release of Nixpacks

Feel free to take the code - the github-actions automation on stale PRs is annoying to deal with since it'll just close the PR unless I rebase every few weeks.


Reload - go to original state, not dashboard

Previously, rbacDashboardOrLogin - would redirect to dashboard when everything is fine - that breaks expectations of what reloading means, and is terrrible for development. So this PR makes reload work as expected.
@romanblanco you mind find this useful ;)
@AparnaKarve mind reviewing? I think it shouldn't really break RBAC that much, but if we really want to check everything, I can make RBAC checks happen on any state change (and associate the required features with each state)..

@himdel Yeah, we need this...to be able to retain the original state at reload. 👍
Code looks fine, will try it out in a bit.

Works well!
@dclarizio OK to merge and can be cherry-picked for darga as well.

Thanks Martin. This is nice


Container build

Hi, thank you for your PR.
These changes are not relevant to the course content, since they are user-specific, and would break the learning material. Consequently, the changes would break the learning process for future students.
Please keep the changes in your fork, and continue the course with your fork. I am going to close this PR.
If you believe this to be an error, feel free to reach out, or open a new PR with further explanation.

Hi Marek -
Thanks for your note. I realized that the pull request was to your master branch - rather than the master branch of my fork - but did not know how to cancel it.
Apologies for the inconvenience .
Venkatesh    On Monday, June 21, 2021, 01:00:36 PM GMT+5:30, Marek Czernek @.***> wrote:
Hi, thank you for your PR.
These changes are not relevant to the course content, since they are user-specific, and would break the learning material. Consequently, the changes would break the learning process for future students.
Please keep the changes in your fork, and continue the course with your fork. I am going to close this PR.
If you believe this to be an error, feel free to reach out, or open a new PR with further explanation.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Dedicated docs site

The readme docs are ok, but this could really use a readthedocs page

Consider using Judo.jl and putting it on github pages - I just did this for JuMPeR and I'm really happy with it. Especially if you like Markdown.

I've drifted way too far out of touch, hadn't even seen Judo. Looks great though, thanks

Its kinda stealthy, in a sense, even though it powers the Gadfly docs site.


Grease depends upon GLASS1, but is also loaded by GLASS1

Since Grease is an external project in GLASS1 baseline, there is no way for  BaselineOfGLASS1 to force the load order of Grease. Grease itself can specify a dependency upon GLASS1, but then we'd get into a dependency loop ... At the end of the day both Metacello and Grease should not be part of the BaselineOfGLASS1, but we're not at the end of the day ... yet ...
Soooo in the meantime, gsUpgrader, needs to arrange to load the bits of GLASS1 that are needed by Grease before loading the whole enchilada ...
Specifically we need to arrange for CharacterCollection>>encodeAsUTF8intoString to be loaded before Grease is loaded  (see https://github.com/GsDevKit/GsDevKit/issues/27 for details).

Turns out that using GsUpgrader for this task will not work out ... one cannot just load a chunk of a loaded configuration ... all of the loaded packages need to be upgraded in load order during the same load ... the right answer is to split Grease out of the BaselineOfGLASS1


Redactions moved from one page to other - breaks grouping and other issues

Describe the bug in current situation
When redactions are dragged across pages, you are prompted to select a new FOIPPA section. If you select a new section, you will have a FOIPPA section created that is not associated to a redaction. If you do not select a new FOIPPA section, the redaction and FOIPPA section are 'Ungrouped', and become their own annotations. Both behaviours can cause confusion for users.
See EDU-2023-74647 in Test-Marshal for examples.
Link bug to the User Story
Impact of this bug
Medium
Chance of Occurring (high/medium/low/very low)
Low
Pre Conditions: which Env, any pre-requesites or assumptions to execute steps?
Test-Marshal
Steps to Reproduce
Steps to reproduce the behavior:

Create a redaction, with FOIPPA section, on a page
Drag the redaction to another page
You will be prompted to select another FOIPPA section - select a FOIPPA section and click 'Select Code(s)'
See error

AND

Create a redaction, with FOIPPA section, on a page
Drag the redaction to another page
You will be prompted to select another FOIPPA section - DO NOT select a FOIPPA section and click 'Cancel'
See error

Actual/ observed behaviour/ results
Expected behaviour
A clear and concise description of what you expected to happen. Use the gherking language.
GIVEN a redaction has been created with a FOIPPA section on a page
WHEN the user drags the redaction box / FOIPPA section to another page
THEN the redaction and FOIPPA section will show up on the new page, in the selected location
AND the redaction and the FOIPPA section will still be 'Grouped'
AND a user will not be prompted to select a new FOIPPA section
Screenshots/ Visual Reference/ Source
If applicable, add screenshots to help explain your problem. You an use screengrab.
If no new FOIPPA section is selected when the redaction moved to a new page, redaction boxes and FOIPPA sections become their own annotations, where they can be moved independently of one another.
Private Zenhub Image
If a new FOIPPA section is selected when the redaction is moved to a new page, the redaction boxes and new FOIPPA sections become 'Grouped', but the old FOIPPA section become it's own annotation.
Private Zenhub Image

Complete with #4399 and add estimate

It seems like the expected behavior has not been correctly captured or updated following our previous discussions. Had a chat with @JHarrietha-AOT . The actual requirement for this ticket is to disable the MOVE option for the redaction boxes (as users will not need to move the redaction boxes across pages), but to keep the RESIZE option enabled so that users can resize and adjust the positions of redaction boxes on the same page. However, users should not be able to move the existing redaction boxes to other pages. cc. @lmullane .

Agreed that users should not be able to move redlines between pages.

Confirmed that redactions are not able to move to other pages . Working as expected so closing it


[Storage] Add support for Resumable Uploads

Feature request
Is your feature request related to a problem? Please describe.
Add support for resumable uploads.
Needs investigation on the possibility of using https://github.com/tus/TUSKit

Hi, I wanted to ask if there has been any update on this? We are currently creating an iOs App and need to upload ~150mb large files. This would be a great help.
Thanks!

Hi @ceinem
You can use https://github.com/tus/TUSKit directly for implementing the resumable upload, which Supabase supports already.
Unfortunately we don't have any example yet on how to do it.


[CGPROD-2812] shop stats

fires a 'shopmenu' stat on create()
Menu button callbacks fire 'shopbuy' and 'shopmanage' page view stats
shop.back() fires a stat if the target pane is the top menu
all transactions fire item action stats
refactor transact.test.js to be more DRY

lgtm🧞🛒💵


Move next offense

This fixes #2138. It moves the offense location from pointing to the iterator to point to the condition.
While working on this, I noticed that it isn't configured to work on some methods. Some of the methods that I noticed were missing are select!, reject, and reject!. Is there a reason that these methods are not checked? If not, I will submit a PR to add them.

Is there a reason that these methods are not checked? If not, I will submit a PR to add them.

Just an oversight.