Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default Ruby versions are sticky #3

Merged
merged 2 commits into from
Oct 20, 2020

Conversation

schneems
Copy link
Contributor

When a customer depends on a default ruby version they don't want the app to suddenly break between builds. To help with this we make the version "sticky" by persisting the default version to the metadata store and using that value if present instead of the stated default.

Previously we weren't returning early in these locations and we also weren't testing that calling fetch twice did not mutate the cache. It's now fixed and tested
When a customer depends on a default ruby version they don't want the app to suddenly break between builds. To help with this we make the version "sticky" by persisting the default version to the metadata store and using that value if present instead of the stated default.
@schneems schneems merged commit 5487191 into main Oct 20, 2020
@schneems schneems deleted the schneems/sticky-default-ruby-version branch October 29, 2020 19:12
schneems added a commit that referenced this pull request Dec 12, 2024
```
error: macros that expand to items must be delimited with braces or followed by a semicolon
   --> buildpacks/ruby/src/layers/bundle_install_layer.rs:120:1
    |
120 | / try_migrate_deserializer_chain!(
121 | |     chain: [MetadataV1, MetadataV2, MetadataV3],
122 | |     error: MetadataMigrateError,
123 | |     deserializer: toml::Deserializer::new,
124 | | );
    | |_^
    |
    = note: this error originates in the macro `$crate::try_migrate_link` which comes from the expansion of the macro `try_migrate_deserializer_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
```

Or with nightly:

```
$ RUSTFLAGS="-Zmacro-backtrace" cargo build 
error: macros that expand to items must be delimited with braces or followed by a semicolon
   --> /Users/rschneeman/.cargo/registry/src/index.crates.io-6f17d22bba15001f/magic_migrate-0.2.0/src/lib.rs:437:34
    |
419 |   macro_rules! try_migrate_link {
    |   ----------------------------- in this expansion of `$crate::try_migrate_link!` (#3)
...
437 |           $crate::try_migrate_link!($b, $($rest),*)
    |                                    ^^^^^^^^^^^^^^^^
...
714 |   macro_rules! try_migrate_deserializer_chain {
    |   -------------------------------------------
    |   |
    |   in this expansion of `try_migrate_deserializer_chain!` (#1)
    |   in this expansion of `$crate::try_migrate_deserializer_chain!` (#2)
...
737 |           $crate::try_migrate_link!($a, $($rest),+);
    |           ----------------------------------------- in this macro invocation (#3)
...
764 |           $crate::try_migrate_deserializer_chain!(error: $err, deserializer: $deser, chain: [$a, $($rest),+]);
    |           --------------------------------------------------------------------------------------------------- in this macro invocation (#2)
    |
   ::: buildpacks/ruby/src/layers/bundle_install_layer.rs:120:1
    |
120 | / try_migrate_deserializer_chain!(
121 | |     chain: [MetadataV1, MetadataV2, MetadataV3],
122 | |     error: MetadataMigrateError,
123 | |     deserializer: toml::Deserializer::new,
124 | | );
    | |_- in this macro invocation (#1)

error: could not compile `heroku-ruby-buildpack` (bin "heroku-ruby-buildpack") due to 1 previous error
```

I'm committing it because I want to figure out how to write a test case for this failure mode in the `magic_migrate` library.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant