question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. ItΒ collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Verify TASTy versions before releases

See original GitHub issue

We need to verify before releases that TASTy is set to a correct version.

Here is a very simplistic approach that could be automated to ensure that we don’t accidentally release experimental TASTy in a stable release, or stable TASTy in a Nightly release:

(mStable refers to the TastyFormat.MinorVersion of the most recent stable Scala release)

if MajorBump:
  raise "are you really sure?"
else if Nightly or (MinorBump and RC or Milestone):
  assert TastyFormat.ExperimentalVersion > 0
  assert TastyFormat.MinorVersion > mStable
else: # release is final
  assert ExperimentalVersion == 0
  if PatchBump:
    assert TastyFormat.MinorVersion == mStable
  else if MinorBump:
    assert TastyFormat.MinorVersion == mStable + 1

with the proposal above, the only clear weak link is that TastyFormat.MinorVersion should be increased in a nightly release before releasing the next Minor, but I propose that this is difficult to miss as it should be clear that merging a needs-minor-release PR needs a TASTy version bump

A next step would be to automate the weak-link I described above.

A simple way could be automating the creation of an issue whenever a needs-minor-release PR is merged, otherwise it will probably be too complex to analyse automatically ( requires analysing TreePickler, TastyFormat, API additions, Code synthesis changes, more)

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:1
  • Comments:6 (6 by maintainers)

github_iconTop GitHub Comments

4reactions
bishaboshacommented, Sep 15, 2021

ok here is an updated diagram with past and future - hopefully this makes a coherent model:


        Stable             Beta             Nightly

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚ T: 28.0-0     β”‚                   β”‚ T: 28.1-1     β”‚
   β”‚ S: 3.0.0      β”‚                   β”‚ S: 3.0.1-NI-a β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚         β”‚ T: 28.0-0     β”‚         β”‚
           β”‚         β”‚ S: 3.0.1-RC1  β”‚         β–Ό
           β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
           β”‚                 β”‚         β”‚ T: 28.1-1     β”‚
           β”‚                 β–Ό         β”‚ S: 3.0.2-NI-b β”‚
           β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚         β”‚ T: 28.0-0     β”‚         β”‚
           β–Ό         β”‚ S: 3.0.1-RC2  β”‚         β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚
   β”‚ T: 28.0-0     β”‚         β”‚                 β”‚
   β”‚ S: 3.0.1      β”‚         β–Ό                 β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
           β”‚         β”‚ T: 28.0-0     β”‚         β”‚
           β”‚         β”‚ S: 3.0.2-RC1  β”‚         β–Ό
           β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
           β”‚                 β”‚         β”‚ T: 28.2-1     β”‚
           β”‚                 β–Ό         β”‚ S: 3.1.0-NI-c β”‚
           β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚         β”‚ T: 28.0-0     β”‚         β”‚
           β–Ό         β”‚ S: 3.0.2-RC2  β”‚         β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚
   β”‚ T: 28.0-0     β”‚         β”‚                 β”‚
   β”‚ S: 3.0.2      β”‚         β–Ό                 β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
           β”‚         β”‚ T: 28.2-1     β”‚         β”‚
           β”‚         β”‚ S: 3.1.0-RC1  β”‚         β–Ό
           β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
           β”‚                 β”‚         β”‚ T: 28.2-1     β”‚
           β”‚                 β”‚         β”‚ S: 3.1.1-NI-d β”‚
           β”‚      ┏━━━━━━━━┓ β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚      ┃  past  ┃ β”‚                 β”‚
▣━━━━━━━━━━╋━━━━━━┻━━━━━━━━┻━╋━┳━━━━━━━━┳━━━━━━╋━━━━━━━━━▣
           β”‚                 β”‚ ┃ future ┃      β”‚
           β”‚                 β”‚ ┗━━━━━━━━┛      β”‚
           β”‚                 β–Ό                 β”‚
           β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
           β”‚         β”‚ T: 28.1-2     β”‚         β”‚
           β–Ό         β”‚ S: 3.1.0-RC2  β”‚         β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚
   β”‚ T: 28.1-0     β”‚         β”‚                 β”‚
   β”‚ S: 3.1.0      β”‚         β–Ό                 β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
           β”‚         β”‚ T: 28.1-0     β”‚         β”‚
           β”‚         β”‚ S: 3.1.1-RC1  β”‚         β–Ό
           β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
           β”‚                 β”‚         β”‚ T: 28.3-1     β”‚
           β–Ό                 β”‚         β”‚ S: 3.2.0-NI-e β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
   β”‚ T: 28.1-0     β”‚         β”‚                 β”‚
   β”‚ S: 3.1.1      β”‚         β–Ό                 β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
           β”‚         β”‚ T: 28.2-2     β”‚         β”‚
           β”‚         β”‚ S: 3.2.0-RC1  β”‚         β–Ό
           β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
           β”‚                 β”‚         β”‚ T: 28.3-1     β”‚
           β”‚                 β–Ό         β”‚ S: 3.2.1-NI-f β”‚
           β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚         β”‚ T: 28.2-2     β”‚
           β–Ό         β”‚ S: 3.2.0-RC2  β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
   β”‚ T: 28.2-0     β”‚
   β”‚ S: 3.2.0      β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
1reaction
bishaboshacommented, Oct 18, 2021

So with the rule of RCs having experimental versions then this is what the future of releases could look like - I have included examples of both a patch release and a minor release.

each row represents the releases made each 6 weeks

Edit: removed diagram - see https://github.com/lampepfl/dotty/issues/13447#issuecomment-912447107 for updated diagram

Read more comments on GitHub >

github_iconTop Results From Across the Web

Tasty - Modern and extensible testing framework for Haskell
Tasty is a modern testing framework for Haskell. It lets you combine your unit tests, golden tests, QuickCheck/SmallCheck properties, and any other types...
Read more >
tasty-discover: Test discovery for the tasty framework.
Automatic test discovery and runner for the tasty framework. Prefix your test case names and tasty-discover will discover, collect and run themΒ ...
Read more >
TASTy Inspection - Scala 3 - EPFL
Inspecting TASTy files​​ To inspect the trees of a TASTy file a consumer can be defined in the following way. Then the consumer...
Read more >
Before 2022
Categories Β· Release notes Β· 2022 Β· Release notes 2022 Β· Getting started Β· Introduction Β· Glossary Β· Creating a new campaign Β·...
Read more >
Resources in Tasty
This article explores the new feature of the Tasty test framework β€” resources. It was added in the version 0.5 (and got a...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found