I attempted to use releasetool today in google-cloud-datastore, which has a few pending changes. I tried both the python and nodejs options. The python support produces a correct changelog, but then errors in determine_release_version. The nodejs option produces an incorrect and exceptionally long changelog, but then prompts for a manual entry of the new version, which brings it further. It updates the local CHANGELOG.md, then errors with: No such file or directory: 'package.json'.
(I'm trying to figure out how to execute my local clone of the repo so that I can work toward a solution, if you can offer any pointers. I've tried following the instructions for setuptools development-mode but I can't seem to execute the local code, only the executable that I installed per the readme.)
/cc @JustinBeckwith @blowmage @dazuma
Using the python support:
Chriss-iMac:google-cloud-datastore quartzmo$ releasetool start
Which language (python, python-tool, nodejs)?: python
o/ Hey, quartzmo, let's release some stuff!
> Determining basic context.
GitHub Repo: GoogleCloudPlatform/google-cloud-ruby
> Figuring out the package name.
Looks like we're releasing google-cloud-datastore.
> Figuring out what the last release was.
The last release was datastore/v1.4.0.
> Gathering changes since datastore/v1.4.0
Cool, 6 changes found.
> Opening your editor to finalize release notes.
> Now it's time to pick a release version!
Here's the release notes you wrote:
- Reduce string memory usage (#2174)
- Remove yard-doctest autoloading (#2133)
- Fix YARD build in Ruby 2.0.0 (#2125)
- Add documentation for enabling gRPC logging
- Update versioning info on documentation
- Document and check for unsupported Ruby versions (#1988)
### Implementation Changes
### New Features
### Dependencies
### Documentation
### Internal / Testing Changes
Traceback (most recent call last):
File "/usr/local/bin/releasetool", line 11, in <module>
load_entry_point('gcp-releasetool', 'console_scripts', 'releasetool')()
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/releasetool/main.py", line 43, in start
return releasetool.commands.start.python.start()
File "/usr/local/lib/python3.6/site-packages/releasetool/commands/start/python.py", line 225, in start
determine_release_version(ctx)
File "/usr/local/lib/python3.6/site-packages/releasetool/commands/start/python.py", line 122, in determine_release_version
parsed_version = [int(x) for x in ctx.last_release_version.split('.')]
File "/usr/local/lib/python3.6/site-packages/releasetool/commands/start/python.py", line 122, in <listcomp>
parsed_version = [int(x) for x in ctx.last_release_version.split('.')]
ValueError: invalid literal for int() with base 10: 'datastore/v1'
And using the nodejs support:
Chriss-iMac:google-cloud-datastore quartzmo$ releasetool start
Which language (python, python-tool, nodejs)?: nodejs
o/ Hey, quartzmo, let's release some stuff!
> Determining basic context.
GitHub Repo: GoogleCloudPlatform/google-cloud-ruby
> Figuring out the package name.
Looks like we're releasing google-cloud-datastore.
> Figuring out what the last release was.
The last release was 0.20.0.
> Gathering changes since 0.20.0
Cool, 155 changes found.
> Opening your editor to finalize release notes.
> Now it's time to pick a release version!
Here's the release notes you wrote:
- Reduce string memory usage (#2174)
- Remove yard-doctest autoloading (#2133)
- Fix YARD build in Ruby 2.0.0 (#2125)
- Add documentation for enabling gRPC logging
- Update versioning info on documentation
- Document and check for unsupported Ruby versions (#1988)
- Release Datastore 1.4.0
- Release google-cloud-core 1.2.0
- Apply jwt fix to all Gemfiles
- Update Entity code example
- Restore a bunch of allow_nils for deferred config values (#1941)
- Update Datastore config defaults
- Move configure method so it will be documented
- Fix bug with query results using offset
- Default credential configurations
- Simplify some config logic by using aliases and defaults
- Update config class to use BasicObject and provide validations
- Add Datastore configuration support
- Downgrade Rubocop
- Update Datastore code style
- Bump Rubocop to recent version
- Fix acceptance test env var order
- Update authentication documentation
- Release google-cloud-datastore 1.3.0
- Update Apache Licence URL
- Update copyright header format
- Merge pull request #1881 from geigerj/video-ga
- Add Dataset#transaction deadline argument
- Add Dataset#transaction automatic retry
- Loosen version bound
- Bump remaining GAX deps
- Add previous_transaction option and Dataset#read_only_transaction
- Resolve Datastore assert nil warnings
- Release Datastore 1.2.1
- Remove warning when using Datastore Emulator
- Release Datastore 1.2.0
- Skip all Credentials doctests
- Release google-cloud-core 1.1.0
- Fix error test for Ruby 2.0
- Add Google::Cloud::Error#cause
- Bump google-gax dependency
- Bump google-gax dependency
- Add Credentials to Datastore
- Bump GAX dependencies
- Global GAPIC refresh (#1804)
- Fix Build
- Update to latest google-protobuf
- Update READMEs for GA libraries
- Release google-cloud-datastore 1.1.0
- Merge pull request #1578 from blowmage/coverage-filters
- Add coverage filters for Datastore
- Fix bad retry configuration
- Update gem spec homepage links
- Release Datastore 1.0.1
- Pin google-protouf dependency
- Release Datastore 1.0.0
- Release google-cloud-core 1.0.0
- Merge pull request #1376 from blowmage/ga-1.0-prep
- Switch to google-cloud-env
- Merge pull request #1372 from blowmage/readme-latest
- Merge pull request #1375 from quartzmo/integration-test-support
- Add rake task acceptance:unsafe
- Update documentation URLs
- Update Datastore examples
- Update Datastore query docs
- Update Datastore docs
- Merge pull request #1332 from swcloud/gapic-codegen-update-retry-param
- Update GAPIC retry code for non_idempotent calls of all APIs
- Update Datastore docs examples
- Release Datastore 0.24.2
- Update headers to use generated ruby version.
- Release Datastore 0.24.1
- Merge pull request #1269 from landrito/datastore
- Use lib_name/lib_version
- Regenerate datastore.
- Update jsondoc tasks
- Release Datastore 0.24.0
- Generate GAPIC Data Types docs TOC for Datastore
- Upgrade google-gax dependency
- Fix acceptance test output
- Update minitest dependency
- Merge pull request #1242 from swcloud/fix-retry-codes-in-client-config-json
- Fix retry codes in client config json for all gapic API
- Upgrade google-gax dependency
- Merge pull request #1221 from blowmage/refactor-grpc-utils
- Add tests for Datastore emulator_host
- Add Datastore Convert module
- Datastore.new accepts emulator_host params
- Pin yard-doctest version to 0.1.8
- Update toc.json for google-cloud and google-cloud-datastore
- Add data types links to docs for Google::Datastore::V1
- Update Datastore toc.json
- Exclude undocumented GAPIC Datastore code from YARD
- Pin rainbow and nokogiri gems to known good versions
- Add try_with_backoff to Datastore acceptance tests
- Add Datastore GRPCUtils
- Update rake doctest tasks
- Update yard-doctest mocking
- Update File stub in doctest helper
- Add yard autoload_plugins before doctest
- Release BigQuery, Datastore, Logging, and Storage 0.23.0 (beta)
- Update Datastore GAPIC types in docs site
- Add Datastore GAPIC types to docs site
- Include Datastore GAPIC/gRPC code in YARD docs
- Add yard-doctest testing to Datastore
- Pin Rake at version ~> 11.0
- Use new GAPIC naming
- Change api suffix from Api to Client
- Merge pull request #1016 from swcloud/gapic-grpcdocgen-datastore
- Add prefix to Datastore acceptance tests
- Add ci:acceptance tasks to service gems
- Add google-cloud-datastore ci task
- Add require boilerplate to Datastore examples
- Upgrade yard-doctest to v0.1.8
- Add grpc dummy documentation class for datastore API
- Merge pull request #1001 from blowmage/add-foolish-consistency
- Temporarilly pin doctest dependency
- Add empty doctest task to all gems
- Add README and LICENSE to gem packages
- Ensure Gemfiles use HTTPS
- Created integration tests for Logging and Error Reporting against GAE and GKE
- Update gapic code using hash object to pass in both required and optional parameters
- Release Datastore v0.21.0
- Merge pull request #984 from blowmage/google-gax-0.6
- Add Datastore properties support for symbols
- Update all versions to 0.21.0
- Update google-gax to latest version
- * Add back work-around for Hash to Map conversion * Remove require for protobuf classes in v[x].rb
- Fix import for all GAPIC APIs
- Merge pull request #975 from blowmage/grpc-project-metadata
- Add Datastore resource-prefix header
- Revert User Agent to gcloud-ruby
- Rename Google::Cloud::Core::GCE to Google::Cloud::Core::Environment
- Add GAX client_config to Datastore service factory
- Update Datastore retries documentation
- Convert Datastore to GAX
- Rename Service#datastore and Service#mocked_datastore
- Update README files to use new factory methods
- Add Datastore.new factory method
- Merge pull request #946 from quartzmo/stackoverflow
- Update jsondoc task in gem Rakefiles
- Update StackOverflow tag in docs
- Update vkit generated code for datastore
- Switch acceptance tests to use JSON ENV VARS
- Add doctest rake tasks
- Add yard-doctest dependency to all gems
- Add GRPC require to error handling code
- Merge pull request #894 from blowmage/fix-datastore-file-binmode-tests
- Resolve merge conflicts
- Possible fix for unit tests running on Windows
- Regenerate files for delay loading grpc module.
- Add Datastore Gapic files.
- Bump for release
- Delay loading GRPC until its used
- Update README links to API docs
### Implementation Changes
### New Features
### Dependencies
### Documentation
### Internal / Testing Changes
Is this a major, minor, or patch update (or enter the new version directly): 1.5.0
> Creating branch release-google-cloud-datastore-v1.5.0
Switched to a new branch 'release-google-cloud-datastore-v1.5.0'
> Updating CHANGELOG.md.
> Updating package.json.
Traceback (most recent call last):
File "/usr/local/bin/releasetool", line 11, in <module>
load_entry_point('gcp-releasetool', 'console_scripts', 'releasetool')()
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/releasetool/main.py", line 47, in start
return releasetool.commands.start.nodejs.start()
File "/usr/local/lib/python3.6/site-packages/releasetool/commands/start/nodejs.py", line 227, in start
update_package_json(ctx)
File "/usr/local/lib/python3.6/site-packages/releasetool/commands/start/nodejs.py", line 183, in update_package_json
f'"version": "{ctx.release_version}"')
File "/usr/local/lib/python3.6/site-packages/releasetool/filehelpers.py", line 76, in replace
with open(filename, 'r+') as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'package.json'
I attempted to use
releasetool
today in google-cloud-datastore, which has a few pending changes. I tried both thepython
andnodejs
options. Thepython
support produces a correct changelog, but then errors indetermine_release_version
. Thenodejs
option produces an incorrect and exceptionally long changelog, but then prompts for a manual entry of the new version, which brings it further. It updates the localCHANGELOG.md
, then errors with:No such file or directory: 'package.json'
.(I'm trying to figure out how to execute my local clone of the repo so that I can work toward a solution, if you can offer any pointers. I've tried following the instructions for setuptools development-mode but I can't seem to execute the local code, only the executable that I installed per the readme.)
/cc @JustinBeckwith @blowmage @dazuma
Using the
python
support:And using the
nodejs
support: