| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ |
|
| |
| |
| |
| | |
This is probably excessively large right now
|
| | |
|
|/ |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Traversing morphologies is a little simpler now, the callback
for visit is enough to create a source pool
This still needs repository caches to be able to list_files()
before deducing a morphology will work.
|
| |
| |
| |
| |
| | |
Instead of doing all the iteration yourself, there is a helper function
that can be given a visitor callback
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this commit, the ArtifactResolver no longer computes the cache keys
when creating Artifact objects. This will have to happen as a
post-resolving step (e.g. prior to building or checking whether a local
or remote artifact cache has any of the resolved artifacts).
The CacheKeyComputer now takes an Artifact object and computes the cache
keys using its dependencies.
BuildGraph is no longer needed for the CacheKeyComputer unit tests.
|
|
|
|
| |
This causes an undefined variable error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a new setting called 'cache-server' to morph. It is None
by default and should be set to the HTTP URL of a morph cache server
to be used.
The RemoteRepoCache object provides two methods: resolve_ref() and
cat_file(), both of which wrap the communication with the cache
server and return a SHA1 string and file contents, respectively.
The _create_source_pool() method now takes a local and an optional
remote repo cache and tries to do whatever is best to resolve
refs and load morphologies for the Source objects it creates.
|
|
|
|
|
|
|
|
|
|
| |
This is because we will need to integrate a RemoteRepoCache and we don't
always want to create a CachedRepo object (in fact, we only want that
for the sources of artifacts we actually need to build). So we'll use
either the local or the remote repo cache to resolve refs and morphology
texts and then later, when actually caching a repo, we'll set the
source.repo member to a CachedRepo object that we can then use to
unpack the sources.
|
| |
|
|
|
|
|
|
| |
The Morph#_create_source_pool method takes a repo cache and a repo, ref,
filename triplet and resolves all the sources involved in a potential
build of this triplet.
|
| |
|
|
|
|
|
| |
Rather than rely on the magic SourceManager, traverse the morphologies
to list the sources, then create the dependency groups and print them
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The code is now longer, but it's more explicit what happens, and it'll
be easier, later on, to add a progress bar.
|
|
|
|
|
| |
env needs to be a dict of string: string, so ccache-remotenlevels
must be converted to a string when it is put in env.
|
|
|
|
|
|
|
|
|
|
|
| |
--ccache-remotedir specifies a base URI for downloading objects from
--ccache-remotenlevels specifies how many components to split the
object name with, so if --ccache-remotenlevels=2 then object
FEEDBEEFCAFEF00D.o will be searched for at $URI/F/E/EDBEEFCAFEF00D.o
--ccache-remotenlevels should work most of the time with the default
value. It is only needed if the ccache that populates the remote object
cache uses a non-default CCACHE_NLEVELS.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need the entire toolchain to be part of the hash that determines
ccache objects, as if any of them differ it could generate different
output.
ccache can have the cache-key depend on arbitrary files with the
CCACHE_EXTRAFILES environment variable, which is a : separates
list of files to hash.
So add the .meta files of our toolchain to CCACHE_EXTRAFILES if they
exist.
Extra work needs to be done to ensure the toolchain is properly hashed
however, the .meta files will need the cache-key to be included.
|
| |
|
|
|
|
|
|
|
|
| |
If an exception happens, the cleanup may fail to cleanup something
that wasn't yet set up. For now catch exceptions in cleanup.
If you know a cleaner way let me know.
Also remove a left-over print statement
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Checkout now does "git remote update" so the local branch gets the
remote branches. This will spend a bit more time, but it's needed for
"morph edit foo" to work when there's an existing "foo" branch in
origin.
System branches are no longer deduced from the currently checked
out branch name of the current git repository, since that doesn't
work when "morph edit" checks out an existing branch. Instead,
we deduce it from the current working directory name (relative to
the mine directory).
|
| | |
| | |
| | |
| | |
| | | |
It wasn't being used, anyway. And there's no real point in having
a per-mine cache directory.
|
| | |
| | |
| | |
| | | |
right
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This is highly simplisitic, and it's going to be highly painful
to use, but it does the very basics of what we need, I think.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|