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

Refactor Standard.Test to the builder API #7566

Closed
3 tasks done
Akirathan opened this issue Aug 11, 2023 · 22 comments · Fixed by #8622
Closed
3 tasks done

Refactor Standard.Test to the builder API #7566

Akirathan opened this issue Aug 11, 2023 · 22 comments · Fixed by #8622
Assignees
Labels
-compiler -libs Libraries: New libraries to be implemented -tooling Category: tooling p-high Should be completed in the next sprint x-new-feature Type: new feature request

Comments

@Akirathan
Copy link
Member

Akirathan commented Aug 11, 2023

We would like to first collect all the tests and then execute them, optionally with some filtering.

The builder API pattern for benchmarks was introduced in #7324

Ideas for setup and teardown methods are in these commits:

In the future, we might want to integrate this into vscode test runner.

Tasks

Preview Give feedback
@Akirathan Akirathan added -tooling Category: tooling x-new-feature Type: new feature request -compiler -libs Libraries: New libraries to be implemented labels Aug 11, 2023
@jdunkerley jdunkerley removed their assignment Aug 14, 2023
@jdunkerley jdunkerley moved this from ❓New to 📤 Backlog in Issues Board Sep 6, 2023
@JaroslavTulach
Copy link
Member

Setup - let's do the setup the same way as as we do it in benchmarks API - e.g. Suspended constructor arguments which get initialized when needed once.

Teardown - let's add method after method next to specify - there can be multiple functions register as after in each group. They are guaranteed to be invoked after all specify functions are invoked.

@Akirathan Akirathan added the p-high Should be completed in the next sprint label Dec 21, 2023
@Akirathan Akirathan moved this from 📤 Backlog to ⚙️ Design in Issues Board Dec 21, 2023
@enso-bot
Copy link

enso-bot bot commented Dec 21, 2023

Pavel Marek reports a new STANDUP for today (2023-12-21):

Progress: - Follow-up fixes after #8374 - #8620, #8593

  • Discussion with Hubert about correct test log provider
  • Fixing Engine benchmark build, optimizing the build - don't require fat jar assembly
  • Starting the design of the new std test builder API It should be finished by 2024-01-05.

@enso-bot
Copy link

enso-bot bot commented Dec 22, 2023

Pavel Marek reports a new STANDUP for today (2023-12-22):

Progress: - Finished analysing #8441 for now - didn't find a smaller reproducer yet.

  • Designing the new builder API.
    • We may be able to not change the current API at all, if we use State, I will experiment with the design in upcomming days.
    • Created a new Test_New library, that will, for now, stay along the old Test library. It should be finished by 2024-01-05.

@enso-bot
Copy link

enso-bot bot commented Dec 28, 2023

Pavel Marek reports a new STANDUP for yesterday (2023-12-27):

Progress: - Waiting for a discussion: two API propositions It should be finished by 2024-01-05.

@enso-bot
Copy link

enso-bot bot commented Dec 29, 2023

Pavel Marek reports a new STANDUP for today (2023-12-29):

Progress: - Continuing with the new builder design API It should be finished by 2024-01-05.

@enso-bot
Copy link

enso-bot bot commented Jan 3, 2024

Pavel Marek reports a new STANDUP for today (2024-01-03):

Progress: - Reviews

  • Investigating slowdown of org.enso.interpreter.bench.benchmarks.semantic.VectorBenchmarks.averageOverVector engine benchmark reported by Hubert
    • Most likely, the data set is just too small for this benchmark.
    • My theory that the benchmark slowdown is caused by changing the logger from NOPLogger to org.enso...TestLogProvider was not prooved.
  • Trying to migrate SQLite_Spec to the builder API
    • Demonstrate the lazy field initialization It should be finished by 2024-01-05.

@enso-bot
Copy link

enso-bot bot commented Jan 8, 2024

Pavel Marek reports a new 🔴 DELAY for today (2024-01-08):

Summary: There is 14 days delay in implementation of the Refactor Standard.Test to the builder API (#7566) task.
It will cause 0 days delay for the delivery of this weekly plan.

There must be maybe multiple iterations of discussions with the lib team about the designed API. I don't even have a PoC yet.

Delay Cause: This delay is expected. I have provided very short estimated time for this issue.

@enso-bot
Copy link

enso-bot bot commented Jan 8, 2024

Pavel Marek reports a new STANDUP for today (2024-01-08):

Progress: - Noticed that our graphs for benchmarks are generated from wrong data.

  • We need to ensure that benchmarks are run on clean machines.
  • Benchmark downloader script should take the latest score, not the smallest #8707
  • Figuring out how to provide before_each setup function to the Group_Builder.
    • The data initialization in SQLite_Spec cannot be initialized just by lazy fields, because they are initialized just once, we need before_each. Alternativelly, we can manually do setup in every spec, but that is very cumbersome. It should be finished by 2024-01-19.

@jdunkerley jdunkerley moved this from ⚙️ Design to 🔧 Implementation in Issues Board Jan 9, 2024
@enso-bot
Copy link

enso-bot bot commented Jan 9, 2024

Pavel Marek reports a new STANDUP for today (2024-01-09):

Progress: - Helping out Hubert with the JPMS setup for the Arrow language.

  • Providing some benchmark guidance.
  • Continue with the migration of SQLite_Spec
    • Bumped into State is not propagated to lazy field evaluation #7571 - increasing its priority
    • Tried to add methods group_with_setup and specify_with_args to the API.
      • Will probably revert it, it might really be unnecessary and we should be able to do setup via lazy atom fields. It should be finished by 2024-01-19.

@enso-bot
Copy link

enso-bot bot commented Jan 10, 2024

Pavel Marek reports a new STANDUP for today (2024-01-10):

Progress: - Meetings.

  • Finalized the builder API, until Friday, I should publish a working prototype for new SQLite_Spec and open a discussion. It should be finished by 2024-01-19.

@enso-bot
Copy link

enso-bot bot commented Jan 11, 2024

Pavel Marek reports a new STANDUP for today (2024-01-11):

Progress: - Investigating native image builds - #8724

@enso-bot
Copy link

enso-bot bot commented Jan 12, 2024

Pavel Marek reports a new STANDUP for today (2024-01-12):

Progress: - Review of arrow language PR

@Akirathan Akirathan moved this from 🔧 Implementation to 👁️ Code review in Issues Board Jan 15, 2024
@enso-bot
Copy link

enso-bot bot commented Jan 15, 2024

Pavel Marek reports a new STANDUP for today (2024-01-15):

Progress: - Providing an assistance with problem in IsSameObjectNode.

@enso-bot
Copy link

enso-bot bot commented Jan 16, 2024

Pavel Marek reports a new STANDUP for today (2024-01-16):

Progress: - Finished discussion about the design of the API, let's start refactoring in bulk It should be finished by 2024-01-19.

@Akirathan Akirathan moved this from 👁️ Code review to 🔧 Implementation in Issues Board Jan 17, 2024
@enso-bot
Copy link

enso-bot bot commented Jan 17, 2024

Pavel Marek reports a new STANDUP for today (2024-01-17):

Progress: - More rewriting, fixing many compilation errors, trying to ensure lazy initialization. It should be finished by 2024-01-19.

@enso-bot
Copy link

enso-bot bot commented Jan 18, 2024

Pavel Marek reports a new STANDUP for today (2024-01-18):

Progress: - Still more rewritting.

  • The migration of Table_Tests is almost done, I may be able to mark the PR as ready for review tomorrow.
  • All SQLite tests work.
  • JUnit output works. It should be finished by 2024-01-19.

@enso-bot
Copy link

enso-bot bot commented Jan 19, 2024

Pavel Marek reports a new 🔴 DELAY for today (2024-01-19):

Summary: There is 6 days delay in implementation of the Refactor Standard.Test to the builder API (#7566) task.
It will cause 6 days delay for the delivery of this weekly plan.

Still need to migrate the Postgres tests. The PR is not yet ready to review. I expect that I will finish it in the begining of the next week.

Delay Cause: Didn't quite finish the migration of Table_Test to the new API.

@enso-bot
Copy link

enso-bot bot commented Jan 19, 2024

Pavel Marek reports a new STANDUP for today (2024-01-19):

Progress: - Assisting Hubert with some class loading problems in runtime tests and instruments.

  • Still migrating a lot of sources to Test_New API.
  • Didn't get to migration of Postgres tests, I will finish that in the begining of the next week. It should be finished by 2024-01-25.

@enso-bot
Copy link

enso-bot bot commented Jan 22, 2024

Pavel Marek reports a new STANDUP for today (2024-01-22):

Progress: - Book club

  • Discussion about clean before any benchmark job
  • Refactoring Postgres tests
    • Dealing with some "Too many clients connected" errors - need to add teardowns on many places that close the connection to the database.
  • There are some connections that leak from teardowns. It should be finished by 2024-01-25.

@enso-bot
Copy link

enso-bot bot commented Jan 23, 2024

Pavel Marek reports a new STANDUP for today (2024-01-23):

Progress: - The refactor PR is ready for review

@enso-bot
Copy link

enso-bot bot commented Jan 24, 2024

Pavel Marek reports a new STANDUP for today (2024-01-24):

Progress: - Blocked on timeouts in LibrariesTest

@Akirathan Akirathan moved this from 🔧 Implementation to 🌟 Q/A review in Issues Board Jan 25, 2024
@Akirathan Akirathan moved this from 🌟 Q/A review to 👁️ Code review in Issues Board Jan 25, 2024
@enso-bot
Copy link

enso-bot bot commented Jan 25, 2024

Pavel Marek reports a new STANDUP for today (2024-01-25):

Progress: - Comparing which tests are run on old API vs on the new API.

  • A bit tedious work, but I've managed to ensure that all the tests from the old API are run.
  • I had to refactor also Numbers_Spec from Base_Tests, as some test from Table_Test uses it.
    • They both transiently use Round_Spec from Base_Test which is already refactored to the new API.
  • Resolving last issues, hoping to merge it tomorrow.
    • Still enountering a lot of transient issues. It should be finished by 2024-01-25.

@mergify mergify bot closed this as completed in #8622 Jan 26, 2024
@github-project-automation github-project-automation bot moved this from 👁️ Code review to 🟢 Accepted in Issues Board Jan 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-compiler -libs Libraries: New libraries to be implemented -tooling Category: tooling p-high Should be completed in the next sprint x-new-feature Type: new feature request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants