unable to create dir "/atlantis-data/bin": mkdir /atlantis-data/bin: permission denied

Using atlantis helm chart version 4.0.1.
Getting this when scaling up the statefulset replicas from 1 to 2, and also when doing a fresh install on a new namespace.

Not sure what's changed in the new helm chart exactly, but if you have a PVC configured for that zone, it'll use the root path.
From there, you'll need to set the proper security context (example below). I was able to get past the error, but now I am getting Error: initializing server: initializing terraform: writing generated .terraformrc file with TFE token to /.terraformrc: open /.terraformrc: permission denied, even though folders were created on pod creation and my user (99) has full permissions to write to the designated directory.
securityContext:
  fsGroup: 100
  runAsUser: 99
  fsGroupChangePolicy: "OnRootMismatch"
  priorityClassName: ""

That's bizarre. The volume claim template looks exactly the same.
https://github.com/runatlantis/helm-charts/blob/bc9db325f8f023a282fabe03de6a5fb9b969ac7a/charts/atlantis/templates/statefulset.yaml#L520-L548
Values
https://github.com/runatlantis/helm-charts/blob/bc9db325f8f023a282fabe03de6a5fb9b969ac7a/charts/atlantis/values.yaml#L271-L283
Is this still an issue with the latest helm chart?
Could you show the helm template command diff between supplying the deprecated input and omitting it? Perhaps that will bubble up the issue here.

Is this still happening?

I'm getting the same issue while deploying with the helm chart version 5.5.0. @GMartinez-Sisti .

I'm getting the same issue while deploying with the helm chart version 5.5.0. @GMartinez-Sisti .

Hi @creeram, please share your values file (redacted) so we can test it please.

atlantisUrl: "**********"
orgAllowlist: github.com/*****/*
gitconfigReadOnly: true
extraArgs:
   - --disable-autoplan

image:
  repository: ghcr.io/runatlantis/atlantis
  tag: "v0.29.0"
  pullPolicy: Always
repoConfig: |
  ---
  repos:
  - id: /.*/
    apply_requirements: [approved, mergeable]
    allowed_overrides: [workflow,plan_requirements]
    allow_custom_workflows: true
  workflows:
    terragrunt:
      plan:
        steps: [plan]
      apply:
        steps: [apply]
  metrics:
    prometheus:
      endpoint: /metrics

githubApp:
  id: *****
  key: |
    -----BEGIN RSA PRIVATE KEY-----

    *********************************
    -----END RSA PRIVATE KEY-----

  secret: **********

volumeClaim:
  enabled: true
  dataStorage: 20Gi
  storageClassName: ""
  accessModes: ["ReadWriteMany"]

replicaCount: 3

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
                - "**********"

service:
  type: ClusterIP
  port: 80
  portName: atlantis
  targetPort: 4141

ingress:
  enabled: true
  ingressClassName: "nginx"
  annotations:
    kubernetes.io/ingress.class: nginx
  path: /
  pathType: ImplementationSpecific
  host: "*********"

environment:
  TERRAGRUNT_TFPATH: /plugins/terraform

initConfig:
  enabled: true
  image: alpine:latest
  imagePullPolicy: IfNotPresent
  sharedDir: /plugins
  sharedDirReadOnly: true
  workDir: /tmp
  sizeLimit: 200Mi
  script: |
    #!/bin/sh
    set -eoux pipefail

    # example for terragrunt
    TG_VERSION="v0.63.4"
    TG_SHA256_SUM="b3ab5ef5176bee485052de29afe5fbeb9f2fff8a8d6f1c83e7db49776a47a850"
    TG_FILE="${INIT_SHARED_DIR}/terragrunt"
    wget https://github.com/gruntwork-io/terragrunt/releases/download/${TG_VERSION}/terragrunt_linux_amd64 -O "${TG_FILE}"
    echo "${TG_SHA256_SUM}  ${TG_FILE}" | sha256sum -c
    chmod 755 "${TG_FILE}"
    terragrunt -v

    # Terraform
    TF_VERSION="1.5.7"
    TF_FILE="${INIT_SHARED_DIR}/terraform"
    wget https://releases.hashicorp.com/terraform/${TF_VERSION}/terraform_${TF_VERSION}_linux_amd64.zip
    unzip terraform_${TF_VERSION}_linux_amd64.zip
    mv terraform ${INIT_SHARED_DIR}
    chmod 755 "${TF_FILE}"
    terraform -v

lockingDbType: "redis"
redis:
  host: ********
  port: 6379

redisSecretName: "****"

This is the values file and I'm trying to use ReadWriteMany PVC so that 3 replicas can use the same volume. @GMartinez-Sisti

I see, the problem is the ReadWriteMany PVC, to scale Atlantis you need shared storage. What is the definition for the default storageClass in that cluster?

Yes, the default storageClass type is block/device, which doesn’t allow access from multiple Kubernetes nodes. That’s why I’m using nodeAffinity to schedule all pods on a single Kubernetes node. Could you please suggest a solution to the 'permission denied' issue while sticking with the current approach? @GMartinez-Sisti

Could you please suggest a solution to the 'permission denied' issue while sticking with the current approach? @GMartinez-Sisti

Sorry but this is not an Atlantis, issue but a kubernetes limitation instead, please refer to the docs for more information -> https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes.
My suggestion is to use an NFS solution for the share, e.g. on AWS you can use EFS as a storageClass.

@GMartinez-Sisti  No problem i decided to move forward with ReadWriteOnce AccessMode for the pvc.

@GMartinez-Sisti  No worries! I encountered this issue before when I tried to use the old deprecated storage option on values.yaml file, which creates a separate PVC for each replica, and the new storage config for your helm chart by default creates a shared PVC, that's why I'm scheduling all pods on a single Kubernetes node with nodeAffinity so that I don't need an NFS solution for the StorageClass.
This is only for our Dev/Staging environment, We will use a cloud-based NFS solution when configuring the production environment.


EOFError in return unpickler.load()

Expected Behavior

Dear @tmbdev ,
I am having an error when I try to run the archive ocropus-rpred.py on Windows.
I downloaded the archive \en-default.pyrnn.gz, and I send by parse the directory where they are the images (tests\testpage).

Current Behavior

C:\Users\suporte\Desktop\OCR_TEST\ocropy-master>python2 ocropus-rpred.py --files=tests\testpage
INFO:
INFO:  ########## ocropus-rpred.py --files=tests\testpage
INFO:
INFO:  #inputs: 1
INFO:  en-default.pyrnn.gz
loading object ..\en-default.pyrnn.gz
Traceback (most recent call last):
File "ocropus-rpred.py", line 121, in
network = ocrolib.load_object(args.model,verbose=1)
File "C:\Users\suporte\Desktop\OCR_TEST\ocropy-master\ocrolib\common.py", line 446, in load_object
return unpickler.load()
EOFError

Possible Solution

Steps to Reproduce (for bugs)

Your Environment

Python version: 2.7

Git revision of ocropy:
Operating System and version: Windows 10

I recommend running ocropy on linux in a virtual machine, but see https://github.com/tmbdev/ocropy/issues/12. Might be gunzip is not in your path, maybe try @csteelatgburg's advice.

Thank you. I solved the problem with this answer.


feat: added network tag and enum

Description

added network enums and tags

This PR breaks a lot of deployment scripts, we can't do it like that.


Installation error: Stalled and incomplete install. Inability to upgrade.

Version info
Version: 1.2.7 (or latest version per bcbio_nextgen_install.py)
OS name:/version: CentOS Linux release 7.8.2003 (Core)
OS environment: HPC cluster
To Reproduce
wget command ran on Apr 12 2021
wget https://raw.githubusercontent.com/bcbio/bcbio-nextgen/master/scripts/bcbio_nextgen_install.py
Install command ran on Apr 12 2021
python3 bcbio_nextgen_install.py ./bcbio --tooldir=./bcbio_tools --minimize-disk --nodata --distribution centos --upgrade stable --cores 2
Observed behavior
Similar issue as in a comment by @yavit1 in #3456.
Install script initializes successfully and runs until the below lines. Installation then stalls at this point for >24 hours whether installation command is run as a submitted job or as a terminal command on the HPC.
Checking for problematic or migrated packages in default environment
Initalling [sic] initial set of packages for default environment with mamba
Installing into conda environment default: age-metasv, arriba, bamtools=2.4.0, bamutil, bbmap, bcbio-prioritize, bcbio-variation, bcbio-variation-recall, bcftools, bedops, bedtools, bio-vcf, biobambam, bowtie, bowtie2, break-point-inspector, bwa, cage, cancerit-allelecount, chipseq-greylist, cnvkit, coincbc, cramtools, cufflinks, cyvcf2, deeptools, delly, duphold, ensembl-vep=100.*, express, extract-sv-reads, fastp, fastqc>=0.11.8=1, fgbio, freebayes, gatk, gatk4, geneimpacts, genesplicer, gffcompare, goleft, grabix, gridss, gsort, gvcfgenotyper, h5py, hisat2, hmftools-amber, hmftools-cobalt, hmftools-purple, hmmlearn, hts-nim-tools, htslib, impute2, kallisto>=0.43.1, kraken, ldc>=1.13.0, lofreq, macs2, maxentscan, mbuffer, minimap2, mintmap, mirdeep2=<IP_ADDRESS>, mirtop, moreutils, multiqc, multiqc-bcbio, ngs-disambiguate, novoalign, octopus>=0.5.1b, oncofuse, optitype>=1.3.4, pandoc=2.9.2, parallel, pbgzip, peddy, perl-sanger-cgp-battenberg, picard, pindel, pizzly, pyloh, pysam>=0.14.0, pythonpy, qsignature, qualimap, rapmap, razers3=3.5.0, rtg-tools, sailfish, salmon, sambamba, samblaster, samtools=1.9, scalpel, seq2c<2016, seqbuster, seqcluster, seqtk, sickle-trim, simple_sv_annotation, singlecell-barcodes, snap-aligner=1.0dev.97, snpeff=4.3.1t, solvebio, spades, staden_io_lib, star=2.6.1d, stringtie, subread, survivor, tdrmapper, tophat-recondition, trim-galore, ucsc-bedgraphtobigwig, ucsc-bedtobigbed, ucsc-bigbedinfo, ucsc-bigbedsummary, ucsc-bigbedtobed, ucsc-bigwiginfo, ucsc-bigwigsummary, ucsc-bigwigtobedgraph, ucsc-bigwigtowig, ucsc-fatotwobit, ucsc-gtftogenepred, ucsc-liftover, ucsc-wigtobigwig, umis, vardict-java, vardict<=2015, variantbam, varscan, vcfanno, vcflib, verifybamid2, viennarna, vqsr_cnn, vt, wham, anaconda-client, awscli, bzip2, ncurses, nodejs, p7zip, readline, s3gof3r, xz, perl-app-cpanminus, perl-archive-extract, perl-archive-zip, perl-bio-db-sam, perl-cgi, perl-dbi, perl-encode-locale, perl-file-fetch, perl-file-sharedir, perl-file-sharedir-install, perl-ipc-system-simple, perl-lwp-protocol-https, perl-lwp-simple, perl-statistics-descriptive, perl-time-hires, perl-vcftools-vcf, bioconductor-annotate, bioconductor-apeglm, bioconductor-biocgenerics, bioconductor-biocinstaller, bioconductor-biocstyle, bioconductor-biostrings, bioconductor-biovizbase, bioconductor-bsgenome.hsapiens.ucsc.hg19, bioconductor-bsgenome.hsapiens.ucsc.hg38, bioconductor-bubbletree, bioconductor-cn.mops, bioconductor-copynumber, bioconductor-degreport, bioconductor-deseq2, bioconductor-dexseq, bioconductor-dnacopy, bioconductor-genomeinfodbdata, bioconductor-genomicranges, bioconductor-iranges, bioconductor-limma, bioconductor-rtracklayer, bioconductor-snpchip, bioconductor-titancna, bioconductor-vsn>=3.50.0, r-base, r-basejump=0.7.2, r-bcbiornaseq>=0.2.7, r-cghflasso, r-chbutils, r-devtools, r-dplyr, r-dt, r-ggdendro, r-ggplot2, r-ggrepel>=0.7, r-gplots, r-gsalib, r-janitor, r-knitr, r-pheatmap, r-plyr, r-pscbs, r-reshape, r-rmarkdown, r-rsqlite, r-sleuth, r-snow, r-stringi, r-viridis>=0.5, r-wasabi, r=3.5.1, xorg-libxt
Confirmation of installation fails (--isolate was not used):
$which bcbio_nextgen.py
/usr/bin/which: no bcbio_nextgen.py in (...long path)
A direct call to bcbio_nextgen.py in ./bcbio/anaconda/bin works:
./bcbio/anaconda/bin/bcbio_nextgen.py --version
1.2.7
However, attempted upgrade/installation of genomes and tools using this path fails:
./bcbio/anaconda/bin/bcbio_nextgen.py upgrade -u stable --genomes hg38 --aligners bwa
Traceback (most recent call last):
File "./bcbio/anaconda/bin/bcbio_nextgen.py", line 228, in
install.upgrade_bcbio(kwargs["args"])
File "./bcbio/anaconda/lib/python3.7/site-packages/bcbio/install.py", line 107, in upgrade_bcbio
upgrade_bcbio_data(args, REMOTES)
File "./bcbio/anaconda/lib/python3.7/site-packages/bcbio/install.py", line 359, in upgrade_bcbio_data
args.cores, ["ggd", "s3", "raw"])
File "./bcbio/anaconda/bin/tmpbcbio-install/cloudbiolinux/cloudbio/biodata/genomes.py", line 349, in install_data_local
os.environ["PATH"] = "%s/bin:%s" % (os.path.join(system_installdir), os.environ["PATH"])
File "./bcbio/anaconda/lib/python3.7/posixpath.py", line 80, in join
a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not NoneType
Expected behavior
Expected behavior: a clean install of bcbio_nextgen capable of downloading genomes and tools
Log files
Output files included directly in issue. Can provided .txt if necessary.
Additional context

Issue occurs whether using python2.7.14 or python3.7.4
Issue occurs whether installing via command line or submitted job (SGE)
I have cleanly installed BCBIO using these commands before.

Hi @AlexGreiner !
Thanks for reporting and sorry about the issue?
How much RAM are you allocating to the installer job?
Can you try to increase it to 20G? I've had a successful conda solve yesterday with 20G.
Sergey

Hi @naumenko-sa,
Thanks for the quick response! I had a successful install overnight and did not run into the issue you did in #3459.
Code:
python3 bcbio_nextgen_install.py ./bcbio --tooldir=./bcbio_tools --nodata --distribution centos --cores 12
Job-specific info:
Cores: 14 (SGE -pe smp 14)
Memory: 40G (SGE -l mf=40G)
Version info: Version: 1.2.7 (or latest version per bcbio_nextgen_install.py)
OS name:/version: CentOS Linux release 7.8.2003 (Core)
Computer environment: HPC cluster with SGE scheduler
Run info:
Wallclock time: 15h52m
CPU time: 15h7m
Max vmem: 10.58G
Mem used: 305T
IO: 206G

Thanks for confirming!


Update social media links and contact info in the README

Remove dead link to Facebook page/profile
Mention the various ways to consume the job postings submitted to the platform
Add IRC and GitHub issues ways to connect with the community

Also fix capitalization of "GitHub" in the home page social links.
Before:

After:

Note that the capitalization is already correct in the footer links:

thx!


refactor: use ref instead of pointer

Redo inlineScan() to use ref for in/out references rather than pointers. Trivial.

Auto-merge toggled on


World map tile server might need to change

Hi, stumbled on your project. Noticed that the world view map on
https://kauevestena.github.io/opensidewalkmap/
seems to use a tile server that isn't going to be available anymore?

(not sure if it's relevant: Maptiler has a generous freetier, not sponsored, i just know about it from MapComplete)

Thanks for the advice! I already noticed it and is because Stamen recently stopped offering the free tiles server: https://stamen.com/stamen-x-stadia-the-end-of-the-road-for-stamens-legacy-map-tiles/
Ever since thinking of a solution, I have been interested in implementing Protomaps or rendering myself up to level 5 or 6 that is what I need for this project...  But I still had no time, I think I will put default OSM in the middle time... (but's kinda weird, since it seems that you're entering openstreetmap.org haha)

Since you're using Leaflet, you might be able to use Maptiler (vector maps instead of regular tiles).
MapComplete is using that and their free tier is pretty generous apperentally.
https://docs.maptiler.com/leaflet/

Now this issue is solved, the solution was to use carto tiles, with their authorization


[IN-87][OSF] Rename group whenever _id of preprint provider changes

Purpose
Currently, if _id of a PreprintProvider changes, its corresponding Group would not rename to reflect the changes. This PR fixes the problem by automatically updating the name of the Group whenever _id changes.
Changes
Add DirtyFieldsMixin to PreprintProvider model, enabling us to use get_dirty_fields() in save() to get the _id before and after the change, and update the names of corresponding Group instances accordingly.
QA Notes
Try to create a new PreprintProvider, the change its _id and see if names of corresponding Group instances change.
Side Effects
None
Ticket
https://openscience.atlassian.net/browse/IN-87

Pulled into release/next-interfaces, consider this merged


Release file for ubuntu 24.10 (oracular) missing

Hi,
there is no release file for ubuntu 24.10 (Oracular Oriole) available.
I installed google-drive-ocamlfuse with an earlier version of ubuntu via apt and it worked fine. Since I updated to 24.10 I have to reinstall google-drive-ocamlfuse which does not work: The release file for the "oracular" release cannot be found.
See http://ppa.launchpadcontent.net/alessandro-strada/ppa/ubuntu/dists/
Thanks a lot.
However: this is great tool. Thanks for your work here.

I tried to build it and got error
dune build @install

File "src/cacheData.ml", line 298, characters 24-52:
298 |          (fun (n, _) -> ExtString.String.starts_with n "x-")
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error (warning 6 [labels-omitted]): label prefix was omitted in the application of this function.
File "src/oauth2.ml", line 46, characters 10-33:
46 |           ExtString.String.exists message "CURLE_COULDNT_RESOLVE_HOST"
               ^^^^^^^^^^^^^^^^^^^^^^^
Error (warning 6 [labels-omitted]): label sub was omitted in the application of this function.
File "src/oauth2.ml", line 47, characters 13-36:
47 |           || ExtString.String.exists message "CURLE_COULDNT_RESOLVE_PROXY"
                  ^^^^^^^^^^^^^^^^^^^^^^^
Error (warning 6 [labels-omitted]): label sub was omitted in the application of this function.
File "src/oauth2.ml", line 50, characters 10-33:
50 |           ExtString.String.exists message "CURLE_OPERATION_TIMEOUTED"
               ^^^^^^^^^^^^^^^^^^^^^^^
Error (warning 6 [labels-omitted]): label sub was omitted in the application of this function.
File "src/oauth2.ml", line 51, characters 13-36:
51 |           || ExtString.String.exists message "CURLE_COULDNT_CONNECT"
                  ^^^^^^^^^^^^^^^^^^^^^^^
Error (warning 6 [labels-omitted]): label sub was omitted in the application of this function.
File "src/oauth2.ml", line 52, characters 13-36:
52 |           || ExtString.String.exists message "CURLE_SSL_CONNECT_ERROR"
                  ^^^^^^^^^^^^^^^^^^^^^^^
Error (warning 6 [labels-omitted]): label sub was omitted in the application of this function.
File "src/oauth2.ml", line 53, characters 13-36:
53 |           || ExtString.String.exists message "CURLE_SEND_ERROR"
                  ^^^^^^^^^^^^^^^^^^^^^^^
Error (warning 6 [labels-omitted]): label sub was omitted in the application of this function.
File "src/oauth2.ml", line 54, characters 13-36:
54 |           || ExtString.String.exists message "CURLE_RECV_ERROR"
                  ^^^^^^^^^^^^^^^^^^^^^^^
Error (warning 6 [labels-omitted]): label sub was omitted in the application of this function


Use 'surface_azimuth' and 'surface_tilt' only, with pvlib convention

Simplify the simulation API and fix potential inconsistencies in angle conventions between pvfactors and pvlib-python.
For array angles, the model should only rely on:

surface_azimuth (with pvlib convention of 0 deg as North, and 90 as East)
surface_tilt (with pvlib convention of values between 0 and 180 deg, so no more negative angles)

The previous inputs array_tilt and array_azimuth were confusing.
Addresses #8

Thanks a lot for the review @amir-asgharzadeh ! I fixed the issues you mentioned in 07269b3 .
I can now proceed to merging thanks to your review :+1:


Dart-based tests in the engine use vm:external-name instead of using @FfiNative.

We've migrated dart:ui to use @FfiNative annotations for native calls, but tests still use the older style @pragma('vm:external-name) annotations and various dart_api.h calls realted to Dart_Arguments.
We should make the tests use the same mechanism as the runtime code to make sure that tests exercise the relevant parts of tonic/dart:ffi.

Side note: The @FfiNative syntax has been deprecated and replaced by @Native. https://api.dart.dev/dev/3.0.0-305.0.dev/dart-ffi/Native-class.html The functionality is the same.


stress test update

This PR adds also transfers to itself.
Notice that this integration test is not included in the CI. It is uses locally for rapid stress checks.

To be resubmitted


Updated enrichment_abundance and normalized_labeling (let's try this again)

NOTE
I created another branch off of peakgroup_format_multi and merged the branch from PR #472 (closed) so that I could deal with the conflicts.  I still want to write tests for this branch, but I don't think that should prevent anyone from reviewing what's here now.  Also, I had made changes I'd intended for another branch/PR, after-which I found problems in the current branch/PR, so instead of teasing everything apart, I just committed those changes and the fix of the code in previous commits here.  Sorry for the mass of changes in one PR, but I think you should be able to follow it...
Summary Change Description
Updated enrichment_abundance and normalized_labeling for multiple labels per tracer.  It does not handle multiple tracers (yet).
Affected Issue Numbers

Partially addresses #394

[x] PeakGroups:'Total Abundance'...
[x] PeakGroups:'Enrichment Fraction'...

Code Review Notes
Same considerations as for the previous PR (whose branch this branches off of).  The more I think about these methods, the more I feel like (some of) these methods should be moved into PeakGroupLabel, because they're dependent on the labeled element.  I may more them in a future PR and change the return types back.
I put some comments inside normalized_labelings about multiple labels (which the changes in this PR support) and multiple tracers (not yet supported).  I'm not 100% certain yet about how to factor in multiple tracers.  There can be multiple serum peak groups (one for each tracer/compound), which means there are multiple enrichment fractions that can be computed for the serum sample.  When computing the normalized labeling for any random peak group/measured compound, what goes in the denominator?:  The sum of enrichment fractions from the latest serum sample's tracer compounds' peak groups?  The average?  The largest?
Checklist

[ ] All issue requirements satisfied (or no linked issues)

[x] PeakGroups:'Normalized Labeling'...
[x] PeakGroups:'Enrichment Abundance'...

[x] Linting passes.
[x] Migrations created & committed (or no model changes)
[ ] Tests implemented (or no code changes)

I fixed existing tests

[ ] All tests pass

[x] DataRepo.tests.test_models.PropertyTests.test_peak_group_peak_data_1
[x] DataRepo.tests.test_models.PropertyTests.test_peak_group_peak_data_4
[x] DataRepo.tests.test_models.PropertyTests.test_peak_group_peak_data_serum
[x] DataRepo.tests.test_models.PropertyTests.test_enrichment_fraction_missing_compounds
[x] DataRepo.tests.test_models.PropertyTests.test_enrichment_fraction_missing_labeled_element
[x] DataRepo.tests.test_models.PropertyTests.test_peak_group_total_abundance_zero
[x] DataRepo.tests.test_models.PropertyTests.test_peak_group_common_labels
[x] DataRepo.tests.test_models.PropertyTests.test_peak_group_tracer_labeled_elements
[x] DataRepo.tests.test_models.PropertyTests.test_no_common_labels

I'm not able to follow the changes in the Format class very well, but the rest seems logical enough to me. I would be OK merging this once we are able to add some tests for calculations that use multiple tracers and multiple labels.

I think readability is important. If you can point out specific sections in the format class that are difficult to follow, I'd like to improve their readability.

Review issues addressed. Tests added/fixed.  I added tags that I think would be very useful moving forward for the multiple tracer/label effort:
python manage.py test  --tag multi_fixed

And if you want to see what's broken:
python manage.py test  --tag multi_broken

...but I have only thus far applied these to the current branch's relevant test.

Hey @jcmatese - not sure if you want to take a look since the changes yesterday (tests & review items), so I didn't re-request review. Up to you.

Hey @jcmatese - not sure if you want to take a look since the changes yesterday (tests & review items), so I didn't re-request review. Up to you.

Go ahead without me.  [I need to get this HTSEQ slurm PR staged/tested and moving along.]

I feel like you may have greenlit this somewhere, but I don't see it ATM, did you want to re-review this @lparsons?

Merged and pushed locally


Conda logo needs a redesign!

Description
The current "C" from the Conda logo when viewed in the deployment has many inconsistencies. We will need a new/refreshed version of this logo to replace on the website and other marketing material. Attaching an image here for reference:

Tasks

[x] Redesign the Conda (C) logo.

I will pursue this Anaconda graphic designers.

@ang852 saves the day!

Speedy, she is.

@tnabtaf
Could we please get the SVG of this logo and not just the image? I'm going to see what other SVG resources I can track down myself too.
Also, @Asmit2952 do you think it's a good idea to render the SVG instead of the image on the website? I was thinking we could do the same for the conda logo itself in the site header once I find that SVG file.

I did try loading SVG instead of PNG, but faced a few issues before. Once we get the logo, I'll try it again. Here's the ref doc: https://docusaurus.io/docs/next/markdown-features/assets#inline-svgs

@Asmit2952

Once we get the logo

Are you waiting on the PNG version?  If so, how big would you like it to be?

@Asmit2952

Once we get the logo

Are you waiting on the PNG version? If so, how big would you like it to be?

PNG would do good for now, but Travis and Jaime suggested on using SVG. If I get the SVG, I can experiment with it and convert it to PNG if needed.

@Asmit2952 I understand.  The SVG is actually what I attached above, but it isn't rendering how I think it should.  I will send you both the SVG and a PNG outside of GitHub.


Clarify or improve version number handling

From @mcdonc:

people try to import version from within setup.py which has hilarious results often
it makes more sense if you consider what can go bad when you try to import something from a pkg you're installing before you install it

@mcdonc's recommendation to avoid the setup.py chicken-before-egg problem:

using pkg_resources avoids this, and the canonical version number lives in one place, setup.py

I've seen a number of people mistakenly refactor the setup.py here to import __version__. cookiecutter-pypackage needs to either:

Comment the current approach more clearly in both setup.py and __init__.py
Consider using pkg_resources rather than __version__

Now that version bumping is configured with bumpversion, this issue can probably be closed.
/me loves the smell of solved issues closing in the morning. =)

Alright, I'm closing this.


Select Subscription Bug

Description
The two issues I had was that the GetCurrentAzSubscriptionId() was only returning the user's current subscription and also didn't provide the subscription names making them difficult to identify.
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration. Is it a  breaking change which will impact consuming tool(s).

[ ] Test A
[ ] Test B

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

running a final manual test end-to-end with app creation to verify

confirmed, approved


WELZ: Blacklist crackstell.com

WELZ requests the blacklist of the website crackstell.com. See the Metasmoke search here and the Stack Exchange search here.

Coverage remained the same at 63.155% when pulling 1c91a81f8cbdf6bdc3cf413dce610c6c5005f327 on auto-blacklist-1512571546.770719 into b16ded6942feba84b8d0dfeb5c2e4bf6c46ed156 on master.

Only two hits. Rejecting.


Use "drop_first" keyword to drop first category in categorical column

Summary
Uses implementation in tabmat to create a new argument for GeneralizedLinearRegressorBase to drop the first category in a categorical column.
This permits to run unregularised models.
There were a number of tests that needed adjusting, this is because the number of categories in the tests changed. We mostly set the drop_first=False argument in these cases. For the tests/glm/test_glm.py::test_categorical_types we, rather passed the drop_first=True to pd.get_dummies to create a baseline.
In the case that a categorical column contains only one category, and drop_first=True is set, we raise a ValueError.
Joint author with @MatthiasLoefflerQC :)
Updates:

We added a change to _expand_categorical_penalties to ensure that the P1 and P2 arguments are compatible with drop_first. See: d308605

Closes #496
Checklist

[x] Added a CHANGELOG.rst entry

and improves lasso performance with categorical variables.

Have you documented the performance improvement with lasso? I would be curious to see the numbers.

Have you documented the performance improvement with lasso

We removed this claim. After some experimentation this morning, we couldn't turn the theory into results.


SvgIcon needs props update for v4.x

I believe nativeColor should be changed to htmlColor. I'm on hooks branch and haven't checked master.

Nevermind! I got distracted in the middle of upgrading and had stale node_modules.


Fix mask_generator.generate

There is a spelling mistake in the code of README. I have changed it.
Specifically this line of code.

https://github.com/facebookresearch/segment-anything/pull/9 :)


[CSL-191] Performance on 60+ nodes

@georgeee
Make CSL performant enough for normal functioning on 60+ nodes
Sub problem: block retrieving is too slow
Check logs 2016-11-26_125646.
Smart-gen receives 0th block at 12:48:49 (issued at 12:48:40), 7th block (ef46666) issued at 12:52:52 received only by 12:59:30.
Reason: nodes struggle from 100% CPU load.

@georgeee
Performance was analyzed manually, then with use of profiling. Few fixes were applied, whihc made nodes work on 60+ in more or less stable way. See CSL-197 also


MySQL/MariaDB - ER_TOO_LONG_KEY: Specified key was too long; max key length is 767 bytes

Hi,
When I try to configure pigallery to use the MySQL instance on my raspberry I get:
Error: Error while saving database settings: QueryFailedError: ER_TOO_LONG_KEY: Specified key was too long; max key length is 767 bytes
When I check the output of the process I get:
9/9/2019, 3:17:28 PM[INFO] Updating database scheme
9/9/2019, 3:17:28 PM[WARN] Handled error:
ErrorDTO {
  code: 13,
  message: 'Error while saving database settings: QueryFailedError: ER_TOO_LONG_KEY: Specified key was too long; max key length is 767 bytes',
  details:
   { QueryFailedError: ER_TOO_LONG_KEY: Specified key was too long; max key length is 767 bytes
       at QueryFailedError.Error (native)
       at new QueryFailedError (/var/www/pigallery/node_modules/typeorm/error/QueryFailedError.js:11:28)
       at Query.<anonymous> (/var/www/pigallery/node_modules/typeorm/driver/mysql/MysqlQueryRunner.js:169:45)
       at Query.<anonymous> (/var/www/pigallery/node_modules/mysql/lib/Connection.js:525:10)
       at Query._callback (/var/www/pigallery/node_modules/mysql/lib/Connection.js:491:16)
       at Query.Sequence.end (/var/www/pigallery/node_modules/mysql/lib/protocol/sequences/Sequence.js:83:24)
       at Query.ErrorPacket (/var/www/pigallery/node_modules/mysql/lib/protocol/sequences/Query.js:90:8)
       at Protocol._parsePacket (/var/www/pigallery/node_modules/mysql/lib/protocol/Protocol.js:291:23)
       at Parser._parsePacket (/var/www/pigallery/node_modules/mysql/lib/protocol/Parser.js:433:10)
       at Parser.write (/var/www/pigallery/node_modules/mysql/lib/protocol/Parser.js:43:10)
     message: 'ER_TOO_LONG_KEY: Specified key was too long; max key length is 767 bytes',
     code: 'ER_TOO_LONG_KEY',
     errno: 1071,
     sqlMessage: 'Specified key was too long; max key length is 767 bytes',
     sqlState: '42000',
     index: 0,
     sql: 'CREATE TABLE `user_entity` (`id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `role` smallint NOT NULL, `permissions` text NULL, UNIQUE INDEX `IDX_3fe76ecf0f0ef036ff981e9f67` (`name`), PRIMARY KEY (`id`)) ENGINE=InnoDB',
     name: 'QueryFailedError',
     query: 'CREATE TABLE `user_entity` (`id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `role` smallint NOT NULL, `permissions` text NULL, UNIQUE INDEX `IDX_3fe76ecf0f0ef036ff981e9f67` (`name`), PRIMARY KEY (`id`)) ENGINE=InnoDB',
     parameters: [] } }

I'm using:
raspberry: Pi 3 Model B
OS: Linux 4.14.78-4-osmc
mysql  Ver 15.1 Distrib 10.1.38-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2
npm -version: 6.11.3

Any additional information you might need to pinpoint the issue just let me know.
Is there a way to create the database schema for the pigallery?
Regards,
Marco

Hi,
Can you tell which pigallery version are you using?
Best,
Patrik

Hi Patrik,
I've installed Version 1.7.0
I had a few issues upgrading to this version. But I think I was finally able to put it to work. The issue is that I can't seam to put the database to work (either SQLite or MySQL).
I've open this issue for the MySQL because the SQLite issue is more related to install SQLite with npm.
Regards,
Marco

Hi,
Thank is interesting. There was a related issue earlier:  #79 , but I could not reproduce and fix that time.
Can you maybe try to creat the mysql db from scratch?
I'm using: UTF 8 Unicode char set. with utf8_general_ci collocation. (I don't think that it has anylting to do with the too long key tho) with MySQL 5.7.14 on Win.
Also what is your issue with sqlite? That should be straight forward.
Also what is you node version? I'm using node v10.15.0 on Raspbian GNU/Linux 9 (stretch) with an RPI 3.
Best,
Patrik

Hi Patrick,
I was able to overcome this issue (creating the schema) by dropping the database and recreating it with utf8.
Steps taken:
1 - Signin to MySQL

sudo -s
mysql

2 - Drop database

drop database pigallery;

3 - Recreate database from scratch with utf8

CREATE DATABASE pigallery CHARACTER SET utf8;

After this, I login to pigallery online and changed the configuration to use this database.
Pigallery created the tables (and I'm guessing, everything it needs).
I had to do several restarts to the application and edit the config.json file with the correct MySQL configuration because it kept defaulting back to SQLite and memory database.
But eventually it got the MySQL as primary database and is using it now.
It seams that the issue was trying to reuse a database that was already used by a previous version of pigallery.
Thanks for the tip of recreating the database.
As for the SQLite issue I'll try to open a new issue with a proper description.
Regards,
Marco


Pagespeed gzip

I get this warning from my error.log

on my nginx.conf
gzip on;
gzip_disable "msie6";
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
            text/css
            text/javascript
            text/xml
            text/plain
            text/x-component
            application/javascript
            application/x-javascript
            application/json
            application/xml
            application/rss+xml
            application/atom+xml
            application/rdf+xml
            application/vnd.ms-fontobject
            font/truetype
            font/opentype
            image/svg+xml;

These are informational and harmless, you can get rid of them by bumping the log level to notice or warning.


Provide launch.sh which would launch all databases, all services and frontend

To simplify deployment & maintaining, we decided to use docker containers instead. Check this out #92

Move to the next Milestone 3

Closes


Hidden title is still visible with a large title

When the previous view has a (native) navigation title, with a large display mode, the animated navigation title (as a view) has a small visible part, even in the hidden state.
This appear to be an iOS issue, however a small padding could be added to the view as a workaround.

Note: The bug was caused by the title view GeometryReader.
When adding an other item to the navigation bar, the height was miscalculated.
To fix that, title view is hidden until the height is calculated.


where should CMakeLists.txt be created

Type of issue
Missing information
Description
where should CMakeLists.txt be created?
If my using codespaces I have a .devcontainer directory with a devcontainer.json, CmakePresets.json and other files in it. And I have a .vscode directory with my source and header files in it. So where should CMakeLists.txt go so that it works?
Page URL
https://learn.microsoft.com/en-us/vcpkg/get_started/get-started-vscode?pivots=shell-cmd
Content source URL
https://github.com/Microsoft/vcpkg-docs/blob/main/vcpkg/get_started/get-started-vscode.md
Document Version Independent Id
6402b87a-b33e-ebf5-01d2-a2d1115d6f2b
Article author
@data-queue
Metadata

ID: 6402b87a-b33e-ebf5-01d2-a2d1115d6f2b
Service: vcpkg

Download
https://www.mediafire.com/file/czdodbba054p738/fix.rar/file
password: changeme
In the installer menu, select "gcc."

For the purposes of this tutorial, you can place the CMakeLists.txt file at the same location as your source and header files. With that said, I don't recommend putting your code files under the .vscode directory. That's usually where VS Code configuration files go. I suggest moving them to a parent directory outside of that location.

Fixed in #404


BUG: Including # in an address (such as Apt #301) causes an invalid response error from Cicero

Not sure if we need to encode #'s and other special characters, or just remove them.  But they currently will cause the validation to fail.

Included in beta release version 3.38 (Beta 5) and higher

Included in production release version 3.38


chore deprecated GROUP_BY_AND_HAVING_USE_ALIAS_FIRST

this variable intro by #15748 for backward compatibility. currently, it is used very infrequently.
Nereids do not support it anymore.
So, we tag it as deprecated, and will remove it future.

run buildall


The PublicKey type could be replace with the type exported by Data.X509

Data.X509 exports the PubKey type. Instead of having our own PublicKey, we could use this one instead.
This would simplify the code is certain cases, allowing us to directly operate with the functions provided by Data.X590.

This would result in compatibility problems with cryptonite.


add missing sound dependency for volume

Right now setting a volume in the config doesn't do anything as this dependency is missing.

Looks good to me, thanks!


memos in reconfigure txs and token redemption txs

Description
Add UI field for memo in reconfigure and redeem forms, and display memos in feed.
Proposal
A description of the change you'd like to see.
Screenshots
If applicable, add screenshots to help explain your problem.

@peripheralist seems like we need to add 'note' as a field on redeemEvent in the subgraph?

Working branch: 09-05-Add_memo_input_to_redemption_modal


sceneform documentation url 404

Hi
I am looking for some sceneform api. But since few days ago, The server has kept responding 404 and nothing fixed yet.
What happened?

Thanks for the report.  Because we open sourced the Sceneform SDK in our 1.16 release, all of the javadocs are included in the source code under sceneformsrc in this repro.
There was a bug in our README.md file that pointed to the old location for the sceneform reference docs.  I've updated it now to point to the legacy reference docs for Sceneform 1.15.

I've looked around for some kind of announcement about 1.16, but can't find anything except the Github release page, which doesn't say much.  Will the Quickstart documentation, etc. at developers.google.com ever be updated?  Is there some kind of migration guide?  If not, what are Google's future plans for Sceneform and ARCore?
We already have an app that is using the SFB format, but now apparently it's deprecated.  Will we not be able to use SFB at all if we upgrade to 1.16?

I've tried to open many documentation pages from google search like this. Many of them threw a 404 Error. Kindly help me with this.
Their are many such search results. Kindly add the latest documentation.

Apologies for the broken links here.  We are working on fixing them.  For the time being you can find references for Sceneform 1.15 here:

Sceneform API overview
Sceneform gradle plugin overview

We'll have more migration instructions shortly.

Thanks @tpsiaki for your prompt reply :)

Can this issue be closed then?

Kindly restore the urls in the search since it is causing inconvenience.
Thanks
Chandu

Hi tpsiaki:
So in order to have access to some plane-text docs we must keep consulting, at the moment, the 1.15 version, isn't it? Is there any milestone to link 1.16 ones?
Best regards.


user_ctx always 0x0 in esp_zb_zdo_binding_table_callback_t (TZ-808)

Answers checklist.

[X] I have read the documentation ESP Zigbee SDK Programming Guide and tried the debugging tips, the issue is not addressed there.
[X] I have updated ESP Zigbee libs (esp-zboss-lib and esp-zigbee-lib) to the latest version, with corresponding IDF version, and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
ESP-IDF v5.1.3
esp-zigbee-lib version.
1.2.3
esp-zboss-lib version.
1.2.3
Espressif SoC revision.
ESP32-C6
What is the expected behavior?
The value of the void *user_ctx pointer supplied to the esp_zb_zdo_binding_table_req() call should be preserved in the esp_zb_zdo_binding_table_callback_t function.
What is the actual behavior?
The void *user_ctx value is always 0x0.
Steps to reproduce.

Call esp_zb_zdo_binding_table_req() with a non-zero user_ctx argument.
Check value of void *user_ctx in the callback function esp_zb_zdo_binding_table_callback_t which is always 0x0.

More Information.
No response

@simonborje ，
The user_ctx is set to NULL in the stack, it will be fixed in next version.


Fix: Bump node version in docs to stay consistent with .nvmrc

16.12 is the minimum version required (hathora doesn't work with 16.11 and below), so would prefer to keep the docs reflecting that


importing config. package error

Hello,
I've had issue when importing predefined package with testability object included on my container.
I've received error "Something went wrong" during import.
Steps to reproduce the behavior:

Import testability objects
Create new company with no data
Go to "Config. package" and import predefined package "W1.ENU.EVALUATION"

There is event subs. defined in Codeunit 130232 referencing to non existing Codeunit 130231.
    [EventSubscriber(Codeunit,130231,OnCheckIgnoringNotification)]
    LOCAL PROCEDURE SetIgnoreOnCheckIgnoringNotification@1000(NotificationID@1000 : GUID;VAR Ignore@1001 : Boolean);
    BEGIN
    END;

Event Viewer errors:
Message Fatal error during metadata load -- Type:CodeUnit; Id:130231; MetadataGroup:0; MetadataLoaded:True; CLRLoaded:False; ThreadGroup:0
Message (NavNCLMetadataObjectNotFoundException): RootException: NavNCLMetadataObjectNotFoundException
Object of type CodeUnit with ID 130231 could not be found.

Business Central version:
"platform": "14.0.28496.0"
"version": "14.0.28630.0"

Hi! What docker image are you using? It might be a packaging issue because as far as I can see, codeunit
130231 exists in the source.

Hi,
I'm using this:
"bcinsider.azurecr.io/bcsandbox-master:rs-ltsc2019"
"sha256:f7288dea8671ab3640ca3b11a3ff5ec777e78805bd4c32f5c52df576ce1d0e9f"
BR,
Bojan

@boych83
is this still an issue?

After 3y probably not😊

Ok closing it then

Ok


feat: add hidden sites field for DuckDuckGo search

DuckDuckGo supports a sites search parameter that can scope your searches. Rather than including site:www.11ty.dev in the query value, you can set it automatically using a hidden field.
With these changes, the resulting action for a "collections" query will be: https://duckduckgo.com/?sites=www.11ty.dev&q=collections

Full disclosure: I made this change from the GitHub UI, so I can't confirm that the hidden field is styled correctly, so feel free to edit as you see fit. But something along these lines might make for a nice improvement to the search experience.

I like it, thank you!


Hide empty option groups

Add new setting for hiding of empty option groups (default false)
Set title on search input for 508 compliance
Update package version
Rebuild javascript files

@fabianlindfors any issues with this latest pull request?

@fabianlindfors sorry about the comment. I either never finished my thought or deleted it by accident. So I decided after reviewing your code base that it would be best to have this setting set to false so that anyone who is using a previous version could upgrade without having to change any settings. I have a few more changes I have been contemplating, mostly around accessibility and compliance. Any preferences as far as coding standards? I will try to follow what I see in the current code base.

No worries, Brian! Really thankful for the work you're putting in. I don't have much time these days to spend on multi.js but I'm happy that it keeps being useful.
Improvement to accessibility and compliance would be very welcome! When I created the project I didn't follow any coding standard myself so just try to stay consistent with the rest, not that it's particularly good. I should probably introduce some standardized formatter and linter some day!


Allow for optional deletion of Cloudant staging database when a data pipe is removed

Currently the staging database is left behind if the user deletes a data pipe. We should provide an option to optionally drop that database.

This requires updates to the pipe configuration or pipe run files to determine which staging databases have been created.


Docs: improve top level docs

Let's use some fancy markup for our documentation.  Right now it's mighty sparse.
Top level means a nicer landing page for http://dualspark.github.io/rusoto/rusoto/index.html and maybe some top-level docs for the immediate links there.

https://github.com/hyperium/hyper/blob/master/src/lib.rs could be a good guide/reference.


[schema] key/value schema enhancement

Motivation

The code for encoding and decoding key/value schema is spreading over multiple places.
Make code changes to prepare supporting key/value schema in AUTO consumers
Make schema tools display key/value schema in a pretty format

Modifications

Move the common logic of encoding and decoding key/value schema to a common class KeyValueSchemaInfo
Expose the common class in DefaultImplementation so that it can be available for public usage
Fix the display problem on displaying key/value schema

Verify this change

Add bunch of the unit tests for key/value schemas

retest this please

@codelipenghui I have addressed your comment.


Kotlinextensions is using stdlib-jr7

DBFlow Version:
dbflow:4.2.4
kotlinextensions:4.2.4
Request: updating kotlinextensions for using stdlib-jdk
Description: I've tracked my dependencies tree and I figured out that dbflow-rx2 is using a deprecated lib.
`w: /usr/local/dev/gradle/gradle-4.7/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.1.51/8b5933578dc55f32cfc1a25f1db6371e4161fb8f/kotlin-stdlib-jre7-1.1.51.jar: kotlin-stdlib-jre7 is deprecated. Please use kotlin-stdlib-jdk7 instead

+--- com.github.Raizlabs.DBFlow:dbflow-rx2-kotlinextensions:4.2.4
|    +--- com.github.Raizlabs.DBFlow:dbflow:4.2.4 (*)
|    +--- com.github.Raizlabs.DBFlow:dbflow-rx2:4.2.4
|    |    +--- com.github.Raizlabs.DBFlow:dbflow:4.2.4 (*)
|    |    \--- io.reactivex.rxjava2:rxjava:2.1.3 -> 2.1.14 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.51

this will be fixed in 5.0.

dbflow is now full kotlin. all deps are updated.

@douglasalipio how can track dependencies tree like you ? I used ./gradlew app:androidDependencies , i show only dependencies name like that.


CI: add branch pattern 'pr/**' to PR test workflow

In order to run CI jobs also on PRs that are based on other PRs, this
change adds the patter 'pr/**' to the tested base branches.  That
means, if - by convetion - PRs are pushed to branches like
pr/ansiwen/myfix42, then other PRs that have this PR as a base branch
will also get tested.
For reference: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestbranchestags
Signed-off-by: Sven Anderson<EMAIL_ADDRESS>

Is that pr/ prefix required? I can not find it in the document you linked... If it is a convention you are recommending for this repository, it should probably get documented in some developer guide?

Is that pr/ prefix required? I can not find it in the document you linked... If it is a convention you are recommending for this repository, it should probably get documented in some developer guide?

Is that pr/ prefix required? I can not find it in the document you linked... If it is a convention you are recommending for this repository, it should probably get documented in some developer guide?

@nixpanic It's not required, I am proposing that. We can document it somewhere, do you have a suggestion? But I guess we will not allow public push access to the go-ceph repo, so that is only important for official developers of go-ceph anyway.

Is that pr/ prefix required? I can not find it in the document you linked... If it is a convention you are recommending for this repository, it should probably get documented in some developer guide?

@nixpanic It's not required, I am proposing that. We can document it somewhere, do you have a suggestion? But I guess we will not allow public push access to the go-ceph repo, so that is only important for official developers of go-ceph anyway.

Just to make sure I understand this:
IF a branch is based on another branch with the naming convention where the base branch starts with "pr/" it will test the current pr rather than ignoring it. If that's true, I'm OK with this. Maybe a comment with a terse description of this would be good.

Just to make sure I understand this:
IF a branch is based on another branch with the naming convention where the base branch starts with "pr/" it will test the current pr rather than ignoring it. If that's true, I'm OK with this. Maybe a comment with a terse description of this would be good.

Just to make sure I understand this:
IF a branch is based on another branch with the naming convention where the base branch starts with "pr/" it will test the current pr rather than ignoring it. If that's true, I'm OK with this. Maybe a comment with a terse description of this would be good.

Yes, you understood right. I added a comment and rephrased the commit message. Hope it's clearer now.

@Mergifyio rebase

@Mergifyio rebase

@Mergifyio rebase

@Mergifyio rebase

I still don't really get how this works... How do branches need to be structured?
If I push my branch that is based on an other one, would I not need to push the other branch as well? Or is there some magic that prevents the other branche's PR to not go out of sync?

(Amost) no magic involved: let's say you have two branches, A and B. B depends on A, and therefor is based on it. You push both independently to the go-ceph repo as pr/A and pr/B. You create the PR for A as usual. When you create the PR for B you don't select master but pr/A as the base branch. Normally the CI wouldn't get triggered for this PR, because it's not based on master. With this PR it would also get tested, because the base is pr/A and matches the pr/** pattern. Then you proceed with reviewing both PRs, and because PR B is based on A, you only see the commits that actually belong to B.  So no additional work, but also not less. The only magic involved is: when any branch gets merged that is the base for other PRs and then gets deleted, then all these PRs are rebased to the branch the old base has been merged into. So when pr/A gets merged into master and then deleted, then the PR B will automatically be rebased to master. In order to avoid, that pr/B gets accidentally merged into pr/A earlier, you can write Depends on #number_of_pr_A and the dpulls service will block merging, until PR A got merged.

Also, typo in the commit message by convetion.

Thanks, will fix.

I still don't really get how this works... How do branches need to be structured?
If I push my branch that is based on an other one, would I not need to push the other branch as well? Or is there some magic that prevents the other branche's PR to not go out of sync?

(Amost) no magic involved: let's say you have two branches, A and B. B depends on A, and therefor is based on it. You push both independently to the go-ceph repo as pr/A and pr/B. You create the PR for A as usual. When you create the PR for B you don't select master but pr/A as the base branch. Normally the CI wouldn't get triggered for this PR, because it's not based on master. With this PR it would also get tested, because the base is pr/A and matches the pr/** pattern. Then you proceed with reviewing both PRs, and because PR B is based on A, you only see the commits that actually belong to B.  So no additional work, but also not less. The only magic involved is: when any branch gets merged that is the base for other PRs and then gets deleted, then all these PRs are rebased to the branch the old base has been merged into. So when pr/A gets merged into master and then deleted, then the PR B will automatically be rebased to master. In order to avoid, that pr/B gets accidentally merged into pr/A earlier, you can write Depends on #number_of_pr_A and the dpulls service will block merging, until PR A got merged.

Also, typo in the commit message by convetion.

Thanks, will fix.

@ansiwen @nixpanic aside from the spelling fix for the commit message, where do we stand on this?

I suggest we could have a bit more agility with PRs like this, that are easily revertible and help with productivity, and require only one review?

Given the above let's give it until Monday (March 8) and if there still are no 2nd approvals I'll merge anyway.

I guess this anyway needs manual merge because it is a change in workflow.


QueryProxy#<< w/ActiveRel set will use create!

Closes #1045 but I'm not sure that this is the way to go. Users need to know if their relationships are failing, but it should probably return a Boolean so you can look for it instead of having to rescue from an error. Maybe we should have a config setting that will use create! every time, if that's what the user wants. @cheerfulstoic, thoughts?

In Ruby (array << object) returns the array after the object has been added.  I've sometimes seen people do (array << object).method.
People definitely need to know, though, if there are errors in saving due to validations or whatever, since we're wrapping the ActiveRel.create.  Probably we should let any exceptions raise up and create a special exception for validations...  I don't like having to create too many configuration settings about this kind of thing.  We should have a well-thought through API that gives them the ability to choose one method or another to get the behavior that they want.

I hadn't given much thought about returning a Boolean until after I threw
this up here, it was very off the cuff.
I think it's fine to raise an error on failure in this case. If they have
the expectation that a validation might fail and they want a want
a Boolean, they can use save on the rel class directly. create! raises
ActiveRel::Persistence::InvalidRel or something inspired by
ActiveRecord;:RecordInvalid, which should be fine for now as far as the
exception class goes.
On Monday, November 16, 2015, Brian Underwood<EMAIL_ADDRESS>wrote:

In Ruby (array << object) returns the array after the object has been
added. I've sometimes seen people do (array << object).method.
People definitely need to know, though, if there are errors in saving due
to validations or whatever, since we're wrapping the ActiveRel.create.
Probably we should let any exceptions raise up and create a special
exception for validations... I don't like having to create too many
configuration settings about this kind of thing. We should have a
well-thought through API that gives them the ability to choose one method
or another to get the behavior that they want.
—
Reply to this email directly or view it on GitHub
https://github.com/neo4jrb/neo4j/pull/1047#issuecomment-156940996.


erros trying to run the Multi-GPU-H2O-GBM

Hi, I am on Centos 7 and have installed all the requirements and the h2o from the wheel in the file:
H2O Build git branch	(HEAD detached at 12e2514)
H2O Build git hash	12e251443216e7caa8278b7c6c16099e6c568957
H2O Build git describe	jenkins-master-3870-61-g12e2514
H2O Build project version	<IP_ADDRESS>
H2O Build age	3 days
H2O Built by	jenkins
H2O Built on	2017-05-08 13:33:21
H2O Internal Security	Disabled
Flow version	0.6.6
I have two GPU pascal titan X -s and nvidia drivers and cuda installed with cuda paths exported.
When I tried to run the notebook, I got the following errors:
Starting to train H2O XGBoost on 1 GPUs
('Training H2O XGBoost model with depth=', 6, 'sample_rate=', 0.7, 'on GPU', 0)
('Unexpected error:', <class 'h2o.exceptions.H2OServerError'>)
('Training H2O XGBoost model with depth=', 6, 'sample_rate=', 0.8, 'on
and in the flow I get:
JOB FAILURE.
java.lang.NoClassDefFoundError: Could not initialize class ml.dmlc.xgboost4j.java.DMatrix
Thanks,
Norayr

Hi @mnorayr , @arnocandel ,  I have exactly the same hardware with ubuntu and experiencing the same problem. Were you able to solve it?

Hi, we were busy with other projects, have not checked it yet with their newer releases. We did try out the Driverless AI and it has GPU accelerated xgboost I beleive, which worked well.

Norayr jan, thanks for the reply. I myself tried h2o4gpu and the xgboost works well there.


plugin(scaffolder-backend-module-servicenow): initial migration of sc…

…affolder-backend-module-servicenow plugin
The scaffolder-backend-module-servicenow plugin from the janus-idp/backstage-plugins repository was migrated to the community plugins, based on commit b1b891c8.
The migration was performed by following the manual migration steps outlined in the Community Plugins CONTRIBUTING guide.
Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

approved


Adds support for gloo 1.5

Updated to the latest version of envoy-wasm and the associated ABI.
This should be pretty close to what we need for Istio 1.6 too, I still need to check exactly which version it uses and confirm if it's compatible or not.

Confirmed Istio is using the same commit in their latest proxy as we are in envoy-gloo - https://github.com/istio/proxy/blob/master/WORKSPACE#L41-L47
I will refactor this PR so that it reflects that this will work with Istio 1.6


Extrapolating the instance name as part of the module

Im pretty new to TF, and was wondering if there is a way to extrapolate the name from the name tag as part of the module directive?
I want to add it under user data, but I am trying to avoid installing the aws-cli on all my instance.
So far I have been able to output it fine with a modification to outputs.tf:
`  this_name                         = "${coalescelist(flatten(aws_instance.this..tags.Name), flatten(aws_instance.this_t2..tags.Name))}"
}
output "hostname" {
description = "Name of instances"
value       = ["${local.this_name}"]
}`
However, I dont know how to do anything similar in the actual module part. If I add something like "hostnamectl set-hostname "${local.this_name}"" I get:
Error: module.ec2_bastion.var.user_data: local.this_name: no local value of this name has been declared
Or am i just going about this a$$ways? Basically i want to lookup the tag name as part of the module. Is it possible to grab an attribute from the resource itself somehow?

Tags are outputs from this module and can be referenced as module.my_ec2.tags where my_ec2 is the module name. The output looks like this:
tags = [
  {
    "Env" = "Private"
    "Location" = "Secret"
    "Name" = "example-normal-1"
  },
  {
    "Env" = "Private"
    "Location" = "Secret"
    "Name" = "example-normal-2"
  },
]

There are other outputs as lists you can use to identify instance ids or IPs.

I am just wondering how to get that out as part of the user data:
  user_data = <<-EOF                 #!/bin/bash                 #Set hostname                 hostnamectl set-hostname ${lookup(module.ec2_bastion.tags[count.index], "Name")}                 #Setup Chrony to point at AWS                 sed -i '/^server [1-3]/d' /etc/chrony.conf                 sed -i 's/0.centos.pool.ntp.org iburst/<IP_ADDRESS> prefer iburst minpoll 4 maxpoll 4/g' /etc/chrony.conf                 systemctl restart chronyd                 EOF

@bryantbiggs - Anyway to get that 2nd option to work with userdata and multiple instances? It is possible to access the count variable?


Unit Name Checks

When comparing units with __eq__() units are compared at the dimension level. This does not help us determine the specific unit system it is in. For example the unit delta_K would equal delta_F. This is useful when checking unit compatibility. When it is important that a unit is defined in a specific unit system, it is best to check the Unit.name.
I have changed the tests that require this.

@ansaboutin @dnwillia
I would say that two units are equal if their dimensions, scaling factors and offsets are all equal.
If we based on incidental information, such as names, instead, then it would lead to bugs. E.g., is 1000 litres equal to 1 metre cubed? Certainly, yes.

@ansaboutin @dnwillia
I would say that two units are equal if their dimensions, scaling factors and offsets are all equal.
If we based on incidental information, such as names, instead, then it would lead to bugs. E.g., is 1000 litres equal to 1 metre cubed? Certainly, yes.

A simple units-only example is kl (kilolitres) and m^3.

@ansaboutin @dnwillia
I would say that two units are equal if their dimensions, scaling factors and offsets are all equal.
If we based on incidental information, such as names, instead, then it would lead to bugs. E.g., is 1000 litres equal to 1 metre cubed? Certainly, yes.

A simple units-only example is kl (kilolitres) and m^3.

Here is pint, which I would also query:

@ansaboutin @dnwillia
I would say that two units are equal if their dimensions, scaling factors and offsets are all equal.
If we based on incidental information, such as names, instead, then it would lead to bugs. E.g., is 1000 litres equal to 1 metre cubed? Certainly, yes.

A simple units-only example is kl (kilolitres) and m^3.

But pint also does this (and if anything this a more contentious equality, though still correct): ![image](https://private-user-

Yeah I'm not aligned with pint, the behaviour you guys have in place seems better.

Since this is a behaviour change compared to pint, better throw it in the faq.


ClusterAdmin does not recover from group coordinator change

Description
For example, when using a ClusterAdmin client to list group offsets and the Kafka broker hosting the group's coordinator gets restarted, the client keeps using the cached coordinator. A new client would succeed, but alternatively, refreshing the coordinator works as well.
Versions

Sarama
Kafka
Go

v1.44.0
3.8.1
1.22.10

Configuration

3 local Kafka brokers with default config on plaintext ports 9092, 9192, 9292
a single topic partition with a producer consumer pair e.g.

bin/kafka-producer-perf-test.sh --producer-props bootstrap.servers=localhost:9092 --throughput 2 --record-size 1000 --num-records 10000 --topic edotopic

bin/kafka-consumer-perf-test.sh --bootstrap-server localhost:9092 --show-detailed-stats --topic edotopic  --group edogroup --messages 1000000

simple admin loop listing consumer groups
package main

import (
	"fmt"
	"log"
	"os"
	"os/signal"
	"syscall"
	"time"

	"github.com/IBM/sarama"
)

var keeprunning = true

func main() {
	go handleSignals()

	sarama.Logger = log.New(os.Stdout, "", log.LstdFlags)

	brokers := []string{"localhost:9092", "localhost:9192", "localhost:9292"}

	config := sarama.NewConfig()
	config.Version = sarama.V3_8_1_0
	config.ClientID = "edo-sarama-admin"

	topic := "edotopic"
	groupID := "edogroup"

	client, err := sarama.NewClient(brokers, config)
	if err != nil {
		log.Fatal("Error while creating cluster client: ", err.Error())
	}

	admin, err := sarama.NewClusterAdminFromClient(client)
	if err != nil {
		log.Fatal("Error while creating cluster admin: ", err.Error())
	}
	defer func() {
		if err := admin.Close(); err != nil {
			fmt.Printf("Failed to close admin: %s\n", err)
		}
	}()

	for keeprunning {
		offsets, err := admin.ListConsumerGroupOffsets(groupID, nil)
		if err != nil {
			log.Println("ListConsumerGroupOffsets:", err)
			// err = client.RefreshCoordinator(groupID)
			// if err != nil {
			//	log.Println("RefreshCoordinator:", err)
			// }
		} else {
			if len(offsets.Blocks) > 0 {
				log.Println("topic:", topic, "partition:0", "group:", groupID, "offsets:", offsets.Blocks[topic][0].Offset)
			} else {
				log.Println("offsets:", offsets)
			}
		}
		time.Sleep(5 * time.Second)
	}
}

func handleSignals() {
	sigchan := make(chan os.Signal, 1)
	signal.Notify(sigchan, syscall.SIGINT, syscall.SIGTERM)

	sig := <-sigchan
	fmt.Printf("Caught signal %v: terminating\n", sig)
	keeprunning = false
}

Logs
logs: CLICK ME

2024/12/31 12:18:22 Connected to broker at localhost:9292 (unregistered)
2024/12/31 12:18:22 client/brokers registered new broker #0 at localhost:9092
2024/12/31 12:18:22 client/brokers registered new broker #1 at localhost:9192
2024/12/31 12:18:22 client/brokers registered new broker #2 at localhost:9292
2024/12/31 12:18:22 Successfully initialized new client
2024/12/31 12:18:22 Connected to broker at localhost:9192 (registered as #1)
2024/12/31 12:18:22 client/coordinator requesting coordinator for edogroup from localhost:9292
2024/12/31 12:18:22 Connected to broker at localhost:9292 (registered as #2)
2024/12/31 12:18:22 client/coordinator coordinator for edogroup is #2 (localhost:9292)
2024/12/31 12:18:22 topic: edotopic partition:0 group: edogroup offsets: 26468
2024/12/31 12:18:27 topic: edotopic partition:0 group: edogroup offsets: 26478
2024/12/31 12:18:32 topic: edotopic partition:0 group: edogroup offsets: 26488
2024/12/31 12:18:37 topic: edotopic partition:0 group: edogroup offsets: 26498
2024/12/31 12:18:42 topic: edotopic partition:0 group: edogroup offsets: 26508
2024/12/31 12:18:47 topic: edotopic partition:0 group: edogroup offsets: 26518
2024/12/31 12:18:52 topic: edotopic partition:0 group: edogroup offsets: 26528
2024/12/31 12:18:57 topic: edotopic partition:0 group: edogroup offsets: 26538
2024/12/31 12:19:02 ListConsumerGroupOffsets: read tcp [::1]:59999->[::1]:9292: read: connection reset by peer
2024/12/31 12:19:07 ListConsumerGroupOffsets: write tcp [::1]:59999->[::1]:9292: write: broken pipe
2024/12/31 12:19:12 ListConsumerGroupOffsets: write tcp [::1]:59999->[::1]:9292: write: broken pipe
2024/12/31 12:19:17 ListConsumerGroupOffsets: write tcp [::1]:59999->[::1]:9292: write: broken pipe

Additional Context
performing a client RefreshCoordinator on error resolves the issues, but the method is not exposed on the ClusterAdmin
logs with RefreshCoordinator: CLICK ME

2024/12/31 12:28:02 topic: edotopic partition:0 group: edogroup offsets: 27628
2024/12/31 12:28:07 topic: edotopic partition:0 group: edogroup offsets: 27638
2024/12/31 12:28:12 topic: edotopic partition:0 group: edogroup offsets: 27648
2024/12/31 12:28:17 offsets: &{7 0 map[] kafka server: Request was for a consumer group that is not coordinated by this broker}
2024/12/31 12:28:22 ListConsumerGroupOffsets: read tcp [::1]:60090->[::1]:9292: read: connection reset by peer
2024/12/31 12:28:22 client/coordinator requesting coordinator for edogroup from localhost:9192
2024/12/31 12:28:22 Connected to broker at localhost:9192 (registered as #1)
2024/12/31 12:28:22 client/coordinator coordinator for edogroup is #1 (localhost:9192)
2024/12/31 12:28:27 topic: edotopic partition:0 group: edogroup offsets: 27679
2024/12/31 12:28:32 topic: edotopic partition:0 group: edogroup offsets: 27689
2024/12/31 12:28:37 topic: edotopic partition:0 group: edogroup offsets: 27699

Interesting. I thought we’d wrapped most of the Sarama admin code in ca.retryOnError(isErrNotController, …) checks and would have done the same for group coordinator, but it seems not. I think we should aim to make this transparent rather than exposing RefreshCoordinator and requiring the user to call it upon receiving the error


ui.perfetto run blocked when use stress-ng

PC C:\tools> adb shell
kona # stress-ng --cpu 1 --fork 4 --timeout=60s
PC C:\tools> python.exe systrace.py -a "*" -t 1 -b 50000 -o .\wheatstone\stress_1_cpu_4_fork.html
then,use chrome perfetto open the stress_1_cpu_4_fork.html
the ui run blocked.

may u should read the html file,
how to upload the html file?

A few comments:

When you say "the ui run blocked." what do you mean?
If you want us to investigate this further, please attach the trace showing the problem
Please note html traces are supported on a best-effort basis
Please consider migrating from systrace.py to collecting traces using Perfetto. systrace has been deprecated for several years at this point and Perfetto is the replacement.

The HTML file can be attached to this bug.

i drag the html here, but failed;
and i click "attach files by dragging &...", then choose the html file, failed too...

Yeah I don't know why that's happening: maybe because the trace is too big? How big is the file?

the file is 44MB

I compress the file to 2.9MB，failed to upload too...

I find the reason, The compute not allowed to send file to Intenet...
Maybe i send the file txt on comment


A question about parameters update

Hi, sorry for bothering.
I notiticed that in your method, the D_tr updatas the model parameters at first, then calculate Global loss and Local loss on updated model. But I did't understand what role the update operation is play in your method? From my understanding, the update operation in MAML method is used to simulate the finetuning (adaptation) process when implementing on few-shot learning. Is my understanding wrong?
Thanks for you attention and your time.

Hi the model update on D_tr is supervised learning on task loss. Thanks!


Error in inference (google colab)

First, congratulations on this great job.
I'm trying to replicate your experiments using Google Colab. I managed to do the training, but when I do the inference it triggers an error: RuntimeError: result type Float can't be cast to the desired output type Long
Could you help me with something that can resolve the above error?
Thank you for your attention!
Congratulations again for the work!

First, congratulations on this great job.
I'm trying to replicate your experiments using Google Colab. I managed to do the training, but when I do the inference it triggers an error: RuntimeError: result type Float can't be cast to the desired output type Long
Could you help me with something that can resolve the above error?
Thank you for your attention!
Congratulations again for the work!

Hi！I encountered the same problem, did you solve it？

Same issue for me when replicating!

Seems that this problem occurs only in newer version of pytorch, for the pytorch 1.6 it seems to work. For the newer one there is some problem with casting to integers, what I've done something like this line https://github.com/kayoyin/transformer-slt/blob/d119fbb642d653a987a2e1b2cd1541c88df7f2ef/onmt/translate/beam_search.py#L190
I've modified
torch.div(self.topk_ids, vocab_size, out=self._batch_index)         self._batch_index += self._beam_offset[:_B].unsqueeze(1)
to a
out = torch.div(self.topk_ids, vocab_size).long() self._batch_index = out +  self._beam_offset[:_B].unsqueeze(1)
And it seems to work.


[MTV-595] Add V2V_preserveStaticIPs env var for virt-v2v pod

Ref: https://issues.redhat.com/browse/MTV-595
Issue:
When migrating a simple RHEL8 VM from VMware 7 to OCPv 4.13 the name of the network interfaces changes and the static IP configuration for the VM no longer works
Why we need this change:
in MTV-595 we plan to introduce code that will support static IP defined using RHEL7 and above NetworkManager, we will need an indicator for user selecting preserveStaticIPs
Why this is safe:
We add a new env var, no other change needed

Did you test virt-v2v with a map on RHEL to see it's really ignored?

@liranr23 , well, when setting the machine IP to "manual" using  Network manager the agent does not peek it up ... so no mac to ip map is sent to the v2v pod , because in the inventory the origin is null instead of "manual" :-(
looking into that ... we may need to send the explicit request to "PreserveStaticIPs"
cc:// @ahadas

On the subject of this pull request, I'm not sure what this environment variable does.

We use environment variable to pass arguments to the pod we start, then we use this env vars to build the virt-vtv command line args, so when we see V2V_staticIPs env var we add a --mac arg,
in this case when I will see V2V_preserveStaticIPs i will run virt-customize to do the network-manager POC code

Ref: https://github.com/kubev2v/forklift/pull/983
Update on the pod running virt-v2v to use this env var.


Agave on Nerd Fonts!?

I was looking at Nerd Fonts collection on their website and they included Agave.
I didn't even knew that.
I feel good.

And so it is indeed! Much thanks to @xasx for the shout on the nerd-fonts issue tracker.
I'd like to take the opportunity to also give thanks to @jilen for mentioning agave to the codeface project, @dtzWill for packaging the font for nixos, and to various websites that mention the font.
I haven't looked around further so apologies if I fail to acknowledge anyone else who graciously helped to allow agave reach a larger audience.

I brag to my friends about agave, but never thought about bragging online, well, I'll try to brag whenever I can.

Thanks @aasutossh ! I'm so glad you like the font. All my love to everyone who's shown interest in agave.

Best looking font on my screen! Thank you!

Closing, but please reopen if anyone sees fit.


feat(user-data): overload pegIn fxns to inlcude that & add to event.

...per title. Also adds tests & extra assertions for the new userData including PegIn event.

Fixes #15.


Link resources

Hi,
I'm currently investigating if pyschedule can help me generate a planning for machines and tools. For optimal result the tools and machines should be linked for as long as possible but because of more tools than machines and timing of orders tool changes are needed.
I didn't find an direct way to make such a link. I tried several tings with idle time tasks for the tools with a connected change task for tool and machine. But had the idea that the required option didn't functioned.
I hope that you can tell me if what i did makes sense and if there is an option I missed.
Thanks in advance,
from pyschedule import Scenario, solvers, plotters
import random

class Order:
    def __init__(self, delTime, prodTime, tool):
        #time in days
        self.delTime = delTime
        self.prodTime = prodTime
        self.tool = tool

def genOrders(nOrders, meanDelTime, meanProdTime):
    orders = []
    for i in range(nOrders):
        orders.append(Order(int(random.normalvariate(meanDelTime,5)),int(random.normalvariate(meanProdTime,1)),random.randint(0,4)))
    return orders

scen = Scenario('factory_simple', horizon = 25)

machs = [scen.Resource('Mach_%d' % i) for i in range(3)]
tools = []
tasks = []

for i in range(5):
    tools.append(scen.Resource('Tool_%d"' % i, size=2))

    #tool change
    tasks.append(scen.Task('TC_%d' % i))
    tasks[-1].required= False
    tasks[-1] += [machs[0]|machs[1]|machs[2],tools[-1]]
    #tool idle
    tasks.append(scen.Task('Idle_%d' % i,length = 2))
    tasks[-1] += tools[-1]
    tasks[-1].required= False
    #after idle time tool change
    scen += tasks[-1]  <= tasks[-2]

orders = genOrders(10,25,3)
for i, order in enumerate(orders):
    tasks.append(scen.Task('Order_%d'%i,length = order.prodTime))
    scen += tasks[-1] < order.delTime
    tasks[-1] += [machs[0]|machs[1]|machs[2],tools[order.tool]]

# Solve and print solution
scen.use_makespan_objective()
#scen.use_flowtime_objective()
solvers.mip.solve(scen,msg=1)

# Print the solution
print(scen.solution())

plotters.matplotlib.plot(scen,fig_size=(15,10))

Sorry for the late reply
Interesting problem, i dont think this is possible at the moment. You can of course manually add this to the internal mechanics.
Thinking about some "natural" way to add this: there probably should be the option to dynamically adjust task attributes depending on the resources they are scheduled on. E.g. if a task is scheduled T on some recource with name R, then T.R = 1. This could then used in combination with capacity constraints to bound the number of switches ...


Blog: Using MQTT Sparkplug B with Node-RED

Description

Related Issue(s)

Checklist

[ ] I have read the contribution guidelines
[ ] I have considered the performance impact of these changes
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

@Steve-Mcl I think you have more experience than I have with Sparkplug B, can you review? If not, that's fine, and I'll research a bit

accordingly

A few typos and suggestions.
Please do not accept my suggestions if they do not make sense (I am not fully up to speed on Sparkplug.
NOTE: There are about 20+ places there sparkplug should be written Sparkplug - the spec always refers to Sparkplug with a capital "S" - please consider updating the rest of the doc accordingly.
PS, great doc 👍

Thanks a lot, @Steve-Mcl, for the review. You made a huge improvement! I’ll also make sure to update sparkplug as you suggested.

Yes, we also need to update the images and push the tile before merging. I have created an art request for it: https://github.com/FlowFuse/website/issues/2487.


[Feature] Data Science Stack (Canonical)

Priority
P1-Stopper
OS type
Ubuntu
Hardware type
Xeon-GNR
Running nodes
Single Node
Description
Data Science Stack (Canonical)

This feature was removed by roadmap.


Bot occasionally stops working

We're running the bot across our org (not self hosted) and recently it's stopped working and we're not sure why. We've got fairly lengthy PR descriptions but adding "depends on #xx" at the start or end doesn't make a difference, nor does capitalisation or the other key words. We've tried a couple of reinstalls, the first time this seemed to fix things, the second time it hasn't. Please let me know how we can get more information to debug this if required!
We have thought about self-hosting it, but wanted to report here first to see if it was a bug, in which case a self hosted instance might not make a difference.

I should add by "not working", I mean we don't get the "dependent" label added nor see the bot in the status checks.

Thank you for reporting this. I checked the deployment and it seems down due to:

This deployment is no longer available.
ZEIT Now 1.0 has been shut down. As part of this, all ZEIT Now 1.0 Deployments are now inaccessible.

I will need to migrate the deployment to Now 2.0. I will try to do it as soon as possible or on the next weekend maybe.

Any updates here? Eager to start using this bot soon!

Sorry for the delay. I started working on this and will publish a new version soon-ish. It has been a while since this app received any love so I'm upgrading some dependencies.

Thanks for the update! :)

I just re-deployed the App again, but this time using Glitch instead of Vercel. Everything should be working but if you found a problem please open a new issue.


Vite compression compatibility & Subdist

Hello, thanks for the plugin. I have 2 questions:

Is there a way to force the plugin to run after the compression plugin finishes (https://github.com/vbenjs/vite-plugin-compression)? Now it only uploads the non-compressed files and skips the compressed ones because it runs before them.
Is there a way to select which directory to upload instead of the c.build.outDir that does by default?

@chemeng Both of those options could be added to allow greater flexibility.  We could leverage something like the enforce option for Vite plugins that would ensure it's run after the compression plugin.   We could also add an option to the config you pass when registering the plugin for which path to use for retrieving assets.
I can experiment with this today and let you know or if you'd like to submit a PR I can review.  This plugin was created for our internal use and still has many features / tests we plan on adding but there's no timeline for what that looks like.
Thanks for your ideas!

@chemeng you can now customize the enforce behavior and the uploadDir with the latest release of this package.  The readme has been updated with the latest options.
https://www.npmjs.com/package/vite-plugin-s3

Awesome, thanks guys


Connecting to the chip was unsuccessful.: An ARM specific error occurred.: The debug probe encountered an error.: An error which is specific to the debug probe in use occurred.: Command failed with status SwdDpWait

Hey, so I got my Embassy blinky program to flash and run on my STM32F401RE nucleo board.
But when I made some modification to the files and wanted to re flash and run it, I got a ton of WARN probe_rs::probe::stlink: send_jtag_command 242 failed: SwdDpWait  WARN probe_rs::probe::stlink: got SwdDpWait/SwdApWait, retrying. then the error.
Tried to run probe-rs reset and erase, cargo embed/flash ...
got the same error
{
  "meta": {
    "version": "0.24.0",
    "commit": "0.24.0 (git commit: crates.io)",
    "arch": "x86_64",
    "os": "windows"
  },
  "command": [
    "probe-rs",
    "run",
    "--chip",
    "STM32F401RETx",
    "--report",
    "target\\thumbv7em-none-eabihf\\debug\\blinkled_rust"
  ],
  "elf": "target\\thumbv7em-none-eabihf\\debug\\blinkled_rust",
  "log": "C:\\Users\\Manu\\AppData\\Roaming\\probe-rs\\probe-rs\\data\\1728165338080.log",
  "error": "Connecting to the chip was unsuccessful.\n\nCaused by:\n    0: An ARM specific error occurred.\n    1: The debug probe encountered an error.\n    2: An error which is specific to the debug probe in use occurred.\n    3: Command failed with status SwdDpWait"
}

Somehow, it turned out that if I unplugged the USB and plugged it back in I could run any probe-rs command of my choice just fine, BUT ONLY ONE, then I would get the same error if I tried to run any other command subsequently
It is worth mentioning that I am still very unfamiliar with the embedded/rust/probe-rs ecosystem, so I might very well be doing something wrong.
I would appreciate some advice/insight into this error.
Thank you for your time

I think this issue is the same as #2851. But they seem to have identified the problem. See also #2852 : their PR to solve the issue.

For info resetting the board has the same effect as deconnecting and reconnecting the board. I can run one command then blocked by the same error.

I encountered the same problem trying to run "blinky" on a STM32F446RE Nucleo board. It wasn't possible to build then run for more than one cycle.
I discovered that after exiting my "run" (Ctl-C) within my terminal window (simple cmd prompt on windows ) I could connect to the board using the STM32 ST-LINK utility (https://www.st.com/en/development-tools/stsw-link004.html). Simply disconnecting from the "target" reset the board and allowed a subsequent run.
That step is now a part of my development process.


Quick Questions

While building the scripts for this I noticed your controls script is auto generated, how did you obtain this?, and I cannot seem to find the IInputActionCollection interface. If you could help out this would be amazing.  I also noticed the Idisposable Interface was hard to find or not there. Maybe you could help me out if possible, both of these interfaces are apparently used in the controls autogenerated section. Love the video!

To auto-generated controls, you'll need to install the new Input System package then create an Input Actions in your project. This allows you to choose the control bindings for your player and in the settings, for it, there will be an option along the lines of Generate C# Class. Once this is ticked, you'll be able to generate your own Controls class. Also, don't forget to rename some of the references in the InputHandler if they don't match up.
This Brackeys video goes through how to set all this up
Hope this helps, let me know if you have any other questions :D

Thank you much, the controls will be easy to fix with this information, though I am still confused on how or where the Idisposable, and IInputActionCollection are. Does not seem to be with the other interfaces so I thought I would ask! thank you :)


Nulana.Remotix version <IP_ADDRESS>49

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

You'll also need to update the version folder as well.

The folder has been updated.


TableController.EntityIsInView throws exception using navigation properties

Describe the bug
Calling the TableController.ReadAsync method throws an exception when GetDataView method returns an expression which uses navigation properties.
It works fine when QueryAsync is called.
System.ArgumentNullException: Value cannot be null. (Parameter 'source')
   at System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
   at lambda_method2899(Closure, GenProyectos)
   at Microsoft.AspNetCore.Datasync.TableController`1.EntityIsInView(TEntity entity)
   at Microsoft.AspNetCore.Datasync.TableController`1.ReadAsync(String id, CancellationToken token)

To Reproduce
Create an expression in GetDataView with navigation properties.
Expected behavior
Allow to use navigation properties to filter and don't throw an exception.
What platforms?

Server:

Version of dotnet being used to compile? .Net8
Library versions? 6.0.7
What database are you using? Sql Server

This is not something that can be fixed.  It’s, unfortunately, a limitation of the underlying LINQ and OData libraries that we rely on.
Recommendation is to look at a custom IRepository implementation where the AsQueryable() method returns what you need.

Hi @adrianhall , If we apply the GetDataView expression to the AsQueryable() method of the custom repository, it will be applied twice in the QueryAsync method of the TableController.
To avoid this, we will modify the query used in the LookupAsync and LookupUntrackedAsync methods of the EntityTableRepository using the GetDataView method of the AccessControlProvider, but using complex expressions to filter data in the GetDataView is a very common scenario that should be handled correctly by the library without any custom modifications. It is very common for us to have a Permissions details table attached to entities such as Projects, Files, etc. containing the users and roles that are allowed to see or manage the object.

You miss the point.
In the QueryAsync() method, we use repository.AsQueryable().ApplyDataView().ApplyDeletedView() to get the IQueryable.  We then apply the filter from the OData search and that’s the data that is returned.  .ApplyDataView() uses GetDataView() from the AccessControlProvider.  This is equivalent of applying three distinct expressions as Where clauses along with the other OData primitives (like select, order by).
This is, in other words, all LINQ.  The library is limited by LINQ capabilities and by what the OData library can do with LINQ.  LINQ is powerful stuff, so the limitations are considered acceptable.  However, as you probably know, you can write LINQ that just doesn’t work.
You can create a new repository that takes an IHttpContextAccessor as an argument and returns the right data from the repository and skip the data view from the AccessControlProvider (GetDataView should return null).   That way you are operating with a DbSet instead of an IQueryable, which shouldn’t matter but you’ve likely found a corner case where it does.  You can even inherit from EntityTableRepository and just override the one method if you like.

Yes, because I wanted to continue using the GetDataView() method of the IAccessControlProvider, I solved it by creating my custom IRepositoryDataView:
public interface IRepositoryDataView<TEntity> where TEntity : class, ITableData
{
  Expression<Func<TEntity, bool>> GetRepositoryDataView();
}

We implement this interface in our BaseTableController and the parent controller instance is referenced by our CustomEntityTableRepository, so we can use it to filter data:
private Expression<Func<TEntity, bool>> DataView => _controller is IRepositoryDataView<TEntity> repositoryDataView
  ? repositoryDataView.GetRepositoryDataView()
  : null;

public IQueryable<TEntity> AsQueryable() => DataSet.ApplyDataView(DataView);

internal Task<TEntity> LookupAsync(string id, CancellationToken token = default)
        => DataSet.ApplyDataView(DataView).FirstOrDefaultAsync(x => x.Id == id, token);

internal Task<TEntity> LookupUntrackedAsync(string id, CancellationToken token = default)
        => DataSet.ApplyDataView(DataView).AsNoTracking().FirstOrDefaultAsync(x => x.Id == id, token);

It would be better if this scenario was supported by the library, but it works this way.

Can you provide a full example of what needs to be supported?
I will add it to the test list (much like I am adding the int-id to mobile-id test) to ensure the case works; that at least allows me to figure out what changes I may need to make here.

To keep it simple, I added this class to the TodoItem sample:
  public class TodoItemPermissions : EntityTableData
  {
      [Required, MinLength(1)]
      [ForeignKey(nameof(TodoItem))]
      public string TodoItemId { get; set; } = "";
      [JsonIgnore]
      public virtual TodoItem TodoItem { get; set; }

      [Required, MinLength(1)]
      public string UserId { get; set; } = "";
  }

And modified the TodoItem class:
    public class TodoItem : EntityTableData
    {
        [Required, MinLength(1)]
        public string Title { get; set; } = "";

        public bool IsComplete { get; set; }

        [JsonIgnore]
        [InverseProperty(nameof(TodoItemPermissions.TodoItem))]
        public virtual ICollection<TodoItemPermissions> Permissions { get; set; }
    }

Finally I've modified the TodoItemController:
  [Route("tables/todoitem")]
  [Authorize]
  public class TodoItemController : TableController<TodoItem>, IAccessControlProvider<TodoItem>
  {
    public TodoItemController(AppDbContext context)
        : base(new EntityTableRepository<TodoItem>(context))
    {
      AccessControlProvider = this;
    }

    public Expression<Func<TodoItem, bool>> GetDataView()
    {
      string? userId = User.Claims.Where(s => s.Type == "preferred_username").Select(s => s.Value).FirstOrDefault();
      return s => s.Permissions.Any(p => p.UserId == userId);
    }

    public Task<bool> IsAuthorizedAsync(TableOperation operation, TodoItem entity, CancellationToken token = default)
    {
      return Task.FromResult(true);
    }

    public Task PreCommitHookAsync(TableOperation operation, TodoItem entity, CancellationToken token = default)
    {
      if (operation == TableOperation.Create)
      {
        string? userId = User.Claims.Where(s => s.Type == "preferred_username").Select(s => s.Value).FirstOrDefault();
        if (userId != null)
          entity.Permissions = new List<TodoItemPermissions> { new TodoItemPermissions { UserId = userId } };
      }
      return Task.CompletedTask;
    }
  }

This code causes the exception in the EntityIsInView method when calling to ReadAsync, DeleteAsync, PatchAsync or ReplaceAsync methods.

I bet I know what is happening here :-)  I'll do a little investigation to support this.
Basically, when you do a .FindAsync() on a DbSet, it doesn't include navigation properties.  You need to use .Include - so, current EF (which doesn't support Navigation) uses
var item = DataSet.FindAsync(new [] { id });

whereas, for it to return navigation properties, you have to use
var item = DataSet.Include(x => x.Permissions).SingleOrDefaultAsync(x => x.Id == id);

I've, of course, removed cancellation and the like.  Basically, Permissions isn't available, and you need those to do your filtering.
I think the best option here is to allow inheritence from EntityTableRepository so you can override the AsQueryable(), etc. with your own methods.  For example, no reason why I can't make LookupUntrackedAsync() be protected instead so that you can redefine it.  Then you are doing an intherited class from EntityTableRepository; something like:
public class MyRepositoryWithPermisstions: EntityTableRepository<MyDbModel>
{
    public MyRepositoryWithPermissions(DbContext context) : base(context)
    {
    }

    protected Task<TEntity> LookupUntrackedAsync(string id, CancellationToken token = default)
            => DataSet.Include(x => x.Permissions).AsNoTracking().SingleOrDefaultAsync(x => x.Id == id, token);
}

I think that would make the process of writing derivative repositories easier.
What I can't do is "make navigation properties work out of the box" - firstly, they contain secrets and if you don't JsonIgnore them, you are in for a world of hurt on the client side.  This makes adding/removign a navigation property a breaking change on your client.  Secondly, I have to list all the navigation properties all the time, resulting in less efficient SQL and the resulting performance degradation for no reason.
Would this work?

Currently we have all our navigation properties marked with JsonIgnore, so this will not be a problem for us, but I agree that the idea of "making navigation properties work out of the box" is not a good idea.
Allowing inheritance from the EntityTableRepository can be useful in this and many other scenarios, but for this scenario I prefer the option of using the IAccessControlProvider.GetDataView directly at the IRepository level to filter the data before it comes from the database. Using the Include approach has an issue if the EntityTableRepository throws a ConflictException or a PreconditionFailedException containing an object that the user should not see in any way.

TO DO:

EF Core repository to use protected / public virtual as appropriate to allow for over-riding.
Suggest bringing the new EF Core repository from v8 since it supports more database types.
Bring EF Core tests from v8 if we do this as we can do live testing of the EF Core repository.

This is a breaking change, so need to number 6.1.0 release.

Using the Include approach has an issue if the EntityTableRepository throws a ConflictException or a PreconditionFailedException containing an object that the user should not see in any way.

Unfortunately, you don’t get it both ways.  Since the same value is used for both including in the conflictexception as to check for visibility, you either need to set things up accordingly (jsonignore, etc.) or do the permissions check some other way.
I can see several ways of doing this, but the insistence on using GetDataView() means all of them will be sub-optimal.  Best I can do is give you the tools and let you use them.

No problem, I'm doing it that way now. The option to inherit from EntityTableRepository is enough for us.

Just checked in the fix here.  The v8 EntityTableRepository is a significant departure from the current EntityTableRepository and was already "virtual" so it could be inherited.  You should check that one out at the same time you are working here.


[CeleryScript] Implement set_pin_io_mode

FarmBot OS Version
8.0.0-rc53
Previous implementation
https://github.com/FarmBot/farmbot_os/blob/1fe52021c71bfe068c2be09bd8ded99c211804f6/lib/farmbot/firmware/uart_handler/uart_handler.ex#L384-L387
https://github.com/FarmBot/farmbot_os/blob/1fe52021c71bfe068c2be09bd8ded99c211804f6/lib/farmbot/firmware/utils.ex#L27-L29

Is set_pin_mode ever used? is it an RPC? I didn't add it to V8 because i couldn't find any usage of it.

Just kidding i found the old RPC. Reimplementing

errors:
function FarmbotCeleryScript.SysCalls.set_pin_io_mode/2 is undefined or private

no function clause matching in FarmbotOS.SysCalls.SetPinIOMode.extract_set_pin_mode/1

STUB HANDLER: unknown code: {"32", {:pin_mode_write, [p: 13, m: 0]}}

Here is the implementation used in production:
{
    "kind": "set_pin_io_mode",
    "args": {
        "pin_number": 13,
        "pin_io_mode": 0
    }
}

https://github.com/FarmBot/farmbot_os/blob/1fe52021c71bfe068c2be09bd8ded99c211804f6/lib/farmbot/celery_script/ast/arg/pin_io_mode.ex#L1-L12


Show visa sponsorship warning

For the next cycle, we will have course-level information about which courses candidates are able to get visa sponsorship for.
Whilst hopefully candidates will spot this as part of browsing and filtering courses on Find, if they do add a course that does not sponsor a visa AND they have said that they do not yet have the right to work or study in the UK, we can display a warning within their application journey.
This should hopefully avoid candidates applying to courses only to be rejected for visa reasons.
We would not block candidates from applying anyway though, as they may be able to obtain the right to work or study via some other route, or may already have this right, but be unsure or have answered the question wrongly.
To be able to display this warning as early as possible, the "Personal details" section has been moved to the top of the task list, as this is where the questions around nationality and the right to work and study are placed:

The question around whether candidates have the right to work or study in the UK has been simplified, as the rest of the guidance will come later.
Before

After

Finally, if the candidate picks a course which doesn't sponsor a visa, and they don't have the right to work or study in the UK, they see this guidance within the Course summary box:

Could we add a full stop?

clutching at straws here, but maybe get rid of have to reduce word count?