Building a Rails application fails because NodeJS isn't installed

I was trying to build a Rails 7 application (with jsbundling-rails installed). While yarn is correctly installed, it fails because there's no version of NodeJS installed:
Running "bundle exec ruby bin/rails assets:precompile (RAILS_ENV=production MALLOC_ARENA_MAX=2 RAILS_LOG_TO_STDOUT=true LANG=C.utf8)"
Yarn requires Node.js 4.0 or higher to be installed.
rails aborted!
jsbundling-rails: Command build failed, ensure yarn is installed and `yarn build` runs without errors

Tasks: TOP => assets:precompile => javascript:build
(See full trace by running task with --trace)
Done "bundle exec ruby bin/rails assets:precompile (RAILS_ENV=prod..." (7.927465337s)
WARNING: Asset precompilation returned non-zero exit code 1. Ignoring.

Here's the complete output of a pack build -v (note that I'm using a custom builder image because of packages needed for building the pg and openssl gems):
Builder eu.gcr.io/shopify-indigo/google-builder-rails is untrusted
As a result, the phases of the lifecycle which require root access will be run in separate trusted ephemeral containers.
For more information, see https://medium.com/buildpacks/faster-more-secure-builds-with-pack-0-11-0-4d0c633ca619
Pulling image eu.gcr.io/shopify-indigo/google-builder-rails:latest
Selected run image gcr.io/buildpacks/gcp/run:v1
Pulling image gcr.io/buildpacks/gcp/run:v1
v1: Pulling from buildpacks/gcp/run
Digest: sha256:ea9b5b1e0fd5680b20b44323155c4648650768424a2194a7671807c86e6dc8b0
Status: Image is up to date for gcr.io/buildpacks/gcp/run:v1
Creating builder with the following buildpacks:
-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>Pulling image buildpacksio/lifecycle:0.15.1
0.15.1: Pulling from buildpacksio/lifecycle
Digest: sha256:a8df5457f121fcdda920cb0dfd15717530ec37334f8b088144d94e182ada6db8
Status: Image is up to date for buildpacksio/lifecycle:0.15.1
Using build cache volume pack-cache-library_shopify-indigo_latest-9a6e9f9acd6a.build
===> ANALYZING
Running the analyzer on OS linux with:
Container Settings:
  Args: /cnb/lifecycle/analyzer -log-level debug -daemon -stack /layers/stack.toml -run-image gcr.io/buildpacks/gcp/run:v1 -launch-cache /launch-cache shopify-indigo
  System Envs: CNB_USER_ID=1000 CNB_GROUP_ID=1000 CNB_PLATFORM_API=0.10
  Image: buildpacksio/lifecycle:0.15.1
  User: root
  Labels: map[author:pack]
Host Settings:
  Binds: /var/run/docker.sock:/var/run/docker.sock pack-cache-library_shopify-indigo_latest-9a6e9f9acd6a.launch:/launch-cache pack-layers-gioytuatgw:/layers pack-app-imxwcfkuew:/workspace
  Network Mode:
[analyzer] Analyzing image "232cc96703c8ac94f4a5fb70a27ef27edb5603df491cfc1ac2bfebb84278460f"
[analyzer] Restoring data for SBOM from previous image
[analyzer] Retrieving previous image SBOM layer for "sha256:827a40f10c0787f7ae4545cf3bc11c131311fae52e2039e17b3ff14e41c7936d"
[analyzer] Analyzing image "64d105639de9a80510a6a4231ebc51c7cbc9da4b4f73343f1caa7e411a4bbb81"
===> DETECTING
Running the detector on OS linux with:
Container Settings:
  Args: /cnb/lifecycle/detector -app /workspace -log-level debug
  System Envs: CNB_PLATFORM_API=0.10
  Image: pack.local/builder/7a6772676f766d747378:latest
  User:
  Labels: map[author:pack]
Host Settings:
  Binds: pack-layers-gioytuatgw:/layers pack-app-imxwcfkuew:/workspace
  Network Mode:
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no project files or .dll files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_FUNCTION_TARGET not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no project files found and GOOGLE_BUILDABLE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no project files or .dll files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no project files or .dll files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: neither pubspec.yaml nor any .dart files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: pubspec.yaml not found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .dart files found
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .go files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_FUNCTION_TARGET not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .go files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .go files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: go.mod not found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .go files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .go files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: go.mod file not found, assuming GOPATH build
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .go files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_JAVA_USE_NATIVE_IMAGE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml or .mvn/extensions.xml.
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_FUNCTION_TARGET not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml, .mvn/extensions.xml, build.gradle, build.gradle.kts, META-INF/MANIFEST.MF, *.java, *.jar
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml or .mvn/extensions.xml.
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_FUNCTION_TARGET not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml, .mvn/extensions.xml, build.gradle, build.gradle.kts, META-INF/MANIFEST.MF, *.java, *.jar
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: neither build.gradle nor build.gradle.kts found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_FUNCTION_TARGET not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml, .mvn/extensions.xml, build.gradle, build.gradle.kts, META-INF/MANIFEST.MF, *.java, *.jar
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: META-INF/MANIFEST.MF not found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml, .mvn/extensions.xml, build.gradle, build.gradle.kts, META-INF/MANIFEST.MF, *.java, *.jar
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml or .mvn/extensions.xml.
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml, .mvn/extensions.xml, build.gradle, build.gradle.kts, META-INF/MANIFEST.MF, *.java, *.jar
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml or .mvn/extensions.xml.
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml, .mvn/extensions.xml, build.gradle, build.gradle.kts, META-INF/MANIFEST.MF, *.java, *.jar
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: neither build.gradle nor build.gradle.kts found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: none of the following found: pom.xml, .mvn/extensions.xml, build.gradle, build.gradle.kts, META-INF/MANIFEST.MF, *.java, *.jar
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: neither build.gradle nor build.gradle.kts found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_CLEAR_SOURCE not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] skip<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: Env var GAE_APPLICATION_YAML_PATH is not set, not a GAE Flex app.
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .py files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: requirements.txt with gunicorn not found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .py files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: GOOGLE_FUNCTION_TARGET not set
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting out: no .py files found
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] fail<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Gemfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Gemfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Gemfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Rails assets to precompile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: found Procfile
[detector] ======== Output<EMAIL_ADDRESS>========
[detector] Opting in: always enabled
[detector] ======== Results ========
[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] Resolving plan... (try #1)
[detector] google.ruby.runtime      0.0.1
[detector] google.ruby.rubygems     0.9.0
[detector] google.ruby.bundle       0.9.0
[detector] google.ruby.rails        0.9.0
[detector] google.config.entrypoint 0.9.0
[detector] google.utils.label       0.0.2
===> RESTORING
Running the restorer on OS linux with:
Container Settings:
  Args: /cnb/lifecycle/restorer -cache-dir /cache -log-level debug
  System Envs: CNB_USER_ID=1000 CNB_GROUP_ID=1000 CNB_PLATFORM_API=0.10
  Image: buildpacksio/lifecycle:0.15.1
  User: root
  Labels: map[author:pack]
Host Settings:
  Binds: pack-cache-library_shopify-indigo_latest-9a6e9f9acd6a.build:/cache pack-layers-gioytuatgw:/layers pack-app-imxwcfkuew:/workspace
  Network Mode:
[restorer] Reading buildpack directory: /layers/google.ruby.runtime
[restorer] Restoring metadata for "google.ruby.runtime:ruby" from app image
[restorer] Writing layer metadata for "google.ruby.runtime:ruby"
[restorer] Not restoring "google.ruby.runtime:ruby" from cache, marked as launch=true
[restorer] Reading buildpack directory: /layers/google.ruby.rubygems
[restorer] Restoring metadata for "google.ruby.rubygems:rubygems" from app image
[restorer] Writing layer metadata for "google.ruby.rubygems:rubygems"
[restorer] Not restoring "google.ruby.rubygems:rubygems" from cache, marked as launch=true
[restorer] Reading buildpack directory: /layers/google.ruby.bundle
[restorer] Restoring metadata for "google.ruby.bundle:gems" from app image
[restorer] Writing layer metadata for "google.ruby.bundle:gems"
[restorer] Not restoring "google.ruby.bundle:gems" from cache, marked as launch=true
[restorer] Reading buildpack directory: /layers/google.ruby.rails
[restorer] Restoring metadata for "google.ruby.rails:yarn" from cache
[restorer] Writing layer metadata for "google.ruby.rails:yarn"
[restorer] Reading buildpack directory: /layers/google.config.entrypoint
[restorer] Reading buildpack directory: /layers/google.utils.label
[restorer] Reading buildpack directory: /layers/google.ruby.runtime
[restorer] Reading buildpack directory item: ruby.toml
[restorer] Restoring data for "google.ruby.runtime:ruby" from cache
[restorer] Reading buildpack directory: /layers/google.ruby.rubygems
[restorer] Reading buildpack directory item: rubygems.toml
[restorer] Restoring data for "google.ruby.rubygems:rubygems" from cache
[restorer] Reading buildpack directory: /layers/google.ruby.bundle
[restorer] Reading buildpack directory item: gems.toml
[restorer] Restoring data for "google.ruby.bundle:gems" from cache
[restorer] Reading buildpack directory: /layers/google.ruby.rails
[restorer] Reading buildpack directory item: yarn.toml
[restorer] Restoring data for "google.ruby.rails:yarn" from cache
[restorer] Reading buildpack directory: /layers/google.config.entrypoint
[restorer] Reading buildpack directory: /layers/google.utils.label
[restorer] Retrieving data for "sha256:40e43c847212a47e3acff2f5c29306011e7093fe2cb4a64371d28ba2195564c6"
[restorer] Retrieving data for "sha256:b31bf7aa3fca0d4f69e48247f1129d2a85a40a2bacd44f2d6437d990145fc16b"
[restorer] Retrieving data for "sha256:103075f572af719b2f5819b1358eee1a1a3ad89f2f312f11d60c890e80f1bbc8"
[restorer] Retrieving data for "sha256:3d811058e0d7003ff3ef9386b4534be3ec1b161d5542f08b92489df90be75659"
===> BUILDING
Running the builder on OS linux with:
Container Settings:
  Args: /cnb/lifecycle/builder -app /workspace -log-level debug
  System Envs: CNB_PLATFORM_API=0.10
  Image: pack.local/builder/7a6772676f766d747378:latest
  User:
  Labels: map[author:pack]
Host Settings:
  Binds: pack-layers-gioytuatgw:/layers pack-app-imxwcfkuew:/workspace
  Network Mode:
[builder] Starting build
[builder] Running build for buildpack<EMAIL_ADDRESS>[builder] Looking up buildpack
[builder] Finding plan
[builder] Creating plan directory
[builder] Preparing paths
[builder] Running build command
[builder] === Ruby - Runtime<EMAIL_ADDRESS>===
[builder] Setting Nodejs runtime version GOOGLE_NODEJS_VERSION: 12.22.12
[builder] Ruby Runtime v3.1.2 cache hit, skipping installation.
[builder] Removing 'tmp' and 'log' directories in user code
[builder] Processing layers
[builder] Updating environment
[builder] Reading output files
[builder] Updating buildpack processes
[builder] Updating process list
[builder] Finished running build for buildpack<EMAIL_ADDRESS>[builder] Running build for buildpack<EMAIL_ADDRESS>[builder] Looking up buildpack
[builder] Finding plan
[builder] Creating plan directory
[builder] Preparing paths
[builder] Running build command
[builder] === Ruby - Rubygems<EMAIL_ADDRESS>===
[builder] 2022/12/20 21:28:14 [DEBUG] GET https://rubygems.org/rubygems/rubygems-3.3.15.tgz
[builder] --------------------------------------------------------------------------------
[builder] Running "ruby setup.rb -E --no-document --destdir /layers/google.ruby.rubygems/rubygems --prefix /"
[builder]   Successfully built RubyGem
[builder]   Name: bundler
[builder]   Version: 2.3.15
[builder]   File: bundler-2.3.15.gem
[builder] Bundler 2.3.15 installed
[builder] RubyGems 3.3.15 installed
[builder] Regenerating binstubs
[builder] Regenerating plugins
[builder]
[builder] # 3.3.15 / 2022-06-01
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Support the change of did_you_mean about `Exception#detailed_message`.
[builder]   Pull request #5560 by mame
[builder] * Installs bundler 2.3.15 as a default gem.
[builder]
[builder] ## Bug fixes:
[builder]
[builder] * Fix loading old marshaled specs including `YAML::PrivateType` constant.
[builder]   Pull request #5415 by deivid-rodriguez
[builder] * Fix rubygems update when non default `--install-dir` is configured. Pull
[builder]   request #5566 by deivid-rodriguez
[builder]
[builder] # 3.3.14 / 2022-05-18
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Installs bundler 2.3.14 as a default gem.
[builder]
[builder] # 3.3.13 / 2022-05-04
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Installs bundler 2.3.13 as a default gem.
[builder]
[builder] ## Bug fixes:
[builder]
[builder] * Fix regression when resolving ruby constraints. Pull request #5486 by
[builder]   deivid-rodriguez
[builder]
[builder] ## Documentation:
[builder]
[builder] * Clarify description of owner-flags. Pull request #5497 by kronn
[builder]
[builder] # 3.3.12 / 2022-04-20
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Less error swallowing when installing gems. Pull request #5475 by
[builder]   deivid-rodriguez
[builder] * Stop considering `RUBY_PATCHLEVEL` for resolution. Pull request #5472 by
[builder]   deivid-rodriguez
[builder] * Bump vendored optparse to latest master. Pull request #5466 by
[builder]   deivid-rodriguez
[builder] * Installs bundler 2.3.12 as a default gem.
[builder]
[builder] ## Documentation:
[builder]
[builder] * Fix formatting in docs. Pull request #5470 by peterzhu2118
[builder] * Fix a typo. Pull request #5401 by znz
[builder]
[builder] # 3.3.11 / 2022-04-07
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Enable mfa on specific keys during gem signin. Pull request #5305 by
[builder]   aellispierce
[builder] * Prefer `__dir__` to `__FILE__`. Pull request #5444 by deivid-rodriguez
[builder] * Add cargo builder for rust extensions. Pull request #5175 by ianks
[builder] * Installs bundler 2.3.11 as a default gem.
[builder]
[builder] ## Documentation:
[builder]
[builder] * Improve RDoc setup. Pull request #5398 by deivid-rodriguez
[builder]
[builder] # 3.3.10 / 2022-03-23
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Installs bundler 2.3.10 as a default gem.
[builder]
[builder] ## Documentation:
[builder]
[builder] * Enable `Gem::Package` example in RDoc documentation. Pull request #5399
[builder]   by nobu
[builder] * Unhide RDoc documentation from top level `Gem` module. Pull request
[builder]   #5396 by nobu
[builder]
[builder] # 3.3.9 / 2022-03-09
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Installs bundler 2.3.9 as a default gem.
[builder]
[builder] # 3.3.8 / 2022-02-23
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Installs bundler 2.3.8 as a default gem.
[builder]
[builder] # 3.3.7 / 2022-02-09
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Installs bundler 2.3.7 as a default gem.
[builder]
[builder] ## Documentation:
[builder]
[builder] * Fix missing rdoc for `Gem::Version`. Pull request #5299 by nevans
[builder]
[builder] # 3.3.6 / 2022-01-26
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Forbid downgrading past the originally shipped version on Ruby 3.1. Pull
[builder]   request #5301 by deivid-rodriguez
[builder] * Support `--enable-load-relative` inside binstubs. Pull request #2929 by
[builder]   deivid-rodriguez
[builder] * Let `Version#<=>` accept a String. Pull request #5275 by amatsuda
[builder] * Installs bundler 2.3.6 as a default gem.
[builder]
[builder] ## Bug fixes:
[builder]
[builder] * Avoid `flock` on non Windows systems, since it causing issues on NFS
[builder]   file systems. Pull request #5278 by deivid-rodriguez
[builder] * Fix `gem update --system`  for already installed version of
[builder]   `rubygems-update`. Pull request #5285 by loadkpi
[builder]
[builder] # 3.3.5 / 2022-01-12
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Don't activate `yaml` gem from RubyGems. Pull request #5266 by
[builder]   deivid-rodriguez
[builder] * Let `gem fetch` understand `<gem>:<version>` syntax and
[builder]   `--[no-]suggestions` flag. Pull request #5242 by ximenasandoval
[builder] * Installs bundler 2.3.5 as a default gem.
[builder]
[builder] ## Bug fixes:
[builder]
[builder] * Fix `gem install <non-existent-gem> --force` crash. Pull request #5262
[builder]   by deivid-rodriguez
[builder] * Fix longstanding `gem install` failure on JRuby. Pull request #5228 by
[builder]   deivid-rodriguez
[builder]
[builder] ## Documentation:
[builder]
[builder] * Markup `Gem::Specification` documentation with RDoc notations. Pull
[builder]   request #5268 by nobu
[builder]
[builder] # 3.3.4 / 2021-12-29
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Don't redownload `rubygems-update` package if already there. Pull
[builder]   request #5230 by deivid-rodriguez
[builder] * Installs bundler 2.3.4 as a default gem.
[builder]
[builder] ## Bug fixes:
[builder]
[builder] * Fix `gem update --system` crashing when latest version not supported.
[builder]   Pull request #5191 by deivid-rodriguez
[builder]
[builder] ## Performance:
[builder]
[builder] * Make SpecificationPolicy autoload constant. Pull request #5222 by pocke
[builder]
[builder] # 3.3.3 / 2021-12-24
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Installs bundler 2.3.3 as a default gem.
[builder]
[builder] ## Bug fixes:
[builder]
[builder] * Fix gem installation failing in Solaris due to bad `IO#flock` usage.
[builder]   Pull request #5216 by mame
[builder]
[builder] # 3.3.2 / 2021-12-23
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Fix deprecations when activating DidYouMean for misspelled command
[builder]   suggestions. Pull request #5211 by yuki24
[builder] * Installs bundler 2.3.2 as a default gem.
[builder]
[builder] ## Bug fixes:
[builder]
[builder] * Fix gemspec truncation. Pull request #5208 by deivid-rodriguez
[builder]
[builder] # 3.3.1 / 2021-12-22
[builder]
[builder] ## Enhancements:
[builder]
[builder] * Fix compatibility with OpenSSL 3.0. Pull request #5196 by rhenium
[builder] * Remove hard errors when matching major bundler not found. Pull request
[builder]   #5181 by deivid-rodriguez
[builder] * Installs bundler 2.3.1 as a default gem.
[builder]
[builder]
[builder] ------------------------------------------------------------------------------
[builder]
[builder] RubyGems installed the following executables:
[builder] 	/layers/google.ruby.rubygems/rubygems/bin/gem
[builder] 	/layers/google.ruby.rubygems/rubygems/bin/bundle
[builder] 	/layers/google.ruby.rubygems/rubygems/bin/bundler
[builder]
[builder] Done "ruby setup.rb -E --no-document --destdir /layers/google.ruby..." (2.316992334s)
[builder] Processing layers
[builder] Updating environment
[builder] Reading output files
[builder] Updating buildpack processes
[builder] Updating process list
[builder] Finished running build for buildpack<EMAIL_ADDRESS>[builder] Running build for buildpack<EMAIL_ADDRESS>[builder] Looking up buildpack
[builder] Finding plan
[builder] Creating plan directory
[builder] Preparing paths
[builder] Running build command
[builder] === Ruby - Bundle<EMAIL_ADDRESS>===
[builder] Dependencies cache hit, skipping installation.
[builder] --------------------------------------------------------------------------------
[builder] Running "bundle config --local without development test"
[builder] Done "bundle config --local without development test" (835.940667ms)
[builder] --------------------------------------------------------------------------------
[builder] Running "bundle config --local path .bundle/gems"
[builder] Done "bundle config --local path .bundle/gems" (829.303334ms)
[builder] --------------------------------------------------------------------------------
[builder] Running "bundle lock --add-platform x86_64-linux"
[builder] Writing lockfile to /workspace/Gemfile.lock
[builder] Done "bundle lock --add-platform x86_64-linux" (1.455331167s)
[builder] --------------------------------------------------------------------------------
[builder] Running "bundle lock --add-platform ruby"
[builder] Fetching gem metadata from https://rubygems.org/..........
[builder] Resolving dependencies.......................
[builder] Writing lockfile to /workspace/Gemfile.lock
[builder] Done "bundle lock --add-platform ruby" (15.42085509s)
[builder] Processing layers
[builder] Updating environment
[builder] Reading output files
[builder] Updating buildpack processes
[builder] Updating process list
[builder] Finished running build for buildpack<EMAIL_ADDRESS>[builder] Running build for buildpack<EMAIL_ADDRESS>[builder] Looking up buildpack
[builder] Finding plan
[builder] Creating plan directory
[builder] Preparing paths
[builder] Running build command
[builder] === Ruby - Rails<EMAIL_ADDRESS>===
[builder] Running Rails asset precompilation
[builder] 2022/12/20 21:28:36 [DEBUG] GET https://registry.npmjs.org/yarn
[builder] Yarn cache hit, skipping installation.
[builder] --------------------------------------------------------------------------------
[builder] Running "bundle exec ruby bin/rails assets:precompile (RAILS_ENV=production MALLOC_ARENA_MAX=2 RAILS_LOG_TO_STDOUT=true LANG=C.utf8)"
[builder] Yarn requires Node.js 4.0 or higher to be installed.
[builder] rails aborted!
[builder] jsbundling-rails: Command build failed, ensure yarn is installed and `yarn build` runs without errors
[builder]
[builder] Tasks: TOP => assets:precompile => javascript:build
[builder] (See full trace by running task with --trace)
[builder] Done "bundle exec ruby bin/rails assets:precompile (RAILS_ENV=prod..." (7.952995671s)
[builder] WARNING: Asset precompilation returned non-zero exit code 1.  We'll take a look at it.

I have a change out to fix this. The OSS builder, the one you are using, has not supported Rails asset precompilation till now. Once this change is in, the NodeJS buildpack should be installed.
To work around this issue without the upcoming fix, you can locally run bundle exec ruby bin/rails assets:precompile and deploy the app. This leads to the asset precompilation being done locally, so the "rails" buildpack will not be executed during app deployment.

The change is in. @clupprich Can you retry your build?

Hm, this isn't yet live on gcr.io/buildpacks/builder, right? Cause the latest tag there is still from December 13.

Ah right, we have a holiday freeze going on, so the next builder image will be published on 2023-01-03.
There are 2 workarounds for now:

Use the Ruby language-specific builder at gcr.io/gae-runtimes/buildpacks/ruby/builder
Do asset precompilation locally (bundle exec ruby bin/rails assets:precompile) and then create the application image

@clupprich IIUC, when you use pack build to create your app container, you are able to create a container, but since the asset precompilation step has failed, the app is not able to serve some assets?

*For clarification, the latest gcr.io/buildpacks/builder image will be published on January 3rd, 2023.

@shreejad No worries, I can totally wait those couple of days.
You're right - the image can be built, but assets are missing.

@shreejad Sorry, I forgot about this over the holidays.
So building the example repo with the gcr.io/buildpacks/builder image works now, the nodejs buildpack gets detected and used:
===> DETECTING
[detector] google.ruby.runtime      0.0.1
[detector] google.ruby.rubygems     0.9.0
[detector] google.ruby.bundle       0.9.0
[detector] google.nodejs.runtime    1.0.0
[detector] google.ruby.rails        0.9.0
[detector] google.config.entrypoint 0.9.0
[detector] google.utils.label       0.0.2

However, when using a custom build image (because I need some more dependencies to build the gem for Postgres), the nodejs buildpack doesn't get detected:
===> DETECTING
[detector] google.ruby.runtime      0.0.1
[detector] google.ruby.rubygems     0.9.0
[detector] google.ruby.bundle       0.9.0
[detector] google.ruby.rails        0.9.0
[detector] google.config.entrypoint 0.9.0
[detector] google.utils.label       0.0.2

That's odd, and I'm wondering what I'm doing wrong. Here's the builder.Dockerfile I'm using (taken & modified from https://cloud.google.com/docs/buildpacks/build-run-image):
FROM gcr.io/buildpacks/builder
USER root
RUN apt-get update && apt-get install -y --no-install-recommends \
  libssl-dev libpq-dev && \
  apt-get clean && \
  rm -rf /var/lib/apt/lists/*
USER cnb


Fix policy assignment list

Fix #9555.

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

[X] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

[X] I adhere to the Command Guidelines.

@tjprescott approved


feat: upgrade modules and add resiliency by default

Overview/Summary
Replace this with a brief description of what this Pull Request fixes, changes, etc.
This PR fixes/adds/changes/removes

Replace me
Replace me
Replace me

Breaking Changes

Replace me
Replace me

Testing Evidence
Please provide any testing evidence to show that your Pull Request works/fixes as described and planned (include screenshots, if appropriate).
As part of this Pull Request I have

[ ] Checked for duplicate Pull Requests
[ ] Associated it with relevant issues, for tracking and closure.
[ ] Ensured my code/branch is up-to-date with the latest changes in the main branch
[ ] Performed testing and provided evidence.
[ ] Updated relevant and associated documentation.

@luke-taylor I think you may have missed these files? https://github.com/Azure/alz-terraform-accelerator/tree/main/docs/wiki/examples/starter-module-config/complete


ACLs applied on project creation are wrong

This can be reproduced by the test on ViewsSpec (integration tests):

Set permissions orgs/create  to /org1
Create the org1
Attempt to create org1/proj1  gives back a forbidden

But It works If I change the test to do:

Set permissions orgs/create  to /
Create the org1
Creates org1/proj1

The ACLs applied on project creation are correct. In the case in the issue description,   if you set orgs/create on /org1, before creating the organization, the owner permissions for org1 will not be applied, because we don't override existing permissions. The result is that when you create org1 you still only have orgs/create  permissions on the org, but none of the other permissions, especially projects/create.  Therefore it's not possible to create the project.

expected behavior

expected behavior


Adding MMTk to upstream Julia

This PR enables MMTk as an external GC to Julia. It separates the changes from refactoring common code, and actually adding MMTk. It only supports non-moving immix and will be extended in further PRs to support sticky immix and moving GC.

We should check with the Julia guys to see how MMTk should be plugged into their build system. They mentioned that they have a convention for including third party libraries. We should check with them if we want to adopt their convention in this PR or leave it later.
Our current approach (including this PR) is to build the Rust binary manually and separately, and let the build system build the C files and link with the Rust binary. Regardless of the Julia convention, this sounds less ideal either. Ideally, the Rust binary should be built automatically based on the configuration we set.

Here are also a few questions that need to be answered:

How to integrate MMTk into Julia's build system? Note that we have a few build steps added to some of Makefile files.
There is some C code that lives in the binding at the moment (essentially the code we call using the UPCALLS static variable from Rust. I've thought about moving that code to Julia, and integrating it into the gc-mmtk.c, gc-mmtk.h and gc-tls-mmtk.h files. That way we'd only have the Rust code living separate from the main Julia repo/code.


Updater Updates Regardless of Version

Keybase GUI Version: 1.0.13-20160223105128+aaabcc9
Before running keybase update check;
λ keybase version
Client:  1.0.13-20160223105128+aaabcc9
Service: 1.0.13-20160223105128+aaabcc9

Then;
λ keybase update check
- INFO Checking for update, current version is 1.0.13-20160223105128+aaabcc9
- INFO Using updater source: Remote ({redacted})
- INFO Request "{redacted}"
- INFO Checking update with version: 1.0.13-20160223130514+aaabcc9
- INFO Request {redacted}
- INFO Downloading to C:\Users\zqueal\AppData\Local\Temp\KeybaseUpdates\keybase_setup_gui_1.0.13-20160223105128+aaabcc9.386.exe.download
- INFO Downloaded 51949096 bytes
- INFO Verified digest: c1b17281fd781555bd7620bdccf2cbc95fa6f4a8c7aec20a6e4d2e7775ecde89 (C:\Users\zqueal\AppData\Local\Temp\KeybaseUpdates\keybase_setup_gui_1.0.13-20160223105128+aaabcc9.386.exe.download)
- INFO Moving keybase_setup_gui_1.0.13-20160223105128+aaabcc9.386.exe.download to keybase_setup_gui_1.0.13-20160223105128+aaabcc9.386.exe
- INFO Restarting app
- WARNING App quit (for restart) was canceled or unsupported after update
- ERROR EOF

Then running keybase version again;
λ keybase version
Client:  1.0.13-20160223105128+aaabcc9
Service: 1.0.13-20160223105128+aaabcc9

No real need to update, but the updater re-downloads the current version and re-installs it. The biggest issue with this, is after Keybase re-installs the same version of itself the virtual disk which hosts Keybase files returns this error on access;

And forces a restart to fix it.

Thanks for the report, adding @zanderz.

The spurious downloads were caused by a faulty configuration on the server, and should be fixed for now.
Losing drive K: access after upgrade may be a separate problem. There will be a period of time when the mounted KBFS drive is unavailable because the local keybase service goes down, but it shouldn't require a reboot unless drivers are being updated, which they haven't been yet. We'll keep an eye on this.

Then I'm going to assume this was a crazy one time coincidence caused by Keybase being down and close this ticket. If I see it again I'll just reopen it.
Thanks!


Login Page Done!!!

issue #181
After Changes :
20240513-1403-50.0317982.zip

Conflicting files
assets/css/style.css
assets/html/login.html
Resolve above issues & raise PR again

Is that issue in style.css???


(docs) Document the control repository pattern

Document a common pattern for sharing tasks and plans that are setup -
with dependencies - for others to run.

I could also add something called "the Boltdir pattern" around putting all your deployment code for a project there. @melamos thoughts on where this should be located? I put it around "writing tasks and plans" because that's where I think it becomes relevant. Folks just using a project shouldn't need to look at docs around how it was setup.

I could also add something called "the Boltdir pattern" around putting all your deployment code for a project there. @melamos thoughts on where this should be located? I put it around "writing tasks and plans" because that's where I think it becomes relevant. Folks just using a project shouldn't need to look at docs around how it was setup.

I'm still getting my bearings in the Bolt docs, so I'll defer to wherever you think this should go.

CLA signed by all contributors.


IT - RU

Hi! Is possible add Italian - Russian dictionary??

I generated it and you can manually download it from here and install it into the dictionary data directory:
https://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/IT-RU.quickdic.v007.zip
It will also be downloadable from the app with the next release, but it might be a while before I publish the next release.

Forgot to say: untested. Reopen if there are issues with it.


refactor: Dynamically fetch values of constants that rely on the environment

Closes #825
This will be a follow-up PR to #820

Closing this in favor of #856


support juicefs client as sidecar in application pod

close https://github.com/juicedata/juicefs-csi-driver/issues/448

Codecov Report
Base: 46.85% // Head: 46.20% // Decreases project coverage by -0.65% :warning:

Coverage data is based on head (f4ed6c6) compared to base (688d330).
Patch coverage: 28.23% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #454      +/-   ##
==========================================
- Coverage   46.85%   46.20%   -0.66%
==========================================
  Files          27       29       +2
  Lines        2834     2887      +53
==========================================
+ Hits         1328     1334       +6
- Misses       1407     1454      +47
  Partials       99       99

Impacted Files
Coverage Δ

pkg/config/config.go
0.00% <ø> (ø)

pkg/controller/cert_controller.go
0.00% <0.00%> (ø)

pkg/controller/mount_controller.go
0.00% <ø> (ø)

pkg/controller/pod_driver.go
46.20% <ø> (ø)

pkg/controller/reconciler.go
0.00% <ø> (ø)

pkg/driver/controller.go
91.20% <ø> (ø)

pkg/driver/fakes.go
0.00% <ø> (ø)

pkg/driver/node.go
92.00% <ø> (ø)

pkg/driver/provisioner.go
5.61% <0.00%> (ø)

pkg/juicefs/mount/builder/container.go
0.00% <0.00%> (ø)

... and 12 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

I will split this PR into some small PRs and keep main feature more clear.

after https://github.com/juicedata/juicefs-csi-driver/pull/458 and https://github.com/juicedata/juicefs-csi-driver/pull/461


Crafting: Custom recipes via API/IMC

Closing; no longer needed, other mods can simply specify JSON recipes per the recipe loading system and datapacks.


[5.9] Remove feature flag for quicknav preview

Explanation: Removes feature flag for Quick Navigation preview functionality
Scope: Small JS conditional logic change
Issue: rdar://108375829
Risk: Low, minor conditional logic changes
Testing: Updated unit tests and manually verified that the feature is now enabled by default.
Reviewer: @dobromir-hristov
Original PR: #602

@swift-ci test

@swift-ci test


Roll Engine from f1355815488f to 1c4a82fc6d9b (6 revisions)

https://github.com/flutter/engine/compare/f1355815488f...1c4a82fc6d9b
2020-06-19<EMAIL_ADDRESS>Roll Dart SDK from 62cc07dbca3b to 7e72c9ae7ef1 (20 revisions) (flutter/engine#19165)
2020-06-19<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from 4Tot8... to 7tx5F... (flutter/engine#19156)
2020-06-19<EMAIL_ADDRESS>Teach web_sdk/sdk_rewritter.dart how to write a stamp file. (flutter/engine#19114)
2020-06-19<EMAIL_ADDRESS>Roll Skia from 92887b547497 to d610c751569a (9 revisions) (flutter/engine#19140)
2020-06-19<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from eqQfp... to ZyhoC... (flutter/engine#19139)
2020-06-18<EMAIL_ADDRESS>[web] Running integration tests on Safari on Local (flutter/engine#18488)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from 4Tot8_P8UHRc to 7tx5FDFGTSLg
fuchsia/sdk/core/mac-amd64 from eqQfp3p4QMdz to ZyhoCVg9RlS9
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


Tag, you're it!

See second commit for the meat.

Pull Request Test Coverage Report for Build 600

35 of 68 (51.47%)  changed or added relevant lines in 9 files are covered.
11 unchanged lines in 4 files lost coverage.
Overall coverage increased (+0.04%) to 57.635%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Clapi/Types/Path.hs
4
5
80.0%

src/Clapi/Types/Definitions.hs
1
2
50.0%

src/Clapi/Relay.hs
3
5
60.0%

src/Clapi/Valuespace.hs
15
21
71.43%

src/Clapi/Types/Digests.hs
6
16
37.5%

src/Clapi/Types/Messages.hs
0
13
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/Clapi/Relay.hs
1
49.59%

src/Clapi/Types/Messages.hs
2
0.0%

src/Clapi/Valuespace.hs
3
60.4%

src/Clapi/Types/Digests.hs
5
17.32%

Totals

Change from base Build 598:
0.04%

Covered Lines:
1238

Relevant Lines:
2148

💛  - Coveralls

Instead of worrying about absolute and relative paths, we're going to try namespacing client bundles too in a separate PR. The tidies from this have been included in #111 so we don't lose them.


Remove unused simple server

as discussed, we want to keep this and have it in its own section.
so far it's not appearing at all.


is it possible to get a local ver. of this running?

I'm trying to get a local sandbox of the server running, but I'm getting this error when trying to cabal install
Configuring elm-public-library-0.1...
Building elm-public-library-0.1...
Failed to install elm-public-library-0.1
Build log ( /home/burabure/proyectos/elm/package.elm-lang.org/.cabal-sandbox/logs/elm-public-library-0.1.log ):
Configuring elm-public-library-0.1...
Building elm-public-library-0.1...
Preprocessing executable 'run-server' for elm-public-library-0.1...

src/backend/PackageSummary.hs:12:18:
    Could not find module `Elm.Package'
    Use -v to see a list of the files searched for.
cabal: Error: some packages failed to install:
elm-public-library-0.1 failed during the building phase. The exception was:
ExitFailure 1

Does reading this conversation, until the end, help answer your concern?

That worked! thanks!
For anyone wondering you MUST compile elm from source, clone the repo inside the built elm version dir, and then
git checkout master
cabal sandbox init --sandbox ../.cabal-sandbox
cabal install --only-dependencies
cabal configure
cabal build
./dist/build/run-server/run-server

Once the server is built you don't really need the elm that you built from source

If something can be improved to get a local version running, please open a new issue describing what needs to be done. Given that the original question has been answered, I'm closing this issue.


Sympy Update to 1.6.2

There is a new bug in sympy v1.6.2 that disallows this merge:
https://github.com/sympy/sympy/issues/20161


-fopenmp, zopen error

Hi,
I am using Mac OSX El Capitan and when executing python setup.py install I get the following error:

/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Volumes/Macintosh/Users/lucasrodes/Documents/Exercise_2/srilm/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c srilm.cpp -o build/temp.macosx-10.6-intel-2.7/srilm.o -fopenmp
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
error: command '/usr/bin/clang' failed with exit status 1

I read the other issues and I replaced in the setup.py file ['-fopenmp'] for [] but another error appeared:

/Volumes/Macintosh/Users/lucasrodes/Documents/Exercise_2/srilm/include/zio.h:105:8: error: conflicting types for 'zopen'
FILE *  zopen (const char *name, const char *mode);
^
/usr/include/stdio.h:463:7: note: previous declaration is here
FILE    *zopen(const char *, const char *, int);
^
1 error generated.
error: command '/usr/bin/clang' failed with exit status 1

Any ideas?

That's a conflict between SRILM code (srilm/include/zio.h) and OS X system code (/usr/include/stdio.h) -- not much that pysrilm can do about it as far as I can see :-(. pysrilm doesn't even include either of those files itself. I guess you could try filing a bug upstream with the SRILM maintainers?
I just went googling and the first thing was you running into the same bug with a different srilm wrapper... https://github.com/desilinguist/swig-srilm/issues/6
which makes sense, since it's not a bug in the wrapper but rather a bug in SRILM itself. Good luck?

Thanks for the quick response!
I'll take a look. I am currently trying to make to work lots of bindings but none seem to work...

I am currently trying to make to work lots of bindings but none seem to work...

Yes, because the problem is on SRILM, not in the bindings :-). You need to contact<EMAIL_ADDRESS>as described at the bottom of the SRILM home page: http://www.speech.sri.com/projects/srilm/


chore: Contact us form iteration

Fixes #2891
Based on request in Docs: https://docs.google.com/document/d/1nnqsEPBk91C1eYMGhttEogwYwPlAYlkachNUQNx3QO4/edit#heading=h.16o9z4jlvo7p
Mocked up updates in Figma:
https://www.figma.com/file/ystH4vh0X7PWobLenXRjK7/Untitled?type=design&node-id=1-789&mode=design&t=O7BukuPJlCQ7KCai-0
What's left:

[ ] Make sector or branch and job title optional fields

@anikbrazeau I pushed a small update to remove the required labels from the fields
https://github.com/cds-snc/platform-forms-client/pull/2899/commits/10c5f67e1fa2627c3c02fd8d70cc74629e3e2654


Warnings on start-ui

Lots of deprecated warnings when starting the development server:
Starting the development server...

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($px, $carbon--base-font-size)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
25 │   @return ($px / $carbon--base-font-size) * 1rem;
   │            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
<EMAIL_ADDRESS>25:12     carbon--rem()
<EMAIL_ADDRESS>16:23  @import
<EMAIL_ADDRESS>8:9          @import
<EMAIL_ADDRESS>10:9          @import
    node_modules/carbon-components/scss/globals/scss/_css--reset.scss 9:9                                        @import
    node_modules/carbon-components/scss/globals/scss/_helper-mixins.scss 23:9                                    @import
    node_modules/carbon-components/scss/globals/scss/_theme.scss 8:9                                             @import
    node_modules/carbon-components/scss/globals/scss/styles.scss 67:9                                            @import
    stdin 11:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($step - 2, 4)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
20 │   @return carbon--get-type-size($step - 1) + (floor(($step - 2) / 4) + 1) * 2;
   │                                                     ^^^^^^^^^^^^^^^
   ╵
<EMAIL_ADDRESS>20:53  carbon--get-type-size()
<EMAIL_ADDRESS>31:17  @import
<EMAIL_ADDRESS>10:9  @import
<EMAIL_ADDRESS>10:9   @import
    node_modules/carbon-components/scss/globals/scss/_css--reset.scss 9:9                                 @import
    node_modules/carbon-components/scss/globals/scss/_helper-mixins.scss 23:9                             @import
    node_modules/carbon-components/scss/globals/scss/_theme.scss 8:9                                      @import
    node_modules/carbon-components/scss/globals/scss/styles.scss 67:9                                     @import
    stdin 11:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($width - 2 * $margin, $columns)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
27 │     @return ($width - (2 * $margin)) / $columns;
   │             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
<EMAIL_ADDRESS>27:13  carbon--get-column-width()
<EMAIL_ADDRESS>38:5   @import
<EMAIL_ADDRESS>12:9        @import
    node_modules/carbon-components/scss/globals/scss/_layout.scss 9:9                                            @import
    node_modules/carbon-components/scss/globals/scss/styles.scss 69:9                                            @import
    stdin 11:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($carbon--grid-gutter, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

    ╷
328 │         padding-right: #{($carbon--grid-gutter / 2) + $margin};
    │                           ^^^^^^^^^^^^^^^^^^^^^^^^
    ╵
<EMAIL_ADDRESS>328:27           @content
<EMAIL_ADDRESS>236:5      @content
<EMAIL_ADDRESS>143:7      carbon--breakpoint-up()
<EMAIL_ADDRESS>235:3      carbon--breakpoint()
<EMAIL_ADDRESS>327:7            carbon--make-container()
<EMAIL_ADDRESS>371:5            carbon--grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 15:5                                                 grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 48:3                                                 @content
<EMAIL_ADDRESS>23:5  exports()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 47:1                                                 @import
    node_modules/carbon-components/scss/globals/scss/styles.scss 78:9                                                @import
    stdin 11:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($carbon--grid-gutter, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

    ╷
329 │         padding-left: #{($carbon--grid-gutter / 2) + $margin};
    │                          ^^^^^^^^^^^^^^^^^^^^^^^^
    ╵
<EMAIL_ADDRESS>329:26           @content
<EMAIL_ADDRESS>236:5      @content
<EMAIL_ADDRESS>143:7      carbon--breakpoint-up()
<EMAIL_ADDRESS>235:3      carbon--breakpoint()
<EMAIL_ADDRESS>327:7            carbon--make-container()
<EMAIL_ADDRESS>371:5            carbon--grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 15:5                                                 grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 48:3                                                 @content
<EMAIL_ADDRESS>23:5  exports()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 47:1                                                 @import
    node_modules/carbon-components/scss/globals/scss/styles.scss 78:9                                                @import
    stdin 11:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($px, $carbon--base-font-size)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
25 │   @return ($px / $carbon--base-font-size) * 1rem;
   │            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   ╵
<EMAIL_ADDRESS>25:12     carbon--rem()
<EMAIL_ADDRESS>16:23  @import
<EMAIL_ADDRESS>8:9          @import
<EMAIL_ADDRESS>10:9          @import
    node_modules/carbon-components/scss/globals/scss/_css--reset.scss 9:9                                        @import
    node_modules/carbon-components/scss/globals/scss/_helper-mixins.scss 23:9                                    @import
    node_modules/carbon-components/scss/globals/scss/_mixins.scss 8:9                                            @import
    node_modules/carbon-components/scss/globals/grid/_grid.scss 10:9                                             @import
    stdin 11:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($step - 2, 4)

More info and automated migrator: https://sass-lang.com/d/slash-div

   ╷
20 │   @return carbon--get-type-size($step - 1) + (floor(($step - 2) / 4) + 1) * 2;
   │                                                     ^^^^^^^^^^^^^^^
   ╵
<EMAIL_ADDRESS>20:53  carbon--get-type-size()
<EMAIL_ADDRESS>31:17  @import
<EMAIL_ADDRESS>10:9  @import
<EMAIL_ADDRESS>10:9   @import
    node_modules/carbon-components/scss/globals/scss/_css--reset.scss 9:9                                 @import
    node_modules/carbon-components/scss/globals/scss/_helper-mixins.scss 23:9                             @import
    node_modules/carbon-components/scss/globals/scss/_mixins.scss 8:9                                     @import
    node_modules/carbon-components/scss/globals/grid/_grid.scss 10:9                                      @import
    stdin 11:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($carbon--grid-gutter, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

    ╷
328 │         padding-right: #{($carbon--grid-gutter / 2) + $margin};
    │                           ^^^^^^^^^^^^^^^^^^^^^^^^
    ╵
<EMAIL_ADDRESS>328:27           @content
<EMAIL_ADDRESS>236:5      @content
<EMAIL_ADDRESS>143:7      carbon--breakpoint-up()
<EMAIL_ADDRESS>235:3      carbon--breakpoint()
<EMAIL_ADDRESS>327:7            carbon--make-container()
<EMAIL_ADDRESS>371:5            carbon--grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 15:5                                                 grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 48:3                                                 @content
<EMAIL_ADDRESS>23:5  exports()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 47:1                                                 @import
    stdin 11:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($carbon--grid-gutter, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

    ╷
329 │         padding-left: #{($carbon--grid-gutter / 2) + $margin};
    │                          ^^^^^^^^^^^^^^^^^^^^^^^^
    ╵
<EMAIL_ADDRESS>329:26           @content
<EMAIL_ADDRESS>236:5      @content
<EMAIL_ADDRESS>143:7      carbon--breakpoint-up()
<EMAIL_ADDRESS>235:3      carbon--breakpoint()
<EMAIL_ADDRESS>327:7            carbon--make-container()
<EMAIL_ADDRESS>371:5            carbon--grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 15:5                                                 grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 48:3                                                 @content
<EMAIL_ADDRESS>23:5  exports()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 47:1                                                 @import
    stdin 11:9                                                                                root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($carbon--grid-gutter, 2)

More info and automated migrator: https://sass-lang.com/d/slash-div

    ╷
322 │           padding-right: #{($carbon--grid-gutter / 2) + $margin};
    │                             ^^^^^^^^^^^^^^^^^^^^^^^^
    ╵
<EMAIL_ADDRESS>322:29           @content
<EMAIL_ADDRESS>236:5      @content
<EMAIL_ADDRESS>146:9      carbon--breakpoint-up()
<EMAIL_ADDRESS>235:3      carbon--breakpoint()
<EMAIL_ADDRESS>321:9            carbon--make-container()
<EMAIL_ADDRESS>371:5            carbon--grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 15:5                                                 grid()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 48:3                                                 @content
<EMAIL_ADDRESS>23:5  exports()
    node_modules/carbon-components/scss/globals/grid/_grid.scss 47:1                                                 @import
    stdin 11:9

WARNING: 31 repetitive deprecation warnings omitted.

WARNING: 22 repetitive deprecation warnings omitted.

I upgraded to the latest version of carbon-components but it still shows this error. Since it's in the upstream package, I can't make. a local change for it.

I can't fix this since it's upstream, so closing.


CezerinClient is not a constructor

Hi, i've got this issue when run the project, please suggest, it worked fine on last few days a go but when update the cezerin-client it show this error.

i have a same error . it is "cezerin2-client": "^0.35.0",. how to fix it. pls!!


recursive select calls are parsed with bad trailing_commas parameter

The parse_projection function modifies the parsers 'options' flag,  this creates different behavior when nesting select calls i.e. select(select()) which can manifest in failure to parse (see unit test)

Thanks for the review @iffyio, changes committed per your suggestions


enable building on non-x86

Hey @edawson, can you merge this? Benedict wants to try ARM builds of vg now, and I think we need this.

Friendly ping :-)


chore(Dependencies) : update zio-logging-slf4j from 0.5.4 to 0.5.5

Updates dev.zio:zio-logging-slf4j from 0.5.4 to 0.5.5.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio", artifactId = "zio-logging-slf4j" } ]

labels: library-update, semver-patch

Superseded by #192.

Superseded by #192.


'y_true' tensors contain non-0/1 values in binary classification task

My custom metric functions are not producing expected results in keras. I've narrowed down the issue down to the y_true tensor passed to the scoring function.
The y_true tensors appear to contain floats inbetween 0 and 1, even in binary classification tasks where the true y's should only be 0's and 1's.
The can be reproduced in the keras IMDB CNN example, by adding the following simple functions to demonstrate:
def y_sum(y_true, y_pred):
    """sum of 0/1s should be int"""
    return K.sum(y_true)

def y_ones(y_true, y_pred):
    """count the ones"""
    return T.eq(y_true, 1).nonzero()[0].shape[0]

def y_zeros(y_true, y_pred):
    """count the zeros"""
    return T.eq(y_true, 0).nonzero()[0].shape[0]

def y_element(y_true, y_pred):
    """return a single element from the y_trues"""
    return y_true[0][0]

and using these by changing the model.compile line to:
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=[y_sum, y_ones, y_zeros, y_element])

Given the y_train numpy array of true labels contains solely 0/1s, I would expect the following metrics to return integers, however, on fitting, all of them return non-integer values, indicating there are non 0/1 values in the y_trues. E.g.:
Epoch 1/2
 1856/25000 [=>............................] - ETA: 67s - loss: 0.6872 - y_sum: 8.1293 - y_ones: 8.1293 - y_zeros: 7.8707 - y_element: 0.5259

Thank you for any help, and my apologies if I have misunderstood what should be happening here!

If you check the np arrays returned by imdb.load_data, you will notice that y_test and y_train do actually contain only integers valued 0 or 1, and their data type is int64. The metrics displayed during training, however, are averaged over the entire training epoch, and are therefore real-valued.

thank you! hadn't spotted that it's the averaged metrics which are reported, hence these would be expected to be non-integers in those cases. Closing as the issue was mine not keras's!


WIll jaeger care about removing old spans?

My question is: will removing old spans upset any operations of jaeger?
For context: I've been setting up jaeger in production and want to add a curator job for removing old elasticsearch indexes -- I'm just wondering how jaeger will react.
Specifically for elasticsearch: should corresponding span and service entries be removed? Say jaeger-span-2018-03-17, should I also remove jaeger-service-2018-03-17?
PS. I'm not sure if this is the best place to ask this. Let me know if it's not :sweat_smile:

This is fine and expected. We even have an existing script that uses curator to purge older data: https://github.com/jaegertracing/jaeger/blob/master/plugin/storage/es/esCleaner.py

@black-adder could you please add a paragraph to the docs about this?

@yurishkuro is the esCleaner docker image built and pushed to the Docker hub? I can't seem to find it under the jaegertracing organization.

@tanuck https://hub.docker.com/r/jaegertracing/jaeger-es-index-cleaner/

@black-adder thanks! Don't know how I missed that.


use FCITX_ADDON_FACTORY_V2

For iOS build.

Can you change it to
#ifdef FCITX_ADDON_FACTORY_V2
#endif

For mozc is somewhat different and there's no explicit check on which fcitx5 version is required. I'd prefer to keep it more compatible with older fcitx5.


Dynamic lane selection causes trains to get stuck

Describe the problem
It appears that TM:PE has a bug which causes trains to get stuck at the edge of the map. With dynamic lane selection turned up, trains will sometimes try to enter the map on the same lane as trains trying to leave the map. this causes a backup that is difficult or impossible to clear.
Steps to reproduce

Turn up Dynamic lane selection. I do not know the exact percentage that dynamic lane selection needs to be turned up to, in order to get the bug to happen, but it seems like the higher the percentage the more likely it is to happen.
Have some cargo train terminals - not sure if their quantity, location or which side of the track they are on makes a difference, but in two of my maps that this has happened to, I had two or more of them.
Wait.... eventually a train will try to enter the map from the same track that another train is trying to exit.

Can be fixed by using a map editing tool to separate incoming/outgoing tracks into single lane tracks.
Log files

Savegame?

Screenshots?

Notes or questions?

Interesting, I must check, but it sounds weird 🤔

Are you sure it was an incoming train on an outgoing track?
The problem I usually see with trains getting stuck at edge of map is due to the segment at map edge being too short. If I extend the segment (the one at the outside connection) to be longer than the train, using Move It mod, the trains no longer get stuck at the edge. The segment should be longer than your longest cargo/passenger train (the segment at edge is acting like a station track, hence the X crossover rails at the end of it) - if a train is longer than station track, game gets confused and train can get stuck for some time causing 'train jam'.

See response above, explains one of known causes of that issue. TM:PE DLS does not affect trains at all so it's impossible to be the cause.


Remove unnecessary braces

Remove the unnecessary braces to eliminate the rust-analyzer warning,.
This is trivial, but it causes rust-analyzer to constantly flag a warning, and a simple change removes it.
I also added a comma at the end, again trivial but as someone who speaks Rust as a second language I have read this is what is normally done and I only mention it to get feedback on if that is correct or not.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.156%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
19569

Relevant Lines:
23533

💛  - Coveralls

I can't talk for rust-analyzer since I don't use it but one thing I sometimes do is throw a dummy use statement below the rustfmt::skip so that rustfmt will format the block in question while not merging it with the other use statements.

I also added a comma at the end

Commas are optional in a few places, I typically just let rustfmt decide where to put them.


Docs on https://wix.github.io/detox/ are outdated?

Description
Subject. Docs on https://wix.github.io/detox/ show version as 8.1.6, however there are actually many newer 8.x versions and even 9.x versions. Also I wasn't able to find a link to those github.io docs and ended up typing the address manually. Are those docs not supported? If they are, how about revising them and putting a link to repo description, where many other repos has links to their docs?

@DanielMSchmidt , how do you think, could it be a flaky deploy CI job? Or we actually forgot to be running the deploy task on master branch after migration from Travis to Jenkins?

@angly-cat , officially speaking, this website is not official in a way and never mentioned in docs and not even crawled by search engines. Anyway, I think we'll try to see what went wrong.

@noomorph I think the scripts relied on Travis, I will take a look at it this weekend and fix them :)

Why isn't the website updated every time there is a push to mater?

I believe  https://wix.github.io/detox/  is currently dead for some unknown reason... 😕

It's on my list to fix 😇 I first need to get through this other giant PR before I can focus on this


Support Internationalization(i18n) for Bean Validation Message

i tried to add internationalization for validation messages using bean validation annotations. i assigned default locale es.but validation messages  are still in English. it did not work as expected.
The reproduce example codes are shared via my Github, check here.
There is a unit test I have written for this purpose, check here.
Spring boot version: 3.0.0-SNAPSHOT
Kotlin version: 1.7.20
Java version: 17

Hello, from the graphql-java team.
Can I double check, are you using the graphql-java-extended-validation library? There is an error message in English, in that repo, with the phrase "must not be blank" https://github.com/graphql-java/graphql-java-extended-validation/blob/master/src/main/resources/graphql/validation/ValidationMessages.properties
In the Extended Validation library, there are currently only English messages so I would expect the error message to be in English, regardless of the locale set. If you would like to contribute Spanish messages, you would be very welcome to!
And while I'm here, we recently added i18n messages to the main graphql-java library. If you or someone else reading this has the time, Spanish message translations would be very much appreciated! You can see an example with German messages here.

From a quick look, I see the sample customizes the location for messages to i18n/messages but the properties files are actually under i18. Next, the ValidationTest partial config which does not include the MessageSourceAutoConfiguration that's responsible for loading the message properties from the customized location. Your LocalValidatorFactoryBean is injected with an empty MessageSource and hence the MessageInterpolatorFactory that should help to create ConstraintViolation exceptions with custom messages is empty too. There may be more issues, but these are the ones I've spotted so far.

hi, i changed the graphql input validation part using graphql directives and now it works as I expected.I want to ask how can I set custom header using GraphQlTester bean. I want to change the 'Accept Language' header and check the localized error message.i did not find any methods on GraphQlTester bean for this purpose.
unit test I have written for this purpose, check here.

GraphQlTester is agnostic to the underlying transport, and is not aware of HTTP headers. You'll need an HttpGraphQlTester at least.


JSDoc + Runtypes?

Is there any way to put JSDoc annotations on properties of a Record runtype so that documentation will show up when you hover (in VSCode) over a property after the runtype has been cast to Static<>?
I assume that the answer is "no" but in case there's some cool Jedi trick someone has figured out, I'd love to learn what it is.

No... that would require comments to be incorporated into the type system somehow.

Yep, that's what I assumed too. Bummer. Closing.

How about +Webpack +ts-loader; or some approaches that uses require('typescript') directly?


[W5.4][F11-A4]Ten Chee Onn David Jonathan

Please ignore the code below. See screenshots for proof that I worked in a codebase with >2k, or indeed, 10k lines of code.

Image 1: Lines of code in the [private] repo of the company I work for

Image 2: I have contributed at least 20k lines of code changes, and am 13th in the number of contributors in that repo

Image 3: Team contribution, I have PRs with comments by other team members, as well as commented on other people's PRs.

Image 4: I have approved people's PRs.

Once again, IGNORE CODE CHANGES. They were just done so that I can create a PR with screenshots


Rename blog post URL as ome-ngff

See comment in https://github.com/ome/www.openmicroscopy.org/pull/560

See https://snoopycrimecop.github.io/www.openmicroscopy.org/2021/12/16/ome-ngff.html with https://snoopycrimecop.github.io/www.openmicroscopy.org/2021/12/16/ngff.html now redirecting to this page

No objection raised in standup


Add a setFromName method to Email Object

This allows you to customize the 'From Name' for the email that is being sent.

Add the following code to Line 71 of ./lib/email.js
Email.prototype.setFromName = function(fromname) {
  this.fromname = fromname;
};


Specific SVG path data not processed correctly

Hi,
following SVG was not processed correctly
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 160">
	<path d="M152.042,146.481c3.63,0,5.7-4.131,4.148-7.229L84.114,15.324a4.865,4.865,0,0,0-8.3,0L3.742,139.25c-2.074,3.1.519,7.229,4.148,7.229Z" fill="#990000"/>
</svg>

Expected behavior is to draw something like this

Tested on Xamarin Forms 4.0 Android project on NGraphics 1.6.0-beta1
Processed directly on device - Samsung Tab 2 Active on API 27 (Android 8.1)

As an addition - another example. Just adding in case you'll be able to trace the issue.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 160"><path d="M26.56,80,80,26.56,133.44,80l-9.69,9.37L86.56,52.19v81.25H73.44V52.19L35.94,89.38Z"/></svg>
What was drawn

What was expected

In case it will help somehow - I've changed a path data to following and NGraphics processed it correctly
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 160"><path d="M26.56,80L80,26.56L133.44,80l-9.69,9.38L86.56,52.19v81.25H73.44V52.19l-37.5,37.19L26.56,80z"/></svg>
Anyway, just to make it clear - all browsers and vector graphics apps processed any following samples correctly.

Hello! Sorry for the long delay but I fixed this today. The problem lied in the parsing of numbers with negative signs with spaces. Thank you for the detailed descriptions!


Support let expression

Syntax:
let a := b in c

Elaboration and conversion checking shouldn't be too complicated.

Do not allow let to occur everywhere e.g. in declarations, although it actually might be fine

Why :=?

Why :=?

Does not actually matter much.

👀I think this issue can now QED (Quite Eazily Done).


Installation Steps are not visible  . . . am I blind !!!

😃

you could be. after all, The possibilities are endless.


Bug: Files crashes due to unhandled exception

Description
Sometimes, when opening Files, the program crashes because of an unhandled exception.
The problem is that a DriveItem (usually C:) is loaded twice, raising the exception.
It's not the first time I have had this issue (first time was some 10 days ago), but it seemed to work after restarting Files
Steps To Reproduce
.
Steps to fix

Before adding a DriveItem check if it already exists
Add a Try-Catch to manage the exception

Files Version
Version: <IP_ADDRESS> OS Version: 10.0.22000.1042
Windows Version
Windows 11 Home 21H2 22000.1042
Relevant Assets/Logs

@ferrariofilippo is this still an issue?

@ferrariofilippo is this still an issue?

This hasn't happened since then


Mark tests as parallelizable on assembly level

This will mark all tests as parallelizable
Shamelessly copied from https://docs.nunit.org/articles/nunit/writing-tests/attributes/parallelizable.html:

The ParallelizableAttribute may be specified on multiple levels of the tests. Settings at a higher level may affect lower level tests, unless those lower-level tests override the inherited settings.

This will improvement test run time from like ~30-40 seconds to ~7 seconds.

Thanks! This is going to be of great help when in the future the tests are part of the pipeline.


Robust performance tests

Add latency tests
Add throughput tests

closed in favor of https://github.com/lemunozm/message-io/pull/38


iPhone 5C 这类32位的手机能用Realm 吗

Goals

Expected Results

Actual Results

Steps to Reproduce

Code Sample

Version of Realm and Tooling

Realm framework version: ?
Realm Object Server version: ?
Xcode version: ?
iOS/OSX version: ?
Dependency manager + version: ?

of course you can.


date format

Hello again,
What date format do I need to pass through JSON?
In your example there is:
begin: new Date('2018-05-27T16:40:31'),
this works hardcoded but when I take date from SQL and place it into JSON gives me this:
,"begin":"new Date('.$row["startTime"].')", where format follows yyyy-mm-ddThh:mm:ss

then I get this error:
Uncaught Error: Invalid Date: new Date(2018-05-27T15:55:31)

Hello Michal!
Actually the way you're passing the parameter is generating a string with the content new Date(2018-05-27T15:55:31). The component accepts a string in the format you're trying to pass, so I suggest you just remove the new  Date() invocation. It would be something like this:
,"begin":"'.$row["startTime"].'"
Please let me know if it works for you!

Hello,
I have tried this already, as well as hard coded date with 'T' and without but still get this error:
Uncaught Error: Invalid Date: 2018-05-20T20:00:00
Any other suggestion please?

Hmm, could you post the hole code for me to have a better idea of the context?

is this enough?
              $j=0;
              foreach($resultSchedule as $row){
                echo '{"code":"DGR","description":"'.$row["descr"].'\nFPC:'.$row["fpc"].'\nPO:'.$row["po"].'\nBATCH:'.$row["BatchID"].'","begin":new Date("'.$row["startTime"].'"),"end":new Date("'.$row["endTime"].'")}';
                if($j != $lenSchedule - 1){echo ',';}
                $j++;
              }

From SQL:
$row["startTime"] -> this is a date in this format: yyyy-mm-ddThh:mm:ss

When do you call JSON.parse?

Oh, I get it. Actually you'll have to keep them as a string before parsing to JSON and update them to a Date object after it. Also, you can't have a \n char when parsing a JSON.
              $j=0;
              foreach($resultSchedule as $row){
                echo '{"code":"DGR","description":"'.$row["descr"].'FPC:'.$row["fpc"].'PO:'.$row["po"].'BATCH:'.$row["BatchID"].'","begin": "'.$row["startTime"].'","end": "'.$row["endTime"].'"}';
                if($j != $lenSchedule - 1){echo ',';}
                $j++;
              }

var data = $.ajax({
          url: "../_getData/getdata_PRODschedule.php",
          dataType: "json",
          async: false
          }).responseText;

data = JSON.parse(data);

data.forEach(activity => {
        activity.begin = new Date(activity.begin);
        activity.end = new Date(activity.end);
});

O, I see. However this gives the same error:
Uncaught Error: Invalid Date: 2018-05-28T22:53:08
JSON validator is OK, no errors.

There must be some other Date that you should parse, either. Do you have any Markers or Thresholds? Debug the options variable and check where you have a date that's a string. Then replace it with a new Date.

This is full script:
`   `

Ok, so your data var is actually holding all the rows informations. Try this:
data.forEach(row => row.activities.forEach(activity =>
{
	activity.begin = new Date(activity.begin);
	activity.end = new Date(activity.end);
}));

Excellent. This works!
Thank you for your support

You're welcome!


Move EventStore configuration from the BoundedContext to the EventBus

Before these changes an attempt to create a BoundedContext with a custom EventBus resulted in a circular dependency like this:
BoundedContext -> EventBus -> EventStore -> BoundedContext.
This PR is aimed to break the circle by moving the EventStore configuration to the EventBus.
@alexander-yevsyukov after the current changes, either

a StorageFactory (to create an EventStore with a default props),
or a whole custom EventBus instance

... are required by the EventBus.Builder.

Current coverage is 83.38% (diff: 66.66%)

Merging #261 into master will increase coverage by 0.11%

@@             master       #261   diff @@
==========================================
  Files           171        172     +1
  Lines          6176       6247    +71
  Methods           0          0
  Messages          0          0
  Branches        615        622     +7
==========================================
+ Hits           5143       5209    +66
- Misses          922        924     +2
- Partials        111        114     +3

Powered by Codecov. Last update d8dd2b5...1db3fd6

@alexander-yevsyukov PTAL.


Url params leaking to unrelated states.

Using the angular-1.2 branch I have setup states/routes similar to this:
$stateProvider.
	state('foo', {
		url: '/foo/:date',
		templateUrl: 'views/foo.html',
		controller: 'FooCtrl'
	}).
	state('bar', {
		url: '/bar/:date',
		templateUrl: 'views/bar.html',
		controller: 'BarCtrl'
	});

I have menu links:
Foo //generates href="/#foo/"
Bar //generates href="/#bar/"

Assuming I am on url #/foo/2013 if i clik the link for "Bar" it's takes me to #/bar/2013 while i expect it to take me to url #/bar/. The route param of unrelated states should not be carried over.

https://gist.github.com/eddiemonge/f6a58169c2846731a1eb


2884 Add RM UI group setup scripts

Motivation and Context
We need some groups defined for day to day RM support and elevated write access roles for the support tool UI/r-ops.
What has changed

Add UI permissions scripts

How to test?
Check the lists of permissions make sense, RM SUPPORT should be all the global read only permissions and RM ELEVATED should have write access but only on our non prototype features.
Links
https://trello.com/c/ZxqCN8wb/2884-productionise-support-tool-set-up-groups-3

@NickGrantONS I've got rid of all permissions relating to print and or fulfilments 👍


Ability to add a sub-footer

You can currently add sub headers (e.g. headers that group other headers). It would be nice to be able to add footers at this level. Something like this:
<ReactTable
  data={data}
  columns={[
    {
      Header: "Name",
      Footer: "Name Footer",
      columns: [
        {
          Header: "First Name",
          accessor: "firstName",
          Footer: () =>

First Name

          } . . .

I think this would be a welcome addition to the API. I’ll look into it’s implementation over the next few days.

@tannerlinsley Can I work on this ?

This sounds great!
What is the current mechanism for adding a footer to a table now? Would you set it up as an expanded last row using useExpanded?
I'd love to see an example of this

I’m working on this right now. Stay tuned.
Tanner Linsley
On Dec 5, 2019, 4:46 PM -0500, Yishai Burt<EMAIL_ADDRESS>wrote:

This sounds great!
What is the current mechanism for adding a footer to a table now? Would you set it up as an expanded last row using useExpanded?
I'd love to see an example of this
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


unet_2nd_pull_46271826

A pull request was made on the main branch last time, this one is made on the recognition branch, which contains the relevant files.
Code completed 27 OCT,
Had an extension to 27 OCT.
The code is free of bugs and got a test dice score of 99%

Wrong file path. All student-constructed documents should be packed in one document under the ‘recognition’ document.
Algorithm solves the problem appropriately. Claimed Average Dice Coefficient in the testing dataset: 0.99, but this doesn’t make sense. Predicted Mask output looks good. Containing data augmentation code but has been commented off in Data_loader.py, so no data augmentation. Training and validating are in the same whole dataset, data leakage, and this is also the reason why the model got a high dice coefficient. Other parts are ok.
Using Pytorch to construct the Improved U-Net models and functions. However, the model body is roughly an improved U-Net model(filters start with 164 and end up with 1284) instead of the improved U-Net in the paper(filters start with 16 and end up with 256). The active function(sigmoid) at the end of the output has been commented off. There’s only one function in predict.py, the suspected implementation part has been commented off. In addition, the input and output variable names are not defined in the file. Other parts are ok.
Good coding design.
Sufficient docstring and comment in the code, good references.
Easy difficulty problem, no higher difficulty marks.

Marking
Good Practice (Design/Commenting, TF/Torch Usage)
Adequate design and implementation, but not Improved UNet, only UNet -4
Good spacing and comments
Header blocks
Recognition Problem
Solves problem but no working prediction -2
Driver Script present
File structure present
Shows Usage & Demo & Visualisation & Data usage
Module present
Commenting
Data leakage present -1, no augmentation -1
Difficulty: Easy -10
Commit Log
Meaningful commit messages minimal -1
Progressive commits used
Documentation
ReadMe OK, no usage -1, no refs -1
Model/technical explanation minimal -1
Good Description and Comments
Markdown used and PDF submitted
Pull Request
Successful Pull Request (Working Algorithm Delivered on Time in Correct Branch)
Feedback required, remove .idea folder and files, restore repo READMEs -2
Request Description minimal -1

Feedback marks possible +2 if the requested changes are made (see above).

No feedback attempt and no feedback marks granted.

Hi there,
I am wondering in order to gain the 2 marks,  am I supposed to fix all of the mistakes or just about the readMe or any parts of my report?
Thank you in advance!

Hi there,
I am wondering in order to gain the 2 marks, am I supposed to fix all of the mistakes or just about the readMe or any parts of my report?
Thank you in advance!

"Feedback required, remove .idea folder and files, restore repo READMEs -2"
Just following Shakes' instruction to modify your files by the end of today. I'll add 2 marks after you do this.

modification according to the feedback:

model modified to follow the same structure of improved Unet in the paper,
data normalization and augmentation were added for data preprocessing,
solving data leakage by splitting the training data into a training set and a validation set.
prediction.py can be run to get predictions shown in readme directly.
code usage examples were added to the readme file.
more explanations were added to the readme file.
references were added to the readme file.
image can be shown properly in the readme file.

Besides, although I haven't retrained the model for the modified model and data preprocessing steps, the code should be free of bugs as I have ran several demos before pushing the commit onto Github.

Hard work on the feedback attempt, still having some file problems. Please see Shakes' inspection and try to modify fix them. But I can give you feedback marks granted +2.

OK Thank you for the +2 feedback marks!
I have tried to fix the file problems. However, too many commits are associated with the folder outside the recognition folder, as I initially implemented my project outside the recognition file. I have no idea how I can remove these changes without affecting my codes.


Add start_function argument to GatewayBot.start()

Summary

Add an option to use a given start function to start the bot, also fix a typo in docs.
This will be a long one.
Heres a simple Bot class that inherits from hikari.GatewayBot
# bot.py

class Bot(hiakri.GatewayBot):

    def __init__(self):

        super().__init__(
            token="token",
            intents=hikari.Intents.ALL
        )

    async def start(
        self,
        *,
        activity = None,
        afk = False,
        check_for_updates = True,
        idle_since = None,
        ignore_session_start_limit = False,
        large_threshold = 250,
        shard_ids = None,
        shard_count = None,
        status,
    ):
        self.do_stuff()

        await super().start(
            activity=activity,
            afk=afk,
            check_for_updates=check_for_updates,
            idle_since=idle_since,
            ignore_session_start_limit=ignore_session_start_limit,
            large_threshold=large_threshold,
            shard_ids=shard_ids,
            shard_count=shard_count,
            status=status,
        )

    def run(
        self,
        *,
        activity = None,
        afk = False,
        asyncio_debug = None,
        check_for_updates = True,
        close_passed_executor = False,
        close_loop = True,
        coroutine_tracking_depth = None,
        enable_signal_handlers = True,
        idle_since = None,
        ignore_session_start_limit = False,
        large_threshold = 250,
        propagate_interrupts = False,
        status,
        shard_ids = None,
        shard_count = None,
    ):
        self.do_stuff()

        super().run(
            activity=activity,
            afk=afk,
            asyncio_debug=asyncio_debug,
            check_for_updates=check_for_updates,
            close_passed_executor=close_passed_executor,
            close_loop=close_loop,
            coroutine_tracking_depth=coroutine_tracking_depth,
            enable_signal_handlers=enable_signal_handlers,
            idle_since=idle_since,
            ignore_session_start_limit=ignore_session_start_limit,
            large_threshold=large_threshold,
            propagate_interrupts=propagate_interrupts,
            status=status,
            shard_ids=shard_ids,
            shard_count=shard_count,
        )

    def do_stuff():
        pass

Heres a sample __main__.py file with two different main methods that I want to switch between from time to time.
# __main__.py

bot = Bot()

def main_1():

    # `foo` is some async app (like an api)
    @foo.starting_event
    def app_starting_event():
        bot.start()

    @foo.stopping_event
    def app_stopping_event():
        bot.close()

    foo.run()

def main_2()
    bot.run()

if __name__ == "__main__":
    # main_1()
    main_2()

When running main_2() there is an unexpected function order that the bot calls: bot.run() -> GatewayBot.run() -> bot.start() -> GatewayBot.start(). It is strange that GatewayBot.run() calles bot.start(), but I figured out why.
Inside of GatewayBot.run() it runs
# inside of `GatewayBot.run()`
loop.run_until_complete(
    self.start(
        activity=activity,
        afk=afk,
        check_for_updates=check_for_updates,
        idle_since=idle_since,
        ignore_session_start_limit=ignore_session_start_limit,
        large_threshold=large_threshold,
        shard_ids=shard_ids,
        shard_count=shard_count,
        status=status,
    )
)

With inheritence, self (inside of loop.run_until_complete()) is the Bot class, not the GatewayBot class. So bot.start() is called, not GatewayBot.start().
I thought this could fixed by adding a use_parrent_start parameter to GatewayBot.run() but it can't. Here's the code anyway.
# new `GatewayBot.run()` method

def run(
    self,
    *,
    activity = None,
    afk = False,
    asyncio_debug = None,
    check_for_updates = True,
    close_passed_executor = False,
    close_loop = True,
    coroutine_tracking_depth = None,
    enable_signal_handlers = True,
    idle_since = None,
    ignore_session_start_limit = False,
    large_threshold = 250,
    propagate_interrupts = False,
    status,
    shard_ids = None,
    shard_count = None,
    use_parrent_start = False,
):
    # ...
    if use_parrent_start:
        loop.run_until_complete(
            super().start(
                activity=activity,
                afk=afk,
                check_for_updates=check_for_updates,
                idle_since=idle_since,
                ignore_session_start_limit=ignore_session_start_limit,
                large_threshold=large_threshold,
                shard_ids=shard_ids,
                shard_count=shard_count,
                status=status,
            )
        )
    else:
        loop.run_until_complete(
            self.start(
                activity=activity,
                afk=afk,
                check_for_updates=check_for_updates,
                idle_since=idle_since,
                ignore_session_start_limit=ignore_session_start_limit,
                large_threshold=large_threshold,
                shard_ids=shard_ids,
                shard_count=shard_count,
                status=status,
            )
        )
    # ...

For some reason, this didn't work, (maybe I'm just bad and it does). This would be the more elegant way to implement it though, but again, it didn't work, so I added a use_start_function parameter to GatewayBot.run() instead.
# new `GatewayBot.run()` method

def run(
    self,
    *,
    activity = None,
    afk = False,
    asyncio_debug = None,
    check_for_updates = True,
    close_passed_executor = False,
    close_loop = True,
    coroutine_tracking_depth = None,
    enable_signal_handlers = True,
    idle_since = None,
    ignore_session_start_limit = False,
    large_threshold = 250,
    propagate_interrupts = False,
    status,
    shard_ids = None,
    shard_count = None,
    start_function = None,
):
    # ...
    if start_function is not None:
        loop.run_until_complete(
            start_function(
                activity=activity,
                afk=afk,
                check_for_updates=check_for_updates,
                idle_since=idle_since,
                ignore_session_start_limit=ignore_session_start_limit,
                large_threshold=large_threshold,
                shard_ids=shard_ids,
                shard_count=shard_count,
                status=status,
            )
        )
    else:
        loop.run_until_complete(
            self.start(
                activity=activity,
                afk=afk,
                check_for_updates=check_for_updates,
                idle_since=idle_since,
                ignore_session_start_limit=ignore_session_start_limit,
                large_threshold=large_threshold,
                shard_ids=shard_ids,
                shard_count=shard_count,
                status=status,
            )
        )
    # ...

# new bot.run() method
# ...
super().run(
    activity=activity,
    afk=afk,
    asyncio_debug=asyncio_debug,
    check_for_updates=check_for_updates,
    close_passed_executor=close_passed_executor,
    close_loop=close_loop,
    coroutine_tracking_depth=coroutine_tracking_depth,
    enable_signal_handlers=enable_signal_handlers,
    idle_since=idle_since,
    ignore_session_start_limit=ignore_session_start_limit,
    large_threshold=large_threshold,
    propagate_interrupts=propagate_interrupts,
    status=status,
    shard_ids=shard_ids,
    shard_count=shard_count,
    start_function=super().start
    )
# ...

This worked, but I don't know if theres a good way to check if the given method will actually work, or if it has the same signature as GatewayBot.start().
Checklist

[x] I have run nox and all the pipelines have passed. (flake8 still complained about no shebang line)
[ ] I have made unittests according to the code I have added/modified/deleted.

I'm not sure what tests to write

Related issues

Isn't this what lifetime events are for or am I missing something?

Why not just subclass at this point tho?

Personally, I would rather go with inheritance or lifetime events. I think we have that area quite well covered and I dont see a spot for this, sorry.
Thanks for taking the time to open the pull request tho. Will wait for @FasterSpeeding to comment, but I would personally say no to this for the reasons I mentioned above

Going to close this as I dont see the need for it. You can directly subclass and add your own functionality if needed


No module named 'github'

File "/Users/dabitdev/Projects/gitim/gitim.py", line 12, in
from github import Github

my fault I forgot to call
python3 setup.py install