sc:Collection does not always have manifests

What
We 500 when parsing IIIF data from a sc:Collection that contains collections.
e.g: https://iiif.wellcomecollection.org/presentation/v2/b10930437
We assume that any sc:Collection should have manifests - we're investigating is this is a fair assumption or something gone awry on the digitisation side.
Where
https://wellcomecollection.org/works/d6hxn24s/items

@alexwlchan I suspect that this issue has expired, unless there are some other known examples where this problem occurs.
https://wellcomecollection.org/works/d6hxn24s/items now returns 410, not 500.

The collection in https://iiif.wellcomecollection.org/presentation/v2/b10930437 does have manifests
"collections": [
    {
      "@id": "https://iiif.wellcomecollection.org/presentation/v2/b10930437-copy-1",
      "@type": "sc:Collection",
      "label": "Copy 1",
      "within": "",
      "manifests": [
        {
          "@id": "https://iiif.wellcomecollection.org/presentation/v2/b10930437_0001",
          "@type": "sc:Manifest",
          "label": "Copy 1, Volume 1",
          "within": ""
        },...

Sounds good, another ticket closed. :D


No results and the error shows The error thread '' panicked at ...

Hi Alejandro,
I have tried running the tool in multiple cores or single-core mode, and both results show errors as the below script.
I also try different ways to get the tools. eg install by cargo or Conda or using the container image in centos7/8.
How do I deal with this?
$ gtfsort -t 1 -i TAIR10_GFF3_genes_transposons.gff -o sorted.gff 2>stderr.log

##### GTFSORT #####
A rapid chr/pos/feature gtf sorter in Rust.
Repo: github.com/alejandrogzi/gtfsort

2024-03-01T03:15:25.131Z INFO  [gtfsort] Using 1 threads
$ head stderr.log

thread '<unnamed>' panicked at /home/public_tools/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.1/src/gtf/attr.rs:77:10:
called `Result::unwrap()` on an `Err` value: Invalid
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread '<unnamed>' panicked at /home/public_tools/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.1/src/gtf.rs:34:67:
called `Result::unwrap()` on an `Err` value: Invalid
thread '<unnamed>' panicked at /home/public_tools/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.1/src/gtf/attr.rs:77:10:
called `Result::unwrap()` on an `Err` value: Invalid
thread '<unnamed>' panicked at /home/public_tools/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.1/src/gtf/attr.rs:77:10:
called `Result::unwrap()` on an `Err` value: Invalid
thread '<unnamed>' panicked at /home/public_tools/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.1/src/gtf/attr.rs:77:10:

By the way, I need to install it using Conda with an additional channel "conda-forge" for libgcc-ng.
$ conda create -n gtfsort -c bioconda gtfsort
WARNING: A conda environment already exists at '/home/tcman/miniconda3/envs/gtfsort'
Remove existing environment (y/[n])? y

Channels:
 - bioconda
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - nothing provides libgcc-ng >=12 needed by gtfsort-0.2.1-h4ac6f70_0

Could not solve for environment specs
The following package could not be installed
└─ gtfsort is not installable because it requires
   └─ libgcc-ng >=12 , which does not exist (perhaps a missing channel).

$ conda create -n gtfsort -c bioconda gtfsort -c conda-forge
Channels:
 - bioconda
 - conda-forge
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/tcman/miniconda3/envs/gtfsort

  added / updated specs:
    - gtfsort

The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-2_gnu
  gtfsort            bioconda/linux-64::gtfsort-0.2.1-h4ac6f70_0
  libgcc-ng          conda-forge/linux-64::libgcc-ng-13.2.0-h807b86a_5
  libgomp            conda-forge/linux-64::libgomp-13.2.0-h807b86a_5
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-13.2.0-h7e041cc_5

Proceed ([y]/n)? y

Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate gtfsort
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Hi @a92932000
Thank you for using gtfsort!
The problem you are encountering is due to the compatibility of your input files with gtfsort (your error is produced because gtfsort could not parse the attributes, the parsing logic was intended to work only with GTFs). This tool only accepted GTF files until v.0.2.1, not GFF support. Coincidentally, yesterday I started working on the new version (v.0.2.2) with GFF support. This version has been published a few minutes ago, so probably now you won't have any problem sorting your files.
Please be aware that using conda at this time will cause the same error (usually takes 1-2 days for the conda bot to update the new recipe). You still have plenty of options: 1) cargo install gtfsort; 2) build from source (git clone and then cargo run --release -- ...); 3) docker, just follow the repo README instructions.
Please reach out if you still have problems. If so, please share your .gff file.
Hope this helped,
Alejandro

Hi Alejandro
Thank you update for supporting gff file.
I try the new version 0.2.2, but it does not work well for this gff file.
The file "TAIR10_GFF3_genes.gff" is downloaded from the TAIR10 (Arabidopsis) website.        ID=Chr1;Name=Chr1
Chr1    TAIR10  gene    3631    5899    .       +       .       ID=AT1G01010;Note=protein_coding_gene;Name=AT1G01010
Chr1    TAIR10  mRNA    3631    5899    .       +       .       ID=AT1G01010.1;Parent=AT1G01010;Name=AT1G01010.1;Index=1
Chr1    TAIR10  protein 3760    5630    .       +       .       ID=AT1G01010.1-Protein;Name=AT1G01010.1;Derives_from=AT1G01010.1
Chr1    TAIR10  exon    3631    3913    .       +       .       Parent=AT1G01010.1
Chr1    TAIR10  five_prime_UTR  3631    3759    .       +       .       Parent=AT1G01010.1
Chr1    TAIR10  CDS     3760    3913    .       +       0       Parent=AT1G01010.1,AT1G01010.1-Protein;
Chr1    TAIR10  exon    3996    4276    .       +       .       Parent=AT1G01010.1
Chr1    TAIR10  CDS     3996    4276    .       +       2       Parent=AT1G01010.1,AT1G01010.1-Protein;
Chr1    TAIR10  exon    4486    4605    .       +       .       Parent=AT1G01010.1
$ gtfsort -t 1 -i TAIR10_GFF3_genes.gff -o sorted.gff 2>stderr.log

##### GTFSORT #####
The fastest chr/pos/feature GTF/GFF sorter you'll see.
Repo: github.com/alejandrogzi/gtfsort
Feel free to contact the developer if any issue/bug is found.

Version: 0.2.2
2024-03-02T12:37:37.136Z INFO  [gtfsort] Using 1 threads
$ head stderr.log
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:
called `Result::unwrap()` on an `Err` value: MissingGeneId("ID=Chr1;Name=Chr1")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:
called `Result::unwrap()` on an `Err` value: MissingGeneId("Parent=AT1G34260.1,AT1G34260.1-Protein;")
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:
called `Result::unwrap()` on an `Err` value: MissingGeneId("Parent=AT1G51430.1,AT1G51430.1-Protein;")
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:
called `Result::unwrap()` on an `Err` value: MissingGeneId("Parent=AT1G53345.1")
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:

The gff file contains non-trancript features eg. chromosome, protein ...
cut -f 3 TAIR10_GFF3_genes.gff | sort -u
CDS
chromosome
exon
five_prime_UTR
gene
miRNA
mRNA
mRNA_TE_gene
ncRNA
protein
pseudogene
pseudogenic_exon
pseudogenic_transcript
rRNA
snoRNA
snRNA
three_prime_UTR
transposable_element_gene
tRNA

Simplify gff file by gffread
$ gffread -F --keep-genes -o TAIR10_GFF3_genes.gffread.gff TAIR10_GFF3_genes.gff
$ head TAIR10_GFF3_genes.gffread.gff
##gff-version 3
# gffread v0.12.7
# gffread -F --keep-genes -o TAIR10_GFF3_genes.gffread.gff TAIR10_GFF3_genes.gff
Chr1    TAIR10  gene    3631    5899    .       +       .       ID=AT1G01010;Note=protein_coding_gene;Name=AT1G01010
Chr1    TAIR10  mRNA    3631    5899    .       +       .       ID=AT1G01010.1;Parent=AT1G01010;Name=AT1G01010.1;Index=1
Chr1    TAIR10  exon    3631    3913    .       +       .       Parent=AT1G01010.1
Chr1    TAIR10  exon    3996    4276    .       +       .       Parent=AT1G01010.1
Chr1    TAIR10  exon    4486    4605    .       +       .       Parent=AT1G01010.1
Chr1    TAIR10  exon    4706    5095    .       +       .       Parent=AT1G01010.1
Chr1    TAIR10  exon    5174    5326    .       +       .       Parent=AT1G01010.1
$ cut -f 3 TAIR10_GFF3_genes.gffread.gff | sort -u
CDS
exon
gene
# gffread -F --keep-genes -o TAIR10_GFF3_genes.gffread.gff TAIR10_GFF3_genes.gff
# gffread v0.12.7
##gff-version 3
miRNA
mRNA
mRNA_TE_gene
ncRNA
pseudogene
pseudogenic_transcript
rRNA
snoRNA
snRNA
transposable_element_gene
tRNA

Sort the processed gff file
$ gtfsort -t 1 -i TAIR10_GFF3_genes.gffread.gff -o sorted.gffread.gff 2>stderr.gffread.log

##### GTFSORT #####
The fastest chr/pos/feature GTF/GFF sorter you'll see.
Repo: github.com/alejandrogzi/gtfsort
Feel free to contact the developer if any issue/bug is found.

Version: 0.2.2
2024-03-02T12:39:52.093Z INFO  [gtfsort] Using 1 threads
$ head stderr.gffread.log
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:
called `Result::unwrap()` on an `Err` value: MissingGeneId("ID=AT1G01010;Note=protein_coding_gene;Name=AT1G01010")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:
called `Result::unwrap()` on an `Err` value: MissingGeneId("Parent=AT1G35030.1")
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:
called `Result::unwrap()` on an `Err` value: MissingGeneId("Parent=AT1G51400.1")
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:
called `Result::unwrap()` on an `Err` value: MissingGeneId("Parent=AT1G53310.1")
thread '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:

@a92932000,
Thanks for the detailed log info! It seems that the problem comes from your file.
thread` '<unnamed>' panicked at /home/tcman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gtfsort-0.2.2/src/gtf.rs:25:67:
called `Result::unwrap()` on an `Err` value: MissingGeneId("ID=AT1G01010;Note=protein_coding_gene;Name=AT1G01010")

That indicates that an error occurred while parsing attributes from a given line, in this case:
ID=AT1G01010;Note=protein_coding_gene;Name=AT1G01010

Both, GTF and GFF modes, support files that follow a kind of "base" structure (e.g. GENCODE/Ensembl) with only 3 mandatory attributes: "gene_id" (mandatory for all lines), "transcript_id" (mandatory for all transcript and the rest of lines) and "exon_number" (mandatory for exons, CDS, etc). This is an example of a "gene" line from a GENCODE GFF:
chr1    HAVANA  gene    11869   14409   .       +       .       ID=ENSG00000290825.1;gene_id=ENSG00000290825.1;gene_type=lncRNA;gene_name=DDX11L2;level=2;tag=overlaps_pseudogene

Note that:
gene_id=ENSG00000290825.1

is present, the rest of things actually do not matter.
Why is it like that? The inputs to the algorithm are based on Hash layers build from your GFF file. By default genes and trascripts are taken as the sources for the outer layers while the rest of features are considered "childs". This is how gtfsort no only sorts by chromosome and position but by features (trying to make it more easier to look at).
Your GFF seems to coming from a custom source, so probably this is why it is like that and gtfsort fails. Sorry for not being of help here.
Best,
Alejandro

Hi Alejandro,
I understand the issue results from losing "gene_id". Thank you quick reply.
However, my study heavily relies on arabidopsis. I will write my program to sort it.
By the way,
I think that only ID and parent are required for gene and transcript/mRNA features in gff3 format based on Sequence Ontology.
https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md
I have tried the Arabidopsis gff file from Ensembl plant, but it still did not work.
Thank your help


Integrate with AAD B2C for User Login

Create Azure Active Directory B2C tenant and configure frontend to login with the service. Use login in backend.

Reference:
https://www.iotality.com/azure-adb2c-react-app/
https://github.com/gopal-amlekar/adb2c-react-sign-in-signout
https://www.apollographql.com/docs/apollo-server/security/authentication/

https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/maintenance/passport-azure-ad
https://github.com/Azure-Samples/active-directory-b2c-javascript-nodejs-webapi


Upgrade python SDK to v1.1.1

Coverage remained the same at 55.316% when pulling e63681518807004607d7eab22582faeeee624fa6 on wy65701436:sdk into c7a7f080d9085ce0b7da19972a99e1afaba64ca0 on vmware:sdk.


bug:Added validation to edit text fields

Fixes #950
Screenshots for the change:

@iamareebjamal Kindly review


Enhance the maven plugin to register generated avaje services in modular projects

It seems exceedingly unlikely that the JDK devs will add a mechanism to allow modular applications to register services via annotation processing like we can in the classpath.
I'm thinking we can enhance the maven plugin such that we'll be able to transform the module-info after compilation to add any required provides statements.

the existence of the provides plugin takes care of this


Ability to update an agent as i refine my instructions

As I'm working in a chat and I hone in on what I want to do, it starts to get pretty good at it's job. For example, the agent will use  a tool not quite right. Then, I'll coach it a bit and it gets better. I'd like to have an easy way for the obot to take this "coaching" and update the agent's instructions. This could be trigger by me the user or the system could suggest it.

This could also be implemented as "memory" style add-ons to an agent, rather than changing the core agent itself.


[Feature] Support mx.flip

I'm implementing a bidirectional LSTM and need to flip the inputs for the reverse call.
Could it be as simple as reversing the sign of the strides? What edge cases am I missing?

Yes you can flip an array like:
>>> a = mx.arange(4).reshape(2, 2)
>>> a
array([[0, 1],
       [2, 3]], dtype=int32)
>>> a[:, ::-1]
array([[1, 0],
       [3, 2]], dtype=int32)

Having a flip could be useful though. You could indeed implement it with a slice and negative stride. I don't know of any edge cases that wouldn't work for..

Thanks! Exactly what I needed.


Request: Maestro Mode keyboard control

Hi Eusth.
Would it be possible for Maestro Mode to work completely from the keyboard? It is unusable with the mouse when using the Rift. Having it work on keyboard would be great.
Thanks
Mike

Heyho mighele
Well, it would be possible, sure, but what kind of control do you have in mind? Something along the lines of selecting a handle via tab and moving it blender-like via some key combination / arrow keys?
I may get back to it when I have time, but for now I'd say we wait for the studio and build up on that.
As a side-note, I implemented an experimental cursor for the rift that works better with IK nodes for the studio in Harem Mate. Might also be an option to port that over.


PayPay Checkout not working

When using [PaypalCheckoutEnabled]="true" I am able to select PayPal as my payment options, but it is not working.
When I choose PayPal as my payment options, then click the "PayPal Checkout" button, the popover appears briefly, then disappears with an error.  An error message appears saying "Something went wrong on our end."
In my console window, the following 1 messages are logged:
zone.js:2935 POST https://api.sandbox.braintreegateway.com/merchants/2hw44krw4f932x7d/client_api/v1/paypal_hermes/create_payment_resource 422 (Unprocessable Entity) (. . .)
and
logger.js:63 ppxo_no_token_passed_to_payment
{timestamp:<PHONE_NUMBER>227, windowID: "0dc8834808", pageID: "39e6154826", prev_corr_ids: "", referer: "localhost:4200", …}
country: "US"
env: "production"
host: "localhost:4200"
(. . .)
I do notice in the 2nd error log it says "env: 'production'".   Could this be the source of my problem, and if so, how might I change the environment?
Any help would be greatly appreciated!

unrelated to the plugin.
I had linked a PayPal sanbox account... incorrectly.  Restarting the process of linking a PayPal account resolved my issue.


Make DBConnectionRetries configurable

Is there an existing issue for this?

[X] I have searched the existing issues

Feature description
We have an issue using cerbos in gitlab CI with postgres as storage driver.
Sometimes, postgresql service container does not start quickly enough and cerbos fails to start after 3 db connection retries.
I tried waiting for postgres to be ready overriding the entrypoint but netcat is not available in the cerbos Docker image and we can't install it because it's based on SCRATCH.
If we could have DBConnectionRetries (currently a hardcoded const in https://github.com/cerbos/cerbos/blob/main/internal/storage/db/internal/funcs.go) configurable via args, it would fix the issue.
Or eventually add netcat in the cerbos Docker image.
Here is an example of our gitlab CI config:
test:
  stage: test
  services:
    - postgres:13.12-alpine
    - name: ghcr.io/cerbos/cerbos:0.30.0
      alias: cerbos
      command:
        - server
        - --set=server.adminAPI.enabled=true
        - --set=server.adminAPI.adminCredentials.username=${CERBOS_ADMIN_USERNAME}
        - --set=server.adminAPI.adminCredentials.passwordHash=${CERBOS_ADMIN_PASSWORD}
        - --set=storage.driver=postgres
        - --set=storage.postgres.skipSchemaCheck=true
        - --set=storage.postgres.url=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:5432/${POSTGRES_DB}?sslmode=disable&search_path=cerbos
  variables:
    CI_DEBUG_SERVICES: "true"
    POSTGRES_HOST: postgres
    POSTGRES_DB: test
    POSTGRES_USER: postgres
    POSTGRES_PASSWORD: xxxxx
    CERBOS_ADMIN_USERNAME: cerbos
    CERBOS_ADMIN_PASSWORD: xxxx

What would the ideal solution look like to you?
Have DBConnectionRetries configurable via args
Else, have netcat available in docker image
Anything else?
No response

I see. It's unfortunate that GitLab CI doesn't have support for specifying dependencies between services. We can look into making the retries configurable in Cerbos. In the meantime, you could use the Cerbos sqlite3 driver in your tests because it doesn't require an external service to be up.

Thanks a lot for your reply and looking into making the retries configurable .
Unfortunately we can't use sqlite3 driver because our custom polices are created by our go backend app via postgres connection, so it would require a lot of changes/custom code to switch driver.
And yes I agree that Gitlab services not supporting dependencies is really a shame.

Got it. Until we implement and release the ability to configure retries, another way you might be able to work around this is by using the cerbos run command.


[EVENT] {{ Openscapes NASA ECOSTRESS Workshop }}

Summary
Hi 2i2c team! We've got a 2- half-day event next week and would appreciate you prewarming the JupyterHub for us. Please let us know if you have any questions. Thank you!
Event Info
NASA Openscapes workshop with ECOSTRESS group

Community Representative: @jules32, @erinmr
Event begin: April 12
Event end: April 13
Active times: 2pm- 5pm US/Pacific each day
Number of attendees: 40-50 people
Hub Events Calendar

Hub info

Hub URL: https://openscapes.2i2c.cloud/hub/
Hub decommisioned after event?: no

Task List
Before the event

[ ] Dates confirmed with the community representative and added to Hub Events Calendar

[ ] One week before event Hub is running.

[ ] Confirm with Community Representative that their workflows function as expected.

👉Template message to send to community representative
Hey {{ COMMUNITY REPRESENTATIVE }}, the date of your event is getting close!

Could you please confirm that your hub environment is ready-to-go, and matches your hub's infrastructure setup, by ensuring the following things:
- [ ] Confirm that the "Event Info" above is correct
- [ ] On your hub: log-in and authentication works as-expected
- [ ] `nbgitpuller` links you intend to use resolve properly
- [ ] Your notebooks and content run as-expected

[ ] 1 day before event, either a separate nodegroup is provisioned for the event or the cluster is scaled up.

During and after event

[ ] Confirm event is finished.
[ ] Nodegroup created for the hub is decommissioned / cluster is scaled down.
[ ] Hub decommissioned (if needed).
[ ] Debrief with community representative.

👉Template debrief to send to community representative
Hey {{ COMMUNITY REPRESENTATIVE }}, your event appears to be over 🎉

We hope that your hub worked out well for you! We are trying to understand where we can improve our hub infrastructure and setup around events, and would love any feedback that you're willing to give. Would you mind answering the following questions? If not, just let us know and that is no problem!

- Did the infrastructure behave as expected?
- Anything that was confusing or could be improved?
- Any extra functionality you wish you would have had?
- Could you share a story about how you used the hub?

- Any other feedback that you'd like to share?

Hey @jules32 - thanks for giving us a heads up. In the future could you please let us know about events via<EMAIL_ADDRESS>We are trying to use that as a single place to track requests coming in from communities, so that we don't lose track of them.

Hi @choldgraf , yes, absolutely.
Shall I include the Summary, Event Info, and Hub Info like I did above or is there anything more (or less) that you need when we email?
Thank you!

Shall I include the Summary, Event Info, and Hub Info like I did above or is there anything more (or less) that you need when we email?

The email would be a simple one-line request, @jules32.
The support agent will acknowledge the request and reply to you providing you with a GH issue/form link (like this one) where you will be able to complete all the necessary details.

Ah, excellent. Thanks @damianavila !

FYI, the cluster has been scaled up to min 50 nodes.
Have a great event!

I've turned down the cluster back to its smaller state now.


Manage Cocoapods CDN

In case Cocoapods is used with trunk repo instead of master, the urls generated in the summary report are nil.
By checking the presence of trunk repo and using it, the issue is fixed.

I created a PR #8 to handle multiple sources that should handle the case where the specs does not exist in trunk but does in master. That should cover your case as well.


Disable all options on Android

Sadly I didn't think of this before and noticed this just yet on Android.
There is no need for having any of the inputstreamhelper options on Android.

Looks good to me. But it seems like the visible attribute doesn't work for separators? Another Kodi settings bug?

Yeah, that's something that should work IMO.
In our case the visual artefact is not a problem.
But I need to report this!

I opened a ticket, but the issue (actually regression) was already known.
So I would leave it as-is, if this is fixed in Kodi it will work.


Add unit test for evaluating two rulesets at once

Feature or Bugfix

Feature

Detail

Add unit test for evaluating two rulesets at once

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: c32a551b10b5b871cc26264f3431f130a7649844
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: f7318deefba50abda423594d1078ac7d68a79dbe
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


SilentError: Multiple module files found: \clerking

Please provide us with the following information:

OS?

Windows 10

Versions.
angular-cli: 1.0.0-beta.19-3
node: 6.6.0
os: win32 x64
Repro steps.

Create a module in a clerking folder
Create another module in the same clerking folder
Attempt to run ng g component mycomponent in the same clerking folder

The log given by the failure.
Error locating module for declaration
SilentError: Multiple module files found: \clerking
Mention any other details that might be useful.
The above error might very well be the intended result from the tooling. However, can there be an option to override the behaviour when it is required. So I might be able to give the command the name of the module to place the component or simply let the command run without the error, allow us to placed the component in its respective module?

Thanks! We'll be in touch soon.

Looks like there is a --skip-import option but it only skips the actual importing step.  It should probably skip the module location step as well.

@Brocco can you weigh in?

When that flag is specified, the current error can be converted to show a warning. Assigning this issue to myself for implementation.


Bluetooth channel map

Add API for setting the channel map at runtime using the host channel classification HCI command.
Fixes: #9851

@jhedberg Updated with your comments.


2.0.0-beta4: Live preview fails to auto-number theorems correctly when note is long enough

This is because CodeMirror doesn't render elements outside the viewport. They're not just not updated, they do not exist in the first place.

One obvious solution would be holding a state field representing the position of theorem callouts at each moment.

Another solution is counting auto-numbered theorem callouts outside (or more specifically, before) the viewport.


Delete useless jenkinsfile

Delete useless jenkinsfile

Codecov Report

Merging #166 (06b723e) into master (b7447dc) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #166   +/-   ##
=======================================
  Coverage   80.07%   80.07%
=======================================
  Files          57       57
  Lines       16003    16003
=======================================
  Hits        12814    12814
  Misses       3189     3189

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 b7447dc...06b723e. Read the comment docs.


Spell Check

Problem
Users cannot seem to spell correctly.
Solution
A spell check feature that is capable of running at the chat input level to highlight and/or autocorrect incorrect spelling.
Alternative Solution
Adult English courses for any affected user.
Additional context
No.

IF this is as easy to get running as it looks, then this shouldn't be much trouble at all:
https://github.com/electron-userland/electron-spellchecker
devils in the details...

got a windows version of this running. As long as we can get it to compile on a mac we are in a good place


docs for the HTTP transport adapter

fixes: #902

Great document. Some suggestions and fixups.

Thank you very much for you detailed review!  It was awesome!  I have applied your suggested changes.
I will work later on the pending comments and will upted the broken links that are causing the CI to fail

Great document. Some suggestions and fixups.

Thank you very much for you detailed review!  It was awesome!  I have applied your suggested changes.
I will work later on the pending comments and will upted the broken links that are causing the CI to fail

Victor, fantastic job on this!
Very clear, well organized, and complete.
I see book writing in your future :)

hahahaha,, I can take credits for the organization, but @ahsonkhan  and @RickWinter  have already improved the redaction for the time you saw it :).  Thank you

Victor, fantastic job on this!
Very clear, well organized, and complete.
I see book writing in your future :)

hahahaha,, I can take credits for the organization, but @ahsonkhan  and @RickWinter  have already improved the redaction for the time you saw it :).  Thank you

Well in that case, I'll give "a great job" to @RickWinter  & @ahsonkhan too!
The 3 of you can cowrite a book together then.

Well in that case, I'll give "a great job" to @RickWinter  & @ahsonkhan too!
The 3 of you can cowrite a book together then.


How do I contribute a CL?

https://github.com/google/caja/wiki/ContributingCode is obsolete. It still speaks in terms of myvn which is no longer relevant since the switch to github.

Okay, so we need to update the instructions and create a replacement for myvn. It is possible to use tools/appspot.py directly to do code reviews.
I have been carefully executing a minimum-changes-from-svn workflow, but I'm open to suggestions as to making it more git-ish. The things I didn't want to lose, but don't fit all that well with standard git workflows, is the code review information in the message for every commit, and the linearity of history.
In the absence of such changes, here is what a new myvn-analogue would do, I think:

myvn change replacement: same thing. However, it would specifically refuse to operate on a branch that is not a feature branch (we could enforce a naming convention, or recognize the names master and es53).
myvn snapshot: same, but ensure all changes are committed (this is not strictly necessary, but is a good work habit).
myvn submit replacement, part 1: would take the current history of the feature branch and squash it into one commit, with a message derived from the appspot-change file (and warn you that it's doing this to give you a chance to edit the change file).
myvn submit replacement, part 2: validate that the history is in the above form, run tests, then optionally put it in master (effectively as a cherry-pick) and optionally push.

This would be sufficient to handle the workflow I've been doing manually since the migration. The docs would be updated to explain the above.
I specifically do not want to do GitHub pull requests by themselves because from what I've seen, Rietveld is superior to GitHub's code review support, and I find a lot of value in avoiding unnecessarily nonlinear history. However, we should be able to accept contributions which are in the form of pull requests, which suggests a new myvn feature:

Take a pull request or other branch that's already been fetched and bring it into the workflow.

Keith:
I've submitted three pull requests (and more are coming). However, I just assumed a standard process, and just noticed last night this note about using an analogous process to myvn.
Would you prefer to get those three pull requests in a single one? Anything other request?

jfparadis, pull requests are fine for little things from non-members — just don't expect them to get merged unmodified.
Regarding your own pull requests, please sign the Google CLA like the bot comment said.


pkgs: remove llvm_37

These expressions are now unused, and can be removed to lighten the load
on build machines.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg eval

To remove load from the build machines it is enough to add meta.hydraPlatforms = []


Trim local filepaths from go binaries

Currently all builds have local filepaths in the binaries. We can pass
-trimpath to strip these, which will get us closer to reproducible
builds.
For https://github.com/istio/istio/issues/16635

Could you replicate this in the common-files version of gobuild.sh please?

Yep, planning to send a PR with this and the multi-build
On Thu, Sep 19, 2019 at 10:08 AM Martin Taillefer<EMAIL_ADDRESS>wrote:

Could you replicate this in the common-files version of gobuild.sh please?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/17213?email_source=notifications&email_token=AAEYGXMEP6ZPZRVKE6432ATQKOWXDA5CNFSM4IYMJVS2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7EFMFI#issuecomment-533222933,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEYGXLTJENDPRBXRGQFKDLQKOWXDANCNFSM4IYMJVSQ
.


Expose button instead using Eve app

Please explain your feature request in a one or two sentences.

Instead of being dependent on Eve app you could expose button for each zone.

Is your feature request related to a problem? Please describe.

Actually Eve app crash on my iPhone (all is up to date). All my automations actions stopped working.
This issue is not related to this plugin. But I’ve tried to find a workaround to stop using Eve app and have a fully embedded solution.

Any particular ECOVACS devices that this relates to?

Nope

Anything else?

This feature has been implemented in another homebridge plugin. But I prefer this one and I trust and support more this developer
Related project using the required feature :
https://github.com/nicoduj/homebridge-deebotecovacs#readme

is Eve app still crashing for you?

Yes. So I’ve deleted the app And I’ve switched to Deebotecovacs plugin. That allow me to setup my Deebot directly in home app and without needs of external app 🙂


Added elm-snake

I'm updating primaryUrl so it points to a demo of the app. https://rkrupinski.github.io/elm-snake/

Merged and deployed. Thanks!


feat: basic mint page example

What changed? Why?
A page showing how one might interact with an 1155 contract (on base-goerli). Includes a little refactor of the Navbar now that we have multiple pages.

Notes to reviewers
How has it been tested?
Manual verification, including mint. Automated testing soon!

@Sneh1999 have updated with a more svelte ABI. Left in balanceOf because I can forsee we might want to show that on this page (would make a good example of the watch param in useContractRead)

@cnasc oh one last thing, when I mint it with Base Goerli, than I didn't see it showing up on my CB Wallet, maybe I am looking in the wrong place.
Anything am I missing?

Leaving some notes for a few things I am thinking which we might want to consider for later:

where to have the contracts? so far the ABI is in the /onchain/contract folder, I wonder if this structure makes sense. Thoughts?
the name of the file is @/onchain/contract/Custom1155 I wonder if we want meet our naming a bit in the middle between expert and begginers, like mint-eip-1155 or something like that, where you can tell what it is without the eip standard.
@cnasc LOOOOVE all the comments, would love more of them across the experience, it makes so easy for begginers to pick up on building onchain.
so far we have been working with baseGoerli, I wonder how we can simplify the experience in switching between testnet and mainnet.
in the Mint component we use usePrepareContractWrite, I  wonder what kind of best practice we want to teach folks around split the Onchain operations vs Web usual logic. This will also help making write test in a more easy way.

Awesome work @cnasc, I see you have several TODOs, feel free to have the word TODO in it, so we don't keep track of it. Or create Issues that points to those comments.
cc @Sneh1999 @cnasc

Addressed this in this PR: https://github.com/coinbase/build-onchain-apps/pull/119. Let me know your thoughts!


Facemesh refine landmark

Hi there, I am using mediapipe facemesh for face swap application
I read from the document that landmark are refined for lip, eye, iris but not for nose
Can you update the model with the refine landmark for nose region
Thank you

Hi @kyhoolee,
Thanks for raising this feature request. Would you also please share a use-case where this can be useful? Based on this will prioritize the issue internally. Thank you!

Thanh @kuaashish for reply
I do several applications based on mediapipe facemesh

Toonify, makeup, face-swap application

If nose landmarks are refined, I could create more realistic results
This is my (app)[https://play.google.com/store/apps/details?id=com.fastface.faceeditor]

Face expression game

If landmark points align better - I could easily define rule to mapp from landmarkpoints relative position to face expression
And it is more flexible to create AR game based on face-expression input -->> No need to build secondary model for classify expression (And have to spend more effort on collecting training data, export model, ...)

Hi @kyhoolee,
Thanks for the sharing the useful details! We are marking this as feature request and sharing this with the internal team. Thank you!


New Rows In CSV

Is it possible to force new rows?
Have a format I need to match that has each object over three rows.
Everything I have tried is being stripped out when parsed.

Perfect, Thanks that will at least steer me in the right direction. Have a nice weekend!

You too!
I'll close this. Feel free to re-open or just ask if you have any more questions :)

Still couldn't figure it out @juanjoDiaz - returns a  ReferenceError that acc is not defined inside the getObjectProps function.
Understand if you're too busy to help out, this is a little out of my skill level and as you said quite an unusual requirement.

My bad. I told you it wasn't tested. :p
The right function is:
const processedData = myCars.reduce((acc, row) => {
  acc.push(getObjectProps(row, row1fields));
  acc.push(getObjectProps(row, row2fields));
  return acc;
}, []);

Just tested the whole thing and it works :)
Just let me know if you have any other problem :)

So I thought I had this all working until i realized the JSON we are getting can sometimes have nested content inside.
Data would look like this as an example
const myCars = [
  {
  "car": "Audi",
  "price": 40000,
  "color": "blue",
  "location_city" : "New York",
  "location_state" : "New York",
  "location_country" : "United States",
"mylineitems": [
            {
                "prod_qty": 1,
                "prod_sku": "colorfulpants",
                "prod_price": "140.00"
            },
            {
                "prod_qty": 1,
                "prod_sku": "blackdress",
                "prod_price": "0.00"
            }
        ],
  },  {
  "car": "BMW",
  "price": 50000,
  "color": "red",
  "location_city" : "Raleigh",
  "location_state" : "North Carolina",
  "location_country" : "United States",
"mylineitems": [
            {
                "prod_qty": 2,
                "prod_sku": "party",
                "prod_price": "100.00"
            },
            {
                "prod_qty": 1,
                "prod_sku": "sweater",
                "prod_price": "0.00"
            }
        ],
  },
];

Ideally I need an output like the below - where we are making a new row for each item inside lineitems
"Audi", 40000, "blue",
"New York", "New York", "United States"
"1","colorfulpants","140.00"
"1","blackdress","0.00"
"BMW", 50000, "red",
"Raleigh", "North Carolina", "United States"
"2","party","100.00"
"1","sweater","0"

I've been playing around for a few days but I am not sure this is even going to be possible?

const Json2csvParser = require('json2csv').Parser;
const row1fields = ['car', 'price', 'color'];
const row2fields = ['location_city', 'location_state', 'location_country'];
const rowNestedField = 'lineitems';
const nestedObjectsFields = ['prod_qty', 'prod_sku', 'prod_price'];
const myCars = [
  {
  "car": "Audi",
  "price": 40000,
  "color": "blue",
  "location_city" : "New York",
  "location_state" : "New York",
  "location_country" : "United States",
"lineitems": [
            {
                "prod_qty": 1,
                "prod_sku": "colorfulpants",
                "prod_price": "140.00"
            },
            {
                "prod_qty": 1,
                "prod_sku": "blackdress",
                "prod_price": "0.00"
            }
        ],
  },  {
  "car": "BMW",
  "price": 50000,
  "color": "red",
  "location_city" : "Raleigh",
  "location_state" : "North Carolina",
  "location_country" : "United States",
"lineitems": [
            {
                "prod_qty": 2,
                "prod_sku": "party",
                "prod_price": "100.00"
            },
            {
                "prod_qty": 1,
                "prod_sku": "sweater",
                "prod_price": "0.00"
            }
        ],
  },
];

const getObjectProps = (obj, props) => props.reduce((acc, prop, i) => {
  acc[i] = obj[prop]; // Use just the index so json2csv treats them as the same colum
  return acc;
}, {});
const getNestedContent = (row, prop, nestedProps) => row[prop]
  .map(obj => getObjectProps(obj, nestedProps));

const processedData = myCars.reduce((acc, row) => {
  acc.push(getObjectProps(row, row1fields));
  acc.push(getObjectProps(row, row2fields));
  acc = acc.concat(getNestedContent(row, rowNestedField, nestedObjectsFields))
  return acc;
}, []);

const json2csvParser = new Json2csvParser({ header: false});
const csv = json2csvParser.parse(processedData);
console.log(csv);

I expect 10% of your paycheck at the end of the month :p
JK, hope that helps!
The "prod_qty" property is not quoted in the result because it's a number and not a string. You can change it also with a bit of preprocessing.


log: allow extensions enrich the logs (regression)

We have some use-cases where a filter needs to set dynamic metadata when the stream ends, but before log() happens, to enrich the logs with data gathered through the lifecycle of the request (and regardless if it ended or reset).
We used to do it using onDestroy(), but now that log() happens before onDestroy, this approach doesn't work anymore (as of https://github.com/envoyproxy/envoy/pull/12850).
solution suggestion: adding another callback to StreamFilterBase named onStreamCompleted that will be called just before log() happens here: https://github.com/envoyproxy/envoy/blob/84f538f1ddcb5c16d98627df8b5e8c38f0f26720/source/common/http/conn_manager_impl.cc#L207-L208
This will allow extensions to enrich the logs, without the need to reason on all the cases where the stream might end (i.e. if it was reset or not).
If there are no objections, we can contribute this change.
cc @kyessenov

Why can't logging happen immediately after onDestroy() of all filters?

I have no issue with that, but please see:
https://github.com/envoyproxy/envoy/pull/12850
https://github.com/envoyproxy/envoy/issues/12616

The bug was about logging happening after deferred destruction. I don't see any issue with doing the logging phase after onDestroy() is called for each filter, though this would need to be documented that log happens after onDestroy(). I'm not sure if assumptions are being made on the inverse. It would be nice to avoid another callback if we don't need it.
cc @jplevyak @snowp

SGTM

I think it's confusing to call onDestroy before onLog for filters that cross-register as log handlers, but it's not a big deal.
We wanted to do blocking access loggers at some point https://github.com/envoyproxy/envoy/issues/10326 which might exacerbate this issue.

I think it's confusing to call onDestroy before onLog for filters that cross-register as log handlers, but it's not a big deal.
We wanted to do blocking access loggers at some point #10326 which might exacerbate this issue.

I don't feel strongly about it. If we do want a new callback, I might recommend calling it onPreDestroy(), so the flow is onPreDestroy(), onLog(), onDestroy().

What do you think about changing your filter to cross-register as access logger (addAccessLogHandler)? This is more aligned with the intent. We may need to make sure the ordering is right (HTTP filters before access log handlers).

yes, that's exactly the problem with addAccessLogHandler - the order.
I think it is better to have another callback or move onDestroy before on log than rely on ordering, as the semantics are more clear and less likely to break in the future.
i.e. - how do you know to tell apart a real access log extension (that writes to a new sink) vs something that enriches the existing access logs, if they both use the same callback?
That said, I'm open to implement any fix that will get the consensus.
WDYT?

I think it is better to have another callback (onPreDestroy) or move onDestroy before on log than rely on ordering, as the semantics are more clear and less likely to break in the future.

Yeah I agree. Let's just do it. It will be more clear. I think my only remaining question is:

Should this new callback be opt-in (via registration) to avoid compile breakages for existing filters?
If not, should we actually do a larger change to make a single onDestroyPhase(...) function which takes a stage enum? This seems more future proof but would be a larger breaking change.

WDYT? cc @snowp @alyssawilk

I'm fine with an optional (default no-op) onEncodeComplete - seems like a reasonable entry point and I prefer no-op base class to 50 filters having to make a no-op.

I'm fine with an optional (default no-op) onEncodeComplete - seems like a reasonable entry point and I prefer no-op base class to 50 filters having to make a no-op.

@mattklein123 Any objections to optional default no-op callback?
Assuming we are all in agreement I can open a PR later today.|

SGTM! Please also add good docs to the rest of the functions in filter.h so it's clear to the next person what the expectations are. Thank you!


Note for #1145 and style fixes

Fixes #1145 and others within models/reddit.
Added a notice per #1145 of the behavior of .moderated() not returning the user's own profile subreddit (u_USERNAME). Style fixes for remaining references to Reddit Gold, which is now called Reddit Premium (note that the attribute for a Redditor is still called is_gold). Also standardizing subreddit prefixes from the legacy /r/ to the official r/.
Standardized the capitalization of Markdown as per the site.
Also updated an oversight in setup.py that says that the minimum is Python 3.4 when it is actually 3.5 per the README. Let me know if I did that wrong.
Also, r/wallpapers still doesn't support the .random() feature. Verified that.

@bboe Can I suggest we add another .rst to package_info, something like "style guide"? It would be great if we can standardize people docstrings in general and make sure we're on common ground here going forward.

@bboe Can I suggest we add another .rst to package_info, something like "style guide"? It would be great if we can standardize people docstrings in general and make sure we're on common ground here going forward.

I love that idea. Would you like to create such a file?

@bboe I'll have to read up on writing RST but I can definitely try to get it started. Shall I submit it as an Issue then so we can get community input on what the styles should be in the first place?

Thanks for the PR. Really loving this work from you.

@bboe I'll have to read up on writing RST but I can definitely try to get it started. Shall I submit it as an Issue then so we can get community input on what the styles should be in the first place?

I think it might be better to start with your opinions. I like this consistency you've provided. If you're up for it, make a PR with your proposed guidelines and we can work from that. I've mostly strayed away from enforcing consistency where it's hard to automate because I don't want to have to nitpick people's PRs for minor changes as it might decrease the chance of getting the PR merged. Of course I agree, having consistency makes the documentation better, so it's a delicate balance.

@bboe Sounds good! I'll write something up with what I think works and submit it as an issue and people can provide input together.


Support local LLM

https://www.reddit.com/r/logseq/comments/1ekf5v3/comment/lgkemlo/

Fully implemented on >=0.4


[#25] send unregister on shutdown

fixes #25

Codecov Report
Attention: 66 lines in your changes are missing coverage. Please review.

Comparison is base (4f64c90) 1.57% compared to head (60c0b5d) 1.41%.

Files
Patch %
Lines

.../bmarwell/sipper/impl/proto/SipMessageFactory.java
0.00%
30 Missing :warning:

.../impl/internal/DefaultRegisteredSipConnection.java
0.00%
20 Missing :warning:

...l/sipper/impl/internal/ConnectedSipConnection.java
0.00%
8 Missing :warning:

...ell/sipper/impl/internal/SipConnectionFactory.java
0.00%
8 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #26      +/-   ##
==========================================
- Coverage     1.57%   1.41%   -0.17%
  Complexity       4       4
==========================================
  Files           15      15
  Lines          381     425      +44
  Branches        17      17
==========================================
  Hits             6       6
- Misses         375     419      +44

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Inform 7 interpreter down

Since 09/02 the Inform7 interpreter doesn’t work. After compiling the story successfully it keeps loading but without any result.

I can confirm, I tried without success on Win7, Ubuntu and Android if that can help.
Just once, it worked, without apparent cause.

The proxy that the Parchment interpreter uses to load the story files is down, I suspect because of extra traffic from IFComp that has just started. I'll update the interpreter to not use the proxy so that it won't affect the editor anymore.

Parchment has now been updated and proxy removed, it won't break the interpreter anymore.

Were you still using the old zcode.appspot.com proxy server? It did have a small hiccup after I changed my credit card and it didn't go through immediately.

Yes, the Parchment version was several years old. It didn't even need the proxy but there wasn't any reasonable way to tell it not to use it. The newest version's options do work well.

Ah, I'd been wondering who was still using that server! It's been charging me $0.01 every month haha.
You may not need a proxy at all for Borogove, and the newer Parchment will already switch to it, but if you ever need a proxy for something other than Parchment, please use https://iplayif.com/proxy/ instead. The appspot one is so old it's hanging on by a thread, and whenever Google decides to kill it's server environment that will be the end of it.


fix: UI tweaks for i18n

Pull Request

Description

Related Issue

Checklist

[ ] I have added commit messages that are descriptive and meaningful.
[ ] I have tested the changes locally.
[ ] I have reviewed the code changes.

Screenshots

Just a heads up to add screenshots for the places that are changed so I know where to look.


Explore autonomous agents for TBDex/Web5

explore llamaindex agents: https://docs.llamaindex.ai/en/stable/module_guides/deploying/agents/root.html
explore autogen: https://github.com/microsoft/autogen
explore smol: https://smol.ai/
explore GPT Pilot: https://blog.pythagora.ai/2023/08/23/430/

Can these things help with our GPT goals?

I explored above solutions and there will be a section in the proposal being created at #21 dedicated for the agents.


Error erela.js

(node:4097) UnhandledPromiseRejectionWarning: RangeError: Plugin at index 1 does not extend Plugin.

you can ask more about this error here. https://discord.gg/menudocs since everything is working fine when I'm running the bot


[DISCUSSION] Linux port?

About this discussion
Would it be possible for some sort of Linux port?
Maybe using some sort of simple script that samples colors from the wallpaper and then installs a colored version of the icons?

This wouldn't make sense because you don't run Android apps on linux

It is possible (just do some fiddling around with the svgs + bash), but unfortunately our developers mostly specialize in Android development, not Linux development. Porting Lawnicons would just be difficult to do since after all, it's an Android app. Therefore, we will not port Lawnicons to other platforms. Feel free to make a PR if you can to implement this feature.


Order

What order for the enumerated files? Are they ordered by Datetime or by Name or?

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

ID: cb986edc-b982-72fc-a747-f632e1753b37
Version Independent ID: 61afaa43-8302-83d3-7cc4-da956574bceb
Content: Directory.EnumerateFiles Method (System.IO)
Content Source: xml/System.IO/Directory.xml
Product: .net
GitHub Login: @dotnet-bot
Microsoft Alias: dotnetcontent

The order of files is not guaranteed when you use this method. You could use the results of this method in a LINQ query to sort by name.
Closing as the order is not specified by the API, and the doc reflects that.


server: Make figment-jailed tests run sequentially

Motivation
figment's Jail does not actually isolate environments, it only stores the initial environment state and restores it after the test. This means that multiple tests using jail.set_env can break each other.
Solution
Make these tests run sequentially.

Open Source Review: serial_test
This crate is the fourth-most popular in the Testing category on crates.io. It has been downloaded millions of times.

Actually I just found this comment in another of the config tests and now I want to just kill figment::Jail usage instead:
        // NOTE: Does not use `figment::Jail` like the above because set env vars will leak into
        // other tests overwriting real configurations


Determine charset from contentType if any

There is no guarantee that the consumer uses Jackson to decode the content.
We can consider moving the charset to the contentType; please open a new issue for that.

Originally posted by @garyrussell in https://github.com/spring-projects/spring-amqp/issues/1251#issuecomment-700028191
Affected version: spring-amqp 2.4.2
Recently we were affected by this as the charset was provided in contentType header like e.g.
content-type: application/xml; charset=utf-16 and causes deserialization problems.
For the sending part: non spring-amqp consumers don't expect to find charset at contentEncoding header.
Please consider moving the charset to the contentType.

This might also impact the compression post processors, including the DelegatingDecompressingPostProcessor.


Q2 - Broadband other tasks

Benefit
Provide ad hoc support for GOEO Broadband Office related to geospatial data and analytical needs, and smaller maintenance items of supported apps and data.
Success Criteria
Fulfillment of as many GOEO requests as possible, while balancing with other planned PI objectives.

https://github.com/agrc/locate/issues/204

Sprint 3
Communities Connect app deprecation

[ ] Find out from Rebecca who we can connect with to remove the link to it from the Maps section of the Broadband website
[ ] deprecate/delete Communities Connect AGOL app and data
[ ] Remove from ServiceNow apps list ( @nathankota)

Sprint 3 Notes

Not-served Dashboard

Sprint 4 - 5

[ ] Submit Navajo addresses as BSL challenge

[ ] Help GOEO set up their AGOL org?

[ ] Help Clint download CostQuest fabric

[ ] Add some form of BSL:speedtest comparison hex data to GOEO's AGOL

the hexes take up like 1.5 or 2 GB in AGOL, so we'll have to see what their storage space is like, or if maybe there's a way to just upload the table and join it to our existing plain copy of the hexes in SGID and symbolize off of that.

Sprint 6?
Enterprise Zones
From James Dixon:

It's that time of the season! Our annual review in preparation for next year's Enterprise Zone claims.
We need to make sure the maps reflect the expiration of zones that will occur on Dec. 31, as well as dropping off the map three years back that will not apply in the new year.


--set documentation

--set needs more verbose documentation showing examples of how to update locations and categories.

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

ID: 58a5a5bd-c481-72b8-0cec-05c8795b4469
Version Independent ID: dba52140-3799-cbc3-4628-c2e77d246eb1
Content: az monitor log-profiles
Content Source: src/azure-cli/azure/cli/command_modules/monitor/_help.py
Service: monitoring-and-diagnostics
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

--set is a generic update operation which applies to all resources. Please see https://github.com/Azure/azure-cli/blob/dev/doc/use_cli_effectively.md#using-the-generic-update-arguments for more detailed usages.
As for the structure of JSON body, please check Log Profiles - Create Or Update REST API.


Using a non-gcr.io registry

We should document how to use a registry other than gcr.io. I think giving DockerHub as an example should suffice here. From the suggestion that @willingc gave, I believe we need to tell people how to fill in this part of the chart:
https://github.com/jupyterhub/binderhub/blob/master/helm-chart/binderhub/values.yaml#L26
With the right values for DockerHub. In particular, we also need to give context for what this "JSON authentication" is which I believe is explained here:
https://docs.docker.com/engine/reference/commandline/login/#privileged-user-requirement
does this look correct?
cc @minrk

A few more links from the gitter discussion:
DockerHub for the registry, but these docs look pretty good: https://docs.docker.com/registry/deploying/
Probably user set in values.yaml and credentials in secrets.yaml under registry. https://binderhub.readthedocs.io/en/latest/setup-binderhub.html#create-secret-yaml-file

From what I recall from working on #342 we make assumptions about how auth works with gcr.io that's not generalized to other registries. I know that local un-authenticated registries won't work without changes there. I haven't tried with the DockerHub registry, so it might be that it does work and we need to be clear what config to use, or it's possible that we need to make some changes. It should be a matter of testing with the hub.docker.com and documenting and/or fixing what's needed. We definitely need changes to allow the local wide-open registry case, though.


Allow wildcard for groups

For example, the build script is often identical between groups.
It would be nice to configure groups as:
      build:
        groups:
          *: ["build.sh"]

And maybe even allow runnning
git-local-devops run build, which would require all build actions to have a wildcard group.

Closes with #81


Add Fountain to List of Apps Supporting Lightning Addresses

@kerooke think there's something needing fixing. Says FountainImage cannot be found?


docs: add documentation for useRequestFetch

Describe the feature
Saw the useRequestFetch composable being used in the edge todo example https://github.com/Atinux/nuxt-todos-edge/blob/main/composables/session.ts#L16C39-L16C54 but couldn't find any documentation on it.
I think it'd be nice to include what it does and what it's for.
Additional information

[x] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

It will use event.$fetch on the server and $fetch on client. AFAIK, the former ensure that the fetch of the platform is used (e.g. cloudflare worker's fetch).

This would be great. Let's track in https://github.com/nuxt/nuxt/issues/19815.


Add logfile to keep track of style changes

Is it possible to implement a log file to keep track of changes/improvements inside the maputnik editor? Often other people change stuff inside the editor but it's almost impossible to find out what has changed. Right now I am using a difference checker to check for changes inside the JSON files but that's not optimal.

I'd probably suggest using git/github to track changes and maputnik as the editor. Similar to how a text editor often doesn't display changes diffs. I could imagine this would be a good additional tool, take a git history or github and show smart diffs based on the @mapbox/mapbox-gl-style-spec, some example usage in https://github.com/maputnik/editor/blob/51fa4a4377a796106acbee5a815ada03b10ccceb/src/libs/diffmessage.js

Load/save from/to Github Repo is tracked in https://github.com/maputnik/editor/issues/155 .
Gists are also showing diffs, e.g. https://gist.github.com/pathmapper/6b41e9ab82e2a4aac95b66d8378fa18f/revisions (Gist export is tracked in https://github.com/maputnik/editor/issues/239).

Closing, git is your friend here, undo and redo exist.


Cannot write to this repository

I am getting this message when trying to install GitHub Committer Tools. I do not own the repository, but I am a collaborator.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/26986434-cannot-write-to-this-repository?utm_campaign=plugin&utm_content=tracker%2F47&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F47&utm_medium=issues&utm_source=github).

I found as a workaround, I can use code like this in issue body:
<bountysource-plugin>
[![Bountysource][1]][2]
[1]:http://bountysource.com/badge/issue?issue_id=4807368
[2]:http://bountysource.com/issues/4807368-support-for-package-upgrade
</bountysource-plugin>

I have the same issue.

I guess I found the solution. You need to request permissions in "Settings" / "OAuth applications" so that third-party applications are able to handle organisations.


docs: replace wiki.computercraft.cc with tweaked.cc

Hah, hadn't realised we'd never done this. Thanks!


File size increases significantly for each writeFile

With the {cellStyles: true} option in readFile, the file size increases significantly each time I do a writeFile, even without modifying the workbook

For XLSX / XLSB / ODS, the container format is ZIP.  By default, the writer does not use DEFLATE compression.  To enable it, add the option compression: true

Thanks, indeed, the file size is reduced by about 2 times.
But it is still twice as big as saving the file with Excel directly.


New npm version

Can you please add a new npm version with last commit:
https://github.com/tj/node-only/commit/34db5e619dff8cd0563139a2b9c32edf2b5d04e1
We have an automatically license checker that is failing without this information.
Thank you very much.

Bumping up, this package is used by various providers (like koa) and failing audits for licensing at this point.


Convert DICOM data to BIDS

Assuming that the PATH_INPUT_DATASET is organized like:
|-- data
    |-- 5416
    |   |-- 5416_T1
    |   |   |-- IM-0001-0001.dcm
    |   |   |-- IM-0001-0002.dcm
    |   |   |-- IM-0001-0003.dcm
    |   |   |-- IM-0001-0004.dcm
    |   |   |-- IM-0001-0005.dcm
    |   |   |-- IM-0001-0006.dcm
    |   |   |-- IM-0001-0007.dcm
    |   |   |-- IM-0001-0008.dcm
    |   |   |-- IM-0001-0009.dcm
    |   |   |-- IM-0001-0010.dcm
    |   |   |-- IM-0001-0011.dcm
    |   |   |-- IM-0001-0012.dcm
    |   |-- 5416_T2
    |       |-- IM-0001-0001.dcm
    |       |-- IM-0001-0002.dcm
    |       |-- IM-0001-0003.dcm
    |       |-- IM-0001-0004.dcm
    |       |-- IM-0001-0005.dcm
    |       |-- IM-0001-0006.dcm
    |       |-- IM-0001-0007.dcm
    |       |-- IM-0001-0008.dcm
    |       |-- IM-0001-0009.dcm
    |       |-- IM-0001-0010.dcm
    |       |-- IM-0001-0011.dcm
    |       |-- IM-0001-0012.dcm
    |-- 5493
        |-- 5493_T1
        |   |-- IM-0001-0001.dcm
        |   |-- IM-0001-0002.dcm
        |   |-- IM-0001-0003.dcm
        |   |-- IM-0001-0004.dcm
        |   |-- IM-0001-0005.dcm
        |   |-- IM-0001-0006.dcm
        |   |-- IM-0001-0007.dcm
        |   |-- IM-0001-0008.dcm
        |   |-- IM-0001-0009.dcm
        |   |-- IM-0001-0010.dcm
        |   |-- IM-0001-0011.dcm
        |   |-- IM-0001-0012.dcm
        |   |-- IM-0001-0013.dcm
        |-- 5493_T2
            |-- IM-0001-0001.dcm
            |-- IM-0001-0002.dcm
            |-- IM-0001-0003.dcm
            |-- IM-0001-0004.dcm
            |-- IM-0001-0005.dcm
            |-- IM-0001-0006.dcm
            |-- IM-0001-0007.dcm
            |-- IM-0001-0008.dcm
            |-- IM-0001-0009.dcm
            |-- IM-0001-0010.dcm
            |-- IM-0001-0011.dcm
            |-- IM-0001-0012.dcm
            |-- IM-0001-0013.dcm

Fixes https://github.com/sct-pipeline/sci-lesion-segmentation/issues/3

@andrewsm8 I have an initial version of the script if you want to give it a try. thanks.

Create temporary folder:

mkdir convert_sci
cd convert_sci

Download and add dcm2niix to the path:

curl -fLO https://github.com/rordenlab/dcm2niix/releases/latest/download/dcm2niix_mac.zip
unzip dcm2niix_mac.zip
export PATH=$PWD:$PATH

Create a new file environment.yml
touch environment.yml
Using your favorite text editor add this content:

name: convert_sci
channels:
    - conda-forge
dependencies:
    - dcm2bids
    - pip

Finally, create a new conda environment to install dcm2bids:

conda env create -f environment.yml
source activate convert_sci

Run script
python curate_bids_ucd.py -i PATH_TO_DATASET_TO_CONVERT -o OUTPUT_PATH -c PATH_TO_CONFIG_FILE

Note:
What I did to have a stable config for dcm2niix was to add the following line in .zshrc:
export PATH=PathToDCM2niix:$PATH
This way you don't have to do step 2 (export command) every time when you want to run dcm2bids

Closing as all data we currently have are in BIDS format.


python3Packages.nbval: Fix tests

Motivation for this change
ZHF: #97479
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 99475 1

7 packages built:

python27Packages.nbval
python37Packages.ipydatawidgets
python37Packages.nbval
python37Packages.onnx
python38Packages.ipydatawidgets
python38Packages.nbval
python38Packages.onnx

Damnit https://github.com/computationalmodelling/nbval/issues/155

@risicle It was indeed a cryptic error message! This is the relevant matplotlib PR btw: https://github.com/matplotlib/matplotlib/pull/15933


Relocate main symbol when linking tests for Swift executables

Context

Contributor Checklist

[ ] Review Contribution Guidelines
[ ] Sign Gradle CLA
[ ] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[ ] Provide unit tests (under <subproject>/src/test) to verify logic
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[ ] Ensure that tests pass locally: ./gradlew <changed-subproject>:check

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

@lacasseio and don't worry about how this is going to work out merge wise... I'm planning to merge it after your PR for https://github.com/gradle/gradle-native/issues/257


Add linux platform to docker desktop derivation

Sorry for the huge diff, merged recent master into the branch, too. Relevant commit is:
a9b51db25e7553ec55da31779bccf1d644915a4a

Currently not working due to upstream issue:
https://github.com/docker/desktop-linux/issues/53


DOMHighResTimeStamp link missing now

The WebAudio spec references DomHighResTimeStamp in
Section 1.2.5. AudioTimeStamp.  This used to link to https://www.w3.org/TR/hr-time-2/#dom-domhighrestimestamp, but after updating bikeshed, this no longer works.
There are also lots of new additional errors when building the WebAudio spec.  For example, we get
LINK ERROR: No 'argument' refs found for 'numberOfChannels'.
numberOfChannels

This error didn't use to occur.  The former is a bug in bikeshed.  The latter could very well be a bug in the WebAudio spec which is now incorrect because bikeshed tightened up something.

It looks like DOMHighResTimeStamp is linking again? Must have been an intermittent data error, since I also see it in the database.
The argumentdef failures are indeed new, and debugging is turning out to be interesting. More updates as I figure this out.

Pretty sure it's a bug in my webidl parser, https://github.com/plinss/widlparser/issues/56 is tracking it.

Updated bikeshed this morning.  Still get this error:
LINK ERROR: No 'idl-name' refs found for 'DOMHighResTimeStamp'.
DOMHighResTimeStamp

Could be that I didn't update correctly or I'm running the wrong version. (Had some troubles installing the new version but pip install is working fine.)
Thanks for looking in to this.

Tried bikeshed again today.  It looks much better and most of the issues are gone.
Except I'm now getting

FATAL ERROR: Unknown biblio prefix '5' on key '500: Internal Server Error'

I think this make all the links to bibliographic data broken.

Here's the log from running bikeshed --print=plain -f spec:
FATAL ERROR: Unknown biblio prefix '5' on key '500: Internal Server Error'
LINE -1: Couldn't find 'WEBGL' in bibliography data. Did you mean:
  webgl
  webgl-1
  webgl-103
  webgl-2
  webxr
  webidl
  webcgm
  webac
  webm
LINE ~214: Couldn't find 'webaudio-usecases' in bibliography data. Did you mean:
  webaudio-usecases
  webcrypto-usecases
  netinfo-usecases
  did-use-cases
  emma-usecases
  webrtc-nv-use-cases
LINE ~260: Couldn't find 'webrtc' in bibliography data. Did you mean:

and many more lines about not finding stuff in the biblio data.

bikeshed update also does something weird (starting today?) Now it just dumps out a things like

mdn/xslt-10.json55aeb192480c7d10e28abe26be29a9a1 mdn/xslt-20.json55aeb192480c7d10e28abe26be29a9a1 mdn/xslt-30.json

Specifically the error is:
Traceback (most recent call last):
  File "/home/jsbell/.local/bin/bikeshed", line 10, in <module>
    sys.exit(main())
  File "/home/jsbell/.local/lib/python3.7/site-packages/bikeshed/cli.py", line 210, in main
    handleUpdate(options, extras)
  File "/home/jsbell/.local/lib/python3.7/site-packages/bikeshed/cli.py", line 238, in handleUpdate
    update.update(anchors=options.anchors, backrefs=options.backrefs, biblio=options.biblio, caniuse=options.caniuse, mdn=options.mdn, linkDefaults=options.linkDefaults, testSuites=options.testSuites, languages=options.languages, wpt=options.wpt, dryRun=constants.dryRun, force=options.force)
  File "/home/jsbell/.local/lib/python3.7/site-packages/bikeshed/update/main.py", line 26, in update
    success = manifest.updateByManifest(path=path, dryRun=dryRun)
  File "/home/jsbell/.local/lib/python3.7/site-packages/bikeshed/update/manifest.py", line 102, in updateByManifest
    localDt = datetime.strptime(localManifest[0].strip(), "%Y-%m-%d %H:%M:%S.%f")
  File "/usr/lib/python3.7/_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "/usr/lib/python3.7/_strptime.py", line 362, in _strptime
    data_string[found.end():])
ValueError: unconverted data remains: 87934a27f8af3c8f57035eb80c6346d1 mdn.json92a2...

... with tons of spewed data following

All right, while this is fixed in the live data, there was a period of time where the manifest was being generated wrong and put its entire contents on one line accidentally.
Looks like my code wasn't robust to the possiblity of the manifest being totally borked, so it's just straight failing.
I've fixed it locally; as soon as this update finishes, I'll push the fixed version to PyPi and you can update things. (pip install --upgrade bikeshed, then bikeshed update)

And done. Once you upgrade, you should be at version 1.1.0 (check it with bikeshed -h), and should be golden. Let me know if there are still any problems.

Thanks @tabatkins!  This looks great and the number of errors in the WebAudio spec has been reduced.
However, bikeshed -h doesn't seem to print out any version number for me.

Then you're not on the latest version, since I just added it as part of the 1.1.0 release. ^_^

My copy (via pip3 install --upgrade bikeshed) has the code from 5359f34a95b0f1a5081516971df96d970b9d233c but no semver.txt file so no version is printed.

...weird, https://github.com/tabatkins/bikeshed/blob/master/MANIFEST.in specifies that it should include that file.


window.innerHeight not working properly on popping up browser

Might want to look into html fixes for this

also overflow-x: hidden in css


[Questiion] Any way to write d3 or svg graph in a file ?

Does Luigi provide a function to write d3 or svg graph in a file?
As of now, I can visualize the graphs on https://localhost:8082 but I don't know where that graph is written or how to change the location of it.
In other words, I would like to save the dependency graph of a Task from within the Python program.

@tashrifbillah I'm also looking into this. From my perspective I use terminal and call 'luigi-deps-tree' command which is something I added to the project back in 2016. The tree view is OK, but, with larger tasks it grows unwieldy.
What you see on the web console is d3.js running on the client side on a web page. In javascript the tasks are passed to the d3 library which in turn renders an image on your browser. The key point is that none of this code ever runs in the actual luigi server and there's currently no server-side nor worker-side support for generating an image.
I find myself wishing for some more sophisticated means of task dependency graph visualization from the console. But let's agree that the logistics of converting a directed acyclic graph from data models into visualizations is a nontrivial problem. It doesnt actually belong in luigi, it belongs in a general purpose library that luigi would consume.
A quick survey of the development community turns up that Perl has a mature solution called "GraphEasy" which is a library accepting a standard data model representing a graph structure and returning visualizations in various formats including svg, png, pdf, and ascii. This seems like a wise approach to general directed graph visualization.
The bad news is that I cannot find anything of a similar maturity/design in idiomatic python. Not to say it is impossible to build but I would presume it is nontrivial. And while it actually sounds like a fun puzzle I cannot afford the time to spark such an effort and give it the longer-term maintenance attention it deserves. If you or someone else can recommend an actual graph visualizer which hits all the above needs I would be happy to estimate the effort behind integrating it with luigi as a contrib module.

Hi @PeteW ,
Is this the kind of tree you referred to?

(base) [tb571@pnl-z840-2 workflows]$ luigi-deps-tree --module struct_pipe Freesurfer --id 003GNX007 --bids-data-dir ~/Downloads/INTRuST_BIDS/rawdata/ --derivatives-dir derivatives/luigi-pnlpipe --t1-template sub-$/anat/*_T1w.nii.gz

└─--[Freesurfer-{'id': '003GNX007', 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/', 'struct_template': '', 'derivatives_dir': 'derivatives/luigi-pnlpipe', 'csvFile': '', 'debug': 'False', 'fusion': '', 'mabs_mask_nproc': '8', 'ref_img': '', 'ref_mask': '', 'reg_method': 'rigid', 'slicer_exec': '', 'mask_qc': 'False', 't1_template': 'sub-$/anat/*_T1w.nii.gz', 't1_csvFile': '', 't1_ref_img': '*_desc-Xc_T2w.nii.gz', 't1_ref_mask': '*_desc-T2wXcMabsQc_mask.nii.gz', 't2_template': '', 't2_csvFile': '', 't2_ref_img': '', 't2_ref_mask': '', 'freesurfer_nproc': '1', 'expert_file': '', 'no_hires': 'False', 'no_skullstrip': 'False'} (COMPLETE)]
   └─--[StructMask-{'id': '003GNX007', 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/', 'struct_template': 'sub-$/anat/*_T1w.nii.gz', 'derivatives_dir': 'derivatives/luigi-pnlpipe', 'csvFile': '', 'debug': 'False', 'fusion': '', 'mabs_mask_nproc': '8', 'ref_img': '*_desc-Xc_T2w.nii.gz', 'ref_mask': '*_desc-T2wXcMabsQc_mask.nii.gz', 'reg_method': 'rigid', 'slicer_exec': '', 'mask_qc': 'False'} (COMPLETE)]
      └─--[StructAlign-{'id': '003GNX007', 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/', 'struct_template': 'sub-$/anat/*_T1w.nii.gz', 'derivatives_dir': 'derivatives/luigi-pnlpipe'} (COMPLETE)]
         └─--[SelectStructFiles-{'id': '003GNX007', 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/', 'struct_template': 'sub-$/anat/*_T1w.nii.gz'} (COMPLETE)]

Then I agree with:

The tree view is OK, but, with larger tasks it grows unwieldy.

Heres your tree in dot notation. then dot to ascii using GraphEasy.
Maybe ascii notation is less popular because of the limited resolution of a terminal window
digraph {
    a [label="[Freesurfer-{'id': '003GNX007',\n 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/',\n 'struct_template': '',\n 'derivatives_dir': 'derivatives/luigi-pnlpipe',\n 'csvFile': '',\n 'debug': 'False',\n 'fusion': '',\n 'mabs_mask_nproc': '8',\n 'ref_img': '',\n 'ref_mask': '',\n 'reg_method': 'rigid',\n 'slicer_exec': '',\n 'mask_qc': 'False',\n 't1_template': 'sub-$/anat/*_T1w.nii.gz',\n 't1_csvFile': '',\n 't1_ref_img': '*_desc-Xc_T2w.nii.gz',\n 't1_ref_mask': '*_desc-T2wXcMabsQc_mask.nii.gz',\n 't2_template': '',\n 't2_csvFile': '',\n 't2_ref_img': '',\n 't2_ref_mask': '',\n 'freesurfer_nproc': '1',\n 'expert_file': '',\n 'no_hires': 'False',\n 'no_skullstrip': 'False'} (COMPLETE)]"];
    b [label="[StructMask-{'id': '003GNX007',\n 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/',\n 'struct_template': 'sub-$/anat/*_T1w.nii.gz',\n 'derivatives_dir': 'derivatives/luigi-pnlpipe',\n 'csvFile': '',\n 'debug': 'False',\n 'fusion': '',\n 'mabs_mask_nproc': '8',\n 'ref_img': '*_desc-Xc_T2w.nii.gz',\n 'ref_mask': '*_desc-T2wXcMabsQc_mask.nii.gz',\n 'reg_method': 'rigid',\n 'slicer_exec': '',\n 'mask_qc': 'False'} (COMPLETE)]"];
    c [label="[StructAlign-{'id': '003GNX007',\n 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/',\n 'struct_template': 'sub-$/anat/*_T1w.nii.gz',\n 'derivatives_dir': 'derivatives/luigi-pnlpipe'} (COMPLETE)]"];
    d [label="[SelectStructFiles-{'id': '003GNX007',\n 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/',\n 'struct_template': 'sub-$/anat/*_T1w.nii.gz'} (COMPLETE)]"];
    d -> c;
    c -> b;
    b -> a;
}

+-----------------------------------------------------------------+
|             [SelectStructFiles-{'id': '003GNX007',              |
| 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/', |
|    'struct_template': 'sub-$/anat/*_T1w.nii.gz'} (COMPLETE)]    |
+-----------------------------------------------------------------+
  |
  |
  v
+-----------------------------------------------------------------+
|                [StructAlign-{'id': '003GNX007',                 |
| 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/', |
|          'struct_template': 'sub-$/anat/*_T1w.nii.gz',          |
|   'derivatives_dir': 'derivatives/luigi-pnlpipe'} (COMPLETE)]   |
+-----------------------------------------------------------------+
  |
  |
  v
+-----------------------------------------------------------------+
|                 [StructMask-{'id': '003GNX007',                 |
| 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/', |
|          'struct_template': 'sub-$/anat/*_T1w.nii.gz',          |
|         'derivatives_dir': 'derivatives/luigi-pnlpipe',         |
|                         'csvFile': '',                          |
|                        'debug': 'False',                        |
|                          'fusion': '',                          |
|                     'mabs_mask_nproc': '8',                     |
|               'ref_img': '*_desc-Xc_T2w.nii.gz',                |
|          'ref_mask': '*_desc-T2wXcMabsQc_mask.nii.gz',          |
|                     'reg_method': 'rigid',                      |
|                       'slicer_exec': '',                        |
|                 'mask_qc': 'False'} (COMPLETE)]                 |
+-----------------------------------------------------------------+
  |
  |
  v
+-----------------------------------------------------------------+
|                 [Freesurfer-{'id': '003GNX007',                 |
| 'bids_data_dir': '/home/tb571/Downloads/INTRuST_BIDS/rawdata/', |
|                     'struct_template': '',                      |
|         'derivatives_dir': 'derivatives/luigi-pnlpipe',         |
|                         'csvFile': '',                          |
|                        'debug': 'False',                        |
|                          'fusion': '',                          |
|                     'mabs_mask_nproc': '8',                     |
|                         'ref_img': '',                          |
|                         'ref_mask': '',                         |
|                     'reg_method': 'rigid',                      |
|                       'slicer_exec': '',                        |
|                       'mask_qc': 'False',                       |
|            't1_template': 'sub-$/anat/*_T1w.nii.gz',            |
|                        't1_csvFile': '',                        |
|              't1_ref_img': '*_desc-Xc_T2w.nii.gz',              |
|        't1_ref_mask': '*_desc-T2wXcMabsQc_mask.nii.gz',         |
|                       't2_template': '',                        |
|                        't2_csvFile': '',                        |
|                        't2_ref_img': '',                        |
|                       't2_ref_mask': '',                        |
|                    'freesurfer_nproc': '1',                     |
|                       'expert_file': '',                        |
|                      'no_hires': 'False',                       |
|              'no_skullstrip': 'False'} (COMPLETE)]              |
+-----------------------------------------------------------------+

It's just an experiment. I wrote the dot file manually to understand how one would be generated via python.
Seems the dot file is passed to a graphvis tool such as grapheasy. If you search online there is an online example of converting dot files to ASCII so you don't need to install anything on your local machine if you lack the privileges
Peter Weissbrod
http://RealLifeData.com | O:<PHONE_NUMBER> | M:<PHONE_NUMBER>

From: Tashrif Billah<EMAIL_ADDRESS>Sent: Thursday, April 2, 2020 5:00 PM
To: spotify/luigi
Cc: Pete Weissbrod; Mention
Subject: Re: [spotify/luigi] [Questiion] Any way to write d3 or svg graph in a file ? (#2920)
Can you give a little more detail about obtaining the above graphs?
I have dot installed. It looks like I would need sudo to install GraphEasy. Also, another question is, did you write the digraph{...} yourself?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

 The following code converts luigi tasks into "graphviz" "dot" format. There is an option to "compress" becuase, well, uncompressed can be quite the monster of a diagram. And this is just a fundamental aspect of the requirements.
Anyways here's the code. You need to install 'graphviz and graphvis-devel' headers, and then pip install 'pygraphviz' into the same virtual environment as luigi.
from luigi.task import flatten
from luigi.cmdline_parser import CmdlineParser
import json
import sys
import warnings

import pygraphviz

class bcolors:
    '''
    colored output for task status
    '''
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    ENDC = '\033[0m'

def print_tree(task, parent=None):
    '''
    Return a string representation of the tasks, their statuses/parameters in a dependency tree format
    '''
    # dont bother printing out warnings about tasks with no output
    with warnings.catch_warnings():
        warnings.filterwarnings(action='ignore', message='Task .* without outputs has no custom complete\\(\\) method')
        is_task_complete = task.complete()
    is_complete = (bcolors.OKGREEN + 'COMPLETE' if is_task_complete else bcolors.OKBLUE + 'PENDING') + bcolors.ENDC
    name = task.__class__.__name__
    params = json.dumps(task.to_str_params(only_significant=True), sort_keys=True, indent=2).replace('\n', '\\n')
    txt = '{0}({2})\\n{1}'.format(name, params, is_complete)
    result = []
    if parent:
        result.append((parent, txt))
    for child in flatten(task.requires()):
        result = result + print_tree(child, txt)
    return result

def main():
    cmdline_args = sys.argv[1:]
    with CmdlineParser.global_instance(cmdline_args) as cp:
        abbreviate = True
        include_status = True
        task = cp.get_task_obj()
        edges = print_tree(task)
        nodes = list(set([x[0] for x in edges] + [x[1] for x in edges]))
        graph = pygraphviz.AGraph(strict=False, directed=True)
        if abbreviate:
            edges = [(str(nodes.index(x)), str(nodes.index(y))) for x, y in edges]
            nodes = [index for index, val in enumerate(nodes)]
        for index, node in enumerate(nodes):
            graph.add_node(node)
        for edge in edges:
            graph.add_edge(edge[0], edge[1])
        graph.layout(prog='fdp')
        graph.write('out.dot')

if __name__ == '__main__':
    main()

Say you save this as deps_dot.py then you could call it like you were calling luigi deps-tree
python deps_dot.py --module mymodule mymodule.MyTask --myparameter=myvalue

this will produce a "dot" file which can then be passed to graph-easy to generate PNG,GIF,ASCII and other things
graph-easy --input=out.dot --as_boxart

To state the obvious: the ugly side of this is that there is no way to generate images directly in python, at least the ascii imagaes i prefer, but I bet this is close to what you're looking for :)

Just a graphical example of some of the output.
I'm fairly certain you could replace the code which writes the dot file to write a PNG using some sort of pre-built python library to get what youre looking for.
I dont know I suppose this is somewhat useful

@tashrifbillah  If you use the code I supplied above, take a second look as I added a bug fix regarding duplicative edges. Furthermore consider ways we can potentially add this to the general codebase such that everyone can benefit. I'll be happy to assist if we have a valuable idea

Hi @PeteW , I am working on an enhancement on your idea that includes exporting the graph to HTML. However, this nice tree of yours is breaking in HTML. Would you know how to fix it?
<html>
<head>
<meta charset="utf-8">
</head>
<body>
    <span style="white-space: pre-wrap;">
    └─--[TaskD-{'a': '0.28', 'b': '0.296', 'c': '0.364', 'e': '0.486'}]
        |---[TaskC-{'a': '0.28', 'b': '0.296', 'c': '0.364'}]
        |   └─--[TaskB-{'a': '0.28', 'b': '0.296'}]
        |       └─--[TaskA-{'a': '0.28'}]
        └─--[TaskE-{'c': '0.364', 'e': '0.486'}]
            |---[TaskF-{'c': '0.364'}]
            └─--[TaskG-{'c': '0.364'}]
    </span>
</body>
</html>

HTML view :(

Okay, using monospace fonts solved one problem:

style="white-space: pre-wrap; font-family: Courier New, Monospace;"

Now, I would like to point out another issue--the following is the current configuration:
    if(last):
        result += '└─--'
        indent += '   '
    else:
        result += '|--'
        indent += '|  '

Issue
The first result occupies 4 characters while the rest occupies three--this mismatch causes an indentation problem:
   |--[TaskE-{'c': '0.122', 'e': '0.694'}]
   |  |--[TaskF-{'c': '0.122'}]
   |  └─--[TaskG-{'c': '0.122'}]

Do you see TaskG is shifted to the right by one character? It can be solved by making all the result and indent four characters:
Fix
    if(last):
        result += '└─--'
        indent += '    '
    else:
        result += '|---'
        indent += '|   '

Output
    |---[TaskE-{'c': '0.484', 'e': '0.896'}]
    |   |---[TaskF-{'c': '0.484'}]
    |   └─--[TaskG-{'c': '0.484'}]

Please let me know what you think, I can do a PR.

Seems like a sensible fix to me.
It is unfortunate how so-called monospace fonts dont have all ascii characters of a common width.
There might have been a better choice of corner character. Look at this page:
https://en.wikipedia.org/wiki/Box-drawing_character

Hi Pete, what character do you see missing with Courier New in regard to this PR? :)

oh OK I thought you were making a joke and I was struggling to understand 👍
At any rate the point was there is a long history of drawing boxes in text-mode programs. I thought the wikipedia article was very illustrative description of this history. And there may be characters in there which are better choice for corner character.

Seems like a sensible fix to me.

Hi @PeteW , other than deps_tree.py, is there any place where I should affect the indentation change? I was wondering if you had written any test or so.

Ping @PeteW 🍦

@tashrifbillah my apologies. The only reference outside the module is here:
https://github.com/spotify/luigi/blob/edd868bdd10353a55517cc866e614092abb62af6/test/cmdline_test.py#L319


Unwanted and incorrect type coercion in list

Checks

[x] I added a descriptive title to this issue
[x] I have searched (google, github) for similar issues and couldn't find anything
[x] I have read and followed the docs and still think this is a bug

Bug
Output of python -c "import pydantic.utils; print(pydantic.utils.version_info())":
             pydantic version: 1.8.2
            pydantic compiled: True
                 install path: /usr/local/lib/python3.9/site-packages/pydantic
               python version: 3.9.1 (default, Jan  8 2021, 17:17:43)  [Clang 12.0.0 (clang-1<IP_ADDRESS>)]
                     platform: macOS-11.2.3-x86_64-i386-64bit
     optional deps. installed: ['typing-extensions']

Basically, I have list[Foo], but I then pass [Foo(), Bar('something'), Foo()] and got [Foo(), BaseFoo(), Foo()]. The validation fails silently and did a wanted coercion. This behavior took me a long time to catch caused bug.
from pydantic import BaseModel

class SourceNode(BaseModel):
    pass

class BulkNode(SourceNode):
    sources: list[str] = []

class RustAstNode(BaseModel):
    pass

class RustStatementNode(RustAstNode):
    nodes: list[RustAstNode] = []

class RustRawNode(RustAstNode):
    raw: str

if __name__ == '__main__':
    input_list = [RustRawNode(raw='hi'), BulkNode(sources=['very import information']), RustRawNode(raw='hi')]
    node = RustStatementNode(nodes=input_list)
    # validate manually
    for inp, n in zip(input_list, node.nodes):
        assert type(inp) == type(n), 'Unwanted type coercion {} != {}'.format(type(inp), type(n))

Traceback (most recent call last):
  File "/Users/jack/Dev/python_test/src/test.py", line 30, in <module>
    assert type(inp) == type(n), 'Unwanted type coercion {} != {}'.format(type(inp), type(n))
AssertionError: Unwanted type coercion <class '__main__.BulkNode'> != <class '__main__.RustAstNode'>

Here is a relative question from stackoverflow
https://stackoverflow.com/questions/66019853/pydantic-prevent-conversion-of-incorrect-type
https://github.com/samuelcolvin/pydantic/issues/1423
https://github.com/samuelcolvin/pydantic/issues/1098

Use a validator to check each list item - remember pydantic is a parsing library first and a validation library second; i.e. its aim is to guarantee output data.
Try this:
class RustStatementNode(RustAstNode):
    nodes: t.List[RustAstNode] = Field(default_factory=list)

    @validator('nodes', each_item=True)
    def check_node_type(cls, v):
        assert isinstance(v, RustAstNode)
        return v

Would you accept a pull request if I change the behavior so that it raises an exception here?

I don't see a bug here, or even unexpected behaviour BulkNode does not inherit from RustAstNode (which is the constraint for nodes), so you wouldn't expect a BulkNode to survive validation. RustAstNode has no fields, and doesn't have extra = 'forbid' so it will accept virtually anything.
RustRawNode should be downcast (or upcast, I can never remember which) to a RustAstNode. I can't remember if this is how pydantic v1.x works, but it's definitely fixed in v2.

you wouldn't expect a BulkNode to survive validation

BulkNode shouldn’t survive validation, but I expect an Exception, not a silent conversion.
Sincerely,
Jack
On 21 Apr 2022, 10:40 PM +0800, samuelcolvin/pydantic @.***>, wrote:

you wouldn't expect a BulkNode to survive validation

Use validators.
Pydantic looks at attributes primarily, not attributes.


Not working with Rainlab.Blog plugin

Using Rainlab.Blog 1.2.2 and Wysiwyg Editors 1.2.4.
In the settings screen I switch on for Rainlab Blog, all other settings are default (so TinyMCE is selected editor).
Clicking main blog icon and selecting a blog entry to edit and there is no change to default - it is still using the Redactor editor.

I'm having the same issue

+1

I think it is fixed in last GitHub version, but we're waiting for October market update.

+1


⚠ Samsung has degraded performance

In 9bad470, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 1890 ms

Resolved: Samsung performance has improved in f55658f.


In App feedback button

A button to send feedback in the app, there is a budgeting app called cashew that does this really well.
https://github.com/jameskokoska/Cashew

@jacobgonzales20 good idea i ll add that

@jacobgonzales20 good idea i ll add that

It would be useful and Cashew has a clean interface for it as well

has been added


Manually sync before checking file existence

@jsingle Let's see if this stops these file checks from failing

OK... you'll have to run this several times to be sure that it's fixed, since this is an intermittent failure


Adding reason for cancel and refund payment

Do Not Merge Until the API has been updated
The refund and cancel now requires a reason stating why the payment was refunded or cancelled. Adding this param to both payments and marketplace APIs

Since the field is not required you should also be able to unselect the reason after selecting one

I am getting message: "API parameter invalid: Cannot deserialize value of type com.circle.paymentprocessor.model.ReversalReason from String "":  was not one of [duplicate, fraudulent, requested_by_customer]". Looks like we need to remove that property from the payload.


2.x's<img_metas>change to which in 3.x?

I need the img_metas to define a new bbox_head,but I find a lot of your models.I can't find where 2.x's <img_metas> in 3.x。

batch_img_metas
I find this,tks


Make consumer running without going through ICS changeover

Context and purpose of the change
This PR is for running consumer without provider.
Since we changed our stride code to consumer, it can only run through changeover from sovereign to consumer.
When new feature/bug fixings are implemented, it will first require to build old sovereign binary and go through changeover to the new binary to test out things.
This is a bit time wasting and painful so its necessary to run consumer chain that doesn't rely on provider validators.
This PR is for customizing add-consumer-section CLI to compatible with our dockernet and modifying some docker scripts to achieve the goal.
Brief Changelog

Customize add-consumer-section CLI to generate multiple initial validator sets based on number of validators
Update bash script to modify consumer genesis using the CLI
Disable adding gentxs to genesis file
Implement a function for registering stTokens as consumer rewards denom to the whitelist
Add missing param keys to proposal whitelist
Clean up dockernet scripts

Author's Checklist

[x] Run and PASSED locally all integration tests except rewards distribution to stride governors.

Integration test results:
integration_tests.bats
 ✓ [INTEGRATION-BASIC-GAIA] host zones successfully registered
 ✓ [INTEGRATION-BASIC-GAIA] ibc transfer updates all balances
 ✓ [INTEGRATION-BASIC-GAIA] liquid stake mint and transfer
 ✓ [INTEGRATION-BASIC-GAIA] packet forwarding automatically liquid stakes
 ✓ [INTEGRATION-BASIC-GAIA] tokens on GAIA were staked
 ✓ [INTEGRATION-BASIC-GAIA] redemption works
 ✓ [INTEGRATION-BASIC-GAIA] claimed tokens are properly distributed
 ✓ [INTEGRATION-BASIC-GAIA] rewards are being reinvested, exchange rate updating
 ✓ [INTEGRATION-BASIC-GAIA] rewards are being distributed to stakers

9 tests, 0 failures

integration_tests.bats
 ✓ [INTEGRATION-BASIC-EVMOS] host zones successfully registered
 ✓ [INTEGRATION-BASIC-EVMOS] ibc transfer updates all balances
 ✓ [INTEGRATION-BASIC-EVMOS] liquid stake mint and transfer
 - [INTEGRATION-BASIC-EVMOS] packet forwarding automatically liquid stakes (skipped: Packet forward liquid stake test is only run on GAIA and HOST)
 ✓ [INTEGRATION-BASIC-EVMOS] tokens on EVMOS were staked
 ✓ [INTEGRATION-BASIC-EVMOS] redemption works
 ✓ [INTEGRATION-BASIC-EVMOS] claimed tokens are properly distributed
 ✓ [INTEGRATION-BASIC-EVMOS] rewards are being reinvested, exchange rate updating
 ✓ [INTEGRATION-BASIC-EVMOS] rewards are being distributed to stakers

9 tests, 0 failures, 1 skipped

integration_tests.bats
 ✓ [INTEGRATION-BASIC-HOST] host zones successfully registered
 ✓ [INTEGRATION-BASIC-HOST] ibc transfer updates all balances
 ✓ [INTEGRATION-BASIC-HOST] liquid stake mint and transfer
 ✓ [INTEGRATION-BASIC-HOST] packet forwarding automatically liquid stakes
 ✓ [INTEGRATION-BASIC-HOST] tokens on HOST were staked
 ✓ [INTEGRATION-BASIC-HOST] redemption works
 ✓ [INTEGRATION-BASIC-HOST] claimed tokens are properly distributed
 ✓ [INTEGRATION-BASIC-HOST] rewards are being reinvested, exchange rate updating
 ✓ [INTEGRATION-BASIC-HOST] rewards are being distributed to stakers

9 tests, 0 failures