BOSH Release

I was working on creating a release to deploy abacus through bosh. What would be the best place in the source tree to place these files.

Hi @rajkiranrbala that's great!
I'd suggest to put them under /etc/bosh for now. Once the files are there we can always move them around later if needed. Thanks!

@rajkiranrbala Thanks for this contribution! Could you describe here in a few lines the commands I commands we need to run to create that BOSH release using what you've contributed? Thanks!

Following are the prerequisites to build and deploy abacus to cf through bosh-lite

Set up BOSH Lite on Virtualbox following the guide in https://github.com/cloudfoundry/bosh-lite
Deploy CF on to BOSH Lite following the guide in http://docs.cloudfoundry.org/deploying/boshlite/index.html
Create organization abaucs and space dev

To build a cf-abacus release
# From the cf-abacus directory
$ npm run build
$ ./bin/boshbuildrelease
# This script calls cfpack so that the archives for the default list of applications are built.
# Once the build is successful the release manifests can be found in ./etc/bosh/dev_releases directory

Before deploying, make sure to target to the bosh director and login to the director
$ bosh target <IP_ADDRESS> lite
$ bosh login admin admin

To deploy the release on to BOSH Lite
# From the cf-abacus directory
$ ./bin/boshdeploy
# This will upload the release thats built.
# The deployment manifest template is located in ./etc/bosh/spec/cf-abacys.yml.erb
# The final manifest generated is at ./etc/bosh/deployments/cf-abacus.yml
# Cleans out any existing cf-abacus deployments on bosh lite and creates a new cf-abacus deployment
$ bosh run errand deploy-abacus
# This command deploys abacus to cf

To see the application manifest file thats generated
$ bosh run errand deploy-abacus --keep-alive
# This prevents the vm form being destroyed
$ bosh vms
# This will list the all virtual machines running in bosh and their ips
$ bosh ssh <ipaddress of deploy-abacus vm>
$ cat /var/vcap/jobs/deploy-abacus/bin/manifest.yml

Following the above steps I'm running into this error:
./bin/boshdeploy
Acting as user 'admin' on 'Bosh Lite Director'

Copying packages
----------------

Copying jobs
------------
deploy-abacus

Generated /var/folders/yw/3l1cpfy97w51v6xlvc17654m0000gn/T/d20151109-74837-5b89yo/d20151109-74837-yedean/release.tgz
Release size: 1.9K

Verifying release...
File exists and readable                                     OK
Extract tarball                                              OK
Manifest exists                                              OK
Release name/version                                         OK
Read package 'cf-abacus' (1 of 2)                            OK
Read package 'cli' (2 of 2)                                  OK
Package dependencies                                         OK
Checking jobs format                                         OK
Read job 'deploy-abacus' (1 of 1), version 2fc0b12ea99ecb82ac372f0aea242deb9a855fac OK
Job 'deploy-abacus' checksum                                 OK
Extract job 'deploy-abacus'                                  OK
Read job 'deploy-abacus' manifest                            OK
Check template 'run.erb' for 'deploy-abacus'                 OK
Check template 'manifest.yml.erb' for 'deploy-abacus'        OK
Job 'deploy-abacus' needs 'cf-abacus' package                OK
Job 'deploy-abacus' needs 'cli' package                      OK
Monit file for 'deploy-abacus'                               OK

Release info
------------
Name:    cf-abacus
Version: 0+dev.1

Packages
  - cf-abacus (d422315ce9a6bf9ca067528a9e1b86076cccf840)
  - cli (6fb52c578aad523ba3c78bc350313d4aa4db7da9)

Jobs
  - deploy-abacus (2fc0b12ea99ecb82ac372f0aea242deb9a855fac)

License
  - none

Uploading release
release.tgz:   100% |oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo|   1.9KB 115.0KB/s Time: 00:00:00

Director task 91
  Started extracting release > Extracting release. Done (00:00:00)

  Started verifying manifest > Verifying manifest. Done (00:00:00)

  Started resolving package dependencies > Resolving package dependencies. Done (00:00:00)

  Started processing 2 existing packages > Processing 2 existing packages. Done (00:00:00)

  Started processing 1 existing job > Processing 1 existing job. Done (00:00:00)

  Started release has been created > cf-abacus/0+dev.1. Done (00:00:00)

Task 91 done

Started         2015-11-10 03:27:00 UTC
Finished        2015-11-10 03:27:00 UTC
Duration        00:00:00

Release uploaded
Acting as user 'admin' on deployment 'cf-abacus' on 'Bosh Lite Director'

You are going to delete deployment `cf-abacus'.

Director task 92
  Started removing deployment artifacts
  Started removing deployment artifacts > Detach stemcells. Done (00:00:00)
  Started removing deployment artifacts > Detaching releases. Done (00:00:00)

  Started deleting properties
  Started deleting properties > Delete DNS records. Done (00:00:00)
  Started deleting properties > Destroy deployment. Done (00:00:00)

Task 92 done

Started         2015-11-10 03:27:05 UTC
Finished        2015-11-10 03:27:05 UTC
Duration        00:00:00

Deleted deployment `cf-abacus'
Deployment set to `/Users/jsdelfino/Desktop/github/cf-abacus/etc/bosh/deployments/cf-abacus.yml'
Acting as user 'admin' on deployment 'cf-abacus' on 'Bosh Lite Director'
Getting deployment properties from director...
Unable to get properties list from director, trying without it...
Cannot get current deployment information from director, possibly a new deployment

Deploying
---------

Director task 93
  Started unknown
  Started unknown > Binding deployment. Done (00:00:00)

  Started preparing deployment
  Started preparing deployment > Binding releases. Done (00:00:00)
  Started preparing deployment > Binding existing deployment. Done (00:00:00)
  Started preparing deployment > Binding resource pools. Done (00:00:00)
  Started preparing deployment > Binding stemcells. Done (00:00:00)
  Started preparing deployment > Binding templates. Done (00:00:00)
  Started preparing deployment > Binding properties. Done (00:00:00)
  Started preparing deployment > Binding unallocated VMs. Done (00:00:00)
  Started preparing deployment > Binding instance networks. Done (00:00:00)

  Started preparing package compilation > Finding packages to compile. Failed: Permission denied @ dir_s_mkdir - /vagrant/tmp (00:00:00)

Error 100: Permission denied @ dir_s_mkdir - /vagrant/tmp

Task 93 error

For a more detailed error report, run: bosh task 93 --debug

Running bosh task 93 --debug as instructed gives me this:
Acting as user 'admin' on 'Bosh Lite Director'

Director task 93
I, [2015-11-10T03:27:06.516539 #1253] [0x3f859c6dd330]  INFO -- TaskHelper: Director Version: 1.3074.0
I, [2015-11-10T03:27:06.516581 #1253] [0x3f859c6dd330]  INFO -- TaskHelper: Enqueuing task: 93
I, [2015-11-10 03:27:10 #14846] []  INFO -- DirectorJobRunner: Looking for task with task id 93
D, [2015-11-10 03:27:10 #14846] [] DEBUG -- DirectorJobRunner: (0.000263s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [] DEBUG -- DirectorJobRunner: (0.000190s) SELECT * FROM "tasks" WHERE "id" = 93
I, [2015-11-10 03:27:10 #14846] []  INFO -- DirectorJobRunner: Starting task: 93
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Creating job
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000102s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000140s) SELECT * FROM "tasks" WHERE "id" = 93
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Performing task: 93
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000160s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000069s) BEGIN
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000202s) UPDATE "tasks" SET "state" = 'processing', "timestamp" = '2015-11-10 03:27:10.507905+0000', "description" = 'create deployment', "result" = NULL, "output" = '/var/vcap/store/director/tasks/93', "checkpoint_time" = '2015-11-10 03:27:10.507979+0000', "type" = 'update_deployment', "username" = 'admin' WHERE ("id" = 93)
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000652s) COMMIT
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Reading deployment manifest
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Manifest:
---
name: cf-abacus
director_uuid: 9bca5701-66c0-43ee-a4d0-64813b4b5ece
release:
  name: cf-abacus
  version: 0+dev.1
compilation:
  workers: 1
  network: default
  cloud_properties:
    instance_type: m1.small
update:
  canaries: 1
  canary_watch_time: 30000
  update_watch_time: 30000
  max_in_flight: 4
  max_errors: 1
networks:
- name: default
  type: dynamic
  cloud_properties:
    security_groups:
    - default
resource_pools:
- name: errandPool
  network: default
  stemcell:
    name: bosh-warden-boshlite-ubuntu-trusty-go_agent
    version: 389
  cloud_properties:
    instance_type: m1.small
    availability_zone:
    key_name:
jobs:
- name: deploy-abacus
  template: deploy-abacus
  lifecycle: errand
  instances: 1
  resource_pool: errandPool
  networks:
  - name: default
properties:
  cf:
    api: api.bosh-lite.com
    email: admin
    password: admin
    space: dev
    organization: abacus
    domain: bosh-lite.com
    disk_quota: 256M
    memory: 256M
    instances: 1
  abacus:
    env:
      secured: false
      jwt_key: undefined
      jwt_algo: undefined
      client_id: undefined
      client_secret: undefined
      auth_server: undefined
      debug: e-*
    account:
      host: abacus-account-stub
    provisioning:
      host: abacus-provisioning-stub
    eureka:
      host: abacus-eureka-stub
    collector:
      host: abacus-usage-collector
    meter:
      host: abacus-usage-meter
    accumulator:
      host: abacus-usage-accumulator
    aggregator:
      host: abacus-usage-aggregator
    rating:
      host: abacus-usage-rate
    reporting:
      host: abacus-usage-reporting
    dbserver:
      host: abacus-dbserver

I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Acquiring deployment lock on cf-abacus
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Acquiring lock: lock:deployment:cf-abacus
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Acquired lock: lock:deployment:cf-abacus
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: sending update deployment start event
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: SENT: hm.director.alert {"id":"148c7ae9-d475-4dc3-8bd6-42ed0c78fb3b","severity":4,"title":"director - begin update deployment","summary":"Begin update deployment for 'cf-abacus' against Director '9bca5701-66c0-43ee-a4d0-64813b4b5ece'","created_at":1447126030}
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Binding deployment
D, [2015-11-10 03:27:10 #14846] [] DEBUG -- DirectorJobRunner: Renewing lock: lock:deployment:cf-abacus
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.001241s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000000s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.002816s) SELECT * FROM "deployments" WHERE ("name" = 'cf-abacus') LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000120s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000072s) BEGIN
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000454s) SELECT * FROM "deployments"
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000191s) SELECT COUNT(*) AS "count" FROM "deployments" WHERE ("name" = 'cf-abacus') LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000226s) INSERT INTO "deployments" ("name") VALUES ('cf-abacus') RETURNING *
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000622s) COMMIT
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Creating deployment plan
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Deployment plan options: {"recreate"=>false, "skip_drain"=>nil, "job_states"=>{}, "job_rename"=>{}}
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Created deployment plan
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Preparing deployment
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Binding releases
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Acquiring release lock: cf-abacus
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Acquiring lock: lock:release:cf-abacus
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Acquired lock: lock:release:cf-abacus
D, [2015-11-10 03:27:10 #14846] [] DEBUG -- DirectorJobRunner: Renewing lock: lock:release:cf-abacus
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000850s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000280s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000412s) SELECT * FROM "releases" WHERE ("name" = 'cf-abacus') LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000195s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000108s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000154s) SELECT * FROM "release_versions" WHERE (("release_versions"."release_id" = 2) AND ("version" = '0+dev.1')) LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Found release `cf-abacus/0+dev.1'
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000087s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000252s) SELECT "release_versions".* FROM "release_versions" INNER JOIN "deployments_release_versions" ON (("deployments_release_versions"."release_version_id" = "release_versions"."id") AND ("deployments_release_versions"."deployment_id" = 4))
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Binding release `cf-abacus/0+dev.1' to deployment `cf-abacus'
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000083s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000073s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000579s) SELECT pg_attribute.attname AS pk FROM pg_class, pg_attribute, pg_index, pg_namespace WHERE pg_class.oid = pg_attribute.attrelid AND pg_class.relnamespace = pg_namespace.oid AND pg_class.oid = pg_index.indrelid AND pg_index.indkey[0] = pg_attribute.attnum AND pg_index.indisprimary = 't' AND pg_class.relname = 'deployments_release_versions'
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000119s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000888s) INSERT INTO "deployments_release_versions" ("deployment_id", "release_version_id") VALUES (4, 2) RETURNING "id"
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Deleting lock: lock:release:cf-abacus
D, [2015-11-10 03:27:10 #14846] [] DEBUG -- DirectorJobRunner: Lock renewal thread exiting
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Deleted lock: lock:release:cf-abacus
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Binding existing deployment
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000166s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000164s) SELECT * FROM "vms" WHERE ("vms"."deployment_id" = 4)
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Waiting for tasks to complete
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Shutting down pool
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Binding resource pools
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Binding stemcells
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000085s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000073s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000083s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000161s) SELECT * FROM "stemcells" WHERE (("name" = 'bosh-warden-boshlite-ubuntu-trusty-go_agent') AND ("version" = '389')) LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000087s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000409s) SELECT "deployments".* FROM "deployments" INNER JOIN "deployments_stemcells" ON (("deployments_stemcells"."deployment_id" = "deployments"."id") AND ("deployments_stemcells"."stemcell_id" = 1))
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000081s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000073s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000527s) SELECT pg_attribute.attname AS pk FROM pg_class, pg_attribute, pg_index, pg_namespace WHERE pg_class.oid = pg_attribute.attrelid AND pg_class.relnamespace = pg_namespace.oid AND pg_class.oid = pg_index.indrelid AND pg_index.indkey[0] = pg_attribute.attnum AND pg_index.indisprimary = 't' AND pg_class.relname = 'deployments_stemcells'
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000079s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000811s) INSERT INTO "deployments_stemcells" ("stemcell_id", "deployment_id") VALUES (1, 4) RETURNING "id"
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Binding templates
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Binding template `deploy-abacus'
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000084s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000228s) SELECT "templates".* FROM "templates" INNER JOIN "release_versions_templates" ON (("release_versions_templates"."template_id" = "templates"."id") AND ("release_versions_templates"."release_version_id" = 2))
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000102s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000214s) SELECT "packages".* FROM "packages" INNER JOIN "packages_release_versions" ON (("packages_release_versions"."package_id" = "packages"."id") AND ("packages_release_versions"."release_version_id" = 2))
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Bound template `deploy-abacus'
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Binding properties
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Binding unallocated VMs
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Binding instance networks
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000082s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000073s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000125s) SELECT * FROM "releases" WHERE ("name" = 'cf-abacus') LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000079s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000073s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000120s) SELECT * FROM "release_versions" WHERE (("release_versions"."release_id" = 2) AND ("version" = '0+dev.1')) LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000075s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000111s) SELECT * FROM "releases" WHERE ("releases"."id" = 2) LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000087s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000071s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000126s) SELECT * FROM "release_versions" WHERE (("release_versions"."release_id" = 2) AND ("version" = '0+dev.1')) LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000074s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000115s) SELECT * FROM "releases" WHERE ("releases"."id" = 2) LIMIT 1
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Generating a list of compile tasks
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Job templates `cf-abacus/deploy-abacus' need to run on stemcell `bosh-warden-boshlite-ubuntu-trusty-go_agent/389'
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: Checking whether package `cf-abacus/d422315ce9a6bf9ca067528a9e1b86076cccf840' needs to be compiled for stemcell `bosh-warden-boshlite-ubuntu-trusty-go_agent/389'
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000076s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000072s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000263s) SELECT * FROM "compiled_packages" WHERE (("package_id" = 47) AND ("stemcell_id" = 1) AND ("dependency_key" = '[]')) LIMIT 1
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Deleting lock: lock:deployment:cf-abacus
D, [2015-11-10 03:27:10 #14846] [] DEBUG -- DirectorJobRunner: Lock renewal thread exiting
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: Deleted lock: lock:deployment:cf-abacus
I, [2015-11-10 03:27:10 #14846] [task:93]  INFO -- DirectorJobRunner: sending update deployment error event
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: SENT: hm.director.alert {"id":"86ff24b6-2d57-4ec1-b68a-f4034b109817","severity":3,"title":"director - error during update deployment","summary":"Error during update deployment for 'cf-abacus' against Director '9bca5701-66c0-43ee-a4d0-64813b4b5ece': #<Errno::EACCES: Permission denied @ dir_s_mkdir - /vagrant/tmp>","created_at":1447126030}
E, [2015-11-10 03:27:10 #14846] [task:93] ERROR -- DirectorJobRunner: Permission denied @ dir_s_mkdir - /vagrant/tmp
/var/vcap/packages/ruby/lib/ruby/2.1.0/fileutils.rb:250:in `mkdir'
/var/vcap/packages/ruby/lib/ruby/2.1.0/fileutils.rb:250:in `fu_mkdir'
/var/vcap/packages/ruby/lib/ruby/2.1.0/fileutils.rb:224:in `block (2 levels) in mkdir_p'
/var/vcap/packages/ruby/lib/ruby/2.1.0/fileutils.rb:222:in `reverse_each'
/var/vcap/packages/ruby/lib/ruby/2.1.0/fileutils.rb:222:in `block in mkdir_p'
/var/vcap/packages/ruby/lib/ruby/2.1.0/fileutils.rb:208:in `each'
/var/vcap/packages/ruby/lib/ruby/2.1.0/fileutils.rb:208:in `mkdir_p'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/blobstore_client-1.3074.0/lib/blobstore_client/local_client.rb:12:in `initialize'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/blobstore_client-1.3074.0/lib/blobstore_client/client.rb:12:in `new'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/blobstore_client-1.3074.0/lib/blobstore_client/client.rb:12:in `create'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/blobstore_client-1.3074.0/lib/blobstore_client/client.rb:16:in `safe_create'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/config.rb:199:in `block in compiled_package_cache_blobstore'
/var/vcap/packages/ruby/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/config.rb:195:in `compiled_package_cache_blobstore'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/blob_util.rb:84:in `compiled_package_cache_blobstore'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/blob_util.rb:41:in `exists_in_global_cache?'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/compile_task.rb:148:in `find_compiled_package'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/compile_task_generator.rb:33:in `generate!'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:204:in `block (4 levels) in prepare_tasks'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:203:in `each'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:203:in `block (3 levels) in prepare_tasks'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:202:in `each'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:202:in `block (2 levels) in prepare_tasks'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:189:in `each'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:189:in `block in prepare_tasks'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/event_log.rb:97:in `call'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/event_log.rb:97:in `advance_and_track'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/event_log.rb:50:in `track'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:188:in `prepare_tasks'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:42:in `perform'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/planner_factory.rb:106:in `bind_vms'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/deployment_plan/planner_factory.rb:39:in `planner'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/jobs/update_deployment.rb:31:in `block in perform'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/lock_helper.rb:13:in `block in with_deployment_lock'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/lock.rb:56:in `lock'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/lock_helper.rb:13:in `with_deployment_lock'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/jobs/update_deployment.rb:25:in `perform'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/job_runner.rb:108:in `perform_job'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/job_runner.rb:31:in `block in run'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh_common-1.3074.0/lib/common/thread_formatter.rb:49:in `with_thread_name'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/job_runner.rb:31:in `run'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/lib/bosh/director/jobs/base_job.rb:10:in `perform'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/resque-1.25.2/lib/resque/job.rb:227:in `perform'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/resque-1.25.2/lib/resque/worker.rb:250:in `perform'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/resque-1.25.2/lib/resque/worker.rb:189:in `block in work'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/resque-1.25.2/lib/resque/worker.rb:166:in `loop'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/resque-1.25.2/lib/resque/worker.rb:166:in `work'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3074.0/bin/bosh-director-worker:75:in `<top (required)>'
/var/vcap/packages/director/bin/bosh-director-worker:16:in `load'
/var/vcap/packages/director/bin/bosh-director-worker:16:in `<main>'
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000568s) SELECT NULL
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000062s) BEGIN
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000238s) UPDATE "tasks" SET "state" = 'error', "timestamp" = '2015-11-10 03:27:10.563261+0000', "description" = 'create deployment', "result" = 'Permission denied @ dir_s_mkdir - /vagrant/tmp', "output" = '/var/vcap/store/director/tasks/93', "checkpoint_time" = '2015-11-10 03:27:10.507979+0000', "type" = 'update_deployment', "username" = 'admin' WHERE ("id" = 93)
D, [2015-11-10 03:27:10 #14846] [task:93] DEBUG -- DirectorJobRunner: (0.000618s) COMMIT
I, [2015-11-10 03:27:10 #14846] []  INFO -- DirectorJobRunner: Task took 0.059889338 seconds to process.

Task 93 error

Any idea what could be going wrong? Thanks!

@rajkiranrbala Moving this issue to milestone 0.0.4 as more testing is needed. I'd also like to get a doc/bosh.md in the next release with the steps you've described here -- once I'm able to get them working end to end :)

Looks like there is an issue with the vms that are being created.
These articles might help you getting this issue resolved.
https://blog.pivotal.io/labs/labs/troubleshooting-bosh-releasesdeployments
https://groups.google.com/a/cloudfoundry.org/forum/#!topic/bosh-users/xfbck9EC4AY

Thanks. This command allowed me to get further:
cd bosh-lite
vagrant ssh -c "sudo chmod 777 /vagrant"

The next issue I'm running into is this:
bosh run errand deploy-abacus
Acting as user 'admin' on deployment 'cf-abacus' on 'Bosh Lite Director'

Director task 101
  Started unknown
  Started unknown > Binding deployment. Done (00:00:00)

  Started preparing deployment
  Started preparing deployment > Binding releases. Done (00:00:00)
  Started preparing deployment > Binding existing deployment. Done (00:00:00)
  Started preparing deployment > Binding resource pools. Done (00:00:00)
  Started preparing deployment > Binding stemcells. Done (00:00:00)
  Started preparing deployment > Binding templates. Done (00:00:00)
  Started preparing deployment > Binding properties. Done (00:00:00)
  Started preparing deployment > Binding unallocated VMs. Done (00:00:00)
  Started preparing deployment > Binding instance networks. Done (00:00:00)

  Started preparing package compilation > Finding packages to compile. Done (00:00:00)

  Started preparing dns > Binding DNS. Done (00:00:00)

  Started creating bound missing vms > errandPool/0. Done (00:00:01)

  Started binding instance vms > deploy-abacus/0. Done (00:00:00)

  Started updating job deploy-abacus > deploy-abacus/0 (canary). Done (00:00:37)

  Started running errand > deploy-abacus/0. Done (00:00:01)

  Started fetching logs for deploy-abacus/0 > Finding and packing log files. Done (00:00:01)

  Started deleting errand instances deploy-abacus > e5d1ca59-aaee-41fd-603d-7f2e386ecda8. Done (00:00:02)

Task 101 done

Started         2015-11-10 19:03:56 UTC
Finished        2015-11-10 19:04:38 UTC
Duration        00:00:42

[stdout]
Setting api endpoint to api.bosh-lite.com...
FAILED
Server error, status code: 404, error code: 0, message:

[stderr]
++ dirname /var/vcap/jobs/deploy-abacus/bin/run
+ BASEDIR=/var/vcap/jobs/deploy-abacus/bin
+ cd /var/vcap/jobs/deploy-abacus/bin
+ export PATH=/usr/sbin:/usr/bin:/sbin:/bin:/var/vcap/packages/cli/bin
+ PATH=/usr/sbin:/usr/bin:/sbin:/bin:/var/vcap/packages/cli/bin
+ cf api --skip-ssl-validation api.bosh-lite.com

What version of BOSH and CF are you using?
In my test env with BOSH v1.3094.0 and CF v210 I'm normally pointing the cf cli to api.<IP_ADDRESS>.xip.io.

Changing to api.<IP_ADDRESS>.xip.io fixed the issue.

Completed the deployment of the apps, but running the errand job takes forever, 16mns... See below:
bosh run errand deploy-abacus
Acting as user 'admin' on deployment 'cf-abacus' on 'Bosh Lite Director'

Director task 105
  Started unknown
  Started unknown > Binding deployment. Done (00:00:00)

  Started preparing deployment
  Started preparing deployment > Binding releases. Done (00:00:00)
  Started preparing deployment > Binding existing deployment. Done (00:00:00)
  Started preparing deployment > Binding resource pools. Done (00:00:00)
  Started preparing deployment > Binding stemcells. Done (00:00:00)
  Started preparing deployment > Binding templates. Done (00:00:00)
  Started preparing deployment > Binding properties. Done (00:00:00)
  Started preparing deployment > Binding unallocated VMs. Done (00:00:00)
  Started preparing deployment > Binding instance networks. Done (00:00:00)

  Started preparing package compilation > Finding packages to compile. Done (00:00:00)

  Started preparing dns > Binding DNS. Done (00:00:00)

  Started creating bound missing vms > errandPool/0. Done (00:00:01)

  Started binding instance vms > deploy-abacus/0. Done (00:00:01)

  Started updating job deploy-abacus > deploy-abacus/0 (canary). Done (00:00:38)

  Started running errand > deploy-abacus/0

. Done (00:15:26)

  Started fetching logs for deploy-abacus/0 > Finding and packing log files. Done (00:00:01)

  Started deleting errand instances deploy-abacus > 8e3e088c-31a9-4028-7498-618a900dcc2a. Done (00:00:01)

Task 105 done

Started         2015-11-10 19:14:22 UTC
Finished        2015-11-10 19:30:30 UTC
Duration        00:16:08

I think that BOSH errand is taking so long because it's running all the cf pushes sequentially instead of running them in parallel like our npm run cfpush does.

Running bin/boshdeploy several times gives me the following error:
bin/boshdeploy
Acting as user 'admin' on 'Bosh Lite Director'

Copying packages
----------------
cf-abacus

Copying jobs
------------
deploy-abacus

Generated /var/folders/yw/3l1cpfy97w51v6xlvc17654m0000gn/T/d20151110-80752-1o9fprp/d20151110-80752-1thavma/release.tgz
Release size: 10.3M

Verifying release...
File exists and readable                                     OK
Extract tarball                                              OK
Manifest exists                                              OK
Release name/version                                         OK
Read package 'cf-abacus' (1 of 2)                            OK
Package 'cf-abacus' checksum                                 OK
Read package 'cli' (2 of 2)                                  OK
Package dependencies                                         OK
Checking jobs format                                         OK
Read job 'deploy-abacus' (1 of 1), version 2fc0b12ea99ecb82ac372f0aea242deb9a855fac OK
Job 'deploy-abacus' checksum                                 OK
Extract job 'deploy-abacus'                                  OK
Read job 'deploy-abacus' manifest                            OK
Check template 'run.erb' for 'deploy-abacus'                 OK
Check template 'manifest.yml.erb' for 'deploy-abacus'        OK
Job 'deploy-abacus' needs 'cf-abacus' package                OK
Job 'deploy-abacus' needs 'cli' package                      OK
Monit file for 'deploy-abacus'                               OK

Release info
------------
Name:    cf-abacus
Version: 0+dev.2

Packages
  - cf-abacus (a3e0382a89a216a2a3b6450b0db93ba57faaaacf)
  - cli (6fb52c578aad523ba3c78bc350313d4aa4db7da9)

Jobs
  - deploy-abacus (2fc0b12ea99ecb82ac372f0aea242deb9a855fac)

License
  - none

Uploading release
release.tgz:   100% |oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo|  10.3MB  15.0MB/s Time: 00:00:00

Director task 108
  Started extracting release > Extracting release. Done (00:00:00)

  Started verifying manifest > Verifying manifest. Done (00:00:00)

Error 30014: release `cf-abacus/0+dev.2' has already been uploaded with commit_hash as `21491b80' and uncommitted_changes as `false'

Task 108 error

For a more detailed error report, run: bosh task 108 --debug

Error 30014 occurs when the release being uploaded and the release that exists in the bosh director has the same name but different release version commits. Since its a development environment, we could delete all the releases before uploading any new release.
$bosh -n -v delete release cf-abacus
$bosh -n -v upload release

@rajkiranrbala What are these release version commits? Are these the git commits from the Abacus repo or are we talking about different commits?

While building the release, the commit hash of the git repository where the releases folder resides is used. For instances 21491b80 is the HEAD when the bosh release was generated. If there has been any changes to the repo that are not committed then the uncommitted_changes will be true.

OK, I've added the steps to delete the bosh release if it exists, after having deleted the deployments that reference it, also cleaned up a few more things. So now the flow can just be:
# Create the BOSH release
npm run boshrelease

# Deploy it
npm run boshdeploy

# Run the BOSH errand
npm run boshrun

Running the errand still takes forever, not really a BOSH problem, more like a CF problem as it's the app staging that's taking forever but it's worse when running as a BOSH errand as there doesn't seem to be a simple way to run multiple commands in parallel like we do in our npm run cfpush from that BOSH errand (unless I missed it).

@rajkiranrbala Actually, do you know what would happen if we changed:
https://github.com/cloudfoundry-incubator/cf-abacus/blob/master/etc/bosh/jobs/deploy-abacus/templates/run.erb
from:
cf push

to:
cf push &

Could we achieve the same speed up that we're getting using that technique in npm run cfpush?

That would change anything except cf push running in the background. The applications are listed in the manifest file located in https://github.com/cloudfoundry-incubator/cf-abacus/blob/master/etc/bosh/jobs/deploy-abacus/templates/manifest.yml.erb
If we want to push applications in parallel we could do this
cf push abacus-dbserver &
cf push abacus-dbserver &
cf push abacus-dbserver &
cf push abacus-dbserver &

That would change anything except cf push running in the background.

Isn't that run.erb template used to push each individual app?
Where do we need to add that & if we don't add it there.

The applications are listed in the manifest file located in https://github.com/cloudfoundry-incubator/cf-abacus/blob/master/etc/bosh/jobs/deploy-abacus/templates/manifest.yml.erb
If we want to push applications in parallel we could do this
cf push abacus-dbserver &
cf push abacus-dbserver &
cf push abacus-dbserver &
cf push abacus-deserver &

Isn't that sequence of cf push defeating the purpose of having the list of apps in that manifest?
Sorry if I'm asking a dumb question, but I feel a bit lost in all these BOSH config files and scripts :)
Where would you add that sequence of cf push <appname> &?

When npm run cfpush  is executed, the manifest.yml in the individual application's folder is used. However for the purpose of deploying through BOSH, I combined them to create one manifest file.
The  manifest.yml.erb is a ruby template so that the manifest for deploying multiple apps to CF can be generated.
cf push <appname> & should be present in the run.erb file.
In order to list the applications from the manifest file, we can change the run.erb to
#!/bin/bash
set -xe
BASEDIR=$(dirname $0)
cd $BASEDIR

export PATH=$PATH:/var/vcap/packages/cli/bin

cf api --skip-ssl-validation <%= p("cf.api") %>

cf auth <%= p("cf.email") %> <%= p("cf.password") %>

cf target -o <%= p("cf.organization") %> -s <%= p("cf.space") %>

cat ./bin/manifest.yml | grep "\-\sname:" | awk '{ printf "(cf push %s &)\n", $3 }' | bash -xe
#which is equivalent to
#cf push abacus-dbserver &
#cf push abacus-eureka-stub &
#cf push abacus-account-stub &
#cf push abacus-provisioning-stub &
#cf push abacus-usage-collector &
#cf push abacus-usage-meter &
#cf push abacus-usage-accumulator &
#cf push abacus-usage-aggregator &
#cf push abacus-usage-rate &
#cf push abacus-usage-report &

Ah... got it! Thanks!

I'm going to close this issue as the BOSH release deployment now works, although slowly... and create a different one for the performance issue. Do you think you could submit a later pull request for the performance improvement? Thanks!!


Issues with running pg_dump with docker exec?

Hi, today I noticed a weird behavior when trying to restore a dump from my back-ups to my local machine. pg_restore returned successful but without restoring anything from a 600MB dump. With --verbose it reported data-only was implied but I didn't ask for data-only. I was creating the back-up with docker exec container-name pg_dump -Fc dbname > /tmp/db.dump. The dump file was created in the Docker host machine as expected but for some reason I was not able to restore from that dump. If I use an external postgresql-client package in the host, then the dump file works as expected. Is docker exec appending anything else to the output that could be causing such bad dump file? Maybe the documentation could add a warning if this is the case. If I knew that beforehand I'd probably added some volume mapping to local back-ups (-v /tmp/db-dumps:/db-dumps). Anyway, I'm curious. Has someone else experienced such weird behavior? If so, do you know why it doesn't work as expected?

The message I got with --verbose included this: "pg_restore: implied data-only restore"

+1

Sorry for the delay -- I'm not able to reproduce the issue.  When I run docker exec --user postgres test pg_dump -Fc postgres > test.dump and then inspect the resulting file, there's nothing extra in the file (it's simply the binary data generated by pg_dump itself):
$ docker exec -i --user postgres test pg_restore < test.dump
--
-- PostgreSQL database dump
--

-- Dumped from database version 10.1
-- Dumped by pg_dump version 10.1

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;

--
-- Name: postgres; Type: COMMENT; Schema: -; Owner: postgres
--

COMMENT ON DATABASE postgres IS 'default administrative connection database';

--
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
--

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;

--
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:
--

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';

--
-- PostgreSQL database dump complete
--

I'm not sure if you want to close this issue, ran into the same problem today.
If I'm sh into the container and run pg_dump and pg_restore inside the container, it works normally.
Running docker exec returns the same error  pg_restore: implied data-only restore

@cuongtranx can you please provide a complete set of minimal example commands to reproduce the issue?

Sure:
docker exec db-container pg_dump -Fc -U username -d dbname > ./dump
docker exec db-container pg_restore -Fc -v -U username -d dbname ./dump
verbose returns the following message: error pg_restore: implied data-only restore
I've tried to create dump as text (without -Fc flag) and it seems to run normally. It's the custom format that's having issues.

That's not a complete example -- how does /tmp/dump get into the container for the second command?  Are you doing a bind mount?  Are those two separate containers with separate /var/lib/postgresql/data volumes?

@tianon We just hit this bug in one of our production setups using postgres:9.3. Here's a complete example attached reproducing the problem with postgres:11: sql11.txt

Further to my previous comment, redirecting pg_dump's output while inside the container seems to work:
[root@myhost hello]$ docker exec -ti test bash
root@6a5d86a4e520:/# cd /mnt/
root@6a5d86a4e520:/mnt# pg_restore -l hello.dump
pg_restore: [custom archiver] could not read from input file: end of file
root@6a5d86a4e520:/mnt# pg_dump -U postgres -Fc hello > hello.dump
root@6a5d86a4e520:/mnt# pg_restore -l hello.dump
;
; Archive created at 2019-05-08 07:03:29 UTC
;     dbname: hello
;     TOC Entries: 15
;     Compression: -1
;     Dump Version: 1.13-0
;     Format: CUSTOM
;     Integer: 4 bytes
;     Offset: 8 bytes
;     Dumped from database version: 11.2 (Debian 11.2-1.pgdg90+1)
;     Dumped by pg_dump version: 11.2 (Debian 11.2-1.pgdg90+1)
;
;
; Selected TOC Entries:
;
196; 1259 16385 TABLE public city postgres
197; 1259 16391 TABLE public country postgres
198; 1259 16398 TABLE public countrylanguage postgres
2879; 0 16385 TABLE DATA public city postgres
2880; 0 16391 TABLE DATA public country postgres
2881; 0 16398 TABLE DATA public countrylanguage postgres
2751; 2606 16405 CONSTRAINT public city city_pkey postgres
2753; 2606 16407 CONSTRAINT public country country_pkey postgres
2755; 2606 16409 CONSTRAINT public countrylanguage countrylanguage_pkey postgres
2756; 2606 16410 FK CONSTRAINT public country country_capital_fkey postgres
2757; 2606 16415 FK CONSTRAINT public countrylanguage countrylanguage_countrycode_fkey postgres

So clearly the issue is redirecting pg_dump's output from outside of the container. Perhaps because it's compressed binary data?

(Apologies. Please ignore previous, deleted comments)
I traced this back to using docker exec -t instead of just docker exec. The TTY adds EOL characters that corrupt the binary output.
Here's a reproducer: sql.txt

Sorry for commenting in and old issue but this is the first thread that actually helped me solve a similar problem (I was invoking pg_dump using docker-compose exec).
In my case I had to add -T flag to disable the TTY. Just posting it here in case someone will have similar issues.

Don't know what's going on here but I had to NOT use -t in docker exec to get this to work. I had the following error: pg_restore: error: could not read from input file: end of file.
This is the command that worker for me:
docker exec postgres_docker pg_dump -Fc -U postgres > db.dump

Sorry for necroposting, but @elitan I suspect that @RafalSkolasinski above was actually talking about docker-compose exec, not docker, since -T is the option for docker-compose exec to disable allocation of a pseudo-TTY, while in docker exec it is the absense of -t.


Support for ACL commands #1538

Draft PR for ACL commands API.
My main concern - should we provide higher abstractions for rules?

Good first draft. Let's move AclCategory into an api package so we don't depend on the model package.
Can we also make the username a String instead of using the keytype K?

In preparation for Lettuce 6.1 M1, I'd like to move this change to M2.

I've made some fixes according to the first review

Thank you for your contribution. That's merged and polished now. I removed UserRulesOutput because it didn't consider nested lists. We could introduce a parser for List<Object> that creates an user object and that can be translated into ACL SET USER args.


Bump to go version 1.14 of flag

This ports the changes in golang/pkg/flag v1.14 to this package.
Seeing as this it the v1.14 version of the golang package, I HEAVILY RECOMMEND bumping this repository to v1.14.0 to maintain feature parity with golang versions.

@namsral is the super popular flag package something you are still interested in maintaining?

Closing.


Add priority to registerActionsForEvents and fix funding accounts

Those are problems that were found while testing Teller with the new V5 release.
The priority was added because, with the refactor, for the event deployment:contract:deployed, multiple actions are fired at the same time in a "random" order that could cause a race condition where the onDeploy hooks could fire before the registrations in the VM, making some contracts fail to use their own Contract object.
The fund account issue is because we can't call multiple TXs in parallel on the node, otherwise we have nonce issues. IE all transactions will have the same nonce because they are sent at the same time.
I added tests for the respective fixes and features

@PascalPrecht updated

Well done!!


Links doesn't get updated after model changes

I was playing with model binding properties to change the look and feeling about the nodes and edges and i realise that for nodes is working but it isn't for links.
Any idea why it isn't my links updating?
Check https://codesandbox.io/embed/kxq6zx47y7 a way to reproduce this issue. Just click into the button to generate a random look and feeling for all nodes and links.
Edit: added same example in vanilla gojs(https://codesandbox.io/embed/9opn15521w), but as you could see it is working. So something related with how model links get updates.
Edit2: after checking more in deep how this lib works i notice that maybe it could be a gojs problem, check following example(https://codesandbox.io/embed/5j9jwyo4k) into Diagram.js method refreshModel, i use applyIncrementalJson method and then you see that links somehow are not updated

tldr; every time that you are using a different unique identifier in your nodes or links please provide that identifier as prop in your GojsDiagram like <GojsDiagram {...otherProps} linkKeyProperty="key" />
Ok after reviewing it again and ask for support to GoJS team, i realise that ones you use applyIncrementalJson method you should provided first to your model initialisation all key properties that are not default, in my case i wasn't telling what link id i want to be checked in that incremental update so never ever get updated. So ones i added linkKeyProperty as prop in GojsDiagram everything start to work as expected.
I know it is so edge case but maybe this helps to someone in the future.

Thanks for your contribution.
Indeed the library relies heavily on applyIncrementalJson.
I think we can close this issue?

@nicolaserny yes please.


Wrong stage index after REDO

Describe the bug
When I did UNDO and REDO, the stage index went wrong.
To Reproduce

Import & wrangle sample.csv.txt
Edit rules
Drop column6
Edit the last rule and change to drop column5
Press Undo (sth like ↪ above the rule list)
Press Redo
Suddenly, the 2nd last stage is shown.

Expected behavior
The last stage should be shown.
Screenshots

Desktop (please complete the following information):

OS: MacOS
Browser: Chrome
Version: 68.0.3440.106

Additional context
The column highlight is not important.

 Wrong stage index after REDO


test-branch/execute-job/comment-from-wrong-user-on-pr/3d06e885-a1d1-4b68-ac15-84e709309e91

PR for testing ec866d0248a1ba74ac0969ff95851999475192e7

/canonical/self-hosted-runners/run-workflows ec866d0248a1ba74ac0969ff95851999475192e7


Docs for wiki: upload two pictures for the derivation of updateHP

Summary
Docs for wiki: upload two pictures for the derivation of updateHP in the picture folder
Additional Information
Test Plan

Thanks !


Proxy resolver does not currently support Cairo1 ABIs Error

When trying to use Protostar as a CLI to interact with the default Cairo 1 smart contract that Protostar creates when doing protostar init --minimal project deployed to testnet, the "call" command fails with the error Proxy resolver does not currently support Cairo1 ABIs.
This is the executed command:
protostar call --contract-address 0x03c308e8ed89a258d1c5398d81d11fcc2b008b7dc4f7e74fe07d9768d95bb9ef --function "get_balance" --network testnet

Protostar version

Name
Version

Protostar
0.13.0

Cairo-lang
<IP_ADDRESS>

Git
2.39.2

Current Behavior

The CLI command returns the following error:
Unexpected Protostar error. Report it here:
https://github.com/software-mansion/protostar/issues

Traceback (most recent call last):
  File "binary_entrypoint.py", line 85, in <module>
  File "binary_entrypoint.py", line 24, in init
  File "protostar/start.py", line 21, in main
  File "protostar/start.py", line 47, in run_protostar
  File "protostar/start.py", line 42, in run_protostar
  File "asyncio/runners.py", line 44, in run
  File "asyncio/base_events.py", line 647, in run_until_complete
  File "protostar/protostar_cli.py", line 80, in run
  File "protostar/protostar_cli.py", line 117, in _run_command_from_args
  File "protostar/argument_parser/cli_app.py", line 25, in run
  File "protostar/commands/call/call_command.py", line 67, in run
  File "protostar/commands/call/call_command.py", line 97, in call
  File "protostar/starknet_gateway/call/call_use_case.py", line 32, in execute
  File "protostar/starknet_gateway/data_transformer_policy.py", line 59, in transform_entrypoint_output_to_human_if_abi_found
  File "protostar/starknet_gateway/abi_resolver.py", line 32, in resolve
  File "protostar/starknet_gateway/abi_resolver.py", line 45, in _resolve
  File "starknet_py/proxy/contract_abi_resolver.py", line 85, in resolve
  File "starknet_py/proxy/contract_abi_resolver.py", line 98, in get_abi_for_address
starknet_py.proxy.contract_abi_resolver.UnsupportedAbiError: Proxy resolver does not currently support Cairo1 ABIs.
[20160] Failed to execute script 'binary_entrypoint' due to unhandled exception!

Expected Behavior

The CLI command should return the default value 0 as the variable has not been set:
Call successful.
Response:
{
    "res": 0
}

Steps to Reproduce

Try executing this command on a terminal
protostar call --contract-address 0x03c308e8ed89a258d1c5398d81d11fcc2b008b7dc4f7e74fe07d9768d95bb9ef --function "get_balance" --network testnet

OR

Create a new project using protostar init --minimal project
Declare and deploy the smart contract to testnet
Try to "call" the get_balance" function using the protostar call command

Possible Solution

I don't know

There is an issue with the Protostar CLI when trying to interact with the default Cairo 1 smart contract. The error indicates that the Proxy resolver does not currently support Cairo1 ABIs.
Check the Protostar documentation and release notes for any information regarding support for Cairo1 ABIs. The issue might be a known limitation, and there could be instructions or workarounds provided in the documentation.
If there is no immediate solution, consider using an earlier version of Cairo-lang that might be compatible with the Proxy resolver. However, be cautious about potential side effects and ensure that this is a viable temporary workaround.
If Protostar CLI continues to pose challenges, consider alternative methods for interacting with the smart contract, such as using other CLI tools or interacting directly with the smart contract on the testnet.


Issue #63 Force applying styles for fixed canvas frame in ff < 38

Here is a fix for https://github.com/firebug/pixel-perfect/issues/63
I think it makes sence to release that, because according to this ff 38 will be released on June 2.

Works for me thanks!
Honza


pipeP, composeP, pipeK, and composeK?

I'd like to see these utility functions from ramda.js in this library. They're the same as the standard pipe and compose functions but P being specialised to promises and K being specialised to kliesli arrows.
Should be straightforward to implement if cumbersome to type out (All the variadic overloading). I'd be willing to write the pull request but I'm unsure of what file they should live in? function?

I wouldn't promote the usage of bare promises, so no composeP / pipeP.
composeK / pipeK are more interesting, they should live in the Chain module I guess.
However I expect that they won't play well with polymorphic functions.
What's the use case (with respect to just using chain)?
import { tail, head } from 'fp-ts/lib/Array'
import { option, Option } from 'fp-ts/lib/Option'
import { URIS, Type } from 'fp-ts/lib/HKT'
import { Chain1 } from 'fp-ts/lib/Chain'

declare function composeK<M extends URIS>(
  M: Chain1<M>
): <A, B, C, D>(cd: (c: C) => Type<M, D>, bc: (b: B) => Type<M, C>, ab: (a: A) => Type<M, B>) => (a: A) => Type<M, D>

const f1 = composeK(option)(head, tail, tail)
//                          ^ error here

// this is ok
const f2 = <A>(as: Array<A>) =>
  tail(as)
    .chain(tail)
    .chain(head)

Yeah good point. After further investigation the type inference on composeK and pipeK isn't very good. It's probably better off to just use .chain as you suggest.


Failing to install GPU.JS

npm install gpu.js

<EMAIL_ADDRESS>install E:\peter\NodeJS\GPU\node_modules\gl
prebuild-install || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=10.14.2 runtime=node arch=x64 libc= platform=win32)
E:\peter\NodeJS\GPU\node_modules\gl>if not defined npm_config_node_gyp (node "C:\Users\peter\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Users\peter\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\15.0\Bin\MSBuild.exe ENOENT
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:232:19)
gyp ERR! stack     at onErrorNT (internal/child_process.js:407:16)
gyp ERR! stack     at process._tickCallback (internal/process/next_tick.js:63:19)
gyp ERR! System Windows_NT 10.0.17763
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\peter\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd E:\peter\NodeJS\GPU\node_modules\gl
gyp ERR! node -v v10.14.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! This is a bug in node-gyp.
gyp ERR! Try to update node-gyp and file an Issue if it does not help:
gyp ERR!     https://github.com/nodejs/node-gyp/issues
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.
npm ERR! code ELIFECYCLE
npm ERR! errno 7
npm ERR<EMAIL_ADDRESS>install: prebuild-install || node-gyp rebuild
npm ERR! Exit status 7
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\peter\AppData\Roaming\npm-cache_logs\2019-11-18T14_58_15_565Z-debug.log
I couldn't find a fix for that a google, i hope somebody can tell me to fix this.

gyp ERR! node-gyp -v v3.8.0
gyp ERR! This is a bug in node-gyp.
gyp ERR! Try to update node-gyp

The current release of node-gyp is https://github.com/nodejs/node-gyp/releases

@peter12908 you have VS2019 installed, which is only supported starting on node-gyp 5.0.0. Please update npm, which will include an updated version of node-gyp:
npm install --global npm


Add Exists method to ConfigurationSection

Adds Exists method to ConfigurationSection

Syntatic sugar so relatively expensive to call

Addresses #292

Hi @andrewlock, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

Merged thanks! bc96e60de589f4c0cabced33105c5acdcbc68da3


Improved compare_versions function

This is a suggestion to solve some problems with version.
Example: PyCharm-Professional
Current version is 2019.1.2-191.7141.48, but the command scoop list and scoop update PyCharm-Professional show old version installed 2019.1-191.6183.50.
Explain: Current function, when compare, use [2019,1,191,6,6183,50] vs [2019,1,2,191,7141,48], the 191 is greater than 2
My idea: Split first by "-", and compare each group first (Ex.: 2019.1.2 vs 2019.1)
It work for date and version with text, ex.: 2019-05-16, 2.2.1-beta1

#3333

Supressed by #3333


✨ Ensure solver output is deterministic

Closes #142

If there's a particular order we expect the output to be emitted in, can we assert that the output is sorted in that order in the test?

@stevekuznetsov that is what we now do: in internal/solver/solve_test.go I removed two calls to sort.SliceStable on output form the solver. These were masking randomness of the output. Now we assert.Equal expected output against actual and this should flag any change in the order. Or am I missing something?

I'm asking if we can add an explicit sort in that test to further ensure that nobody accidentally put their test data in the wrong order for the assertion

@stevekuznetsov do I understand correctly that you are suggesting doing a sort.SliceStable on the expected data for double security? I'm not sure that we can come up with a sort like this because output order depends on the input constraints. So we will most likely be required to solve problem in the test data to be able to sort expected data.
I think having order defined manually in literals (e.g. Installed: []deppy.Identifier{"a", "b", "c"}) is sufficient.

I'm not sure that we can come up with a sort like this because output order depends on the input constraints.

That makes sense. Is it possible to change the system in the future to be independent of the order of input? Seems like it would make things easier to reason about.

Is it possible to change the system in the future to be independent of the order of input? Seems like it would make things easier to reason about.

I'm not 100% sure. Order in some problems is important. For example, in context of operator-controller we want versions to be ordered in a certain way (from newer to older in the simplest case) and constraints will dictate that order. So maybe we can make order of some things independed from input, but there will be corelation between input and output still (I think).

If the order is important, then implicitly hoping that the input is ordered correctly doesn't seem like the right approach, and, furthermore, it seems like the output order is knowable (and explicit).

If the order is important, then implicitly hoping that the input is ordered correctly doesn't seem like the right approach, and, furthermore, it seems like the output order is knowable (and explicit).

Order might or might not be important on the problem level (e.g. input constraints influence solution)
On the solver level we want determinism
For the test inputs we know expected outputs and we explicitly define them in tests

So I don't understand - what am I missing? Could you please provide an example of what you expect to see here? Or add a code suggestion?

If there's a specific order that the problem expects to put data into, it should not expect that the order is implicitly correct in inputs.
If there's a specific order we expect the output to be in, we can add an explicit check for that in tests.

Is it possible to add an explicit sort to the test? If yes, add it. If no, move on.

Is it possible to add an explicit sort to the test?

I think I answered it here:

I'm not sure that we can come up with a sort like this because output order depends on the input constraints. So we will most likely be required to solve problem in the test data to be able to sort expected data.
I think having order defined manually in literals (e.g. Installed: []deppy.Identifier{"a", "b", "c"}) is sufficient.

If you talk about something else - I would really appreciate more details and examples. I'm having troubles understanding the expectations.

You wrote that, then you also wrote:

I'm not 100% sure. Order in some problems is important. For example, in context of operator-controller we want versions to be ordered in a certain way

As far as I can tell, either the output of solving is entirely dependent on input and we have no opinions on it, or it needs to be "ordered in a certain way". All I'm asking is - if either a) we can know a priori what the order will be or b) we need the order to look a certain way, we test for that explicitly by asserting that the sorted set is equal to the output.
If either is not true, then what you/ve got is perfectly sufficient.

@stevekuznetsov thanks for rephrasing this. I think I now better understand.

we can know a priori what the order will be

I'm still not an expert in this area, but as far as I understand we can not know that until we solve the input.


Support class fields

Support for class fields (currently stage-3 proposal) is missing.
The class fields proposal is currently in Stage 3, and has a working implementation in Chrome, as well as being implemented in some other AST parsers (like babel).
I don't know at what stage features are normally added to esprima, but stage 3 looks like a solid stage to me.
Steps to reproduce
Parsing a class with a field just gives an Unexpected token error on the =-sign (expects a function with parentheses).
esprima.parse(`
class MyClass {
    myField = 1;
    #myPrivateField = 2;
}
`)

Expected output
Babel calls it a ClassProperty, with an key and value.
            {
              "type": "ClassProperty",
              "start": 15,
              "end": 28,
              "loc": { ... },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 15,
                "end": 22,
                "loc": { ... },
                "name": "myField"
              },
              "static": false,
              "value": {
                "type": "Literal",
                "start": 25,
                "end": 28,
                "loc": { ... },
                "value": "1",
                "rawValue": "1",
                "raw": "'1'"
              }
            },

Private fields (starting wit #) are called a PrivateClassProperty.
Relevant references
https://github.com/tc39/proposal-class-fields

Sorry for my English.
I work through this with a monkey patch in the dist version esprima.js
Add these code in method parseClassElement, before the throwUnexpectedToken is called:
if (!kind && key && this.match('(')) {
    kind = 'init';
    value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();
    method = true;
}
// === custom code start ===
if (!kind && key && this.match('=')) {
    console.log('Warning: custom esprima for class field assignment expression: ' + token.value)
    const left = new Node.Identifier(token.value);
    this.nextToken();
    const right = this.isolateCoverGrammar(this.parseAssignmentExpression);
    return this.finalize(node, new Node.AssignmentExpression('=', left, right));
}
// === custom code end ===
if (!kind) {
    this.throwUnexpectedToken(this.lookahead);
}

It's only for the base assignment expression in class field, no static, no private. And I don't know if this will lead to other problems.
But, it's enough for my project.

This is in ES2022 https://github.com/estree/estree/blob/master/es2022.md

I've created a patch forthis in my fork: https://github.com/node-projects/esprima-next/pull/11
I'll will create a pull here, when there are signs that someone would merge it.


fix(tokens): automated token update

Created by the update-tokens GitHub Actions workflow

:tada: This PR is included in version 2.0.0-next.8 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add isSupported property

Fixes #11

On the other hand, maybe this isn't needed since as far as I know, it will always return true for our supported browsers 🤔 In that case it might not make too much sense to have this, since we already have said that other browsers are too old anyways...

But who says my site's supported browsers are the same as clipboard-copy's supported browsers?!

But who says my site's supported browsers are the same as clipboard-copy's supported browsers?!

Noone is saying that, but I'm saying that it might be outside the scope of this module to provide support for those browsers.
Merging this PR would add code that we need to maintain, simply to support some very old browsers. It will also add an implication that you should check the isSupported property before using the library, which I don't think is necessary when you are targeting modern browsers.
I'm not saying it's one way or the other, but it's something that should be considered before merging this PR.
According to caniuse.com, the usage of non-supported browsers are really low. Not sure if it's useful to support that 0.81%...

Browser
Usage

IE8
0.21 %

IE9
0.12 %

IE10
0.13%

Safari 9
0.24%

Chrome 29
0.11%

Total
0.81%

Noone is saying that, but I'm saying that it might be outside the scope of this module to provide support for those browsers.

You keep talking about supporting these older browsers. Nobody is trying to do that, for the purposes of copying text. This change does not provide support for old browsers, as you must know. This change allows code to know whether or not the current browser supports copying. That's a totally different thing. You seriously think adding a test for your users to know whether or not this module is actually going to do what it's supposed to is out of scope?

Merging this PR would add code that we need to maintain

It's a few very simple lines.

It will also add an implication that you should check the isSupported property before using the library, which I don't think is necessary when you are targeting modern browsers.

That's up to the developer, isn't it? And I don't see how it's an issue. If they know they're only supporting browsers that your library supports, there's obviously no need to perform the test, though I don't see that there's any harm in doing so. If they are required to support IE10 and Safari 9 (and I note that you didn't mention any mobile browsers at all -- there are a lot of old mobile browsers still in use) then the test is very useful.

According to caniuse.com, the usage of non-supported browsers are really low. Not sure if it's useful to support that 0.81%...

Cite your source more specifically. When I look this up I get a very different story. https://caniuse.com/#feat=clipboard shows me that "partial support" is available to just 85.9% of users. You seem to be under the impression that the five browsers you listed are the only ones in use which don't support the clipboard. That is not accurate.
Besides, the authors of this library have already made this decision; they've decided (or were forced) not to support those older browsers for the purposes of copying text. That's fine, no argument there. But the authors of this library are not responsible for making the browser support decision for the website the developer is working on! It's not always even up to us.
Providing this test for use cases like that makes things convenient for the developer; it means they don't need to read your source code to see the method of implementation and then look up how to test whether that's available on the current browser. It also provides peace of mind that the result of the test will remain accurate even when updating this clipboard-copy library.

[...] shows me that "partial support" is available to just 85.9% of users.

The point of this library is to be more minimalist than existing solutions. I don't have any desire to add any feature requests or additional API surface area. I don't want the module size to increase at all.
Your options are:

Pretend older browsers don't exist, fail ungracefully in them.

Use the return value to detect whether the copy worked or not.

Use another package like https://www.npmjs.com/package/clipboard which has a Clipboard.isSupported() method to detect in advance if copying is supported.

Fork this and do whatever you want.


Update Default Value for P2P-Peer-Upper-Bound

Pull request checklist
Use the following template to make sure your PR fits the Teku documentation standard.
Before creating the PR
Make sure that:

[x] You've read the contribution guidelines.
[ ] You've previewed your changes locally.

Describe the change

Update Default Value for P2P-Peer-Upper-Bound
Issue fixed

fixes #364
Impacted parts

For content changes:

[x] Documentation content
[ ] Documentation page organization

For tool changes:

[ ] CircleCI workflow
[ ] Build and QA tools (for example lint or vale)
[ ] MkDocs templates
[ ] MkDocs configuration
[ ] Python dependencies
[ ] Node dependencies and JavaScript
[ ] Read the Docs configuration
[ ] GitHub integration

After creating your PR and tests have finished
Make sure that:

[ ] You've fixed any issues raised by the tests.
[ ] You've previewed your changes on Read the Docs
and added a preview link.

Preview

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Sam McDougall seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


ERROR Failed to read data from robots.txt/robots.txt: Data not supported for extension 'txt'

can't build site after upgrading Hugo v0.40.2  and gives this error. Before I had v0.32.4 and didn't show any error while building. The file currently in static folder.
ERROR 2018/05/07 15:21:13 Failed to read data from robots.txt/robots.txt: Data not supported for extension 'txt'
any idea how to fix?
I tried
disableRobotsTXT = true
disableKinds = ["robotsTxt"]
or moving my robots.txt file to layouts/_default.

Please use https://discourse.gohugo.io/ for questions/troubleshooting. Also see  Hugo Documentation.


Links broken for 2.4.0

Setup and msi links don't work in: https://github.com/ShayBox/Wooting-Profile-Switcher/releases/tag/2.4.0

The 2.4.0 release is not working, Wootility needs to update before it will work.
It is also failing to build on Linux due to an Ubuntu 22.04 dependency issue, or the appimage fails to build because glibc updated years ago.
This project is pretty much dead and only being updated if possible unless tauri-egui ever updates again, I cannot fix any of the issues caused by tauri-egui holding this project back.

The 2.4.0 release is not working, Wootility needs to update before it will work.

It has not been released outside of the Web beta, it needs to be released as the installable program because this program hooks into it, the latest installable version is 4.7.2

I'm in the Discord, but the latest Wootility release was 5.0.0-alpha.1
The official download links still return 4.7.2 and my Wootility hasn't found any updates
https://wooting.io/wootility

I can't test it myself, but I added beta and alpha support last time there was a beta and alpha release so it might work with the 2.4.0 release as long as you uninstall stable and beta https://github.com/ShayBox/Wooting-Profile-Switcher/blob/master/src/wootility.rs#L34

I'm hoping the major version increase is because of the redesign and not big changes that will cause this to break :sweat_smile:

@ShayBox Hi!
it's looks like you`re searching for these dirs:
wootility-lekker/Local Storage/leveldb
wootility-lekker-beta/Local Storage/leveldb
wootility-lekker-alpha/Local Storage/leveldb
but with 5.0.0-alpha.1 desktop app i have:
wootility/Local Storage/leveldb
and maybe cause of that, it can't find my profiles (shows: -1)
using 2.4.0

I released a quick fix, try the latest build https://github.com/ShayBox/Wooting-Profile-Switcher/releases/tag/2.4.0

@ShayBox unfortunately, doesn't work.
judging by the configuration, it doesn't detect the keyboard, doesn't see profiles.
before installing the new version, I uninstalled the old one, deleted all the remnants, and tried the portable version as well, tried running it as an administrator.
If I can be of any help, please let me know.

It looks like the only thing that changed was a single variable name from uuid to uid that caused a parsing error https://github.com/ShayBox/Wooting-Profile-Switcher/releases/tag/2.4.0

@ShayBox now it works, thanks!


fix: detect module even when false is set

Issue #, if available:
Description of changes:
This was tripping up on false being a zero value. When comparing (with cmp) against the zero value of the struct, the desired value is confused with the zero value.
Now the module uses a pointer to detect whether or not a value has been set to handle the case that false is the intended setting.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Added test cases for all of enabled/disabled/unspecified settings.


[AutoPR deviceupdate] revert

Create to sync https://github.com/openapi-env-test/azure-rest-api-specs/pull/3070

API change check for Azure.IoT.DeviceUpdate
API changes have been detected in Azure.IoT.DeviceUpdate. You can review API changes here
API changes
+
+ Dependencies:
+ Azure.Core
+ Azure.Core.Experimental
+


Allow pasting block explorer links into the search bar

Often you are provided a link to visit a transaction or address on a different block explorer, but you want to see it in Otterscan. We should recognize some of the URL formats, such as .../address/0x..., and let users directly paste them into the search bar. Currently, you have to trim the pasted links manually.

also see https://eips.ethereum.org/EIPS/eip-3091


Improve help example

Codecov Report

Merging #15 (486c5fc) into master (1a61f28) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #15   +/-   ##
=======================================
  Coverage   87.67%   87.67%
=======================================
  Files           1        1
  Lines         706      706
=======================================
  Hits          619      619
  Misses         87       87

Impacted Files
Coverage Δ

source/argparse.d
87.67% <100.00%> (ø)

Continue to review full report at Codecov.

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


Add imports

Add imports

Deciding which way I want to go with this, since the library only used the use import on globally namespaced stuff in the tests.
I generally don't import the global stuff since it's just a , but either way it should be consistent.

Forgot to loop back around to this, but overall consensus among peers is that they import globals. So this is all good.


Indicate whether a file is "annexed" when exploring folder structure

+1 This sounds like a very useful feature to me!

+1 This sounds like a very useful feature to me!


gnome-podcasts: 0.4.8 -> 0.4.9

Motivation for this change
Version bump. And added new dependencies, as upstream requires them from now on.
Changelog here: https://gitlab.gnome.org/World/podcasts/-/releases
Things done

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

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

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

Is CMake really needed? https://github.com/jtojnar/nixpkgs-hammering/blob/6a4f88d82ab7d0a95cf21494896bce40f7a4ac22/explanations/meson-cmake.md


Remove .NET Core 2.1 workaround

There's a workaround for the build definitions to install .NET Core 2.1 as otherwise WebSharper fails with:
error MSB6006: "wsfsc.cmd" exited with code -2147450730
I've updated WebSharper to 4.7.* which is the latest version before some breaking changed. Specifically the later versions apparently drop netstandard2.0 support -
https://github.com/dotnet-websharper/core/releases/tag/<IP_ADDRESS>-preview1
However, updating WebSharper creates a problem with external dependencies that are built with the version of WebSharper currently in this repository:
Binary format version mismatch, found '4.5', expecting '4.7'
I've worked around that by forking and inlining the relevant parts of
https://github.com/predictionmachines/FSharpIDD
https://github.com/SynBioDex/fSBOL
Options:

take the win, merge this
try to get the dependent projects to upgrade first (I think one is potentially easy to convince :wave: @PrashantVaidyanathan but the other isn't currently maintained so may need forking)
abandon this, put a note in the build files and link here
???

Looks like a nice win!
Inlining IDD makes sense to me, but let's see what @PrashantVaidyanathan says about FSBOL before making a decision on that bit.

Sorry for the delay on my end. This looks great - and I agree inclining dependencies makes it easier going forward.  No objections on my end :)

On my fork FSharpIDD.WS wouldn't be needed. However, 'FSharpIDD' is still used. We could go further and have the non-WebSharper versions also used the inlined code. That would make it easier to change code if it's needed but that wasn't directly a goal of mine - just to diagnose and fix the immediate problem. Ideally any changes would flow back through IDD but I don't know if that's realistic.
@ndalchau as part of the pull request I think I gave you rights to directly edit on my fork. Go ahead with the dropping of FSBOL  directly, or you can do a PR if needed.

However, 'FSharpIDD' is still used. We could go further and have the non-WebSharper versions also used the inlined code.
This is exactly what I thought we should do.

Ideally any changes would flow back through IDD but I don't know if that's realistic.
I agree, but also think that's unrealistic.

I don't have access to your Fork, so I'll make a new one, and raise a PR to yours.

Merged your changes, can let this one build then merge @ndalchau

I haven't run this with the additional changes but think it's good to go in.


docs: Improve formatting of upgrade notes

Improve the formatting of the upgrade notes to provide critical
information: affected versions, mitigations, solution and upgrade steps.

This change is

test-docs-please

Build failed due to "misspelling" in docs:
22:09:33 Please fix the following spelling mistakes:
22:09:33 * Documentation/install/upgrade.rst:140: (remediate)
22:09:33 If the words are not misspelled, add them to Documentation/spelling_wordlist.txt.

I'm surprised that it doesn't know what this word is, but, alas.

Yeah, I built this on top of https://github.com/cilium/cilium/pull/4360 at first and thought I might be able to sneak it in without conflicts on the side. No strong pressure, I'll just rebase/rerun when that's merged to avoid conflicts.

Test-docs-please

test-docs-please


nri-bundle: add newrelic-infrastructure-beta as a dependency

Is this a new chart
No
What this PR does / why we need it:
This PR allow installing the PR being developed in #624 from the nri-bundle, by flipping newrelic-infrastructure-beta.enabled to true and infrastructure to false.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [mychartname])

closing since it was too complex to rebase https://github.com/newrelic/helm-charts/pull/640


Use dataVolumeTemplates instead of creating PVC/DV objects.

Pull Request Test Coverage Report for Build 607

253 of 278 (91.01%)  changed or added relevant lines in 14 files are covered.
6 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.8%) to 86.807%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/components/ConfigurationSummary/ConfigurationSummary.js
7
8
87.5%

src/components/Wizard/CreateVmWizard/CreateVmWizard.js
5
6
83.33%

src/k8s/vmBuilder.js
130
131
99.24%

src/utils/templates.js
15
16
93.75%

src/utils/selectors.js
9
14
64.29%

src/k8s/request.js
46
62
74.19%

Files with Coverage Reduction
New Missed Lines
%

src/k8s/clone.js
6
84.06%

Totals

Change from base Build 761:
-0.8%

Covered Lines:
1903

Relevant Lines:
2101

💛  - Coveralls

@mareklibra this PR is ready for review :)


Document project structure in README.md

explain purpose of individual files

This is very well written, thank you!
Some style tips to consider:

we could use Markdown's inline code style (with `backticks`) to denote directories and files
we could link the directories and files

Instead of having per-file documentation in the readme, we should rather have those in the Hs files themselves at some point. The most important questions we want to answer are for example "where do I start looking if I want to know how this works?" "where do I add a new logic function?" etc. On the other hand, the Nix files are described very well. Perhaps we should simply list the files and directories an the root of the project, and dedicate a paragraph to each.


Support hostname specific configs

It would be cool to have hostname specific configurations in case when users use different computers
Suggestions:

~/.aerospace.toml - fallback
~/.aerospace-$HOSTNAME.toml - hostname specific config

That can be achieved with using something like yadm to manage one's dotfiles

I don't like symlinks. I manage my dotfiles with pure git git -c status.showUntrackedFiles=no --git-dir=$HOME/.dotfiles --work-tree=$HOME "$@", that's why I want to have a built-in support for hostname-specific configs
But maybe it's a bad idea, it opens a Pandora's box of other possible conditions like architecture, notch vs no-notch (but they must covered by hostname, so maybe it's not a problem after all)
I've not decided yet

Just wanted to provide an alternative :) Were your first thoughts for the whole config file to be duplicated (but some settings being specific to the host) or to have a main aerospace.toml and include() the hostname-specific settings?

Given that we have ${XDG_CONFIG_HOME}/aerospace/ directory dedicated for configuration, maybe we can do all these things there? We can let aerospace.toml be either a regular config or a "link" indicating which config should be looked at next. The format of "link" will be easy to differentiate from a regular config.
For example:
-- .config/aerospace
     |-- aerospace.toml
     |-- home_mac.toml
     |-- x86.toml
     |-- random.toml

and aerospace.toml:
[[link]]
filename = "home_mac"
hostname = "home_mac"
[[link]]
filename = "x86"
arch = "x86_64"
[[link]]
filename = "random"
arch = "arm64"
hostname = "good"

where we choose the first matched config.

I'd like to be able to include other files, as I share base dotfiles via git, and usually have gitignored local files that change configuration depending on the host which aren't shared (but sometimes symlinked if I want to keep them in git as well).


feat(anvil): auto adjust hardforks by block number

Motivation
Blocked by #2277
Closes #2252

Solution
add hardfork block table and convert hardfork based on block number

https://github.com/foundry-rs/foundry/pull/2277 is merged

needs followup with downgrade to revm compatible ref #2260

This wont work on pre Constantinople blocks?

This wont work on pre Constantinople blocks?

do you mean whether pre Constantinople is supported by revm?
see also #2260


Fails to build after creating

Immediatly after creating the app, I try to build/start and I get the following error:
pablo@ironman test-reason-react $ yarn build
yarn run v1.9.4
$ react-scripts build
Creating an optimized production build...
Failed to compile.

./src/index.re
Module build failed: /Users/pablo/Documents/work/projects/personal/test-reason-react/node_modules/bs-loader/index.js:84
      )
      ^

SyntaxError: Unexpected token )

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Nevermind, I tried switching from node 6 to 8 and it worked, I didn't realized it required node 8.


Thing with Standalone/ tree in builds needs to be documented

EDIT: I changed the title based on ivansafrin's post below
I am on OS X Snow Leopard with XCode 3. I have a complete build of Polycode that I made by running the standard cmake instructions against c3c534c82287 but adding BUILD_POLYCODE_PLAYER=1 (or whatever it is?) at one step. Note, since the last time I did a clean build I have several times up'd the polycode repository and rebuilt without cleaning; don't know if that's potentially significant.
If I go into the new LUA "2DPhysics_Basic" directory and run:
../../../Release/Darwin/Framework/Tools/polybuild --config=2DPhysics_Basic.xml --out=Test.polyapp
polybuild segmentation faults:
andis-macbook:2DPhysics_Basic mcc$ ../../../Release/Darwin/Framework/Tools/polybuild --config=2DPhysics_Basic.xml --out=Test.polyapp
Polycode build tool v0.8.2
Reading config file from /Users/mcc/work/p/Polycode/Examples/Lua/2DPhysics_Basic/2DPhysics_Basic.xml
Reading xml from /Users/mcc/work/p/Polycode/Examples/Lua/2DPhysics_Basic/2DPhysics_Basic.xml
OK!
Entry point: 2DPhysics_Basic.lua
Width: 640
Height: 480
Anti-aliasing level: 0
Background color: 0.250000 0.250000 0.250000
Packaging 2DPhysics_Basic.lua as 2DPhysics_Basic.lua
Adding module: Physics2D
Path:/Users/mcc/work/p/Polycode/Examples/Lua/2DPhysics_Basic/../../../Release/Darwin/Framework/Modules/Physics2D/API
Segmentation fault
It creates a Test.polyapp file, but it is not a valid zip file. unzip emits the error "End-of-central-directory signature not found" and PolycodePlayer, when I try to open the polyapp in there, claims it cannot find the xml file. This is 100% reproducible for me.

Just a side note: rebuilding cmake stuff without cleaning is always a bad idea. I would recommend removing the build directory and re-running cmake every time there are significant pull updates.
Your issue has to do with the fact that you need to be using polybuild in the Standalone folder structure (I'm sorry this is completely undocumented right now!). There is a folder now called Standalone in the Polycode source tree. You need to run cmake in that folder (the usual mkdir Build, cd Build, cmake .. business) after you build and install the main Polycode project. This will create a Release/Darwin/Standalone folder and populate it with the tools as they're supposed to be packaged. Use the polybuild in the Bin folder of that structure, rather than the Framework one.

"I would recommend removing the build directory and re-running cmake every time there are significant pull updates just to be on the safe side."
Would you recommend also deleting the Release/ directory in this case?
"you need to be using polybuild in the Standalone folder structure (I'm sorry this is completely undocumented right now!)."
Great, thanks, although

I'd still consider that a documentation bug, if nothing else; and

I did as you said-- I deleted all the Build folders plus Release, I built again and I built and installed Standalone. After this I ran the polybuild again, this time out of Standalone/Bin. I got the same results as before:

andis-macbook:2DPhysics_CollisionOnly mcc$ ../../../Release/Darwin/Standalone/Bin/polybuild --config=2DPhysics_CollisionOnly.xml --out=../Build/2DPhysics_CollisionOnly.polyapp
Polycode build tool v0.8.2
Reading config file from /Users/mcc/work/p/Polycode/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.xml
Reading xml from /Users/mcc/work/p/Polycode/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.xml
OK!
Entry point: 2DPhysics_CollisionOnly.lua
Width: 640
Height: 480
Anti-aliasing level: 0
Background color: 0.250000 0.250000 0.250000
Packaging 2DPhysics_CollisionOnly.lua as 2DPhysics_CollisionOnly.lua
Adding module: Physics2D
Path:/Users/mcc/work/p/Polycode/Examples/Lua/2DPhysics_CollisionOnly/../../../Release/Darwin/Standalone/Modules/Physics2D/API
Segmentation fault
...however, then things got REALLY weird!
I figured, probably I should run this in gdb so I can give Ivan a better idea of what's happening. When I ran the exact same polybuild in gdb, it completed without crashing:
andis-macbook:2DPhysics_CollisionOnly mcc$ gdb ../../../Release/Darwin/Standalone/Bin/polybuild
GNU gdb 6.3.50-20050815 (Apple version gdb-1515) (Sat Jan 15 08:33:48 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ........ done
(gdb) run --config=2DPhysics_CollisionOnly.xml --out=../Build/2DPhysics_CollisionOnly.polyapp
Starting program: /Users/mcc/work/p/Polycode/Release/Darwin/Standalone/Bin/polybuild --config=2DPhysics_CollisionOnly.xml --out=../Build/2DPhysics_CollisionOnly.polyapp
Reading symbols for shared libraries .+++++++.................................................................................. done
Polycode build tool v0.8.2
Reading config file from /Users/mcc/work/p/Polycode/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.xml
Reading xml from /Users/mcc/work/p/Polycode/Examples/Lua/2DPhysics_CollisionOnly/2DPhysics_CollisionOnly.xml
OK!
Entry point: 2DPhysics_CollisionOnly.lua
Width: 640
Height: 480
Anti-aliasing level: 0
Background color: 0.250000 0.250000 0.250000
Packaging 2DPhysics_CollisionOnly.lua as 2DPhysics_CollisionOnly.lua
Adding module: Physics2D
Path:/Users/mcc/work/p/Polycode/Release/Darwin/Standalone/Modules/Physics2D/API
Packaging /Users/mcc/work/p/Polycode/Release/Darwin/Standalone/Modules/Physics2D/API/Physics2D/PhysicsJoint.lua as Physics2D/PhysicsJoint.lua
Packaging /Users/mcc/work/p/Polycode/Release/Darwin/Standalone/Modules/Physics2D/API/Physics2D/PhysicsScreen.lua as Physics2D/PhysicsScreen.lua
Packaging /Users/mcc/work/p/Polycode/Release/Darwin/Standalone/Modules/Physics2D/API/Physics2D/PhysicsScreenEntity.lua as Physics2D/PhysicsScreenEntity.lua
Packaging /Users/mcc/work/p/Polycode/Release/Darwin/Standalone/Modules/Physics2D/API/Physics2D/PhysicsScreenEvent.lua as Physics2D/PhysicsScreenEvent.lua
Packaging /Users/mcc/work/p/Polycode/Release/Darwin/Standalone/Modules/Physics2D/API/Physics2D.lua as Physics2D.lua
Packaging /Users/mcc/work/p/Polycode/Release/Darwin/Standalone/Modules/Physics2D/Lib/osx/Physics2D.dylib as __lib/osx/Physics2D.dylib
Program exited normally.
...and the generated polyapp was 901k (unlike the 4k ones being spit out on segfault) and actually worked totally fine.
Any idea what could be happening here? :(

Okay, please disregard the previous post. I massaged my build script some and now I do not get the crash any longer.
I'm going to suggest leaving this issue open until the process of using Standalone/ for polybuild is clearly documented however.

Added the Standalone build step to build documentation.


Preform → Perform

Just an English typo in the command line help.

Thank you!

Great.
If someone has the time to do it, passing a spell checking program on all the documentation and the strings in the code will most surely catch other small typos like this (I won't).


Touch events aren't recognized

I've tested blockly on:

Android tablet (Android 4.2.2)
Chrome (39.0.2171.95 - using developer tools with touch emulation)
Firefox (34.0.5 - using developer tools with touch emulation)

In none of them touch events were recognized. I'm able to click/touch blocks, but I can't drag them.

I think updates to the Blockly core library have fixed this.

Thank you, I will check it out.


Use el.parentNode.removeChild(el) instead of el.remove() for IE < 11

From issue 20.
Please merge this patch if you feel happy. Thanks much.

👍


timm.data.resolve_model_data_config not available in version of timm posted in requirements

https://github.com/line/Meta-AI-Video-Similarity-Challenge-3rd-Place-Solution/blob/38213200a6d9943bf26f9128ee68020cdf52e121/training/v46.py#L644
Here and other places, AttributeError: module 'timm.data' has no attribute 'resolve_model_data_config' is raised because this function is only available in future versions of timm, not 0.6.12 as specified in the requirements.

Thank you for pointing out the issues and sorry for bothering you...!
I fixed the problems including other issues you opened by recent commits. Please check.


Cannot split off at a nonexistent index

I am learning rust and the source code of rsedis is a good teaching material.But I found a BUG:
pub fn ltrim(&mut self, _start: i64, _stop: i64) -> Result<(), OperationError> {
      let list = match *self {
          ValueList::Data(ref mut list) => {
              let len = list.len();
              let start = match normalize_position(_start, len) {
                  Ok(i) => i,
                  Err(g) => if !g { 0 } else {
                      list.split_off(len);
                      len
                  },
              };
              let stop = match normalize_position(_stop, len) {
                  Ok(i) => i,
                  Err(g) => if !g {
                      list.split_off(len);
                      0
                  } else { len },
              };
              list.split_off(stop + 1);
              list.split_off(start)
          }
      };
      *self = ValueList::Data(list);
      Ok(())
  }

This is a function of the struct ValueList in database/src/list.rs.
If _stop argument equal or greater than len , the value of stop will be len and stop + 1 will out of range.
If stop less than len and start greater than stop + 1 , the program will panic.

Thanks for the bug report! :grinning:

Feel free to submit Pull Requests!
If you wanna contribute, there's some low hanging fruit you can try. The following commands should be good to get started:
getset
mset
msetnx
randomkey
move
rename
renamenx
keys

I'm very glad to do this,it will help me to learn rust. :smile:


Replacing save_models with save_model

Correct the example code by replacing save_models with save_model so it can function correctly.

Thanks a lot.


Assgn Final

Checklist
Required changes:

[x] Center the description (Line 17 in HTML file) using a single change in CSS
[x] Fix JS so that when the search is executed, the search engine is not present in query
[x] Add Google Drive, Google Slides and Google Sheets as a provider

Optional changes:

[ ] Add other search providers (GitHub, Spotify, etc)
[x] Additional CSS styling (as you like)

Want to see hosted version