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

Move Inox as a submodule instead of an http dependency #1520

Merged
merged 8 commits into from
May 14, 2024

Conversation

samuelchassot
Copy link
Collaborator

No description provided.

@vkuncak
Copy link
Collaborator

vkuncak commented May 8, 2024

For the future or in case things go wrong: @samuelchassot , can you summarize the advantages of this over the current approach with hash commit?

@vkuncak
Copy link
Collaborator

vkuncak commented May 14, 2024

@sankalpgambhir @drganam just making sure you are up to date with this change as well, since you are working on adding functionality at the Inox level. Let @samuelchassot know if you agree with this new way of managing inox as a dependency.

@sankalpgambhir
Copy link
Member

I think it's a good change! It would simplify testing Stainless and Inox together. With the current dependency setup, you often end up with sbt recompiling Inox entirely on any changes. I expect that having it as a subproject works better wrt these issues.

@drganam
Copy link
Collaborator

drganam commented May 14, 2024

Sounds great, I agree with this change!

@samuelchassot
Copy link
Collaborator Author

The main point is to add Inox as a submodule of the Stainless repository so that Inox's source is part of the Stainless repository.

Pros:
Given how tightly coupled Inox is with Stainless, Inox is not modularised from the Stainless perspective. Therefore, it makes sense for Inox to be part of the Stainless source.

  • Inox still exists on its own, in its repo.
  • No need for local build.sbt modification to work on Stainless and Inox anymore: Inox is part of the source; therefore, it always lives locally when building Stainless and can be modified without cloning manually another repo and using it to build Stainless.
  • No need to explicitly release Inox anymore to use the latest commit with Stainless

Cons:

  • git submodule machinery can be unsupported by some tools, such as some git UI.
    Understanding how git submodules work: A submodule points to a particular commit of the target repo. This means that when pushing to Inox, the changes would be "visible" on the Stainless repo only after explicitly pulling the submodule and committing (on the Stainless repo) the submodule file modified with the latest hash (easy to do; the process is the same as committing a file diff).
  • One should be careful to initialise the submodules when cloning the Stainless repo

@vkuncak
Copy link
Collaborator

vkuncak commented May 14, 2024

@samuelchassot please just rebase and we can merge

@samuelchassot
Copy link
Collaborator Author

The conflict came from the new warning added to say we don't support Scala 2 anymore, which happened to be in the same spot as the warning about the git submodule.

@vkuncak vkuncak merged commit d0b07bb into epfl-lara:main May 14, 2024
2 checks passed
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.

4 participants