You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In this stage, we create the library Vcs_base and setup the way in which this library extends Vcs. It exposes the same modules, plus extra functionality, such as:
Base style hash signatures
Comparable.S signatures for use with Base style containers
Vcs_base
In this meta-issue we document a multi-stages refactoring that occurred in the repository.
Targeted end result
The aim of this refactoring is to remove the base dependency of the
Vcs
library. To achieve this, we will offer two distinct libraries:Vcs
- a kernel library that can be used with very little dependencies;Vcs_base
- an extension ofVcs
which will add some functionality related to working withBase
.Stages
Stage 1 - Introducing
Vcs_base
In this stage, we create the library
Vcs_base
and setup the way in which this library extendsVcs
. It exposes the same modules, plus extra functionality, such as:hash
signaturesComparable.S
signatures for use with Base style containersStage 2 - Reducing ppx dependencies in
Vcs
Only keep sexp related ppx that have no runtime dependency on
base
, such assexplib0
only.ppx_compare
,ppx_here
,ppx_let
dependencies.Stage 3 - Refactor non-raising APIs
Completed: Oct. 2024 Vcs.Rresult (Vcs_base refactor) #33
Rename
Result
=>Rresult
, introduce a newResult
one.Stage 4 - Trait implementation use
Result
Stage 5 - Move modules related to
Or_error
intoVcs_base
.Stage 6 - Remove base dependency from
Vcs
Use
vcs/src/import
to make a local mini-stdlib with utils required to removebase
dependency.Do this for the other libraries:
The text was updated successfully, but these errors were encountered: