Skip to content

Instantly share code, notes, and snippets.

@freekh
Created December 20, 2013 19:02
Show Gist options
  • Select an option

  • Save freekh/8059708 to your computer and use it in GitHub Desktop.

Select an option

Save freekh/8059708 to your computer and use it in GitHub Desktop.
Adept plan
SBT projects and packages:
adept-hash (merge with core?)
- adept.hash (Hashing object with (static) methods used to generate hashes. Hashes are generated from strings)
adept-core
- adept.variant.models (Variant, Id, Attribute, ArtifactRef, Requirement (dependency))
- adept.variant.models.constraints (Constraint base class + EqualConstraint and IdConstraint (TODO) )
- adept.variant.ordering (Ordering implicits. Used to generate the same ordered Seq(uences) from unordered Set(s))
- adept.resolution (The actual resolution algorithm and the Resolver class)
- adept.resolution.logic (The logic that is applied to find matching attributes, based on constraints)
- adept.resolution.models (State (used internally), ResolverResult (to represent a resolved result), Node (used for representing Graphs))
adept-repository (merge with core?)
- adept.repository (RepositoryRef, used to lazily load Repository. Useful for loading multiple repositories and spit out one singel error message. Also includes Repository base class and GitRepository)
- adept.repository.models (Contains the models used to represent a repository: Repository, Commit)
- adept.conflict (Resolves conflicts based on Git history and managed meta-data/format changes)
- adept.conflict.models (Any model needed for conflicts. TBD)
- adept.repository (RepositoryRef, used to lazily load Repository. Useful for loading multiple repositories and spit out one singel error message. Also includes Repository base class and GitRepository)
adept-publish (merge with repository?)
- adept.publish.models (Models used for publishing, ReleaseNotes, ....)
- adept.publish.ordering (Ordering implicits. Used to generate the same ordered Seq(uences) from unordered Set(s))
adept-configuration (merge with repository?)
- adept.configuration (ConfigurationMapper, maps a variants and constraints to new variants)
- adept.configuration.models (Configurations, ConfigurationId, ...)
adept-serialization (merge with repository?)
- adept.serialization (abstract serialization used by all models)
- adept.variant.models.serialization (Serialization base trait seperating domain model (models) from serialization. Uses ordering to always create the same order)
- adept.variant.models.serialization.default (Default (de)serializers for variant.models)
- adept.conflict.models.serialization (Base classes)
- adept.conflict.models.serialization.default (Default (de)serialiazers)
- adept.publish.models.serialization (Base traits)
- adept.publish.models.serialization.default (Default (de)serializers)
- adept.repository.models.serialization (Base classes)
- adept.repository.models.serialization.default (Default (de)serializers)
adept-artifacts (merge with downloader?)
- adept.artifact.descriptor.models (Artifact descriptor files contains just the information needed to reliable download and check hashes)
- adept.artifact.descriptor.ordering
- adept.artifact.descriptor.serialization (Base classes)
- adept.artifact.descriptor.serialization.default (Default serializer for artifact descriptor files)
adept-downloader
- adept.downloader (Downloads artifacts in parallel)
#adept-logging (not needed, use SLF4j instead)
#- adept.logging (Base Logger class)
#- adept.logging.default (Default implementations)
adept-progress
- adept.progress (Base progress indicator classes)
- adept.progress.default (Default implementations)
adept-commons
- adept.commons.configurations (Commonly used Attribute Names such as version, binary-version, prerelease, ... )
- adept.commons.attribute (Commonly used Attribute Names such as version, binary-version, prerelease, ... )
- adept.commons.errors (Transforms results into nice error messages)
adept-exclusions
- adept.logic.exclusions (-conflict, +excludes (transform exclude to new variants and new requirements, based on dependencies and a repository))
adept-ivy
- adept.ivy (Converts Ivy dependencies/artifacts/... to Variants, Artifact...)
- adept.ivy.configurations (Maps Ivy configurations to Adept)
adept-semver
- adept.semver (Attributes and logic used for semantic versioning. TBD)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment