From cbca54a41479e925f19d20f4f33fc1fffd2095b5 Mon Sep 17 00:00:00 2001 From: Omer Shamash <41729200+oshamash@users.noreply.github.com> Date: Thu, 27 Feb 2020 11:04:18 +0200 Subject: [PATCH 01/41] Documentation typos and fixes --- README.md | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index d1ee402..8dee361 100644 --- a/README.md +++ b/README.md @@ -50,16 +50,16 @@ UMakefile --------- ## Rule `:` -A signle `command` is generated for this rule +A single `command` is generated for this rule -`:` source | manual-deps `>` cmd `>` target +`:` source `|` manual-deps `>` cmd `>` target -`manual-deps` - targets the this tule depends on, in order to keep a correct build order +`manual-deps` - targets the this target depends on, helps keep a correct build order `cmd` - bash command `target` - the output of the command `{filename}` - full path filename of the source `/my/path/filename.a` -`{dir}` - directory of the source `/my/path/` +`{dir}` - directory containing the source `/my/path/` `{noext}` - filename without extension `filename` `{target}` - expanded target `helloworld.a` @@ -69,7 +69,7 @@ Example: ``` #### Recursive Source `**` -recursice deps are support +recursice dependancies are support ``` root\ a\ @@ -87,26 +87,26 @@ root\ * `root/a/**/*.b` -> (`a.a.b`, `a.b.b`) #### Manual Dependency `|` -In order to maintain the correct order of the build (that is done in parallel), there are use cases that manual depndecy is needed to be provided. for example: if there are `generated headers` that used later by other `command` to generate anoter target. +In order to maintain a correct build order (that is executed in parallel), there are use cases where manual depndecy is needed. for example: if there are `generated headers` (like when using `protobuf`) that are being later used by another `command` to generate a different target. ## Rule `:foreach` -Same as `:` but will create `command` for each `source` (that match the pettern *.o in the example above) file that will be found on the filesystem +Same as `:` but will create `command` for each `source` file existing on filesystem (like when we match the pettern *.o in the example above) ## Macro `!` -Macros are expanded immediatlly (like `#define X "hello"` in c/cpp) -Macros can accept parameters +Macros are expanded immediately (like using `#define X "hello"` in c/cpp) +Macros can accept input parameters (again, similar to using c/cpp macros) Example: ``` !c(includes, flags) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o ``` #### Default values -`Macro` supports defualt values, by default it `""`: +`Macro` supports default values, by default they are `""`: ``` !c(includes, flags=-O3) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o ``` -now `!c` can be called as following +now `!c` can be called as following: ``` !c(-Iinclude) # includes = -Iinclude, flags=-O3 !c(-Iinclude, -O0) # includes = -Iinclude, flags=-O0 @@ -126,8 +126,13 @@ Configs allow to configure and changing umake execution. #### `workdir` Default: \ -Changing current working directory. After changing the working directory all `relative paths` are relative to the new working dir. `Absoulte paths` are relative to the `root` (the directory where UMakefile exists). -Relative path `my_dir_a/my_dir_b` will be evaluated as `/my_dir_a/my_dir_b`. However `/my_dir_a/my_dir_b` will be evaluated as `/my_dir_a/my_dir_b` regardless what working dir is. +Change the current working directory. +`relative paths` will now be relative to the new working dir. +`Absoulte paths` will now be relative to the `root` (the directory where UMakefile exists). + +Example: +Relative path `my_dir_a/my_dir_b` will be evaluated as `/my_dir_a/my_dir_b`. +However `/my_dir_a/my_dir_b` will be evaluated as `/my_dir_a/my_dir_b` *regardless* of what our `workdir` is. The following rules are similar: From 4e08ef0a5fe98ba5b25bc43062cb33aaf5a54c7d Mon Sep 17 00:00:00 2001 From: hagaisela Date: Thu, 27 Feb 2020 15:49:25 +0200 Subject: [PATCH 02/41] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8dee361..1935edf 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ UMake ===== -**Blazing Fast. Sub scecond Modification detection. Few seconds for cached compilation** +**Blazing Fast. Sub second Modification detection. Just a few seconds for cached compilation** Overview -------- @@ -69,7 +69,7 @@ Example: ``` #### Recursive Source `**` -recursice dependancies are support +recursice dependencies are support ``` root\ a\ @@ -87,7 +87,7 @@ root\ * `root/a/**/*.b` -> (`a.a.b`, `a.b.b`) #### Manual Dependency `|` -In order to maintain a correct build order (that is executed in parallel), there are use cases where manual depndecy is needed. for example: if there are `generated headers` (like when using `protobuf`) that are being later used by another `command` to generate a different target. +In order to maintain a correct build order (that is executed in parallel), there are use cases where manual dependecy is needed. for example: if there are `generated headers` (like when using `protobuf`) that are being later used by another `command` to generate a different target. ## Rule `:foreach` @@ -182,15 +182,15 @@ include another `UMakefile` into the current one. ``` will open and parse `somedir/umakefile` in the current working dir context. # Cache System -Targets are being cached after creation, and checked if the target is in cache just before executing a `command`. There are two types of cache that UMake is using local(filesystem) and remote (minio). +Targets are being cached after creation, and checked if the target is in cache just before executing a `command`. There are two types of cache that UMake is using local (filesystem) and remote (minio). ## How Cache works ### On Save * `sha1` of the target sources (those that were generated from UMakefile) are being calculated and `sha1` of the `command` itself. All dependecies files (also those that were auto detected) Saved to `md-` file. * `sha1` of all dependecies are calculated and the just created target is saved to `/` ### On Load -* `sha1` of the target sources (those that were generated from UMakefile) are being calculated and `sha1` of the `command` itself. Reading `md-` for all the file dependecies -* calculating `sha1` of all of the target dependecies (from the files system) and copying `/` to the project directory as it was generated by the `command` +* `sha1` of the target sources (those that were generated from UMakefile) are being calculated and `sha1` of the `command` itself. Reading `md-` for all the file dependencies +* calculating `sha1` of all of the target dependencies (from the files system) and copying `/` to the project directory as it was generated by the `command` ## Local Cache The local cache is stored in `~/.umake/build-cache`. From 4011b72b4036c810d1c285ab57aefdf3b1ee224e Mon Sep 17 00:00:00 2001 From: Kfir Gollan Date: Fri, 28 Feb 2020 15:57:41 +0200 Subject: [PATCH 03/41] Add documentation for using minio as remote cache --- README.md | 116 ++++++++++++++++++----- umake/colored_output.py | 20 ++-- umake/config.py | 16 ++++ umake/umake | 197 ++++++++++++++++++++-------------------- 4 files changed, 218 insertions(+), 131 deletions(-) create mode 100644 umake/config.py diff --git a/README.md b/README.md index 1935edf..706e28f 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ UMake Overview -------- -UMake is a build system that building your projects. -influenced by [`tup`](http://gittup.org/tup/). +UMake is a build system that building your projects. +influenced by [`tup`](http://gittup.org/tup/). * local cache - disk cache * remote cache - minio @@ -24,25 +24,38 @@ umake --no-remote-cache ./hello_world ``` +UMake configuration +------------------- +This section lists all the various configurations that umake supports + +| Variable name | Description | +|--------------------------------|------------------------------------------------------------| +| UMAKE_CONFIG_MINIO_ACCESS_KEY | An access key (username) for minio that umake should use | +| UMAKE_CONFIG_MINIO_SECRET_KEY | A secret key (password) for minio that umake should use | +| UMAKE_CONFIG_MINIO_BUCKET_NAME | The name of the bucket to use in minio | +| UMAKE_CONFIG_MINIO_URL | A url to use to access minio | +| UMAKE_CONFIG_LOCAL_CACHE_SIZE | The maximal size in bytes of the cache to store locally | +| UMAKE_CONFIG_ROOT | The root directory in which all umake files will be stored | + How UMake works --------------- * loading compilation graph (DAG) from previous build (graph is empty when built first time) - + * scannig filesytem using the loaded graph to check for changes * `modified` - if file was modified on filesystem it marked as modified on the graph * `deleted` - if file was deleted from the filesystem, successor target deleted as well from the filesystem and the graph - + * parsing UMakefile and creating new commands or updating the existing * `deleted` - if command deleted, targets of this command deleted as well from both graph and filesystem * `updated` - if command is updated, UMake will handle it as `delete` and `create`. so, target of the old command will be deleted and new target will be created when graph will be executed -* executing the graph in parallel +* executing the graph in parallel * `auto dependency detection` - updating the graph with accessed files by parsing strace logs * `cache` - saving to cache. more details: [Cache System](#cache-system) -* saving the build graph +* saving the build graph Note: by automatically deleting `targets` when no longer needed (either `command` is delete or source file was the deleted for this `target`) UMake implementing `clean` by design. So `clean` no longer need to be mainained. @@ -54,14 +67,14 @@ A single `command` is generated for this rule `:` source `|` manual-deps `>` cmd `>` target -`manual-deps` - targets the this target depends on, helps keep a correct build order -`cmd` - bash command -`target` - the output of the command - -`{filename}` - full path filename of the source `/my/path/filename.a` -`{dir}` - directory containing the source `/my/path/` -`{noext}` - filename without extension `filename` -`{target}` - expanded target `helloworld.a` +`manual-deps` - targets the this target depends on, helps keep a correct build order +`cmd` - bash command +`target` - the output of the command + +`{filename}` - full path filename of the source `/my/path/filename.a` +`{dir}` - directory containing the source `/my/path/` +`{noext}` - filename without extension `filename` +`{target}` - expanded target `helloworld.a` Example: ``` @@ -87,24 +100,24 @@ root\ * `root/a/**/*.b` -> (`a.a.b`, `a.b.b`) #### Manual Dependency `|` -In order to maintain a correct build order (that is executed in parallel), there are use cases where manual dependecy is needed. for example: if there are `generated headers` (like when using `protobuf`) that are being later used by another `command` to generate a different target. +In order to maintain a correct build order (that is executed in parallel), there are use cases where manual dependecy is needed. for example: if there are `generated headers` (like when using `protobuf`) that are being later used by another `command` to generate a different target. ## Rule `:foreach` Same as `:` but will create `command` for each `source` file existing on filesystem (like when we match the pettern *.o in the example above) ## Macro `!` -Macros are expanded immediately (like using `#define X "hello"` in c/cpp) +Macros are expanded immediately (like using `#define X "hello"` in c/cpp) Macros can accept input parameters (again, similar to using c/cpp macros) Example: ``` -!c(includes, flags) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o +!c(includes, flags) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o ``` #### Default values `Macro` supports default values, by default they are `""`: ``` -!c(includes, flags=-O3) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o +!c(includes, flags=-O3) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o ``` now `!c` can be called as following: ``` @@ -163,7 +176,7 @@ $cflags = -O0 : my.c > !c($cflags) > my.o ``` -now compile with `umake` for default variant +now compile with `umake` for default variant ``` umake ``` @@ -182,7 +195,7 @@ include another `UMakefile` into the current one. ``` will open and parse `somedir/umakefile` in the current working dir context. # Cache System -Targets are being cached after creation, and checked if the target is in cache just before executing a `command`. There are two types of cache that UMake is using local (filesystem) and remote (minio). +Targets are being cached after creation, and checked if the target is in cache just before executing a `command`. There are two types of cache that UMake is using local (filesystem) and remote (minio). ## How Cache works ### On Save @@ -193,10 +206,69 @@ Targets are being cached after creation, and checked if the target is in cache j * calculating `sha1` of all of the target dependencies (from the files system) and copying `/` to the project directory as it was generated by the `command` ## Local Cache -The local cache is stored in `~/.umake/build-cache`. +The local cache is stored in `~/.umake/build-cache`. ## Remote Cache -TBD +umake support uploading the artifacts to a remote server. The more people that work on the same code base the more the remote cache will work. +Think of it like that, if someone in the office already build a file then there is no need to build it again. This concept speeds up local builds, since if someone +else already built the binary we just download from the cache. It also speeds up CI builds, since in most cases developers compile & test their code locally. + +### Using minio as a umake remote cache +[Minio](https://min.io/) is a high performance open source object storage. It is compatible with AWS S3. It is very easy to set it up using the official [docker image](https://hub.docker.com/r/minio/minio/). Connecting it umake is also very simple. + +#### How to run minio for umake +We need to start a minio server and make sure that it exposes a port via docker. +Use the following command to spin up the server: +``` +docker run \ + -e MINIO_ACCESS_KEY=umake \ + -e MINIO_SECRET_KEY=umakeumake \ + -p 9000:9000 \ + minio/minio server /data +``` +Note that you need to select a password and a username. In this example it's umake/umakeumake. +For more minio configurations refer to the [docs](https://github.com/minio/minio/blob/master/docs/config/README.md). +Now that the server is up and running we need to create a bucket for umake. +The simplest way to do it is via the minio web interface. + +* Access http://localhost:9000 and user the username and password you selected. +* Create a new bucket called umake-build-cache + +And that's it! we are good to go. Let's test it out using the example in the repo + +``` +$ cd ./example +$ umake + [0.082] done imports + [0.000] done loading graph + [0.000] done filesystem scan + [0.001] done parsing UMakefile + gcc -c /home/dn/umake/example/hello.c -o /home/dn/umake/example/*.o + [0.084] [CACHED] /home/dn/umake/example/*.o + gcc /home/dn/umake/example/*.o -o /home/dn/umake/example/hello_world + [0.090] [CACHED] /home/dn/umake/example/hello_world + [0.000] done saving graph + [0.004] done cache gc + Workers 0/8 Cache 0/1500[MB] Cache Hits 0% Local/Remote 0%/0% Variant default Time 0[sec] hello_world + + $ umake --remote-cache-stats + [0.082] done imports +bucket size 0MB, n_objects 4 + +$ umake --no-local-cache + [0.081] done imports + [0.000] done loading graph + [0.000] done filesystem scan + [0.001] done parsing UMakefile + gcc -c /home/dn/umake/example/hello.c -o /home/dn/umake/example/*.o + [0.008] [REMOTE-CACHE] /home/dn/umake/example/*.o + gcc /home/dn/umake/example/*.o -o /home/dn/umake/example/hello_world + [0.007] [REMOTE-CACHE] /home/dn/umake/example/hello_world + [0.000] done saving graph + [0.003] done cache gc + Workers 0/8 Cache 0/1500[MB] Cache Hits 100% Local/Remote 0%/100% Variant default Time 0[sec] hello_world +``` + # Arguments ``` diff --git a/umake/colored_output.py b/umake/colored_output.py index dcb717e..ceb52a0 100644 --- a/umake/colored_output.py +++ b/umake/colored_output.py @@ -4,14 +4,12 @@ from os.path import join from subprocess import check_output, CalledProcessError from datetime import datetime +from umake.config import UMAKE_BUILD_CACHE_MAX_SIZE_MB, ROOT, UMAKE_MAX_WORKERS -ROOT = os.getcwd() UMAKE_ROOT_DIR = join(ROOT, ".umake") UMKAE_TMP_DIR = join(UMAKE_ROOT_DIR, "tmp") UMAKE_BUILD_CACHE_DIR = join(UMAKE_ROOT_DIR, "build-cache") -UMAKE_BUILD_CACHE_MAX_SIZE_MB = 1500 MINIMAL_ENV = {"PATH": "/usr/bin"} -UMAKE_MAX_WORKERS = 8 UMAKE_DB = join(UMAKE_ROOT_DIR, "db.pickle") @@ -40,20 +38,20 @@ class AtomicInt: def __init__(self): self.num = 0 self.lock = threading.Lock() - + def inc(self): with self.lock: self.num += 1 - + def dec(self): with self.lock: self.num -= 1 - + def __repr__(self): return str(self.num) class InteractiveOutput: - + def __init__(self): self.bar_lock = threading.Lock() self.n_active_workers = AtomicInt() @@ -64,7 +62,7 @@ def __init__(self): self.start_time = datetime.now() self.curr_job = "" - self.variant = "deafult" + self.variant = "default" self.n_calls = 0 def _get_curr_cache_size(self): @@ -82,7 +80,7 @@ def update_bar(self, force=False): bright_blue = "\033[1;34;40m" bold = "\033[1;37;40m" diff = int((datetime.now() - self.start_time).total_seconds()) - + sys.stdout.write("\x1b[2K\r") print(f"\r{bright_blue} Workers {bcolors.ENDC}{bold}{self.n_active_workers}/{UMAKE_MAX_WORKERS}{bcolors.ENDC}", end="") print(f"{bright_blue} Cache {bcolors.ENDC}{bold}{int(self.cache_current)}/{UMAKE_BUILD_CACHE_MAX_SIZE_MB}[MB] {bcolors.ENDC}", end="") @@ -100,9 +98,9 @@ def update_bar(self, force=False): print(f"{bright_blue} Time {bcolors.ENDC}{bold} {diff}[sec] {bcolors.ENDC}", end="") print(f"{bold} {self.curr_job} {bcolors.ENDC}", end="") sys.stdout.flush() - + self.n_calls += 1 - + def print_colored(self, out_str, color=""): if is_ineractive_terminal: sys.stdout.write("\x1b[2K\r") diff --git a/umake/config.py b/umake/config.py new file mode 100644 index 0000000..0a00ce5 --- /dev/null +++ b/umake/config.py @@ -0,0 +1,16 @@ +import os + +CONFIG_ENV_PREFIX = 'UMAKE_CONFIG_' + +# Remote cache +MINIO_URL = os.environ.get(f'{CONFIG_ENV_PREFIX}MINIO_URL', "localhost:9000") +MINIO_ACCESS_KEY = os.environ.get(f'{CONFIG_ENV_PREFIX}MINIO_ACCESS_KEY', 'umake') +MINIO_SECRET_KEY = os.environ.get(f'{CONFIG_ENV_PREFIX}MINIO_SECRET_KEY', 'umakeumake') +MINIO_BUCKET_NAME = os.environ.get(f'{CONFIG_ENV_PREFIX}MINIO_BUCKET_NAME', "umake-build-cache") + +# Local cache +ROOT = os.environ.get(f'{CONFIG_ENV_PREFIX}_ROOT', os.getcwd()) +UMAKE_BUILD_CACHE_MAX_SIZE_MB = int(os.environ.get(f'{CONFIG_ENV_PREFIX}LOCAL_CACHE_SIZE', '1500')) + +# General +UMAKE_MAX_WORKERS = 8 \ No newline at end of file diff --git a/umake/umake b/umake/umake index 7c147cf..a18275d 100755 --- a/umake/umake +++ b/umake/umake @@ -1,13 +1,14 @@ #!/usr/bin/python3.6 import time from umake.colored_output import InteractiveOutput, bcolors, ROOT, UMAKE_ROOT_DIR, UMKAE_TMP_DIR, UMAKE_BUILD_CACHE_DIR, UMAKE_BUILD_CACHE_MAX_SIZE_MB, MINIMAL_ENV, get_size_KB, UMAKE_MAX_WORKERS, UMAKE_DB +from umake import config # from pyinstrument import Profiler # profiler = Profiler() out = InteractiveOutput() -class Timer: +class Timer: def __init__(self, msg, threshold=0, color=bcolors.OKGREEN): self.msg = msg self.postfix = "" @@ -98,8 +99,8 @@ global_config = Config() class MinioCache: - - BUCKET = "umake-build-cache" + + BUCKET = config.MINIO_BUCKET_NAME def __init__(self): self.n_timeouts = 0 ca_certs = certifi.where() @@ -115,12 +116,12 @@ class MinioCache: ) ) - self.mc = Minio("my-server", - access_key='user', - secret_key='pass', - secure=False, - http_client=http) - + self.mc = Minio(config.MINIO_URL, + access_key=config.MINIO_ACCESS_KEY, + secret_key=config.MINIO_SECRET_KEY, + secure=False, + http_client=http) + def _increase_timeout_and_check(self): self.n_timeouts += 1 if self.n_timeouts >= 3: @@ -142,7 +143,7 @@ class MinioCache: raise FileNotFoundError except error.NoSuchKey: raise FileNotFoundError - + def save_cache(self, cache_hash, metadata_cache: MetadataCache): cache_src = "md-" + cache_hash.hex() md = pickle.dumps(metadata_cache, protocol=pickle.HIGHEST_PROTOCOL) @@ -190,7 +191,7 @@ class MinioCache: out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") global_config.remote_cache = False return False - + return True def _save_cache(self, deps_hash, targets): @@ -213,11 +214,11 @@ class MinioCache: finally: # fs_unlock(fd, lock_path) pass - + def get_cache_stats(self): bucket_size = 0 n_objects = 0 - for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): + for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): if obj.is_dir: continue bucket_size += obj.size @@ -225,16 +226,16 @@ class MinioCache: print(f"bucket size {int(bucket_size / 1024 / 1024)}MB, n_objects {n_objects}") def clear_bucket(self): - for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): + for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): self.mc.remove_object(bucket_name=self.BUCKET, object_name=obj.object_name) self.get_cache_stats() class FsCache: - + def __init__(self): pass - + def open_cache(self, cache_hash) -> MetadataCache: cache_src = join(UMAKE_BUILD_CACHE_DIR, "md-" + cache_hash.hex()) with open(cache_src, "rb") as metadata_file: @@ -260,7 +261,7 @@ class FsCache: except FileNotFoundError: shutil.rmtree(cache_src, ignore_errors=True) return False - + return True def _save_cache(self, deps_hash, targets): @@ -295,10 +296,10 @@ class FsCache: cache_dir_size_KB = get_size_KB(UMAKE_BUILD_CACHE_DIR) high_thresh = cache_dir_size_KB * 1.1 low_tresh = UMAKE_BUILD_CACHE_MAX_SIZE_MB * 1024 * 0.6 - + if UMAKE_BUILD_CACHE_MAX_SIZE_MB * 1024 > high_thresh: return - + fd, lock_path = fs_lock(UMAKE_BUILD_CACHE_DIR) if fd == None: out.print_fail(f"\tcahce: {UMAKE_BUILD_CACHE_LOCK} is locked") @@ -326,7 +327,7 @@ class CacheMgr: NOT_CACHED = 0 LOCAL = 1 REMOTE = 2 - + fs_cache: FsCache = FsCache() def __init__(self): if global_config.remote_cache: @@ -369,14 +370,14 @@ class CacheMgr: return if global_config.remote_cache: self.minio_cache._save_cache(deps_hash, targets) - + def gc(self): self.fs_cache.gc() -def byte_xor(ba1, ba2): - return bytes([_a ^ _b for _a, _b in zip(ba1, ba2)]) +def byte_xor(ba1, ba2): + return bytes([_a ^ _b for _a, _b in zip(ba1, ba2)]) @@ -407,7 +408,7 @@ class CmdExecuter: self.dep_files = None self.is_ok = False self.is_from_cache: CacheMgr.CacheType = CacheMgr.CacheType.NOT_CACHED - + # cache state """ in """ self.deps_hash = None @@ -415,7 +416,7 @@ class CmdExecuter: self.cmd_hash = None """ out """ self.dep_files_hashes = dict() - + def _check_in_root(self, check_str: str): if check_str[0] == "/": if check_str.startswith("/tmp/") or check_str.startswith("/dev/") or check_str.startswith("/proc/") or \ @@ -457,7 +458,7 @@ class CmdExecuter: tmp_unique_name_full_path = join(UMKAE_TMP_DIR, str(uuid.uuid1())) with Timer(self.cmd.compile_show(), color=bcolors.WARNING) as timer: if self.target: - cache_type = cache_mgr._get_cache(self.deps_hash, self.target) + cache_type = cache_mgr._get_cache(self.deps_hash, self.target) if cache_type > CacheMgr.CacheType.NOT_CACHED: if cache_type == CacheMgr.CacheType.LOCAL: timer.set_prefix("[LOCAL-CACHE]") @@ -469,7 +470,7 @@ class CmdExecuter: return strace_cmd = f"strace -o{tmp_unique_name_full_path} -f -e open,openat /bin/bash -c '{self.cmd.cmd}'" self.proc = Popen(strace_cmd, env=MINIMAL_ENV, shell=True, stdout=PIPE, stderr=PIPE, cwd=self.cmd.cmd_root) - + while True: try: stdout, stderr = self.proc.communicate(timeout=3) @@ -478,7 +479,7 @@ class CmdExecuter: out.curr_job = self.cmd.summarized_show() out.update_bar() rc = self.proc.poll() - + stdout = stdout.decode("utf-8") stderr = stderr.decode("utf-8") @@ -492,7 +493,7 @@ class CmdExecuter: if stderr: out.print(stderr) self.is_ok = True - + self.dep_files = set() with open(tmp_unique_name_full_path) as strace_output: @@ -522,13 +523,13 @@ class CmdExecuter: if rc == 0 and not self.target.issubset(self.dep_files): raise RuntimeError(f"Target not generated: Expected {self.target} Got: {self.dep_files}") self.dep_files -= self.target - + deps_hash = self.cmd_hash for dep in self.dep_files: deps_hash = byte_xor(deps_hash, self.dep_files_hashes[dep]) cache_mgr._save_cache(deps_hash, self.target) timer.set_prefix("[CACHED]") - + def get_results(self): return self.dep_files, self.target @@ -567,7 +568,7 @@ class FileEntry: def set_modified(self, new_value: bool): self.is_modified = new_value - + def increase_dependencies_built(self, inc: int): self.dependencies_built += inc @@ -577,7 +578,7 @@ class FileEntry: @staticmethod def file_md5sum(full_path): with open(full_path, "rb") as file_to_check: - data = file_to_check.read() + data = file_to_check.read() md5_returned = hashlib.sha1(data).digest() return md5_returned @@ -596,14 +597,14 @@ class FileEntry: self.md5sum = new_md5sum self.mtime = new_mtime return modified - + def delete_fs(self): out.print_file_deleted(self.full_path, "DELETING") try: os.remove(self.full_path) except FileNotFoundError: pass - + def update_with_md5sum(self, new_md5sum): stat = os.stat(self.full_path) self.mtime = int(stat.st_mtime * 100000) @@ -611,7 +612,7 @@ class FileEntry: def __str__(self): return f"{self.full_path}: {self.data.conf_deps}" - + def __repr__(self): return f"['{self.full_path}': '{self.is_modified}']" @@ -621,7 +622,7 @@ class Line: self.filename = filename self.line_num = line_num self.line = line - + def __str__(self): return f"{self.filename}:{self.line_num}\n\t{self.line}" @@ -640,13 +641,13 @@ class Cmd: def compile_show(self): return " ".join(sorted(self.target)) - + def summarized_show(self): return " ".join([os.path.basename(target) for target in sorted(self.target)]) def update(self, other): self.line = other.line - + def __eq__(self, other): return self.cmd == other.cmd and \ self.dep == other.dep and \ @@ -656,7 +657,7 @@ class Cmd: class GraphDB: def __init__(self, db_version): - self.nodes = dict() + self.nodes = dict() self.graph = igraph.Graph(directed=True) self.last_cmds = set() self.db_version = db_version @@ -664,7 +665,7 @@ class GraphDB: def sub_graph_nodes(self, sub_nodes=[]): if sub_nodes == []: return [key for key, fentry in self.nodes.items() if fentry.entry_type != FileEntry.EntryType.CMD] - + vertecies = set() for node in sub_nodes: try: @@ -693,7 +694,7 @@ class GraphDB: connections = [(from_node, to_node) for (from_node, to_node) in connections \ if not self.graph.are_connected(from_node, to_node)] self.graph.add_edges(connections) - + def remove_connections(self, connections): self.graph.delete_edges(connections) for dep, target in connections: @@ -722,7 +723,7 @@ class GraphDB: fentry.init() @staticmethod - def load_graph(): + def load_graph(): pathname = os.path.realpath(__file__) db_file_entry = FileEntry(pathname, FileEntry.EntryType.FILE) db_version = db_file_entry.md5sum @@ -736,7 +737,7 @@ class GraphDB: return data except FileNotFoundError: return GraphDB(db_version) - + def get_nodes(self, wanted_type=None): for name, node in self.nodes.items(): if wanted_type: @@ -761,10 +762,10 @@ class GraphDB: del self.nodes[node] indecies.append(self.graph.vs.find(node).index) self.graph.delete_vertices(indecies) - + def topological_sort(self): return [self.graph.vs[i]["name"] for i in self.graph.topological_sorting()] - + def subgraph_topological_sort(self, sub_nodes): vertecies = set() for node in sub_nodes: @@ -773,7 +774,7 @@ class GraphDB: vertecies.update(self.graph.subcomponent(idx_node, mode="in")) except ValueError: continue - + sub_graph = self.graph.subgraph(vertecies) return [sub_graph.vs[i]["name"] for i in sub_graph.topological_sorting()] @@ -849,7 +850,7 @@ class CmdTemplate: if fnmatch.fnmatch(global_target, dep_fmt_fullpath): manual_deps.add(global_target) added = True - + if added == False: raise RuntimeError(f"{self.line}: manual dep '{dep_fmt}' is not exists as target in other commands") @@ -863,12 +864,12 @@ class CmdTemplate: files = self._iterate_file_glob(graph, source_fmt, all_targets) files.update(generated_sources) self._create_foreach_cmd(files, manual_deps, all_targets, graph) - + else: deps = set() sources = set() generated_sources = set() - + deps.update(manual_deps) fs_sources = [] for source_fmt in self.sources_fmt: @@ -894,10 +895,10 @@ class CmdTemplate: noext = None dirname = None parent_dir = None - + if fs_sources: full_path = sorted(fs_sources)[0] - + if full_path is not None: basename = os.path.basename(full_path) noext = os.path.splitext(basename)[0] @@ -924,7 +925,7 @@ class CmdTemplate: deps.update(sources) deps.update(generated_sources) self.cmds.append(Cmd(cmd, deps, manual_deps, targets, self.line, self.root)) - + def find_between(string, token_start, token_end): state = "find_token_start" @@ -945,10 +946,10 @@ def find_between(string, token_start, token_end): class UMakeFileParser(): """ HELLO = 1 - : a.c > gcc {filename} -o {target} > {filename}.o - : > gcc {filename} -o {target} > {filename}.o - :foreach *.c > gcc {filename} -o {target} > {basename}.o - :foreach | sdf > gcc {filename} -o {target} > {basename}.o + : a.c > gcc {filename} -o {target} > {filename}.o + : > gcc {filename} -o {target} > {filename}.o + :foreach *.c > gcc {filename} -o {target} > {basename}.o + :foreach | sdf > gcc {filename} -o {target} > {basename}.o """ def __init__(self, filename): self.fielanme = filename @@ -958,31 +959,31 @@ class UMakeFileParser(): self.globals_vars = dict() self.macros = dict() self.parse_file(filename) - + def load_file(self, filename): with open(filename, mode="r") as umakefile: return umakefile.read() def parse_file(self, umakefile, workdir=ROOT, in_variant=False, use_current_variant=False): - + if workdir is None: workdir = ROOT def should_line_parsing_stopped(in_variant, use_current_variant): return in_variant and not use_current_variant - + for line_num, line in enumerate(self.load_file(join(workdir, umakefile)).splitlines()): try: foreach = False deps_fmt = [] source_fmt = [] - + if line == "" or line[0] == "#": if line == "" and in_variant: in_variant = False use_current_variant = False continue - + if line[0] == ":": if should_line_parsing_stopped(in_variant, use_current_variant): continue @@ -995,7 +996,7 @@ class UMakeFileParser(): macro_args_defaults = self.macros[macro_name][2] if macro_args_sent == ['']: macro_args_sent = [] - + for idx, in_macro_args in enumerate(macro_args): try: sent_arg = macro_args_sent[idx] @@ -1108,10 +1109,10 @@ class UMakeFileParser(): workdir = join(ROOT, config_value) elif config_name == "include": self.parse_file(config_value, workdir, in_variant, use_current_variant) - + else: raise RuntimeError(f"{line_num}: {line} \n can't parse this line") - + except: out.print_fail(f"ERROR failed to parse UMakefile") @@ -1128,7 +1129,7 @@ class UMake: self.graph = None self._start_executer_thread() - + def _init_build(self): shutil.rmtree(UMKAE_TMP_DIR, ignore_errors=True) os.makedirs(UMKAE_TMP_DIR, exist_ok=True) @@ -1204,11 +1205,11 @@ class UMake: for del1 in delete: connection.remove(del1) self.graph.remove_node(cmd.cmd) - + def _graph_add_cmd_node(self, cmd: Cmd, connections: set): fentry_cmd = FileEntry(cmd.cmd, FileEntry.EntryType.CMD, cmd) self.graph.add_node(cmd.cmd, fentry_cmd) - + for target in cmd.target: self.graph.add_node(target, FileEntry(target, FileEntry.EntryType.GENERATED, cmd)) connections.add((cmd.cmd, target)) @@ -1226,7 +1227,7 @@ class UMake: if not self.graph.is_exists(target): self.graph.add_node(target, FileEntry(target, FileEntry.EntryType.GENERATED, new_cmd)) connections.add((new_cmd.cmd, target)) - + for dep in new_cmd.dep: connections.add((dep, new_cmd.cmd)) @@ -1269,7 +1270,7 @@ class UMake: # self.graph.remove_node(remove_cmd) delete_nodes.add(remove_cmd) self.graph.remove_node(delete_nodes) - + connections = set() for cmd_template in umakefile.cmds_template: for cmd in cmd_template.cmds: @@ -1287,7 +1288,7 @@ class UMake: all_targets_exists = any(target in all_targets for target in global_config.targets) if not all_targets_exists: raise RuntimeError(f"target not exist {global_config.targets}") - + def executer_thread(self): cache_mgr = CacheMgr() while True: @@ -1312,7 +1313,7 @@ class UMake: self.n_jobs -= 1 if execucter.is_ok is False: raise CmdFailedErr(f"command failed: {execucter.cmd.line}\n cmd:\n\t {execucter.cmd.cmd}") - + deps, targets = execucter.get_results() node = execucter.cmd.cmd @@ -1348,13 +1349,13 @@ class UMake: out.print(e) continue self.graph.add_node(dep, fentry) - + if not self.graph.graph.are_connected(dep, node): conns.append((dep, node)) # with Timer(f"connections {execucter.cmd.summarized_show()}: {len(conns)}", color=bcolors.FAIL): # self.graph.add_connections(conns) add_conns_out.extend(conns) - + del_cons = set() # kepp user conigured deps preds = preds - execucter.cmd.dep @@ -1368,7 +1369,7 @@ class UMake: target_node = self.graph.get_data(target) target_node.increase_dependencies_built(-1) target_node.update() - + if targets and not execucter.is_from_cache: self._set_deps_hash(node_entry, execucter) @@ -1419,7 +1420,7 @@ class UMake: continue while node_entry.dependencies_built > 0: self._handle_done(add_conns, del_conns) - + successors = set() for succ in self.graph.successors(node): succ_node = self.graph.get_data(succ) @@ -1430,7 +1431,7 @@ class UMake: if node_entry.entry_type == FileEntry.EntryType.CMD: deps_hash, cached_deps, metadata_hash = self._get_deps_hash(node_entry) execucter = CmdExecuter(successors, "", node_entry.data) - + execucter.cmd_hash = node_entry.md5sum execucter.metadata_hash = metadata_hash execucter.deps_hash = deps_hash @@ -1439,11 +1440,11 @@ class UMake: self.n_jobs += 1 else: node_entry.set_modified(False) - + if self.n_jobs: while self._handle_done(add_conns, del_conns): pass - + self.graph.add_connections(add_conns) self.graph.remove_connections(del_conns) @@ -1458,7 +1459,7 @@ class UMake: def cache_gc(self): self.cache_mgr.gc() - + def run(self): fd, lock_path = fs_lock(UMAKE_ROOT_DIR) if fd == None: @@ -1483,10 +1484,10 @@ class UMake: def show_target_details(self, target): target_fentry: FileEntry target_fentry = self.graph.get_data(target) - + cmd = target_fentry.data.cmd all_deps = set(self.graph.predecessors(cmd)) - + configured_deps = sorted(target_fentry.data.dep - target_fentry.data.manual_deps) manual_deps = sorted(target_fentry.data.manual_deps) auto_deps = all_deps - target_fentry.data.dep @@ -1497,7 +1498,7 @@ class UMake: global_auto_deps = sorted(auto_deps - auto_dep_in_project) auto_dep_in_project = sorted(auto_dep_in_project) successors = set(self.graph.successors(target)) - + if global_config.json_file: with open(global_config.json_file, "w") as f: import json @@ -1538,7 +1539,7 @@ class UMake: generated = self.graph.get_nodes(FileEntry.EntryType.GENERATED) for idx, target in enumerate(sorted(generated)): print(f'{idx:4} {target.replace(ROOT + "/", "")}') - + def clean(self): generated = self.graph.get_nodes(FileEntry.EntryType.GENERATED) with Timer("done cleaning targets"): @@ -1575,7 +1576,7 @@ class UMake: umake.parse_cmd_files() for target in targets: self.show_targets_details(target) - + def show_parsed_umakefile(self): self.load_graph() UMakefile = join(ROOT , "UMakefile") @@ -1601,31 +1602,31 @@ else: parser.add_argument('-d', '--details', action='store_true', help='details about the target') - + parser.add_argument('--json', action='store', dest='json_file', help='output as json') - + parser.add_argument('--show-all-targets', action='store_true', dest="show_all_targets", help="show all targets configured in UMakefile") parser.add_argument('--show-parsed-umakefile', action='store_true', dest="show_parsed_umakefile", help="show parsed umakefile") - + parser.add_argument('--no-remote-cache', action='store_true', dest="no_remote_cache", help="don't use remote cache") parser.add_argument('--no-local-cache', action='store_true', dest="no_local_cache", help="don't use local cache") - + parser.add_argument('--remote-cache-stats', action='store_true', dest="remote_cache_stats", help="show stats of remote cache") parser.add_argument('--remote-cache-delete', action='store_true', dest="remote_cache_delete", help="WARNING: delete all remote cache objects") - + parser.add_argument('-v', '--variant', action='store', dest="variant", help="compile with diffrent variants") - + parser.add_argument('--clean', action='store_true', dest="clean", help="clean umake file, with all targets") @@ -1633,23 +1634,23 @@ else: if args.json_file: global_config.json_file = args.json_file - + if args.no_remote_cache: global_config.remote_cache = False - + if args.no_local_cache: global_config.local_cache = False - + if args.remote_cache_stats: mc = MinioCache() mc.get_cache_stats() os.sys.exit(0) - + if args.remote_cache_delete: mc = MinioCache() mc.clear_bucket() os.sys.exit(0) - + if args.show_all_targets: umake.load_graph() umake.show_all_targets() @@ -1661,7 +1662,7 @@ else: if args.show_parsed_umakefile: umake.show_parsed_umakefile() os.sys.exit(0) - + if args.clean: umake.load_graph() umake.clean() @@ -1674,7 +1675,7 @@ else: args.targets = [join(ROOT, t) for t in args.targets] global_config.targets = args.targets umake.run() - + #set(self.graph.graph.vs.select(_degree=80)) # print(profiler.output_text(color=True)) From f7a086667bcef9ca9b44b4cbfe823ff7b2e95a16 Mon Sep 17 00:00:00 2001 From: Kfir Gollan Date: Sat, 29 Feb 2020 11:03:42 +0200 Subject: [PATCH 04/41] Add some links to the readme file --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 706e28f..a2d95d6 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,11 @@ influenced by [`tup`](http://gittup.org/tup/). * auto dependency discovery using strace * simple configuration language +Since a lot of the core concepts from tup apply to umake it is highly recommended to read the following: + +* http://gittup.org/tup/ex_dependencies.html +* http://gittup.org/tup/make_vs_tup.html + Running example --------------- @@ -288,3 +293,15 @@ optional arguments: ``` +Talking about UMake: +-------------------- +This section includes link to various places around the web that reason about umake. +We believe that by reviewing questions and opinions that other people wrote about umake one can learn more about it. +So without further ado is here is the list: + +* [DriveNets blog](https://drivenets.com/blog/the-inside-story-of-how-we-optimized-our-own-build-system/) +* [Reddit r/bazel](https://www.reddit.com/r/bazel/comments/fa084s/how_we_optimised_our_build_system_using_umake/) +* [Reddit r/cpp](https://www.reddit.com/r/cpp/comments/f9yjxn/how_we_optimised_our_build_system_using_umake/) +* [Reddit r/gcc](https://www.reddit.com/r/gcc/comments/faiqum/how_we_optimised_our_build_system_using_umake/) + +Have another story to share about umake? just open a PR with a change to this list and we'll merge it in. \ No newline at end of file From 8ce98454d68f9b6b772c6160d3a6bb7a4fcc5361 Mon Sep 17 00:00:00 2001 From: Grisha Date: Sat, 29 Feb 2020 20:04:52 +0200 Subject: [PATCH 05/41] add doc --- README.md | 258 +------------------------------------- UMakefile | 9 -- doc/cache.md | 74 +++++++++++ doc/images/overview/1.png | Bin 0 -> 33334 bytes doc/images/overview/2.png | Bin 0 -> 50228 bytes doc/images/overview/3.png | Bin 0 -> 81645 bytes doc/images/overview/4.png | Bin 0 -> 70892 bytes doc/overview.md | 148 ++++++++++++++++++++++ doc/umakefile.md | 138 ++++++++++++++++++++ example/UMakefile | 2 +- 10 files changed, 365 insertions(+), 264 deletions(-) delete mode 100644 UMakefile create mode 100644 doc/cache.md create mode 100644 doc/images/overview/1.png create mode 100644 doc/images/overview/2.png create mode 100644 doc/images/overview/3.png create mode 100644 doc/images/overview/4.png create mode 100644 doc/overview.md create mode 100644 doc/umakefile.md diff --git a/README.md b/README.md index a2d95d6..c9ae0c1 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,14 @@ influenced by [`tup`](http://gittup.org/tup/). * auto dependency discovery using strace * simple configuration language -Since a lot of the core concepts from tup apply to umake it is highly recommended to read the following: +[Detailed overview](doc/overview.md) -* http://gittup.org/tup/ex_dependencies.html -* http://gittup.org/tup/make_vs_tup.html +[Cache System](doc/cache.md) + +[UMakefile](doc/umakefile.md) Running example --------------- - ``` git clone https://github.com/grisha85/umake.git cd umake @@ -42,256 +42,6 @@ This section lists all the various configurations that umake supports | UMAKE_CONFIG_LOCAL_CACHE_SIZE | The maximal size in bytes of the cache to store locally | | UMAKE_CONFIG_ROOT | The root directory in which all umake files will be stored | -How UMake works ---------------- -* loading compilation graph (DAG) from previous build (graph is empty when built first time) - -* scannig filesytem using the loaded graph to check for changes - - * `modified` - if file was modified on filesystem it marked as modified on the graph - * `deleted` - if file was deleted from the filesystem, successor target deleted as well from the filesystem and the graph - - -* parsing UMakefile and creating new commands or updating the existing - - * `deleted` - if command deleted, targets of this command deleted as well from both graph and filesystem - * `updated` - if command is updated, UMake will handle it as `delete` and `create`. so, target of the old command will be deleted and new target will be created when graph will be executed -* executing the graph in parallel - - * `auto dependency detection` - updating the graph with accessed files by parsing strace logs - * `cache` - saving to cache. more details: [Cache System](#cache-system) -* saving the build graph - -Note: by automatically deleting `targets` when no longer needed (either `command` is delete or source file was the deleted for this `target`) UMake implementing `clean` by design. So `clean` no longer need to be mainained. - -UMakefile ---------- -## Rule `:` - -A single `command` is generated for this rule - -`:` source `|` manual-deps `>` cmd `>` target - -`manual-deps` - targets the this target depends on, helps keep a correct build order -`cmd` - bash command -`target` - the output of the command - -`{filename}` - full path filename of the source `/my/path/filename.a` -`{dir}` - directory containing the source `/my/path/` -`{noext}` - filename without extension `filename` -`{target}` - expanded target `helloworld.a` - -Example: -``` -: *.o > gcc {filename} -o {target} > helloworld.a -``` - -#### Recursive Source `**` -recursice dependencies are support -``` -root\ - a\ - a.a\ - a.a.a - a.a.b - a.b.a - a.b\ - a.b.a - a.b.b - b\ - b -``` -* `root/**` -> (`a.a.a`, `a.a.b`, `b`) -* `root/a/**/*.b` -> (`a.a.b`, `a.b.b`) - -#### Manual Dependency `|` -In order to maintain a correct build order (that is executed in parallel), there are use cases where manual dependecy is needed. for example: if there are `generated headers` (like when using `protobuf`) that are being later used by another `command` to generate a different target. - - -## Rule `:foreach` -Same as `:` but will create `command` for each `source` file existing on filesystem (like when we match the pettern *.o in the example above) - -## Macro `!` -Macros are expanded immediately (like using `#define X "hello"` in c/cpp) -Macros can accept input parameters (again, similar to using c/cpp macros) - -Example: -``` -!c(includes, flags) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o -``` -#### Default values -`Macro` supports default values, by default they are `""`: -``` -!c(includes, flags=-O3) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o -``` -now `!c` can be called as following: -``` -!c(-Iinclude) # includes = -Iinclude, flags=-O3 -!c(-Iinclude, -O0) # includes = -Iinclude, flags=-O0 -!c() # includes = "", flags=-O3 -``` -## Const `$` -Consts are like macros, and can be used to parametrize calls to macros -Example: -``` -$libs = -lpthread -!so($libs) -``` - -## Config `[:]` -Configs allow to configure and changing umake execution. - -#### `workdir` -Default: \ - -Change the current working directory. -`relative paths` will now be relative to the new working dir. -`Absoulte paths` will now be relative to the `root` (the directory where UMakefile exists). - -Example: -Relative path `my_dir_a/my_dir_b` will be evaluated as `/my_dir_a/my_dir_b`. -However `/my_dir_a/my_dir_b` will be evaluated as `/my_dir_a/my_dir_b` *regardless* of what our `workdir` is. - -The following rules are similar: - -``` -: src/packages/a > gcc > src/packages/b -``` -``` -[workdir:src/packages] -: a > gcc > b -``` -Return to root -``` -[workdir:/] -``` - -#### `variant` - -Defult: "default" - -The ability to generate diffrent variants from the same sources. For example: debug/release compilations. variant `terminated` with a `newline` -``` -# varaint is terminated with newline -[variant:default] -$cflags = -O3 - -[variant:debug] -$cflags = -O0 - -: my.c > !c($cflags) > my.o -``` -now compile with `umake` for default variant -``` -umake -``` -or -``` -umake --variant debug -``` -for `debug` variant. - -#### `include` -Default: - - -include another `UMakefile` into the current one. -``` -[include:somedir/umakefile] -``` -will open and parse `somedir/umakefile` in the current working dir context. -# Cache System -Targets are being cached after creation, and checked if the target is in cache just before executing a `command`. There are two types of cache that UMake is using local (filesystem) and remote (minio). - -## How Cache works -### On Save -* `sha1` of the target sources (those that were generated from UMakefile) are being calculated and `sha1` of the `command` itself. All dependecies files (also those that were auto detected) Saved to `md-` file. -* `sha1` of all dependecies are calculated and the just created target is saved to `/` -### On Load -* `sha1` of the target sources (those that were generated from UMakefile) are being calculated and `sha1` of the `command` itself. Reading `md-` for all the file dependencies -* calculating `sha1` of all of the target dependencies (from the files system) and copying `/` to the project directory as it was generated by the `command` - -## Local Cache -The local cache is stored in `~/.umake/build-cache`. - -## Remote Cache -umake support uploading the artifacts to a remote server. The more people that work on the same code base the more the remote cache will work. -Think of it like that, if someone in the office already build a file then there is no need to build it again. This concept speeds up local builds, since if someone -else already built the binary we just download from the cache. It also speeds up CI builds, since in most cases developers compile & test their code locally. - -### Using minio as a umake remote cache -[Minio](https://min.io/) is a high performance open source object storage. It is compatible with AWS S3. It is very easy to set it up using the official [docker image](https://hub.docker.com/r/minio/minio/). Connecting it umake is also very simple. - -#### How to run minio for umake -We need to start a minio server and make sure that it exposes a port via docker. -Use the following command to spin up the server: -``` -docker run \ - -e MINIO_ACCESS_KEY=umake \ - -e MINIO_SECRET_KEY=umakeumake \ - -p 9000:9000 \ - minio/minio server /data -``` -Note that you need to select a password and a username. In this example it's umake/umakeumake. -For more minio configurations refer to the [docs](https://github.com/minio/minio/blob/master/docs/config/README.md). -Now that the server is up and running we need to create a bucket for umake. -The simplest way to do it is via the minio web interface. - -* Access http://localhost:9000 and user the username and password you selected. -* Create a new bucket called umake-build-cache - -And that's it! we are good to go. Let's test it out using the example in the repo - -``` -$ cd ./example -$ umake - [0.082] done imports - [0.000] done loading graph - [0.000] done filesystem scan - [0.001] done parsing UMakefile - gcc -c /home/dn/umake/example/hello.c -o /home/dn/umake/example/*.o - [0.084] [CACHED] /home/dn/umake/example/*.o - gcc /home/dn/umake/example/*.o -o /home/dn/umake/example/hello_world - [0.090] [CACHED] /home/dn/umake/example/hello_world - [0.000] done saving graph - [0.004] done cache gc - Workers 0/8 Cache 0/1500[MB] Cache Hits 0% Local/Remote 0%/0% Variant default Time 0[sec] hello_world - - $ umake --remote-cache-stats - [0.082] done imports -bucket size 0MB, n_objects 4 - -$ umake --no-local-cache - [0.081] done imports - [0.000] done loading graph - [0.000] done filesystem scan - [0.001] done parsing UMakefile - gcc -c /home/dn/umake/example/hello.c -o /home/dn/umake/example/*.o - [0.008] [REMOTE-CACHE] /home/dn/umake/example/*.o - gcc /home/dn/umake/example/*.o -o /home/dn/umake/example/hello_world - [0.007] [REMOTE-CACHE] /home/dn/umake/example/hello_world - [0.000] done saving graph - [0.003] done cache gc - Workers 0/8 Cache 0/1500[MB] Cache Hits 100% Local/Remote 0%/100% Variant default Time 0[sec] hello_world -``` - -# Arguments - -``` -usage: umake [-h] [--details] [--json JSON_FILE] [--no-remote-cache] - [--no-local-cache] - [target] - -positional arguments: - target target path - -optional arguments: - -h, --help show this help message and exit - --details details about the target - --json JSON_FILE output as json - --no-remote-cache don't use remote cache - --no-local-cache don't use local cache - -``` Talking about UMake: -------------------- diff --git a/UMakefile b/UMakefile deleted file mode 100644 index f8b460a..0000000 --- a/UMakefile +++ /dev/null @@ -1,9 +0,0 @@ -!gcc() = gcc -c -fPIC {filename} $a $b -o {target} -!so() = gcc -shared {filename} -o {target} - -$a1 = 1 -$a2 = 2 - -:foreach test/*.c > !gcc() > {dir}/{noext}.o -: test/*.o > !so() > test/b.so -: test/Dockerfile | test/b.so test/*.o > docker build -f {filename} test/ > diff --git a/doc/cache.md b/doc/cache.md new file mode 100644 index 0000000..3ac684d --- /dev/null +++ b/doc/cache.md @@ -0,0 +1,74 @@ +# Cache System +Targets are being cached after creation, and checked if the target is in cache just before executing a `command`. There are two types of cache that UMake is using local (filesystem) and remote (minio). + +## How Cache works +### On Save +* `sha1` of the target sources (those that were generated from UMakefile) are being calculated and `sha1` of the `command` itself. All dependecies files (also those that were auto detected) Saved to `md-` file. +* `sha1` of all dependecies are calculated and the just created target is saved to `/` +### On Load +* `sha1` of the target sources (those that were generated from UMakefile) are being calculated and `sha1` of the `command` itself. Reading `md-` for all the file dependencies +* calculating `sha1` of all of the target dependencies (from the files system) and copying `/` to the project directory as it was generated by the `command` + +## Local Cache +The local cache is stored in `~/.umake/build-cache`. + +## Remote Cache +umake support uploading the artifacts to a remote server. The more people that work on the same code base the more the remote cache will work. +Think of it like that, if someone in the office already build a file then there is no need to build it again. This concept speeds up local builds, since if someone +else already built the binary we just download from the cache. It also speeds up CI builds, since in most cases developers compile & test their code locally. + +### Using minio as a umake remote cache +[Minio](https://min.io/) is a high performance open source object storage. It is compatible with AWS S3. It is very easy to set it up using the official [docker image](https://hub.docker.com/r/minio/minio/). Connecting it umake is also very simple. + +#### How to run minio for umake +We need to start a minio server and make sure that it exposes a port via docker. +Use the following command to spin up the server: +``` +docker run \ + -e MINIO_ACCESS_KEY=umake \ + -e MINIO_SECRET_KEY=umakeumake \ + -p 9000:9000 \ + minio/minio server /data +``` +Note that you need to select a password and a username. In this example it's umake/umakeumake. +For more minio configurations refer to the [docs](https://github.com/minio/minio/blob/master/docs/config/README.md). +Now that the server is up and running we need to create a bucket for umake. +The simplest way to do it is via the minio web interface. + +* Access http://localhost:9000 and user the username and password you selected. +* Create a new bucket called umake-build-cache + +And that's it! we are good to go. Let's test it out using the example in the repo + +``` +$ cd ./example +$ umake + [0.082] done imports + [0.000] done loading graph + [0.000] done filesystem scan + [0.001] done parsing UMakefile + gcc -c /home/dn/umake/example/hello.c -o /home/dn/umake/example/*.o + [0.084] [CACHED] /home/dn/umake/example/*.o + gcc /home/dn/umake/example/*.o -o /home/dn/umake/example/hello_world + [0.090] [CACHED] /home/dn/umake/example/hello_world + [0.000] done saving graph + [0.004] done cache gc + Workers 0/8 Cache 0/1500[MB] Cache Hits 0% Local/Remote 0%/0% Variant default Time 0[sec] hello_world + + $ umake --remote-cache-stats + [0.082] done imports +bucket size 0MB, n_objects 4 + +$ umake --no-local-cache + [0.081] done imports + [0.000] done loading graph + [0.000] done filesystem scan + [0.001] done parsing UMakefile + gcc -c /home/dn/umake/example/hello.c -o /home/dn/umake/example/*.o + [0.008] [REMOTE-CACHE] /home/dn/umake/example/*.o + gcc /home/dn/umake/example/*.o -o /home/dn/umake/example/hello_world + [0.007] [REMOTE-CACHE] /home/dn/umake/example/hello_world + [0.000] done saving graph + [0.003] done cache gc + Workers 0/8 Cache 0/1500[MB] Cache Hits 100% Local/Remote 0%/100% Variant default Time 0[sec] hello_world +``` diff --git a/doc/images/overview/1.png b/doc/images/overview/1.png new file mode 100644 index 0000000000000000000000000000000000000000..ecfbd819b2d2737c6112b1548923a66aaca7e80f GIT binary patch literal 33334 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 RI0gKttf29@K>p?X{{v);hgtvt literal 0 HcmV?d00001 diff --git a/doc/images/overview/2.png b/doc/images/overview/2.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed997da3641fbe0de8b5d4f1b5bbc486d2e6884 GIT binary patch literal 50228 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
Qc^+RqLxR#8uAw>=r*EcVcmWg%?oE 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 Aa{vGU literal 0 HcmV?d00001 diff --git a/doc/images/overview/3.png b/doc/images/overview/3.png new file mode 100644 index 0000000000000000000000000000000000000000..a2b258fb27a719499ff9465ad31ef0ea45fbe938 GIT binary patch literal 81645 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 a+dC$eCwz4iB~3g6eyWOag>1QpzW)IVr&`JY literal 0 HcmV?d00001 diff --git a/doc/images/overview/4.png b/doc/images/overview/4.png new file mode 100644 index 0000000000000000000000000000000000000000..dba78db344a8b28931e399ce297140ef26bba8f2 GIT binary patch literal 70892 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 gcc -c {filename} {target} > a.o +``` +the command parsed to the following `bash` command +``` +gcc -c a.c a.o +``` + +### Graph after parsing +![ ](./images/overview/1.png) + + +### Graph after running the cmd +![ ](images/overview/2.png) + +Now if any of the nodes (`a.c`, `dep_a.h`, `gcc -c a.c a.o` or `a.o`) will be modified, `a.o` will be regenerated. + +Targets as dependencies +---------------------- +`b.c`: +``` +#include "a.pb-c.h" +#include "stdio.h" + +int +main() +{ + printf("hello\n"); + return 0; +} +``` +Lets have another "compilation" command that generates headers that used by other command: + +``` +: a.proto > protoc {filename} > a.pb-c.h a.pb-c.c +: b.c > gcc -c {filename} {target} > b.o +``` + +### Graph after parsing +![ ](images/overview/3.png) + + +Now we have copmilation ordering issue. `b.o` might be compiled before `a.proto` because nothing enforce the ordering between `a.proto` and `b.o` + +When running this `UMakefile` as is, an error will be generated. This is because command using other target (to generate `b.o` we accessing `a.pb-c.h` which is also generated) + +### Manual Dependency: `|` +In order to fix this order issue we need to tell `umake` that generating `b.o` should come only after `a.pb-c.h`. We would use `| a.pb-c.h` for that. + +`UMakefile`: +``` +: a.proto > protoc {filename} > a.pb-c.h a.pb-c.c +: b.c | a.pb-c.h > gcc -c {filename} {target} > b.o +``` + +### Graph after parsing +![ ](images/overview/4.png) + + +:foreach +-------- + +``` +: src/src_a.c > compile.sh {filename} {target} > src/src_a.o +: src/src_b.c > compile.sh {filename} {target} > src/src_b.o +: src/src_c.c > compile.sh {filename} {target} > src/src_c.o +: src/src_d.c > compile.sh {filename} {target} > src/src_d.o +``` +can be changed to: +``` +:foreach src/*.c > compile.sh {filename} {target} > {dir}/{noext}.umake.o +``` +`:foreach` works exactlly like `:` (macros, vars, manual dependencies.) + +Macros and Variables +-------------------- +The above statement might repeated many times in UMakefile. so macros can be used in order to make life easier. + +``` +!c(includes, flags) : gcc -c {filename} {target} $includes $flags > {dir}/{noext}.umake.o + +: src/*.c > !c(-Iinclude, -O3) +``` + +`c` - macro name + +`includes`, `flags` - arguments to marcro + + +**The above can be also used with variables:** +``` +!c(includes, flags) : compile.sh {filename} {target} $includes $flags > {dir}/{noext}.umake.o + +$includes = -Iinclude +$flags = -O3 +: src/*.c > !c($includes, $flags) +``` + +Compiling specific target +------------------------- +``` +umake lib/libmy_lib.so +``` +In this case only the subraph of `lib/libmy_lib.so` will be recompiled + +Variants +-------- +``` +$debug_flags = -O3 + +[variant:debug] +$debug_flags = -O0 + +$includes = $debug_flags +: src/*.c > !c($debug_flags, ) +``` +Now if compiled with `umake` the `-O3` flags will be passed. If compiled with `umake -v debug` the `-O0` flags will be passed. diff --git a/doc/umakefile.md b/doc/umakefile.md new file mode 100644 index 0000000..c48f50e --- /dev/null +++ b/doc/umakefile.md @@ -0,0 +1,138 @@ + + +UMakefile +--------- +## Rule `:` + +A single `command` is generated for this rule + +`:` source `|` manual-deps `>` cmd `>` target + +`manual-deps` - targets the this target depends on, helps keep a correct build order +`cmd` - bash command +`target` - the output of the command + +`{filename}` - full path filename of the source `/my/path/filename.a` +`{dir}` - directory containing the source `/my/path/` +`{noext}` - filename without extension `filename` +`{target}` - expanded target `helloworld.a` + +Example: +``` +: *.o > gcc {filename} -o {target} > helloworld.a +``` + +#### Recursive Source `**` +recursice dependencies are support +``` +root\ + a\ + a.a\ + a.a.a + a.a.b + a.b.a + a.b\ + a.b.a + a.b.b + b\ + b +``` +* `root/**` -> (`a.a.a`, `a.a.b`, `b`) +* `root/a/**/*.b` -> (`a.a.b`, `a.b.b`) + +#### Manual Dependency `|` +In order to maintain a correct build order (that is executed in parallel), there are use cases where manual dependecy is needed. for example: if there are `generated headers` (like when using `protobuf`) that are being later used by another `command` to generate a different target. + + +## Rule `:foreach` +Same as `:` but will create `command` for each `source` file existing on filesystem (like when we match the pettern *.o in the example above) + +## Macro `!` +Macros are expanded immediately (like using `#define X "hello"` in c/cpp) +Macros can accept input parameters (again, similar to using c/cpp macros) + +Example: +``` +!c(includes, flags) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o +``` +#### Default values +`Macro` supports default values, by default they are `""`: +``` +!c(includes, flags=-O3) : gcc -g -O2 -Wall -fPIC -c {filename} $includes $flags -o {target} > {dir}/{noext}.o +``` +now `!c` can be called as following: +``` +!c(-Iinclude) # includes = -Iinclude, flags=-O3 +!c(-Iinclude, -O0) # includes = -Iinclude, flags=-O0 +!c() # includes = "", flags=-O3 +``` +## Const `$` +Consts are like macros, and can be used to parametrize calls to macros +Example: +``` +$libs = -lpthread +!so($libs) +``` + +## Config `[:]` +Configs allow to configure and changing umake execution. + +#### `workdir` +Default: \ + +Change the current working directory. +`relative paths` will now be relative to the new working dir. +`Absoulte paths` will now be relative to the `root` (the directory where UMakefile exists). + +Example: +Relative path `my_dir_a/my_dir_b` will be evaluated as `/my_dir_a/my_dir_b`. +However `/my_dir_a/my_dir_b` will be evaluated as `/my_dir_a/my_dir_b` *regardless* of what our `workdir` is. + +The following rules are similar: + +``` +: src/packages/a > gcc > src/packages/b +``` +``` +[workdir:src/packages] +: a > gcc > b +``` +Return to root +``` +[workdir:/] +``` + +#### `variant` + +Defult: "default" + +The ability to generate diffrent variants from the same sources. For example: debug/release compilations. variant `terminated` with a `newline` +``` +# varaint is terminated with newline +[variant:default] +$cflags = -O3 + +[variant:debug] +$cflags = -O0 + +: my.c > !c($cflags) > my.o +``` +now compile with `umake` for default variant +``` +umake +``` +or +``` +umake --variant debug +``` +for `debug` variant. + +#### `include` +Default: - + +include another `UMakefile` into the current one. +``` +[include:somedir/umakefile] +``` +will open and parse `somedir/umakefile` in the current working dir context. + diff --git a/example/UMakefile b/example/UMakefile index 39e9f83..913d7d0 100644 --- a/example/UMakefile +++ b/example/UMakefile @@ -1,2 +1,2 @@ -:foreach *.c > gcc -c {filename} -o {target} > *.o +:foreach *.c > gcc -c {filename} -o {target} > {noext}.o : *.o > gcc {filename} -o {target} > hello_world From 6158c09dee0feba1f5ee98f90051b9039d20a3c3 Mon Sep 17 00:00:00 2001 From: Grisha Date: Sun, 1 Mar 2020 09:31:44 +0200 Subject: [PATCH 06/41] fix: change of command make it crash --- umake/umake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/umake/umake b/umake/umake index a18275d..da60f82 100755 --- a/umake/umake +++ b/umake/umake @@ -717,8 +717,8 @@ class GraphDB: def init(self): for node in self.get_nodes(): fentry: FileEntry = self.get_data(node) - if fentry.entry_type == FileEntry.EntryType.CMD: - self.last_cmds.add(node) + # if fentry.entry_type == FileEntry.EntryType.CMD: + # self.last_cmds.add(node) elif fentry.entry_type == FileEntry.EntryType.FILE: fentry.init() @@ -730,6 +730,8 @@ class GraphDB: try: with open(UMAKE_DB, "rb") as db_file: data: GraphDB = pickle.load(db_file) + return data + # don't use it for now if data.db_version != db_version: out.print_file_deleted(f"umake changed deleting db {UMAKE_DB}") os.remove(UMAKE_DB) @@ -1283,6 +1285,7 @@ class UMake: self._graph_add_cmd_node(cmd, connections) self.graph.add_connections(connections) + self.graph.last_cmds = cmds # check target request exists if global_config.targets: all_targets_exists = any(target in all_targets for target in global_config.targets) From 1bcb101425a0a5c144b1603e9c84ae756a35ef55 Mon Sep 17 00:00:00 2001 From: Grisha Date: Mon, 2 Mar 2020 23:43:35 +0200 Subject: [PATCH 07/41] umake: typo --- umake/umake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/umake/umake b/umake/umake index da60f82..a0080cf 100755 --- a/umake/umake +++ b/umake/umake @@ -719,7 +719,7 @@ class GraphDB: fentry: FileEntry = self.get_data(node) # if fentry.entry_type == FileEntry.EntryType.CMD: # self.last_cmds.add(node) - elif fentry.entry_type == FileEntry.EntryType.FILE: + if fentry.entry_type == FileEntry.EntryType.FILE: fentry.init() @staticmethod From f5e0c6d5a9d12b081246dcac0f9418a7a8cf3111 Mon Sep 17 00:00:00 2001 From: grisha85 Date: Wed, 4 Mar 2020 08:08:35 +0200 Subject: [PATCH 08/41] add install example --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c9ae0c1..327703c 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,14 @@ influenced by [`tup`](http://gittup.org/tup/). [UMakefile](doc/umakefile.md) +Install +------- +``` +git clone https://github.com/grisha85/umake.git +cd umake +pip install . +``` + Running example --------------- ``` @@ -54,4 +62,4 @@ So without further ado is here is the list: * [Reddit r/cpp](https://www.reddit.com/r/cpp/comments/f9yjxn/how_we_optimised_our_build_system_using_umake/) * [Reddit r/gcc](https://www.reddit.com/r/gcc/comments/faiqum/how_we_optimised_our_build_system_using_umake/) -Have another story to share about umake? just open a PR with a change to this list and we'll merge it in. \ No newline at end of file +Have another story to share about umake? just open a PR with a change to this list and we'll merge it in. From 40dd2962cfd1778746d063527f264b182c6cbc05 Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Sat, 7 Mar 2020 01:37:31 +0200 Subject: [PATCH 09/41] improve umakefile parsing --- umake/pywildcard.py | 4 ++-- umake/umake | 18 ++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/umake/pywildcard.py b/umake/pywildcard.py index 07963e7..1503724 100644 --- a/umake/pywildcard.py +++ b/umake/pywildcard.py @@ -40,8 +40,8 @@ def fnmatch(name, pat): If you don't want this, use fnmatchcase(FILENAME, PATTERN). """ import os - name = os.path.normcase(name) - pat = os.path.normcase(pat) + # name = os.path.normcase(name) + # pat = os.path.normcase(pat) return fnmatchcase(name, pat) diff --git a/umake/umake b/umake/umake index a0080cf..304a4b0 100755 --- a/umake/umake +++ b/umake/umake @@ -3,8 +3,8 @@ import time from umake.colored_output import InteractiveOutput, bcolors, ROOT, UMAKE_ROOT_DIR, UMKAE_TMP_DIR, UMAKE_BUILD_CACHE_DIR, UMAKE_BUILD_CACHE_MAX_SIZE_MB, MINIMAL_ENV, get_size_KB, UMAKE_MAX_WORKERS, UMAKE_DB from umake import config -# from pyinstrument import Profiler -# profiler = Profiler() +#from pyinstrument import Profiler +#profiler = Profiler() out = InteractiveOutput() @@ -536,9 +536,9 @@ class CmdExecuter: def join_paths(root, rest): if rest[0] == "/": - ret = join(ROOT, rest[1:]) + ret = f"{ROOT}/{rest[1:]}" else: - ret = join(root, rest) + ret = f"{root}/{rest}" return ret class FileEntry: @@ -882,7 +882,6 @@ class CmdTemplate: is_found = True source_fmt_fullpath = join_paths(self.root, source_fmt) - source_dir = os.path.dirname(source_fmt_fullpath) for global_target in all_targets: if fnmatch.fnmatch(global_target, source_fmt_fullpath): is_found = True @@ -1250,11 +1249,9 @@ class UMake: new_fentry = self._get_file_entry(f) self.graph.add_node(f, new_fentry) for cmd in cmd_template.cmds: - if self.graph.is_exists(cmd.cmd): - cmd_fentry = self.graph.get_data(cmd.cmd) cmds.add(cmd.cmd) removed_cmds = last_cmds.difference(cmds) - + delete_nodes = set() for remove_cmd in removed_cmds: remove_cmd_list = list(self.graph.successors(remove_cmd)) @@ -1297,6 +1294,7 @@ class UMake: while True: executer: CmdExecuter executer = self.jobs_queue.get() + #profiler.start() out.n_active_workers.inc() out.curr_job = executer.cmd.summarized_show() out.print(f"{executer.cmd.cmd}") @@ -1308,6 +1306,7 @@ class UMake: out.print(e) executer.is_ok = False out.n_active_workers.dec() + #profiler.stop() self.done_queue.put(executer) def _handle_done(self, add_conns_out, del_conns_out): @@ -1474,9 +1473,8 @@ class UMake: self.load_graph() self.scan_fs() self.parse_cmd_files() - # profiler.start() self.execute_graph() - # profiler.stop() + #print(profiler.output_text(color=True)) self.dump_graph() self.cache_gc() out.update_bar(force=True) From 5e485bb33ec18f9bd3875d0c31889a0d415db29b Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Sun, 8 Mar 2020 23:10:47 +0200 Subject: [PATCH 10/41] add ci tests --- .drone.yml | 12 ++++++++++++ Makefile | 10 ++++++++++ 2 files changed, 22 insertions(+) create mode 100644 .drone.yml create mode 100644 Makefile diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..446e355 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,12 @@ +--- +kind: pipeline +name: default +steps: + - + commands: + - "pip3 install --upgrade ." + - "cd test && python3.6 test.py" + image: grisha85/umake + pull: if-not-exists + name: test +type: docker diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7735df1 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ + + +.PHONY: test enter + +test: + docker run --rm --privileged -it -v`pwd`/test:/test -w/test -vumake:/umake grisha85/umake python3.6 test.py + +enter: + docker run --rm --privileged -it -v`pwd`/test:/test -w/test -vumake:/umake grisha85/umake bash + From e7217c57b200d39498d69c0d0a4deb32094c78fc Mon Sep 17 00:00:00 2001 From: Kfir Gollan Date: Sun, 8 Mar 2020 23:57:59 +0200 Subject: [PATCH 11/41] Add compilation database support --- umake/umake | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/umake/umake b/umake/umake index 304a4b0..3961802 100755 --- a/umake/umake +++ b/umake/umake @@ -93,6 +93,7 @@ class Config: self.local_cache = True self.targets = [] self.variant = "default" + self.compile_commands = False global_config = Config() @@ -565,7 +566,6 @@ class FileEntry: def init(self): self.dependencies_built = 0 - def set_modified(self, new_value: bool): self.is_modified = new_value @@ -1462,12 +1462,46 @@ class UMake: def cache_gc(self): self.cache_mgr.gc() + def create_compilation_database(self): + """ + Create a compilation database based on the graph of the project. + Example entry for compilation database: + [ + { "directory": "/home/user/llvm/build", + "command": "/usr/bin/clang++ -Irelative -DSOMEDEF=\"With spaces, quotes and \\-es.\" -c -o file.o file.cc", + "file": "file.cc" }, + ... + ] + + For more details on compilation databases refer to: + https://clang.llvm.org/docs/JSONCompilationDatabase.html + """ + cmds = [] + for node in self.graph.nodes.values(): + # We only care about the commands that are executed, skip eveything else. + if node.entry_type != FileEntry.EntryType.CMD: + continue + + # Note that a single command might have multiple targets. + # Each target is a different file, thus it should be a different entry. + for cur_file in node.data.target: + cmds.append({ + 'directory': '/', + 'command': str(node.data.cmd), + 'file': str(cur_file), + }) + + import json + with open('compile_commands.json', 'w') as db_file: + json.dump(cmds, db_file) + def run(self): fd, lock_path = fs_lock(UMAKE_ROOT_DIR) if fd == None: out.print_fail(f"another umake is running!, if you sure it's not running remove {UMAKE_ROOT_DIR}.lock") os.sys.exit(-1) return + try: self._init_build() self.load_graph() @@ -1476,6 +1510,8 @@ class UMake: self.execute_graph() #print(profiler.output_text(color=True)) self.dump_graph() + if global_config.compile_commands: + self.create_compilation_database() self.cache_gc() out.update_bar(force=True) out.destroy() @@ -1631,8 +1667,13 @@ else: parser.add_argument('--clean', action='store_true', dest="clean", help="clean umake file, with all targets") + parser.add_argument('--compile-commands', action='store_true', dest="compile_commands", + help="Create compile_commands.json file with info on the build") + args = parser.parse_args() + global_config.compile_commands = args.compile_commands + if args.json_file: global_config.json_file = args.json_file From 70bd2feeab7eb21e9eb3dd7b7e7a406e142aba0c Mon Sep 17 00:00:00 2001 From: Grisha Date: Sat, 7 Mar 2020 23:18:19 +0200 Subject: [PATCH 12/41] umake: add dpdk compilation --- doc/dpdk-build.md | 30 +++++++++++++++++++++++++++ doc/images/dpdk-build/dpdk-build.gif | Bin 0 -> 713260 bytes 2 files changed, 30 insertions(+) create mode 100644 doc/dpdk-build.md create mode 100644 doc/images/dpdk-build/dpdk-build.gif diff --git a/doc/dpdk-build.md b/doc/dpdk-build.md new file mode 100644 index 0000000..9468109 --- /dev/null +++ b/doc/dpdk-build.md @@ -0,0 +1,30 @@ + +# build DPDK in 9 seconds +[`DPDK`](https://www.dpdk.org/) is an open source project for fast packet processing. `umake` can compile it in `9` seconds: + +![dpdk build](images/dpdk-build/dpdk-build.gif) + +## Setup + +- VM with 6 cpus / `Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz` host +- UMakefile was auto generated after ninja (verbose) compilation +- prepare tests with: +``` +git clone https://github.com/grisha85/dpdk.git +cd dpdk +make prepare +``` +## Results +| compilation | time (seconds) | command | +|-------------------------------- |---------------- |------------------- | +| ninja (original build) | 160 | make ninja | +| umake - uncached | 274 | make umake [1] | +| umake - local cache | `9` | make umake-local | +| umake - remote cache(over lan) | 14 | make umake-remote | +[1] strace has huge performance penalty + + +## Remarks and Conclusions + +- this is not full port of DPDK compilation to `umake` +- in most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed. This is especially true for CI builds diff --git a/doc/images/dpdk-build/dpdk-build.gif b/doc/images/dpdk-build/dpdk-build.gif new file mode 100644 index 0000000000000000000000000000000000000000..4569d21ebbef2af3c2591af9b75f7863acd21ada GIT binary patch literal 713260 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�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 Date: Sat, 7 Mar 2020 23:34:52 +0200 Subject: [PATCH 13/41] dpdk-build: add main README --- README.md | 6 ++++++ doc/dpdk-build.md | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 327703c..9b54158 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ UMake ===== **Blazing Fast. Sub second Modification detection. Just a few seconds for cached compilation** +![dpdk build](doc/images/dpdk-build/dpdk-build.gif) + Overview -------- UMake is a build system that building your projects. @@ -50,6 +52,10 @@ This section lists all the various configurations that umake supports | UMAKE_CONFIG_LOCAL_CACHE_SIZE | The maximal size in bytes of the cache to store locally | | UMAKE_CONFIG_ROOT | The root directory in which all umake files will be stored | +Real Life Examples +------------------ +[DPDK build](doc/dpdk-build.md) + Talking about UMake: -------------------- diff --git a/doc/dpdk-build.md b/doc/dpdk-build.md index 9468109..89f7ae3 100644 --- a/doc/dpdk-build.md +++ b/doc/dpdk-build.md @@ -1,5 +1,5 @@ -# build DPDK in 9 seconds +# Build DPDK in 9 seconds [`DPDK`](https://www.dpdk.org/) is an open source project for fast packet processing. `umake` can compile it in `9` seconds: ![dpdk build](images/dpdk-build/dpdk-build.gif) @@ -21,10 +21,11 @@ make prepare | umake - uncached | 274 | make umake [1] | | umake - local cache | `9` | make umake-local | | umake - remote cache(over lan) | 14 | make umake-remote | + [1] strace has huge performance penalty ## Remarks and Conclusions -- this is not full port of DPDK compilation to `umake` -- in most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed. This is especially true for CI builds +- This is not full port of DPDK compilation to `umake`. +- In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed. This is especially true for CI builds. From 7edc585fc1a5c2c1eb97a91d9ab58d5a523ea2d5 Mon Sep 17 00:00:00 2001 From: Grisha Date: Sat, 7 Mar 2020 23:18:19 +0200 Subject: [PATCH 14/41] umake: add dpdk compilation --- doc/dpdk-build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/dpdk-build.md b/doc/dpdk-build.md index 89f7ae3..d8c2154 100644 --- a/doc/dpdk-build.md +++ b/doc/dpdk-build.md @@ -28,4 +28,4 @@ make prepare ## Remarks and Conclusions - This is not full port of DPDK compilation to `umake`. -- In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed. This is especially true for CI builds. +- In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed. This is especially true for CI builds. From acd5c9c1f3e326da404c4defb14168d46599f558 Mon Sep 17 00:00:00 2001 From: Grisha Date: Sat, 7 Mar 2020 23:34:52 +0200 Subject: [PATCH 15/41] dpdk-build: add main README --- doc/dpdk-build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/dpdk-build.md b/doc/dpdk-build.md index d8c2154..89f7ae3 100644 --- a/doc/dpdk-build.md +++ b/doc/dpdk-build.md @@ -28,4 +28,4 @@ make prepare ## Remarks and Conclusions - This is not full port of DPDK compilation to `umake`. -- In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed. This is especially true for CI builds. +- In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed. This is especially true for CI builds. From c25d3b7243501c1191cdd535126e745837c31d01 Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Mon, 9 Mar 2020 11:20:05 +0200 Subject: [PATCH 16/41] improve parsing speed --- umake/pywildcard.py | 2 +- umake/umake | 57 ++++++++++++++++++++++++++++----------------- 2 files changed, 36 insertions(+), 23 deletions(-) diff --git a/umake/pywildcard.py b/umake/pywildcard.py index 1503724..75f5ecd 100644 --- a/umake/pywildcard.py +++ b/umake/pywildcard.py @@ -39,7 +39,7 @@ def fnmatch(name, pat): if the operating system requires it. If you don't want this, use fnmatchcase(FILENAME, PATTERN). """ - import os + # import os # name = os.path.normcase(name) # pat = os.path.normcase(pat) return fnmatchcase(name, pat) diff --git a/umake/umake b/umake/umake index 3961802..2bf744e 100755 --- a/umake/umake +++ b/umake/umake @@ -3,8 +3,8 @@ import time from umake.colored_output import InteractiveOutput, bcolors, ROOT, UMAKE_ROOT_DIR, UMKAE_TMP_DIR, UMAKE_BUILD_CACHE_DIR, UMAKE_BUILD_CACHE_MAX_SIZE_MB, MINIMAL_ENV, get_size_KB, UMAKE_MAX_WORKERS, UMAKE_DB from umake import config -#from pyinstrument import Profiler -#profiler = Profiler() +# from pyinstrument import Profiler +# profiler = Profiler() out = InteractiveOutput() @@ -840,29 +840,44 @@ class CmdTemplate: noext=noext) self.cmds.append(Cmd(cmd, deps, manual_deps, {}, self.line, self.root)) + def _find_target_in_all_targets(self, target_fmt, all_targets, found_targets): + wild_card_exists = False + target_found = False + + if "*" in target_fmt: + wild_card_exists = True + + # run fnmatch only on needed paths, if "*" no exists just search in set + if wild_card_exists: + for global_target in all_targets: + if fnmatch.fnmatch(global_target, target_fmt): + found_targets.add(global_target) + target_found = True + else: + if target_fmt in all_targets: + found_targets.add(target_fmt) + target_found = True + + return target_found + + def create_cmds(self, graph: GraphDB, all_targets: set): full_path = None target = None manual_deps = set() for dep_fmt in self.deps_fmt: - added = False - for global_target in all_targets: - dep_fmt_fullpath = join_paths(self.root, dep_fmt) - if fnmatch.fnmatch(global_target, dep_fmt_fullpath): - manual_deps.add(global_target) - added = True - - if added == False: + dep_fmt_fullpath = join_paths(self.root, dep_fmt) + if self._find_target_in_all_targets(dep_fmt_fullpath, all_targets, manual_deps) is False: raise RuntimeError(f"{self.line}: manual dep '{dep_fmt}' is not exists as target in other commands") if self.foreach: for source_fmt in self.sources_fmt: generated_sources = set() - for global_target in all_targets: - src_fmt_fullpath = join_paths(self.root, source_fmt) - if fnmatch.fnmatch(global_target, src_fmt_fullpath): - generated_sources.add(global_target) + src_fmt_fullpath = join_paths(self.root, source_fmt) + + self._find_target_in_all_targets(src_fmt_fullpath, all_targets, generated_sources) + files = self._iterate_file_glob(graph, source_fmt, all_targets) files.update(generated_sources) self._create_foreach_cmd(files, manual_deps, all_targets, graph) @@ -882,12 +897,7 @@ class CmdTemplate: is_found = True source_fmt_fullpath = join_paths(self.root, source_fmt) - for global_target in all_targets: - if fnmatch.fnmatch(global_target, source_fmt_fullpath): - is_found = True - generated_sources.add(global_target) - - if is_found is False: + if self._find_target_in_all_targets(source_fmt_fullpath, all_targets, generated_sources) is False: raise RuntimeError(f"[{source_fmt_fullpath}] {self.line}:\n \t\tsource mentioned in umakefile not exists") targets = set() @@ -1506,9 +1516,11 @@ class UMake: self._init_build() self.load_graph() self.scan_fs() + # profiler.start() self.parse_cmd_files() + # profiler.stop() self.execute_graph() - #print(profiler.output_text(color=True)) + # print(profiler.output_text(color=True, show_all=True)) self.dump_graph() if global_config.compile_commands: self.create_compilation_database() @@ -1627,8 +1639,8 @@ class UMake: for cmd in cmd_template.cmds: print(f"\t{cmd.cmd}") -umake = UMake() if len(sys.argv) == 1: + umake = UMake() umake.run() else: import argparse @@ -1693,6 +1705,7 @@ else: mc.clear_bucket() os.sys.exit(0) + umake = UMake() if args.show_all_targets: umake.load_graph() umake.show_all_targets() From fe4001ee11291690659ed363a9af7140ab85bc9a Mon Sep 17 00:00:00 2001 From: Grisha Date: Tue, 10 Mar 2020 00:18:38 +0200 Subject: [PATCH 17/41] doc: refactor dpdk-build --- README.md | 16 +++++++++++----- doc/dpdk-build.md | 28 ++++++++++++++++++---------- doc/overview.md | 30 ++++++++++++++++-------------- doc/umakefile.md | 6 ++++++ 4 files changed, 51 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 9b54158..bbe77d4 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,18 @@ UMake Overview -------- UMake is a build system that building your projects. -influenced by [`tup`](http://gittup.org/tup/). +Influenced by [`tup`](http://gittup.org/tup/). With the features below your compilation speed will be on average dramatically reduced, either after branch change either with your `CI` builds. + + +#### `Local cache` +many base libraries in your project rarelly changed, why recompile them over and over again. Local cache reduce compilation times and remote cahce access. + +### `Remote cache` +someone already compiled most of the libraries in your project, use those results. + +### `Auto dependency discovery` +makes your life easier to create build scripts no matter what your tool is: `gcc`, `protoc`, `docker build` ... -* local cache - disk cache -* remote cache - minio -* auto dependency discovery using strace -* simple configuration language [Detailed overview](doc/overview.md) diff --git a/doc/dpdk-build.md b/doc/dpdk-build.md index 89f7ae3..5fa2330 100644 --- a/doc/dpdk-build.md +++ b/doc/dpdk-build.md @@ -7,7 +7,6 @@ ## Setup - VM with 6 cpus / `Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz` host -- UMakefile was auto generated after ninja (verbose) compilation - prepare tests with: ``` git clone https://github.com/grisha85/dpdk.git @@ -15,17 +14,26 @@ cd dpdk make prepare ``` ## Results -| compilation | time (seconds) | command | -|-------------------------------- |---------------- |------------------- | -| ninja (original build) | 160 | make ninja | -| umake - uncached | 274 | make umake [1] | -| umake - local cache | `9` | make umake-local | -| umake - remote cache(over lan) | 14 | make umake-remote | +| compilation | time (seconds) | command | comments | +|-------------------------------- |---------------- |------------------- |---------- | +| ninja | 160 | make ninja +| ninja null build | 0.054 | make ninja | | +| umake - uncached | 274 | make umake | [1] | +| umake null build | 0.9 | make umake | | +| umake - local cache | `9` | make umake-local | | +| umake - remote cache(over lan) | 14 | make umake-remote | | -[1] strace has huge performance penalty +1. strace has huge performance penalty +## How the port to `umake` was made +- output of verbose `ninja` compilation was saved to a file: [ninja compilation output](https://github.com/grisha85/dpdk/blob/master/ninja) +- this output was parsed with a [python script](https://github.com/grisha85/dpdk/blob/master/parse_ninja.py) to `UMakefile` +- -## Remarks and Conclusions +## Remarks - This is not full port of DPDK compilation to `umake`. -- In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed. This is especially true for CI builds. +- This is especially true for CI builds. + +# Conclusion +**In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed (11-16 times faster).** \ No newline at end of file diff --git a/doc/overview.md b/doc/overview.md index 8ee77ce..6acb2aa 100644 --- a/doc/overview.md +++ b/doc/overview.md @@ -8,12 +8,11 @@ Since a lot of the core concepts from tup apply to umake it is highly recommende Why UMake --------- -- Fast modification detection (sub second event for large projects) +- Fast modification detection (sub second even for large projects) - More parallelism due to DAG (more details later) - Fast re-compilation, with built-in cache (local-cache, remote-cache) - My First UMakfile ----------------- `a.c`: @@ -28,23 +27,25 @@ main() return 0; } ``` + + `UMakefile`: ``` : a.c > gcc -c {filename} {target} > a.o ``` -the command parsed to the following `bash` command +the rule above parsed to the following command ``` gcc -c a.c a.o ``` -### Graph after parsing +### Graph of the rule above ![ ](./images/overview/1.png) -### Graph after running the cmd +### Graph after executing the rule ![ ](images/overview/2.png) -Now if any of the nodes (`a.c`, `dep_a.h`, `gcc -c a.c a.o` or `a.o`) will be modified, `a.o` will be regenerated. +Now if any of the nodes (`a.c`, `dep_a.h`, `gcc -c a.c a.o` or `a.o`) will be modified, `a.o` will be regenerated. umake use both timestamps and hashes to check for modifications. Targets as dependencies ---------------------- @@ -60,23 +61,24 @@ main() return 0; } ``` -Lets have another "compilation" command that generates headers that used by other command: +Lets have another rule that generates header which will be used by other another rule. +`UMakefile`: ``` : a.proto > protoc {filename} > a.pb-c.h a.pb-c.c : b.c > gcc -c {filename} {target} > b.o ``` - -### Graph after parsing +first rule above is generating header `a.pb-c.h` that `b.c` is including. +### Graph after parsing the rules ![ ](images/overview/3.png) -Now we have copmilation ordering issue. `b.o` might be compiled before `a.proto` because nothing enforce the ordering between `a.proto` and `b.o` +Now we have copmilation ordering issue. `b.o` might be generated before `a.pb-c.h` because nothing enforce the order between and `b.o` and `a.pb-c.h`. -When running this `UMakefile` as is, an error will be generated. This is because command using other target (to generate `b.o` we accessing `a.pb-c.h` which is also generated) +When running the above `UMakefile`, an error will be reported. This is because second rule using target of the the first rule internally (to generate `b.o`, `a.pb-c.h` is needed) ### Manual Dependency: `|` -In order to fix this order issue we need to tell `umake` that generating `b.o` should come only after `a.pb-c.h`. We would use `| a.pb-c.h` for that. +In order to fix this order issue we need to tell `umake` that generating `b.o` should come only after `a.pb-c.h` is generated. We would use `| a.pb-c.h` for that. `UMakefile`: ``` @@ -84,11 +86,11 @@ In order to fix this order issue we need to tell `umake` that generating `b.o` s : b.c | a.pb-c.h > gcc -c {filename} {target} > b.o ``` -### Graph after parsing +### Graph after parsing the above UMakefile ![ ](images/overview/4.png) -:foreach +:foreach rule -------- ``` diff --git a/doc/umakefile.md b/doc/umakefile.md index c48f50e..0912b6b 100644 --- a/doc/umakefile.md +++ b/doc/umakefile.md @@ -9,12 +9,18 @@ A single `command` is generated for this rule `:` source `|` manual-deps `>` cmd `>` target `manual-deps` - targets the this target depends on, helps keep a correct build order + `cmd` - bash command + `target` - the output of the command + `{filename}` - full path filename of the source `/my/path/filename.a` + `{dir}` - directory containing the source `/my/path/` + `{noext}` - filename without extension `filename` + `{target}` - expanded target `helloworld.a` Example: From 97b6a0c3c22f52818fd4fcdfc3a240644b99306c Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Mon, 9 Mar 2020 13:08:57 +0200 Subject: [PATCH 18/41] dpdk build fixes --- Dockerfile | 5 +++-- Makefile | 7 +++++-- umake/umake | 5 ++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2e1cf8c..d56717f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,10 @@ FROM ubuntu:18.04 RUN apt-get update -y -RUN apt-get install -y python3.6 build-essential python3-pip libxml2-dev zlib1g-dev strace +RUN apt-get install -y python3.6 build-essential python3-pip libxml2-dev zlib1g-dev strace vim RUN apt-get install -y git ADD . /umake -RUN pip3 install /umake +RUN pip3 install ipdb +RUN pip3 install -e /umake # for tests RUN apt-get install -y libprotobuf-c0-dev protobuf-c-compiler diff --git a/Makefile b/Makefile index 7735df1..08fd213 100644 --- a/Makefile +++ b/Makefile @@ -2,9 +2,12 @@ .PHONY: test enter +build-docker: + docker build -t grisha85/umake . + test: - docker run --rm --privileged -it -v`pwd`/test:/test -w/test -vumake:/umake grisha85/umake python3.6 test.py + docker run --rm --privileged -it -v`pwd`/test:/test -w/test -v`pwd`:/umake grisha85/umake python3.6 test.py enter: - docker run --rm --privileged -it -v`pwd`/test:/test -w/test -vumake:/umake grisha85/umake bash + docker run --rm --privileged -it -v`pwd`/test:/test -w/test -v`pwd`:/umake grisha85/umake bash diff --git a/umake/umake b/umake/umake index 2bf744e..efc49b7 100755 --- a/umake/umake +++ b/umake/umake @@ -844,6 +844,9 @@ class CmdTemplate: wild_card_exists = False target_found = False + if not all_targets: + return False + if "*" in target_fmt: wild_card_exists = True @@ -897,7 +900,7 @@ class CmdTemplate: is_found = True source_fmt_fullpath = join_paths(self.root, source_fmt) - if self._find_target_in_all_targets(source_fmt_fullpath, all_targets, generated_sources) is False: + if not (self._find_target_in_all_targets(source_fmt_fullpath, all_targets, generated_sources) or is_found): raise RuntimeError(f"[{source_fmt_fullpath}] {self.line}:\n \t\tsource mentioned in umakefile not exists") targets = set() From 6fed72f63b757a015684d1f8b327b5374c960bf5 Mon Sep 17 00:00:00 2001 From: grisha85 Date: Tue, 10 Mar 2020 00:32:34 +0200 Subject: [PATCH 19/41] typo --- doc/dpdk-build.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/dpdk-build.md b/doc/dpdk-build.md index 5fa2330..1bd2c04 100644 --- a/doc/dpdk-build.md +++ b/doc/dpdk-build.md @@ -28,7 +28,7 @@ make prepare ## How the port to `umake` was made - output of verbose `ninja` compilation was saved to a file: [ninja compilation output](https://github.com/grisha85/dpdk/blob/master/ninja) - this output was parsed with a [python script](https://github.com/grisha85/dpdk/blob/master/parse_ninja.py) to `UMakefile` -- + ## Remarks @@ -36,4 +36,4 @@ make prepare - This is especially true for CI builds. # Conclusion -**In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed (11-16 times faster).** \ No newline at end of file +**In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed (11-16 times faster).** From 0a0a9c5b953cc948a519df4738cce9e02b3804dc Mon Sep 17 00:00:00 2001 From: grisha85 Date: Tue, 10 Mar 2020 00:36:57 +0200 Subject: [PATCH 20/41] dpdk-doc: some refactor --- doc/dpdk-build.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/dpdk-build.md b/doc/dpdk-build.md index 1bd2c04..c36ed55 100644 --- a/doc/dpdk-build.md +++ b/doc/dpdk-build.md @@ -26,14 +26,14 @@ make prepare 1. strace has huge performance penalty ## How the port to `umake` was made -- output of verbose `ninja` compilation was saved to a file: [ninja compilation output](https://github.com/grisha85/dpdk/blob/master/ninja) -- this output was parsed with a [python script](https://github.com/grisha85/dpdk/blob/master/parse_ninja.py) to `UMakefile` +- Output of verbose `ninja` compilation was saved to a file: [ninja compilation output](https://github.com/grisha85/dpdk/blob/master/ninja) +- The output was parsed with a [python script](https://github.com/grisha85/dpdk/blob/master/parse_ninja.py) to `UMakefile` ## Remarks - This is not full port of DPDK compilation to `umake`. -- This is especially true for CI builds. +- The generated UMakefile is not an ideal one, check documentation for better usage of `wildcards`, `varaints`, etc.. # Conclusion -**In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed (11-16 times faster).** +**In most compilations there are limited number of files that are being changed, so `umake` can increase dramatically compilation speed (11-16 times faster). This is especially true for CI builds.** From 146b41edf2a7e04fc664c774a6d15ff5cccaacec Mon Sep 17 00:00:00 2001 From: grisha85 Date: Tue, 10 Mar 2020 00:37:52 +0200 Subject: [PATCH 21/41] README: more refactor --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bbe77d4..759013c 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,10 @@ Influenced by [`tup`](http://gittup.org/tup/). With the features below your comp #### `Local cache` many base libraries in your project rarelly changed, why recompile them over and over again. Local cache reduce compilation times and remote cahce access. -### `Remote cache` +#### `Remote cache` someone already compiled most of the libraries in your project, use those results. -### `Auto dependency discovery` +#### `Auto dependency discovery` makes your life easier to create build scripts no matter what your tool is: `gcc`, `protoc`, `docker build` ... From 43e35b9ddf7969b5cf0912c20661c9538472cd49 Mon Sep 17 00:00:00 2001 From: Kfir Gollan Date: Tue, 10 Mar 2020 01:15:13 +0200 Subject: [PATCH 22/41] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 759013c..2b46263 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,10 @@ Influenced by [`tup`](http://gittup.org/tup/). With the features below your comp #### `Local cache` -many base libraries in your project rarelly changed, why recompile them over and over again. Local cache reduce compilation times and remote cahce access. +many base libraries in your project rarely changed, why recompile them over and over again. Local cache reduce compilation times and remote cache access. #### `Remote cache` -someone already compiled most of the libraries in your project, use those results. +If someone already compiled most of the libraries in your project, use those results. #### `Auto dependency discovery` makes your life easier to create build scripts no matter what your tool is: `gcc`, `protoc`, `docker build` ... From 4635616b7f78284cc80bb0eb80b0d28c6f8b0661 Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Tue, 10 Mar 2020 12:29:22 +0200 Subject: [PATCH 23/41] add codecov --- .drone.yml | 18 +++++++++++++++--- .gitignore | 1 + Dockerfile | 3 ++- Makefile | 8 +++++--- README.md | 10 ++++++++++ test/test.py | 15 +++++++++++---- umake/pywildcard.py | 6 ++++++ 7 files changed, 50 insertions(+), 11 deletions(-) diff --git a/.drone.yml b/.drone.yml index 446e355..8929d3b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,12 +1,24 @@ --- kind: pipeline name: default +type: docker + steps: - + name: tests commands: - "pip3 install --upgrade ." - "cd test && python3.6 test.py" - image: grisha85/umake + image: grisha85/umake:1 pull: if-not-exists - name: test -type: docker + + - name: coverage + image: plugins/codecov + settings: + token: + from_secret: CODECOV + required: true + files: + - "*.xml" + paths: + - test/coverage \ No newline at end of file diff --git a/.gitignore b/.gitignore index 073d515..b08ef35 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ test/env/* __pycache__ +test/coverage/* diff --git a/Dockerfile b/Dockerfile index d56717f..9501571 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,8 @@ RUN apt-get install -y python3.6 build-essential python3-pip libxml2-dev zlib1g- RUN apt-get install -y git ADD . /umake RUN pip3 install ipdb -RUN pip3 install -e /umake +RUN pip3 install -e /umake # for tests RUN apt-get install -y libprotobuf-c0-dev protobuf-c-compiler +RUN pip3 install coverage diff --git a/Makefile b/Makefile index 08fd213..9cc3ff9 100644 --- a/Makefile +++ b/Makefile @@ -2,12 +2,14 @@ .PHONY: test enter +IMAGE=grisha85/umake:1 + build-docker: - docker build -t grisha85/umake . + docker build -t ${IMAGE} . test: - docker run --rm --privileged -it -v`pwd`/test:/test -w/test -v`pwd`:/umake grisha85/umake python3.6 test.py + docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash -c 'cd test && python3.6 test.py' enter: - docker run --rm --privileged -it -v`pwd`/test:/test -w/test -v`pwd`:/umake grisha85/umake bash + docker run --rm --privileged -it -v`pwd`/umake:/umake -w/umake ${IMAGE} bash diff --git a/README.md b/README.md index 2b46263..3512928 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,11 @@ Overview UMake is a build system that building your projects. Influenced by [`tup`](http://gittup.org/tup/). With the features below your compilation speed will be on average dramatically reduced, either after branch change either with your `CI` builds. +![codecov](https://codecov.io/gh/grisha85/umake/branch/master/graph/badge.svg) + + +![droneio](http://xrayio.com/api/badges/grisha85/umake/status.svg) + #### `Local cache` many base libraries in your project rarely changed, why recompile them over and over again. Local cache reduce compilation times and remote cache access. @@ -28,6 +33,11 @@ makes your life easier to create build scripts no matter what your tool is: `gcc Install ------- + +platform: linux (tests on ubuntu 18.04) + +dependencies: strace, bash + ``` git clone https://github.com/grisha85/umake.git cd umake diff --git a/test/test.py b/test/test.py index 411e0f0..5355c0d 100644 --- a/test/test.py +++ b/test/test.py @@ -7,6 +7,7 @@ ROOT = os.getcwd() +COVERAGE_DIR_PATH = os.path.join(ROOT, 'coverage') class TestUMake(unittest.TestCase): @@ -17,7 +18,13 @@ def setUp(self): @classmethod def setUpClass(cls): - pass + os.environ['COVERAGE_FILE'] = os.path.join(COVERAGE_DIR_PATH, ".coverage") + + @classmethod + def tearDownClass(cls): + print(f"Creating coverage xml from coverage/.coverage") + check_output(f"coverage-3.6 xml -i -o {os.path.join(COVERAGE_DIR_PATH, 'coverage.xml')}", stderr=subprocess.STDOUT, shell=True) + def _create_setup_simple_umake(self): with open('env/a.h', "w") as f: @@ -79,16 +86,16 @@ def _compile(self, umake, variant="", targets=[],should_fail=False): if targets: targets_str = " ".join(targets) try: - print(check_output(f"umake --no-remote-cache --no-local-cache {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8")) + check_output(f"coverage-3.6 run /umake/umake/umake --no-remote-cache --no-local-cache {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8") if should_fail: self.assertTrue(False, msg="umake compiled although should fail") except subprocess.CalledProcessError as e: if should_fail is False: - print(e) + # print(e) self.assertTrue(False, msg="Failed to run umake") def _assert_compilation(self, target, deps_conf=None, deps_manual=None, deps_auto_in=None): - check_output(f"umake {target} --no-local-cache --no-remote-cache --details --json json_out", shell=True, cwd="env/") + check_output(f"coverage-3.6 run /umake/umake/umake {target} --no-local-cache --no-remote-cache --details --json json_out", shell=True, cwd="env/") with open("env/json_out") as f: deps = json.load(f) diff --git a/umake/pywildcard.py b/umake/pywildcard.py index 75f5ecd..97454b3 100644 --- a/umake/pywildcard.py +++ b/umake/pywildcard.py @@ -1,3 +1,9 @@ +""" +taken from https://github.com/agalera/python-wildcard +LICENSE: GNU General Public License v3.0 +https://github.com/agalera/python-wildcard/blob/master/LICENSE.txt +""" + """Filename matching with shell patterns. fnmatch(FILENAME, PATTERN) matches according to the local convention. From 4d093defd8563aadfaa7aafd436c542c42b3e0fb Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Tue, 10 Mar 2020 12:38:50 +0200 Subject: [PATCH 24/41] coverage: append between tests --- test/test.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/test.py b/test/test.py index 5355c0d..d78084f 100644 --- a/test/test.py +++ b/test/test.py @@ -8,7 +8,7 @@ ROOT = os.getcwd() COVERAGE_DIR_PATH = os.path.join(ROOT, 'coverage') - +COVEARAGE_CMD = "coverage-3.6 run -a" class TestUMake(unittest.TestCase): def setUp(self): @@ -22,7 +22,7 @@ def setUpClass(cls): @classmethod def tearDownClass(cls): - print(f"Creating coverage xml from coverage/.coverage") + print(f"\nCreating coverage xml from coverage/.coverage") check_output(f"coverage-3.6 xml -i -o {os.path.join(COVERAGE_DIR_PATH, 'coverage.xml')}", stderr=subprocess.STDOUT, shell=True) @@ -86,7 +86,7 @@ def _compile(self, umake, variant="", targets=[],should_fail=False): if targets: targets_str = " ".join(targets) try: - check_output(f"coverage-3.6 run /umake/umake/umake --no-remote-cache --no-local-cache {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8") + print(check_output(f"{COVEARAGE_CMD} /umake/umake/umake --no-remote-cache --no-local-cache {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8")) if should_fail: self.assertTrue(False, msg="umake compiled although should fail") except subprocess.CalledProcessError as e: @@ -95,7 +95,7 @@ def _compile(self, umake, variant="", targets=[],should_fail=False): self.assertTrue(False, msg="Failed to run umake") def _assert_compilation(self, target, deps_conf=None, deps_manual=None, deps_auto_in=None): - check_output(f"coverage-3.6 run /umake/umake/umake {target} --no-local-cache --no-remote-cache --details --json json_out", shell=True, cwd="env/") + print(check_output(f"{COVEARAGE_CMD} /umake/umake/umake {target} --no-local-cache --no-remote-cache --details --json json_out", shell=True, cwd="env/")) with open("env/json_out") as f: deps = json.load(f) From 0be1256390848e8d2126f65ae35f6774bd52d063 Mon Sep 17 00:00:00 2001 From: grisha85 Date: Wed, 11 Mar 2020 00:43:55 +0200 Subject: [PATCH 25/41] add links to badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3512928..e9ac37c 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,10 @@ Overview UMake is a build system that building your projects. Influenced by [`tup`](http://gittup.org/tup/). With the features below your compilation speed will be on average dramatically reduced, either after branch change either with your `CI` builds. -![codecov](https://codecov.io/gh/grisha85/umake/branch/master/graph/badge.svg) +[![codecov](https://codecov.io/gh/grisha85/umake/branch/master/graph/badge.svg)](https://codecov.io/gh/grisha85/umake/tree/master/umake) -![droneio](http://xrayio.com/api/badges/grisha85/umake/status.svg) +[![droneio](http://xrayio.com/api/badges/grisha85/umake/status.svg)](http://xrayio.com/grisha85/umake/) #### `Local cache` From d10d513c75d28f4bf5e2e47363f336475c5702c4 Mon Sep 17 00:00:00 2001 From: grisha85 Date: Wed, 11 Mar 2020 00:57:25 +0200 Subject: [PATCH 26/41] Create LICENSE --- LICENSE | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0aabf3d --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +BSD 2-Clause License + +Copyright (c) 2020, Gregory Freilikhman +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 3e9113f1b586b48f877347284ff652a6bd9771b3 Mon Sep 17 00:00:00 2001 From: grisha85 Date: Wed, 11 Mar 2020 01:10:37 +0200 Subject: [PATCH 27/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e9ac37c..8dc87c5 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ makes your life easier to create build scripts no matter what your tool is: `gcc Install ------- -platform: linux (tests on ubuntu 18.04) +platform: linux (tested on ubuntu 18.04) dependencies: strace, bash From 3ceabc99decde3c2f1f9a34754836e2364388361 Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Tue, 10 Mar 2020 23:07:39 +0200 Subject: [PATCH 28/41] fix bulk remove nodes --- Makefile | 2 +- test/test.py | 1 - umake/umake | 9 +++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 9cc3ff9..52abaec 100644 --- a/Makefile +++ b/Makefile @@ -11,5 +11,5 @@ test: docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash -c 'cd test && python3.6 test.py' enter: - docker run --rm --privileged -it -v`pwd`/umake:/umake -w/umake ${IMAGE} bash + docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash diff --git a/test/test.py b/test/test.py index d78084f..d897058 100644 --- a/test/test.py +++ b/test/test.py @@ -487,7 +487,6 @@ def test_autodep_update(self): umake = ": > ./a.sh > c" self._compile(umake) self._assert_compilation("c", deps_conf=[], deps_manual=[], deps_auto_in=["a", "a.sh", "b"]) - self._create("a.sh", "/bin/cat a && echo n >> c\n") self._compile(umake) self._assert_compilation("c", deps_conf=[], deps_manual=[], deps_auto_in=["a", "a.sh"]) diff --git a/umake/umake b/umake/umake index efc49b7..1f79b4e 100755 --- a/umake/umake +++ b/umake/umake @@ -697,15 +697,16 @@ class GraphDB: def remove_connections(self, connections): self.graph.delete_edges(connections) + vertices_to_del = set() for dep, target in connections: try: vert = self.graph.vs.find(dep) except ValueError: # it might not be exists - pass + continue if vert.degree() == 0: - self.graph.delete_vertices(vert.index) - del self.nodes[dep] + vertices_to_del.add(dep) + self.remove_node(vertices_to_del) def get_data(self, node) -> FileEntry: return self.nodes[node] @@ -1578,7 +1579,7 @@ class UMake: out.print_colored(f"\t\t{idx:4} {dep:70} [{self.graph.get_data(dep).md5sum.hex()}]", bcolors.OKBLUE) print() print("\tsuccessors targets:") - for succ in successors: + for succ in sorted(successors): succ_targets = " ".join(sorted(set(self.graph.successors(succ)))) print(f"\t\t{succ_targets}") print() From 13b72f1c146e127b011713adca3514c2f086de10 Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Fri, 13 Mar 2020 16:18:32 +0200 Subject: [PATCH 29/41] support clean exit --- test/test.py | 12 +- umake/colored_output.py | 13 +- umake/umake | 286 +++++++++++++++++++++++++--------------- 3 files changed, 198 insertions(+), 113 deletions(-) diff --git a/test/test.py b/test/test.py index d897058..527a6ac 100644 --- a/test/test.py +++ b/test/test.py @@ -4,7 +4,7 @@ import shutil import os import json - +import time ROOT = os.getcwd() COVERAGE_DIR_PATH = os.path.join(ROOT, 'coverage') @@ -77,7 +77,7 @@ def _check_file_not_exists(self, path): for p in path: self.assertFalse(os.path.isfile(os.path.join("env", p))) - def _compile(self, umake, variant="", targets=[],should_fail=False): + def _compile(self, umake, variant="", targets=[], should_fail=False): with open('env/UMakefile', "w") as umakefile: umakefile.write(umake) if variant != "": @@ -449,7 +449,6 @@ def test_compiling_specific_target(self): timestamps = {"a": 0, "b": 0, "c": 0, "d": 0} is_changed = {"a": True, "b": True, "c": True, "d": True} - self._compile(umake) timestamps = self._check_file_exists(["a", "b", "c", "d"], check_timestamp=timestamps, is_changed=is_changed) self._rm(["a", "b", "c", "d"]) @@ -483,7 +482,6 @@ def test_autodep_update(self): self._create("b", "b") self._create("d", "d") self._create("a.sh", "/bin/cat a && /bin/cat b && echo n >> c\n") - umake = ": > ./a.sh > c" self._compile(umake) self._assert_compilation("c", deps_conf=[], deps_manual=[], deps_auto_in=["a", "a.sh", "b"]) @@ -509,6 +507,12 @@ def test_include(self): self._compile(umake) self._check_file_exists(["other_dir/b"]) + def test_clean_exit(self): + umake = ": > /bin/sleep 0.5 && cat f > \n" + umake += ": > /bin/sleep 10 > \n" + start = time.perf_counter() + self._compile(umake, should_fail=True) + assert time.perf_counter() - start < 1 if __name__ == '__main__': unittest.main() diff --git a/umake/colored_output.py b/umake/colored_output.py index ceb52a0..d57f60f 100644 --- a/umake/colored_output.py +++ b/umake/colored_output.py @@ -34,6 +34,13 @@ class bcolors: UNDERLINE = '\033[4m' +def format_text(out_str, color: bcolors=""): + if is_ineractive_terminal: + return f"{color} {out_str} {bcolors.ENDC}" + else: + return out_str + + class AtomicInt: def __init__(self): self.num = 0 @@ -104,9 +111,8 @@ def update_bar(self, force=False): def print_colored(self, out_str, color=""): if is_ineractive_terminal: sys.stdout.write("\x1b[2K\r") - print(f"{color} {out_str} {bcolors.ENDC}") - else: - print(f"{out_str}") + print(format_text(out_str, color)) + # print(f"{color} {out_str} {bcolors.ENDC}") # self.update_bar() def print_fail(self, out_str): @@ -131,4 +137,5 @@ def print(self, s): self.print_colored(s) def destroy(self): + self.update_bar() print() \ No newline at end of file diff --git a/umake/umake b/umake/umake index 1f79b4e..3d43d4b 100755 --- a/umake/umake +++ b/umake/umake @@ -1,12 +1,19 @@ #!/usr/bin/python3.6 import time -from umake.colored_output import InteractiveOutput, bcolors, ROOT, UMAKE_ROOT_DIR, UMKAE_TMP_DIR, UMAKE_BUILD_CACHE_DIR, UMAKE_BUILD_CACHE_MAX_SIZE_MB, MINIMAL_ENV, get_size_KB, UMAKE_MAX_WORKERS, UMAKE_DB +from umake.colored_output import InteractiveOutput, bcolors, ROOT, UMAKE_ROOT_DIR, UMKAE_TMP_DIR, UMAKE_BUILD_CACHE_DIR, UMAKE_BUILD_CACHE_MAX_SIZE_MB, MINIMAL_ENV, get_size_KB, UMAKE_MAX_WORKERS, UMAKE_DB, format_text from umake import config # from pyinstrument import Profiler # profiler = Profiler() + +class WorkerExit: + pass + + out = InteractiveOutput() +worker_exit_code = WorkerExit() + class Timer: def __init__(self, msg, threshold=0, color=bcolors.OKGREEN): @@ -15,6 +22,7 @@ class Timer: self.prefix = "" self.threshold = threshold self.color = color + self.log_lines = list() def set_prefix(self, prefix): self.prefix = prefix @@ -22,6 +30,9 @@ class Timer: def set_postfix(self, postfix): self.postfix = postfix + def add_log_line(self, msg): + self.log_lines.append(msg) + def __enter__(self): self.start = time.time() return self @@ -29,8 +40,15 @@ class Timer: def __exit__(self, *args): self.end = time.time() self.interval = self.end - self.start + out_str = "" if self.interval > self.threshold: - out.print_colored(f"[{self.interval:.3f}] {self.prefix} {self.msg} {self.postfix}", self.color) + out_str += format_text(f"[{self.interval:.3f}] {self.prefix} {self.msg} {self.postfix}", self.color) + if self.log_lines: + if out_str: + out_str += "\n" + out_str += "\n".join(self.log_lines) + if out_str: + out.print_neutarl(out_str) class MetadataCache: @@ -94,6 +112,7 @@ class Config: self.targets = [] self.variant = "default" self.compile_commands = False + self.verbose = True global_config = Config() @@ -381,23 +400,31 @@ def byte_xor(ba1, ba2): return bytes([_a ^ _b for _a, _b in zip(ba1, ba2)]) +class TargetNotGeneratedErr(Exception): + pass + + +class CompilationFailedErr(Exception): + pass + -class CmdFailedErr(RuntimeError): +class CmdFailedErr(Exception): pass -class TargetExistsErr(RuntimeError): +class NotFileErr(Exception): pass -class NotFileErr(RuntimeError): +class DepIsGenerated(Exception): pass -class DepIsGenerated(RuntimeError): +class LineParseErr(Exception): pass -class LineParseErr(RuntimeError): + +class CleanExitErr(Exception): pass @@ -455,7 +482,7 @@ class CmdExecuter: path = args[2].split('"')[1] return self._check_in_root(path) - def make(self, cache_mgr: CacheMgr): + def make(self, cache_mgr: CacheMgr, is_exiting): tmp_unique_name_full_path = join(UMKAE_TMP_DIR, str(uuid.uuid1())) with Timer(self.cmd.compile_show(), color=bcolors.WARNING) as timer: if self.target: @@ -474,27 +501,34 @@ class CmdExecuter: while True: try: - stdout, stderr = self.proc.communicate(timeout=3) + stdout, stderr = self.proc.communicate(timeout=0.1) break except TimeoutExpired: + if is_exiting() is False: + # exiting + self.proc.kill() + raise CleanExitErr() out.curr_job = self.cmd.summarized_show() out.update_bar() - rc = self.proc.poll() + rc = self.proc.poll() stdout = stdout.decode("utf-8") stderr = stderr.decode("utf-8") - if rc != 0: - out.print_neutarl(stdout) - out.print_fail(stderr) + timer.add_log_line(format_text(f"{self.cmd.line}", bcolors.FAIL)) + timer.add_log_line(format_text(f"\t{self.cmd.cmd}", bcolors.BOLD)) + if stderr: + timer.add_log_line(format_text(f"\nError:\n\t\t{stderr}", "")) + if stdout: + timer.add_log_line(format_text(f"\nt\t{stdout}", "")) + + raise CompilationFailedErr() # TODO: print here the source of the command else: if stdout: - out.print(stdout) + timer.add_log_line(stdout) if stderr: - out.print(stderr) - self.is_ok = True - + timer.add_log_line(stderr) self.dep_files = set() with open(tmp_unique_name_full_path) as strace_output: @@ -521,8 +555,9 @@ class CmdExecuter: continue self.dep_files.add(full_path) if self.target: - if rc == 0 and not self.target.issubset(self.dep_files): - raise RuntimeError(f"Target not generated: Expected {self.target} Got: {self.dep_files}") + if not self.target.issubset(self.dep_files): + timer.add_log_line(format_text(f"Target not generated:\n \tExpected {self.target}\n \tGot: {self.dep_files}", bcolors.FAIL)) + raise TargetNotGeneratedErr() self.dep_files -= self.target deps_hash = self.cmd_hash @@ -620,7 +655,7 @@ class FileEntry: class Line: def __init__(self, filename, line_num, line): self.filename = filename - self.line_num = line_num + self.line_num = line_num + 1 self.line = line def __str__(self): @@ -1140,22 +1175,22 @@ class UMake: def __init__(self): self.cache_mgr = CacheMgr() - self.graph = None + self.worker_continue = True # should wor + self.worker_threads = list() - self._start_executer_thread() - - def _init_build(self): + def _init_build_dirs(self): shutil.rmtree(UMKAE_TMP_DIR, ignore_errors=True) os.makedirs(UMKAE_TMP_DIR, exist_ok=True) os.makedirs(UMAKE_BUILD_CACHE_DIR, exist_ok=True) - def _start_executer_thread(self): + def _start_executer_threads(self): self.jobs_queue = Queue() # CmdExecuter self.done_queue = Queue() self.n_jobs = 0 for _ in range(UMAKE_MAX_WORKERS): - exec_thread = threading.Thread(target=self.executer_thread, daemon=True) + exec_thread = threading.Thread(target=self.executer_thread) + self.worker_threads.append(exec_thread) exec_thread.start() def _get_file_entry(self, full_path): @@ -1209,7 +1244,7 @@ class UMake: elif fentry.entry_type == FileEntry.EntryType.FILE: self._remove_file_from_graph(f, deleted_set) else: - raise RuntimeError(f"trying to delete not file but {fentry.entry_type}. how can it be???") + raise RuntimeError(f"trying to delete not file but type is {fentry.entry_type}. how can it be???") self.graph.remove_node(deleted_set) def _graph_remove_cmd_node(self, cmd: Cmd, connection): @@ -1295,7 +1330,6 @@ class UMake: else: self._graph_add_cmd_node(cmd, connections) self.graph.add_connections(connections) - self.graph.last_cmds = cmds # check target request exists if global_config.targets: @@ -1305,30 +1339,38 @@ class UMake: def executer_thread(self): cache_mgr = CacheMgr() - while True: + while self.worker_continue: executer: CmdExecuter executer = self.jobs_queue.get() - #profiler.start() + + if type(executer) is WorkerExit: + return + out.n_active_workers.inc() out.curr_job = executer.cmd.summarized_show() - out.print(f"{executer.cmd.cmd}") try: - executer.make(cache_mgr) + executer.make(cache_mgr, lambda: self.worker_continue) + executer.is_ok = True + except (CompilationFailedErr, TargetNotGeneratedErr, CleanExitErr) as e: + executer.is_ok = False + self._send_exits() except Exception as e: import traceback traceback.print_exc() out.print(e) executer.is_ok = False + self._send_exits() out.n_active_workers.dec() - #profiler.stop() + self.done_queue.put(executer) + def _handle_done(self, add_conns_out, del_conns_out): execucter: CmdExecuter execucter = self.done_queue.get() self.n_jobs -= 1 if execucter.is_ok is False: - raise CmdFailedErr(f"command failed: {execucter.cmd.line}\n cmd:\n\t {execucter.cmd.cmd}") + raise CmdFailedErr() deps, targets = execucter.get_results() node = execucter.cmd.cmd @@ -1460,6 +1502,9 @@ class UMake: if self.n_jobs: while self._handle_done(add_conns, del_conns): pass + + # start terminating threads + self._send_exits() self.graph.add_connections(add_conns) self.graph.remove_connections(del_conns) @@ -1509,6 +1554,20 @@ class UMake: with open('compile_commands.json', 'w') as db_file: json.dump(cmds, db_file) + def _send_exits(self): + if self.worker_continue is False: + return + self.worker_continue = False + for _ in range(UMAKE_MAX_WORKERS): + self.jobs_queue.put(worker_exit_code) + + def _exit_nicelly(self): + # stop all executers + self._send_exits() + with Timer("done clean exit"): + for thread in self.worker_threads: + thread.join(timeout=1) + def run(self): fd, lock_path = fs_lock(UMAKE_ROOT_DIR) if fd == None: @@ -1517,7 +1576,8 @@ class UMake: return try: - self._init_build() + self._start_executer_threads() + self._init_build_dirs() self.load_graph() self.scan_fs() # profiler.start() @@ -1530,9 +1590,17 @@ class UMake: self.create_compilation_database() self.cache_gc() out.update_bar(force=True) - out.destroy() + except CmdFailedErr: + os.sys.exit(-1) + except Exception as e: + import traceback + traceback.print_exc() + out.print(e) + os.sys.exit(-1) finally: fs_unlock(fd, lock_path) + self._exit_nicelly() + out.destroy() def show_target_details(self, target): target_fentry: FileEntry @@ -1625,8 +1693,8 @@ class UMake: self.show_target_details(graph_target) def show_target_details_run(self, targets): - umake.load_graph() - umake.parse_cmd_files() + self.load_graph() + self.parse_cmd_files() for target in targets: self.show_targets_details(target) @@ -1642,99 +1710,105 @@ class UMake: print(cmd_template.cmd_fmt) for cmd in cmd_template.cmds: print(f"\t{cmd.cmd}") + + def parse_args(self): + import argparse + parser = argparse.ArgumentParser() -if len(sys.argv) == 1: - umake = UMake() - umake.run() -else: - import argparse - parser = argparse.ArgumentParser() + parser.add_argument('targets', type=str, nargs="*", + help='target path') - parser.add_argument('targets', type=str, nargs="*", - help='target path') + parser.add_argument('-d', '--details', action='store_true', + help='details about the target') - parser.add_argument('-d', '--details', action='store_true', - help='details about the target') + parser.add_argument('--json', action='store', dest='json_file', + help='output as json') - parser.add_argument('--json', action='store', dest='json_file', - help='output as json') + parser.add_argument('--show-all-targets', action='store_true', dest="show_all_targets", + help="show all targets configured in UMakefile") - parser.add_argument('--show-all-targets', action='store_true', dest="show_all_targets", - help="show all targets configured in UMakefile") + parser.add_argument('--show-parsed-umakefile', action='store_true', dest="show_parsed_umakefile", + help="show parsed umakefile") - parser.add_argument('--show-parsed-umakefile', action='store_true', dest="show_parsed_umakefile", - help="show parsed umakefile") + parser.add_argument('--no-remote-cache', action='store_true', dest="no_remote_cache", + help="don't use remote cache") - parser.add_argument('--no-remote-cache', action='store_true', dest="no_remote_cache", - help="don't use remote cache") + parser.add_argument('--no-local-cache', action='store_true', dest="no_local_cache", + help="don't use local cache") - parser.add_argument('--no-local-cache', action='store_true', dest="no_local_cache", - help="don't use local cache") + parser.add_argument('--remote-cache-stats', action='store_true', dest="remote_cache_stats", + help="show stats of remote cache") - parser.add_argument('--remote-cache-stats', action='store_true', dest="remote_cache_stats", - help="show stats of remote cache") + parser.add_argument('--remote-cache-delete', action='store_true', dest="remote_cache_delete", + help="WARNING: delete all remote cache objects") - parser.add_argument('--remote-cache-delete', action='store_true', dest="remote_cache_delete", - help="WARNING: delete all remote cache objects") + parser.add_argument('-v', '--variant', action='store', dest="variant", + help="compile with diffrent variants") - parser.add_argument('-v', '--variant', action='store', dest="variant", - help="compile with diffrent variants") + parser.add_argument('--clean', action='store_true', dest="clean", + help="clean umake file, with all targets") - parser.add_argument('--clean', action='store_true', dest="clean", - help="clean umake file, with all targets") + parser.add_argument('--compile-commands', action='store_true', dest="compile_commands", + help="Create compile_commands.json file with info on the build") - parser.add_argument('--compile-commands', action='store_true', dest="compile_commands", - help="Create compile_commands.json file with info on the build") + args = parser.parse_args() - args = parser.parse_args() + global_config.compile_commands = args.compile_commands - global_config.compile_commands = args.compile_commands + if args.json_file: + global_config.json_file = args.json_file - if args.json_file: - global_config.json_file = args.json_file + if args.no_remote_cache: + global_config.remote_cache = False - if args.no_remote_cache: - global_config.remote_cache = False + if args.no_local_cache: + global_config.local_cache = False - if args.no_local_cache: - global_config.local_cache = False + if args.remote_cache_stats: + mc = MinioCache() + mc.get_cache_stats() + return - if args.remote_cache_stats: - mc = MinioCache() - mc.get_cache_stats() - os.sys.exit(0) + if args.remote_cache_delete: + mc = MinioCache() + mc.clear_bucket() + return - if args.remote_cache_delete: - mc = MinioCache() - mc.clear_bucket() - os.sys.exit(0) + umake = UMake() + if args.show_all_targets: + self.load_graph() + self.show_all_targets() - umake = UMake() - if args.show_all_targets: - umake.load_graph() - umake.show_all_targets() + if args.variant: + global_config.variant = args.variant + out.variant = global_config.variant - if args.variant: - global_config.variant = args.variant - out.variant = global_config.variant + if args.show_parsed_umakefile: + self.show_parsed_umakefile() + return - if args.show_parsed_umakefile: - umake.show_parsed_umakefile() - os.sys.exit(0) + if args.clean: + self.load_graph() + self.clean() + return + + if args.details: + args.targets = [join(ROOT, t) + "**" for t in args.targets] + self.show_target_details_run(args.targets) + else: + args.targets = [join(ROOT, t) for t in args.targets] + global_config.targets = args.targets + self.run() + + def start(self): + if len(sys.argv) == 1: + self.run() + else: + self.parse_args() - if args.clean: - umake.load_graph() - umake.clean() - os.sys.exit(0) - if args.details: - args.targets = [join(ROOT, t) + "**" for t in args.targets] - umake.show_target_details_run(args.targets) - else: - args.targets = [join(ROOT, t) for t in args.targets] - global_config.targets = args.targets - umake.run() -#set(self.graph.graph.vs.select(_degree=80)) +umake = UMake() +umake.start() # print(profiler.output_text(color=True)) From 612331a1fae1378f27ee82a867f9da9a73a3979b Mon Sep 17 00:00:00 2001 From: Kfir Gollan Date: Sat, 14 Mar 2020 17:34:07 +0000 Subject: [PATCH 30/41] Break the main umake file to multiple files. As part of the preparation for adding more features and improving maintainabilty of the code it is time to split the main file. Another tool was adding linting to make sure that simple errors are identified by the linter in a static manner. --- .drone.yml | 19 +- .gitignore | 6 + Dockerfile | 2 +- Makefile | 7 +- setup.py | 4 +- test/test.py | 50 ++--- umake/cache/__init__.py | 0 umake/cache/base_cache.py | 43 ++++ umake/cache/cache_mgr.py | 58 +++++ umake/cache/fs_cache.py | 100 +++++++++ umake/cache/minio_cache.py | 147 +++++++++++++ umake/colored_output.py | 24 +-- umake/config.py | 21 +- umake/exceptions.py | 26 +++ umake/umake | 421 ++----------------------------------- umake/utils/__init__.py | 0 umake/utils/fs.py | 33 +++ umake/utils/timer.py | 37 ++++ 18 files changed, 542 insertions(+), 456 deletions(-) create mode 100644 umake/cache/__init__.py create mode 100644 umake/cache/base_cache.py create mode 100644 umake/cache/cache_mgr.py create mode 100644 umake/cache/fs_cache.py create mode 100644 umake/cache/minio_cache.py create mode 100644 umake/exceptions.py create mode 100644 umake/utils/__init__.py create mode 100644 umake/utils/fs.py create mode 100644 umake/utils/timer.py diff --git a/.drone.yml b/.drone.yml index 8929d3b..79ce790 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,17 +1,24 @@ ---- +--- kind: pipeline name: default type: docker -steps: - - +steps: + - name: tests - commands: + commands: + # /umake holds the binaries which are installed in the image. + # refer to the dockerfile. + - "rm -rf /umake" + - "pwd" + - "ls -ltr" - "pip3 install --upgrade ." - - "cd test && python3.6 test.py" + - "pip3 install pyflakes" + - "cd umake && pyflakes ." + - "cd ../test && python3.6 test.py" image: grisha85/umake:1 pull: if-not-exists - + - name: coverage image: plugins/codecov settings: diff --git a/.gitignore b/.gitignore index b08ef35..c11fbe3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ test/env/* __pycache__ test/coverage/* +test/.coverage +example/hello.o +example/.umake +example/hello_world +example/.coverage +umake.egg-info diff --git a/Dockerfile b/Dockerfile index 9501571..4fda8ae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ RUN apt-get update -y RUN apt-get install -y python3.6 build-essential python3-pip libxml2-dev zlib1g-dev strace vim RUN apt-get install -y git ADD . /umake -RUN pip3 install ipdb +RUN pip3 install ipdb pyflakes RUN pip3 install -e /umake # for tests diff --git a/Makefile b/Makefile index 52abaec..0577763 100644 --- a/Makefile +++ b/Makefile @@ -7,9 +7,12 @@ IMAGE=grisha85/umake:1 build-docker: docker build -t ${IMAGE} . -test: +test: docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash -c 'cd test && python3.6 test.py' +lint: + docker run --rm -v${PWD}:/umake -w/umake/umake ${IMAGE} pyflakes . + enter: - docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash + docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash diff --git a/setup.py b/setup.py index d3ba126..abb48c3 100644 --- a/setup.py +++ b/setup.py @@ -13,8 +13,8 @@ setup( name='umake', version='0', - packages=['umake'], + packages=['umake'] + find_packages(), install_requires=required, license='MIT', - scripts=['./umake/umake'] + scripts=['./umake/umake'], ) diff --git a/test/test.py b/test/test.py index 527a6ac..627bebf 100644 --- a/test/test.py +++ b/test/test.py @@ -9,6 +9,8 @@ ROOT = os.getcwd() COVERAGE_DIR_PATH = os.path.join(ROOT, 'coverage') COVEARAGE_CMD = "coverage-3.6 run -a" +UMAKE_BIN = f"{ROOT}/../umake/umake" + class TestUMake(unittest.TestCase): def setUp(self): @@ -24,13 +26,13 @@ def setUpClass(cls): def tearDownClass(cls): print(f"\nCreating coverage xml from coverage/.coverage") check_output(f"coverage-3.6 xml -i -o {os.path.join(COVERAGE_DIR_PATH, 'coverage.xml')}", stderr=subprocess.STDOUT, shell=True) - - + + def _create_setup_simple_umake(self): with open('env/a.h', "w") as f: f.write(""" """) - + with open('env/a.c', "w") as f: f.write(""" #include "stdio.h" @@ -52,19 +54,19 @@ def _create_setup_simple_umake(self): return 0; } """) - + with open('env/b.h', "w") as f: f.write(""" int hello(); """) - + def _check_file_exists(self, path, check_timestamp={}, is_changed={}): timestamps = dict() for p in path: full_path = os.path.join("env", p) self.assertTrue(os.path.isfile(full_path), msg=f"path {full_path} is {os.path.isfile(full_path)}") - + if len(is_changed): timestamps[p] = os.stat(full_path).st_mtime if is_changed[p] == True: @@ -72,7 +74,7 @@ def _check_file_exists(self, path, check_timestamp={}, is_changed={}): else: self.assertEqual(check_timestamp[p], timestamps[p], msg=f"p={p}") return timestamps - + def _check_file_not_exists(self, path): for p in path: self.assertFalse(os.path.isfile(os.path.join("env", p))) @@ -84,9 +86,9 @@ def _compile(self, umake, variant="", targets=[], should_fail=False): variant = f"--variant {variant}" targets_str = "" if targets: - targets_str = " ".join(targets) + targets_str = " ".join(targets) try: - print(check_output(f"{COVEARAGE_CMD} /umake/umake/umake --no-remote-cache --no-local-cache {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8")) + print(check_output(f"{COVEARAGE_CMD} {UMAKE_BIN} --no-remote-cache --no-local-cache {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8")) if should_fail: self.assertTrue(False, msg="umake compiled although should fail") except subprocess.CalledProcessError as e: @@ -95,17 +97,17 @@ def _compile(self, umake, variant="", targets=[], should_fail=False): self.assertTrue(False, msg="Failed to run umake") def _assert_compilation(self, target, deps_conf=None, deps_manual=None, deps_auto_in=None): - print(check_output(f"{COVEARAGE_CMD} /umake/umake/umake {target} --no-local-cache --no-remote-cache --details --json json_out", shell=True, cwd="env/")) + print(check_output(f"{COVEARAGE_CMD} {UMAKE_BIN} {target} --no-local-cache --no-remote-cache --details --json json_out", shell=True, cwd="env/")) with open("env/json_out") as f: deps = json.load(f) - + deps_conf = [os.path.join(ROOT, "env", dep) for dep in deps_conf] self.assertEqual(deps["deps"]["configured"], deps_conf, msg="deps_conf") deps_manual = [os.path.join(ROOT, "env", dep) for dep in deps_manual] self.assertEqual(deps["deps"]["manual"], deps_manual, msg="deps_manual") deps_auto_in = [os.path.join(ROOT, "env", dep) for dep in deps_auto_in] self.assertEqual(deps["deps"]["auto_in"], deps_auto_in, msg="deps_auto_in") - + def _rm(self, files): for f in files: os.remove(os.path.join("env", f)) @@ -234,7 +236,7 @@ def test_generated_targets(self): umake += ":foreach a_use.c | proto/a_proto.pb-c.h > gcc -g -O2 -Wall -fPIC -c {filename} -o {target} > {dir}/{noext}.o\n" umake += ":foreach b_notuse.c > gcc -g -O2 -Wall -fPIC -c {filename} -o {target} > {dir}/{noext}.o\n" umake += ": *.o proto/*.o > gcc -g --shared -O2 -Wall -fPIC {filename} -o {target} > test.so\n" - + self._compile(umake) timestamps = {"a_use.o": 0, "b_notuse.o": 0, "proto/a_proto.pb-c.c": 0, "proto/a_proto.pb-c.h": 0, "proto/a_proto.pb-c.o": 0, "test.so": 0} is_changed = {"a_use.o": True, "b_notuse.o": True, "proto/a_proto.pb-c.c": True, "proto/a_proto.pb-c.h": True, "proto/a_proto.pb-c.o": True, "test.so": True} @@ -254,7 +256,7 @@ def test_generated_targets(self): self._compile(umake) is_changed = {"a_use.o": True, "b_notuse.o": False, "proto/a_proto.pb-c.c": True, "proto/a_proto.pb-c.h": True, "proto/a_proto.pb-c.o": True, "test.so": True} timestamps = self._check_file_exists(["a_use.o", "b_notuse.o", "proto/a_proto.pb-c.c", "proto/a_proto.pb-c.h", "proto/a_proto.pb-c.o", "test.so"], check_timestamp=timestamps, is_changed=is_changed) - + umake = ":foreach proto/*.proto > protoc-c -I={dir} --c_out={dir} {filename} > {dir}/{noext}.pb-c.c {dir}/{noext}.pb-c.h\n" umake += ":foreach b_notuse.c > gcc -g -O2 -Wall -fPIC -c {filename} -o {target} > {dir}/{noext}.o\n" umake += ": *.o > gcc -g --shared -O2 -Wall -fPIC {filename} -o {target} > test.so\n" @@ -306,10 +308,10 @@ def test_recursive_deps(self): umake += ": c > ../helper_file_create.sh something d > d\n" self._compile(umake) self._check_file_exists(["a", "b", "c", "d"]) - + self._rm(["a"]) self._compile(umake, should_fail=True) - + """ check if c delete -> all reconstructed """ self._create("a", "asd") self._compile(umake) @@ -326,7 +328,7 @@ def test_recursive_deps(self): self._compile(umake, should_fail=True) self._check_file_exists(["a", "b", "c", "d"]) # self._check_file_not_exists(["c"]) - + """ check all sources exists for a command """ self._create("a", "asd") self._create("a1", "asd") @@ -335,15 +337,15 @@ def test_recursive_deps(self): self._compile(umake) self._rm(["a"]) self._compile(umake, should_fail=True) - + self._create("a", "asd") self._compile(umake) - + self._rm(["a1"]) self._compile(umake, should_fail=True) # delete a -> b exists - # create a -> b exists + # create a -> b exists # delete a1 -> b exists def test_umakefile_parsing(self): @@ -370,7 +372,7 @@ def test_changing_command_for_target_more_objects(self): self._create("a.c", "") self._create("b.c", "") self._create("c.c", "") - + umake = ":foreach a.c b.c > gcc -g -O2 -Wall -fPIC -c {filename} -o {target} > {dir}/{noext}.o\n" umake += ": a.o b.o > gcc -g --shared -O2 -Wall -fPIC {filename} -o {target} > test.so\n" self._compile(umake) @@ -440,7 +442,7 @@ def test_variant(self): self._check_file_not_exists(["a"]) self._compile(umake, variant="test1", should_fail=True) - + def test_compiling_specific_target(self): umake = ": > ../helper_file_create.sh something a > a\n" umake += ": > ../helper_file_create.sh something b > b\n" @@ -452,7 +454,7 @@ def test_compiling_specific_target(self): self._compile(umake) timestamps = self._check_file_exists(["a", "b", "c", "d"], check_timestamp=timestamps, is_changed=is_changed) self._rm(["a", "b", "c", "d"]) - + timestamps = {"a": 0} is_changed = {"a": True} self._compile(umake, targets=["a"]) @@ -492,7 +494,7 @@ def test_autodep_update(self): self._create("a.sh", "/bin/cat a && /bin/cat d && /bin/cat b && echo n >> c\n") self._compile(umake) self._assert_compilation("c", deps_conf=[], deps_manual=[], deps_auto_in=["a", "a.sh", "b", "d"]) - + def test_include(self): self._create("UMakfile_b", ": > ../helper_file_create.sh something b > b\n") umake = "[include:UMakfile_b]\n" diff --git a/umake/cache/__init__.py b/umake/cache/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/umake/cache/base_cache.py b/umake/cache/base_cache.py new file mode 100644 index 0000000..72048b9 --- /dev/null +++ b/umake/cache/base_cache.py @@ -0,0 +1,43 @@ +from abc import ABC, abstractmethod + +class MetadataCache: + def __init__(self, deps): + self.deps = deps + + +class Cache(ABC): + + @abstractmethod + def open_cache(self, cache_hash)->MetadataCache: + """ + Get an object from the cache using a given hash. + + :param cache_hash: The key of the object to get + :return: The resulting element from cache. + """ + pass + + @abstractmethod + def save_cache(self, cache_hash, metadata_cache: MetadataCache): + """ + Save a given object into the cache. + + :param cache_hash: The hash to use for storing the element in the cache. + :param metadata_cache: The object to store in the cache. + """ + pass + + @abstractmethod + def get_cache_stats(self): + """ + Get stats on the number of artifacts in the cache. + """ + pass + + @abstractmethod + def clear_bucket(self): + """ + Delete all the artifacts in the cache. + Mainly used for clean variants. + """ + pass \ No newline at end of file diff --git a/umake/cache/cache_mgr.py b/umake/cache/cache_mgr.py new file mode 100644 index 0000000..8ae8419 --- /dev/null +++ b/umake/cache/cache_mgr.py @@ -0,0 +1,58 @@ +from enum import IntEnum +from .base_cache import MetadataCache +from .minio_cache import MinioCache +from .fs_cache import FsCache +from ..config import global_config + +class CacheMgr: + + class CacheType(IntEnum): + NOT_CACHED = 0 + LOCAL = 1 + REMOTE = 2 + + fs_cache: FsCache = FsCache() + def __init__(self): + if global_config.remote_cache: + self.minio_cache = MinioCache() + + def open_cache(self, cache_hash) -> MetadataCache: + try: + if global_config.local_cache: + return self.fs_cache.open_cache(cache_hash) + else: + raise FileNotFoundError + except FileNotFoundError: + if global_config.remote_cache: + return self.minio_cache.open_cache(cache_hash) + raise FileNotFoundError + + def save_cache(self, cache_hash, metadata_cache: MetadataCache): + if global_config.local_cache: + self.fs_cache.save_cache(cache_hash, metadata_cache) + if global_config.remote_cache: + self.minio_cache.save_cache(cache_hash, metadata_cache) + + def _get_cache(self, deps_hash, targets): + ret = False + if global_config.local_cache: + ret = self.fs_cache._get_cache(deps_hash, targets) + if ret is False: + if global_config.remote_cache: + ret = self.minio_cache._get_cache(deps_hash, targets) + if ret is True: + return CacheMgr.CacheType.REMOTE + else: + return CacheMgr.CacheType.LOCAL + return CacheMgr.CacheType.NOT_CACHED + + def _save_cache(self, deps_hash, targets, local_only=False): + if global_config.local_cache: + self.fs_cache._save_cache(deps_hash, targets) + if local_only: + return + if global_config.remote_cache: + self.minio_cache._save_cache(deps_hash, targets) + + def gc(self): + self.fs_cache.gc() diff --git a/umake/cache/fs_cache.py b/umake/cache/fs_cache.py new file mode 100644 index 0000000..a3e9990 --- /dev/null +++ b/umake/cache/fs_cache.py @@ -0,0 +1,100 @@ +import shutil +import hashlib +import pickle +import os +from os.path import join +from subprocess import check_output +from .base_cache import MetadataCache +from umake.config import UMAKE_BUILD_CACHE_DIR, UMAKE_BUILD_CACHE_MAX_SIZE_MB +from umake.colored_output import out +from umake.utils.fs import fs_lock, fs_unlock, get_size_KB +from umake.utils.timer import Timer + + +class FsCache: + + def __init__(self): + pass + + def open_cache(self, cache_hash) -> MetadataCache: + cache_src = join(UMAKE_BUILD_CACHE_DIR, "md-" + cache_hash.hex()) + with open(cache_src, "rb") as metadata_file: + metadata = pickle.load(metadata_file) + return metadata + + def save_cache(self, cache_hash, metadata_cache: MetadataCache): + cache_src = join(UMAKE_BUILD_CACHE_DIR, "md-" + cache_hash.hex()) + with open(cache_src, "wb") as metadata_file: + pickle.dump(metadata_cache, metadata_file, protocol=pickle.HIGHEST_PROTOCOL) + + def _get_cache(self, deps_hash, targets): + if deps_hash is None: + return False + cache_src = join(UMAKE_BUILD_CACHE_DIR, deps_hash.hex()) + try: + for target in targets: + f = hashlib.sha1(target.encode("ascii")).hexdigest() + src = join(cache_src, f) + shutil.copyfile(src, target) + shutil.copymode(src, target) + except FileNotFoundError: + shutil.rmtree(cache_src, ignore_errors=True) + return False + + return True + + def _save_cache(self, deps_hash, targets): + cache_dst = join(UMAKE_BUILD_CACHE_DIR, deps_hash.hex()) + fd, lock_path = fs_lock(cache_dst) + if fd == None: + return + try: + shutil.rmtree(cache_dst, ignore_errors=True) + os.mkdir(cache_dst) + for target in targets: + dst = join(cache_dst, hashlib.sha1(target.encode("ascii")).hexdigest()) + tmp_dst = f"{dst}.tmp" + # do "atomic" copy, in case the copy is interferred + shutil.copyfile(target, tmp_dst) + shutil.copymode(target, tmp_dst) + os.rename(tmp_dst, dst) + finally: + fs_unlock(fd, lock_path) + + def gc(self): + def remove(path): + """ param could either be relative or absolute. """ + if os.path.isfile(path): + os.remove(path) # remove the file + elif os.path.isdir(path): + shutil.rmtree(path) # remove dir and all contains + else: + raise ValueError("file {} is not a file or dir.".format(path)) + + with Timer("done cache gc") as timer: + cache_dir_size_KB = get_size_KB(UMAKE_BUILD_CACHE_DIR) + high_thresh = cache_dir_size_KB * 1.1 + low_tresh = UMAKE_BUILD_CACHE_MAX_SIZE_MB * 1024 * 0.6 + + if UMAKE_BUILD_CACHE_MAX_SIZE_MB * 1024 > high_thresh: + return + + fd, lock_path = fs_lock(UMAKE_BUILD_CACHE_DIR) + if fd == None: + out.print_fail(f"\tcahce: {UMAKE_BUILD_CACHE_DIR} is locked") + return + try: + cache_dir = check_output(['ls', '-lru', '--sort=time', UMAKE_BUILD_CACHE_DIR]).decode('utf-8') + for cache_line in cache_dir.splitlines(): + try: + _, _, _, _, _, _, _, _, cache_entry_name = cache_line.split() + cache_entry_full_path = join(UMAKE_BUILD_CACHE_DIR, cache_entry_name) + remove(cache_entry_full_path) + cache_entry_size = get_size_KB(UMAKE_BUILD_CACHE_DIR) + if cache_entry_size < low_tresh: + break + except ValueError: + pass + timer.set_postfix(f"freed {int((cache_dir_size_KB - cache_entry_size) / 1024)}MB") + finally: + fs_unlock(fd, lock_path) \ No newline at end of file diff --git a/umake/cache/minio_cache.py b/umake/cache/minio_cache.py new file mode 100644 index 0000000..21a4eb8 --- /dev/null +++ b/umake/cache/minio_cache.py @@ -0,0 +1,147 @@ +import certifi +import urllib3 +import hashlib +import os +import pickle +import io +from os.path import join +from stat import S_IMODE +from minio import Minio, error # takes 0.1 seconds, check what to do +from minio.helpers import MAX_POOL_SIZE +from umake.cache import base_cache +from umake.cache.base_cache import MetadataCache +from umake import config +from umake.config import global_config +from umake.colored_output import out + + +class MinioCache(base_cache.Cache): + BUCKET = config.MINIO_BUCKET_NAME + + def __init__(self): + self.n_timeouts = 0 + ca_certs = certifi.where() + http = urllib3.PoolManager( + timeout=1, + maxsize=MAX_POOL_SIZE, + cert_reqs='CERT_REQUIRED', + ca_certs=ca_certs, + retries=urllib3.Retry( + total=3, + backoff_factor=0.5, + status_forcelist=[500, 502, 503, 504] + ) + ) + + self.mc = Minio(config.MINIO_URL, + access_key=config.MINIO_ACCESS_KEY, + secret_key=config.MINIO_SECRET_KEY, + secure=False, + http_client=http) + + def _increase_timeout_and_check(self): + self.n_timeouts += 1 + if self.n_timeouts >= 3: + out.print_fail(f"remote cache timedout {self.n_timeouts} time, disabling remote cahce") + global_config.remote_cache = False + + def open_cache(self, cache_hash)->MetadataCache: + cache_src = "md-" + cache_hash.hex() + try: + metadata_file = self.mc.get_object(bucket_name=self.BUCKET, object_name=cache_src) + metadata = pickle.loads(metadata_file.read()) + return metadata + except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): + self._increase_timeout_and_check() + raise FileNotFoundError + except error.RequestTimeTooSkewed: + out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") + global_config.remote_cache = False + raise FileNotFoundError + except error.NoSuchKey: + raise FileNotFoundError + + def save_cache(self, cache_hash, metadata_cache: MetadataCache): + cache_src = "md-" + cache_hash.hex() + md = pickle.dumps(metadata_cache, protocol=pickle.HIGHEST_PROTOCOL) + try: + self.mc.put_object(bucket_name=self.BUCKET, object_name=cache_src, data=io.BytesIO(md), length=len(md)) + except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): + self._increase_timeout_and_check() + except error.RequestTimeTooSkewed: + out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") + global_config.remote_cache = False + + def _get_chmod(self, src): + if hasattr(os, 'chmod'): + st = os.stat(src) + return st.st_mode + else: + return None + + def _set_chmod(self, dst, st_mode): + os.chmod(dst, S_IMODE(st_mode)) + + def _get_cache(self, deps_hash, targets): + if deps_hash is None: + return False + cache_src = deps_hash.hex() + try: + for target in targets: + f = hashlib.sha1(target.encode("ascii")).hexdigest() + src = join(cache_src, f) + obj = self.mc.fget_object(bucket_name=self.BUCKET, object_name=src, file_path=target) + st_mode = int(obj.metadata["X-Amz-Meta-St_mode"]) + self._set_chmod(target, st_mode) + except KeyError: + # some cases with minio that .metadata["X-Amz-Meta-St_mode"] is not exists + # the file will be pushed again after compilation + out.print_fail("metadata not exists") + return False + except error.NoSuchKey: + return False + except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): + self._increase_timeout_and_check() + return False + except error.RequestTimeTooSkewed: + out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") + global_config.remote_cache = False + return False + + return True + + def _save_cache(self, deps_hash, targets): + cache_dst = deps_hash.hex() + # fd, lock_path = fs_lock(cache_dst) + # if fd == None: + # return + try: + # shutil.rmtree(cache_dst, ignore_errors=True) + # os.mkdir(cache_dst) + for target in targets: + dst = join(cache_dst, hashlib.sha1(target.encode("ascii")).hexdigest()) + file_attr = {"st_mode": self._get_chmod(target)} + self.mc.fput_object(bucket_name=self.BUCKET, object_name=dst, file_path=target, metadata=file_attr) + except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): + self._increase_timeout_and_check() + except error.RequestTimeTooSkewed: + out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") + global_config.remote_cache = False + finally: + # fs_unlock(fd, lock_path) + pass + + def get_cache_stats(self): + bucket_size = 0 + n_objects = 0 + for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): + if obj.is_dir: + continue + bucket_size += obj.size + n_objects += 1 + print(f"bucket size {int(bucket_size / 1024 / 1024)}MB, n_objects {n_objects}") + + def clear_bucket(self): + for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): + self.mc.remove_object(bucket_name=self.BUCKET, object_name=obj.object_name) + self.get_cache_stats() \ No newline at end of file diff --git a/umake/colored_output.py b/umake/colored_output.py index d57f60f..9c302a6 100644 --- a/umake/colored_output.py +++ b/umake/colored_output.py @@ -1,28 +1,14 @@ import sys import threading -import os -from os.path import join -from subprocess import check_output, CalledProcessError from datetime import datetime -from umake.config import UMAKE_BUILD_CACHE_MAX_SIZE_MB, ROOT, UMAKE_MAX_WORKERS +from umake.config import UMAKE_BUILD_CACHE_MAX_SIZE_MB, UMAKE_MAX_WORKERS, UMAKE_BUILD_CACHE_DIR +from umake.utils.fs import get_size_KB -UMAKE_ROOT_DIR = join(ROOT, ".umake") -UMKAE_TMP_DIR = join(UMAKE_ROOT_DIR, "tmp") -UMAKE_BUILD_CACHE_DIR = join(UMAKE_ROOT_DIR, "build-cache") MINIMAL_ENV = {"PATH": "/usr/bin"} -UMAKE_DB = join(UMAKE_ROOT_DIR, "db.pickle") - file_action_fmt = " [{action}] {filename}" is_ineractive_terminal = sys.stdout.isatty() -def get_size_KB(path): - try: - return int(check_output(['du','-s', path]).split()[0].decode('utf-8')) - except CalledProcessError: - return 0 - - class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' @@ -138,4 +124,8 @@ def print(self, s): def destroy(self): self.update_bar() - print() \ No newline at end of file + print() + + +# To be used as a default interactive output by other modules +out = InteractiveOutput() \ No newline at end of file diff --git a/umake/config.py b/umake/config.py index 0a00ce5..b200dff 100644 --- a/umake/config.py +++ b/umake/config.py @@ -1,4 +1,5 @@ import os +from os.path import join CONFIG_ENV_PREFIX = 'UMAKE_CONFIG_' @@ -13,4 +14,22 @@ UMAKE_BUILD_CACHE_MAX_SIZE_MB = int(os.environ.get(f'{CONFIG_ENV_PREFIX}LOCAL_CACHE_SIZE', '1500')) # General -UMAKE_MAX_WORKERS = 8 \ No newline at end of file +UMAKE_MAX_WORKERS = 8 +UMAKE_ROOT_DIR = join(ROOT, ".umake") +UMKAE_TMP_DIR = join(UMAKE_ROOT_DIR, "tmp") +UMAKE_BUILD_CACHE_DIR = join(UMAKE_ROOT_DIR, "build-cache") +UMAKE_DB = join(UMAKE_ROOT_DIR, "db.pickle") + +class Config: + def __init__(self): + self.json_file = None + self.interactive_output = False + self.remote_cache = True + self.local_cache = True + self.targets = [] + self.variant = "default" + self.compile_commands = False + self.verbose = True + + +global_config = Config() \ No newline at end of file diff --git a/umake/exceptions.py b/umake/exceptions.py new file mode 100644 index 0000000..c67d7b6 --- /dev/null +++ b/umake/exceptions.py @@ -0,0 +1,26 @@ +class TargetNotGeneratedErr(Exception): + pass + + +class CompilationFailedErr(Exception): + pass + + +class CmdFailedErr(Exception): + pass + + +class NotFileErr(Exception): + pass + + +class DepIsGenerated(Exception): + pass + + +class LineParseErr(Exception): + pass + + +class CleanExitErr(Exception): + pass \ No newline at end of file diff --git a/umake/umake b/umake/umake index 3d43d4b..5d3ecba 100755 --- a/umake/umake +++ b/umake/umake @@ -1,7 +1,8 @@ #!/usr/bin/python3.6 import time -from umake.colored_output import InteractiveOutput, bcolors, ROOT, UMAKE_ROOT_DIR, UMKAE_TMP_DIR, UMAKE_BUILD_CACHE_DIR, UMAKE_BUILD_CACHE_MAX_SIZE_MB, MINIMAL_ENV, get_size_KB, UMAKE_MAX_WORKERS, UMAKE_DB, format_text -from umake import config +from umake.colored_output import InteractiveOutput, bcolors, UMAKE_BUILD_CACHE_MAX_SIZE_MB, MINIMAL_ENV, format_text +from umake.colored_output import out +from umake.utils.timer import Timer # from pyinstrument import Profiler # profiler = Profiler() @@ -10,68 +11,8 @@ from umake import config class WorkerExit: pass - -out = InteractiveOutput() worker_exit_code = WorkerExit() - -class Timer: - def __init__(self, msg, threshold=0, color=bcolors.OKGREEN): - self.msg = msg - self.postfix = "" - self.prefix = "" - self.threshold = threshold - self.color = color - self.log_lines = list() - - def set_prefix(self, prefix): - self.prefix = prefix - - def set_postfix(self, postfix): - self.postfix = postfix - - def add_log_line(self, msg): - self.log_lines.append(msg) - - def __enter__(self): - self.start = time.time() - return self - - def __exit__(self, *args): - self.end = time.time() - self.interval = self.end - self.start - out_str = "" - if self.interval > self.threshold: - out_str += format_text(f"[{self.interval:.3f}] {self.prefix} {self.msg} {self.postfix}", self.color) - if self.log_lines: - if out_str: - out_str += "\n" - out_str += "\n".join(self.log_lines) - if out_str: - out.print_neutarl(out_str) - - -class MetadataCache: - def __init__(self, deps): - self.deps = deps - - -def fs_lock(path): - lock_path = path + ".lock" - try: - fd = os.open(lock_path, os.O_CREAT | os.O_EXCL) - return fd, lock_path - except FileExistsError: - return None, None - - -def fs_unlock(fd, lock_path): - try: - os.close(fd) - finally: - os.remove(lock_path) - - with Timer("done imports"): from subprocess import Popen, PIPE, check_output, TimeoutExpired from os.path import join @@ -90,344 +31,25 @@ with Timer("done imports"): from itertools import chain import shutil import sys - import umake.pywildcard as fnmatch - from minio import Minio, error # takes 0.1 seconds, check what to do - from minio.helpers import (MAX_PART_SIZE, - MAX_POOL_SIZE, - MIN_PART_SIZE, - DEFAULT_PART_SIZE, - MAX_MULTIPART_COUNT) import urllib3 import certifi import io import glob - -class Config: - def __init__(self): - self.json_file = None - self.interactive_output = False - self.remote_cache = True - self.local_cache = True - self.targets = [] - self.variant = "default" - self.compile_commands = False - self.verbose = True - - -global_config = Config() - - -class MinioCache: - - BUCKET = config.MINIO_BUCKET_NAME - def __init__(self): - self.n_timeouts = 0 - ca_certs = certifi.where() - http = urllib3.PoolManager( - timeout=1, - maxsize=MAX_POOL_SIZE, - cert_reqs='CERT_REQUIRED', - ca_certs=ca_certs, - retries=urllib3.Retry( - total=3, - backoff_factor=0.5, - status_forcelist=[500, 502, 503, 504] - ) - ) - - self.mc = Minio(config.MINIO_URL, - access_key=config.MINIO_ACCESS_KEY, - secret_key=config.MINIO_SECRET_KEY, - secure=False, - http_client=http) - - def _increase_timeout_and_check(self): - self.n_timeouts += 1 - if self.n_timeouts >= 3: - out.print_fail(f"remote cache timedout {self.n_timeouts} time, disabling remote cahce") - global_config.remote_cache = False - - def open_cache(self, cache_hash) -> MetadataCache: - cache_src = "md-" + cache_hash.hex() - try: - metadata_file = self.mc.get_object(bucket_name=self.BUCKET, object_name=cache_src) - metadata = pickle.loads(metadata_file.read()) - return metadata - except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): - self._increase_timeout_and_check() - raise FileNotFoundError - except error.RequestTimeTooSkewed: - out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") - global_config.remote_cache = False - raise FileNotFoundError - except error.NoSuchKey: - raise FileNotFoundError - - def save_cache(self, cache_hash, metadata_cache: MetadataCache): - cache_src = "md-" + cache_hash.hex() - md = pickle.dumps(metadata_cache, protocol=pickle.HIGHEST_PROTOCOL) - try: - self.mc.put_object(bucket_name=self.BUCKET, object_name=cache_src, data=io.BytesIO(md), length=len(md)) - except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): - self._increase_timeout_and_check() - except error.RequestTimeTooSkewed: - out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") - global_config.remote_cache = False - - def _get_chmod(self, src): - if hasattr(os, 'chmod'): - stat_func, chmod_func = os.stat, os.chmod - st = os.stat(src) - return st.st_mode - else: - return None - - def _set_chmod(self, dst, st_mode): - os.chmod(dst, S_IMODE(st_mode)) - - def _get_cache(self, deps_hash, targets): - if deps_hash is None: - return False - cache_src = deps_hash.hex() - try: - for target in targets: - f = hashlib.sha1(target.encode("ascii")).hexdigest() - src = join(cache_src, f) - obj = self.mc.fget_object(bucket_name=self.BUCKET, object_name=src, file_path=target) - st_mode = int(obj.metadata["X-Amz-Meta-St_mode"]) - self._set_chmod(target, st_mode) - except KeyError: - # some cases with minio that .metadata["X-Amz-Meta-St_mode"] is not exists - # the file will be pushed again after compilation - out.print_fail("metadata not exists") - return False - except error.NoSuchKey: - return False - except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): - self._increase_timeout_and_check() - return False - except error.RequestTimeTooSkewed: - out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") - global_config.remote_cache = False - return False - - return True - - def _save_cache(self, deps_hash, targets): - cache_dst = deps_hash.hex() - # fd, lock_path = fs_lock(cache_dst) - # if fd == None: - # return - try: - # shutil.rmtree(cache_dst, ignore_errors=True) - # os.mkdir(cache_dst) - for target in targets: - dst = join(cache_dst, hashlib.sha1(target.encode("ascii")).hexdigest()) - file_attr = {"st_mode": self._get_chmod(target)} - self.mc.fput_object(bucket_name=self.BUCKET, object_name=dst, file_path=target, metadata=file_attr) - except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): - self._increase_timeout_and_check() - except error.RequestTimeTooSkewed: - out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") - global_config.remote_cache = False - finally: - # fs_unlock(fd, lock_path) - pass - - def get_cache_stats(self): - bucket_size = 0 - n_objects = 0 - for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): - if obj.is_dir: - continue - bucket_size += obj.size - n_objects += 1 - print(f"bucket size {int(bucket_size / 1024 / 1024)}MB, n_objects {n_objects}") - - def clear_bucket(self): - for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): - self.mc.remove_object(bucket_name=self.BUCKET, object_name=obj.object_name) - self.get_cache_stats() - - -class FsCache: - - def __init__(self): - pass - - def open_cache(self, cache_hash) -> MetadataCache: - cache_src = join(UMAKE_BUILD_CACHE_DIR, "md-" + cache_hash.hex()) - with open(cache_src, "rb") as metadata_file: - metadata = pickle.load(metadata_file) - return metadata - - - def save_cache(self, cache_hash, metadata_cache: MetadataCache): - cache_src = join(UMAKE_BUILD_CACHE_DIR, "md-" + cache_hash.hex()) - with open(cache_src, "wb") as metadata_file: - pickle.dump(metadata_cache, metadata_file, protocol=pickle.HIGHEST_PROTOCOL) - - def _get_cache(self, deps_hash, targets): - if deps_hash is None: - return False - cache_src = join(UMAKE_BUILD_CACHE_DIR, deps_hash.hex()) - try: - for target in targets: - f = hashlib.sha1(target.encode("ascii")).hexdigest() - src = join(cache_src, f) - shutil.copyfile(src, target) - shutil.copymode(src, target) - except FileNotFoundError: - shutil.rmtree(cache_src, ignore_errors=True) - return False - - return True - - def _save_cache(self, deps_hash, targets): - cache_dst = join(UMAKE_BUILD_CACHE_DIR, deps_hash.hex()) - fd, lock_path = fs_lock(cache_dst) - if fd == None: - return - try: - shutil.rmtree(cache_dst, ignore_errors=True) - os.mkdir(cache_dst) - for target in targets: - dst = join(cache_dst, hashlib.sha1(target.encode("ascii")).hexdigest()) - tmp_dst = f"{dst}.tmp" - # do "atomic" copy, in case the copy is interferred - shutil.copyfile(target, tmp_dst) - shutil.copymode(target, tmp_dst) - os.rename(tmp_dst, dst) - finally: - fs_unlock(fd, lock_path) - - def gc(self): - def remove(path): - """ param could either be relative or absolute. """ - if os.path.isfile(path): - os.remove(path) # remove the file - elif os.path.isdir(path): - shutil.rmtree(path) # remove dir and all contains - else: - raise ValueError("file {} is not a file or dir.".format(path)) - - with Timer("done cache gc") as timer: - cache_dir_size_KB = get_size_KB(UMAKE_BUILD_CACHE_DIR) - high_thresh = cache_dir_size_KB * 1.1 - low_tresh = UMAKE_BUILD_CACHE_MAX_SIZE_MB * 1024 * 0.6 - - if UMAKE_BUILD_CACHE_MAX_SIZE_MB * 1024 > high_thresh: - return - - fd, lock_path = fs_lock(UMAKE_BUILD_CACHE_DIR) - if fd == None: - out.print_fail(f"\tcahce: {UMAKE_BUILD_CACHE_LOCK} is locked") - return - try: - cache_dir = check_output(['ls', '-lru', '--sort=time', UMAKE_BUILD_CACHE_DIR]).decode('utf-8') - for cache_line in cache_dir.splitlines(): - try: - _, _, _, _, _, _, _, _, cache_entry_name = cache_line.split() - cache_entry_full_path = join(UMAKE_BUILD_CACHE_DIR, cache_entry_name) - remove(cache_entry_full_path) - cache_entry_size = get_size_KB(UMAKE_BUILD_CACHE_DIR) - if cache_entry_size < low_tresh: - break - except ValueError: - pass - timer.set_postfix(f"freed {int((cache_dir_size_KB - cache_entry_size) / 1024)}MB") - finally: - fs_unlock(fd, lock_path) - - -class CacheMgr: - - class CacheType(IntEnum): - NOT_CACHED = 0 - LOCAL = 1 - REMOTE = 2 - - fs_cache: FsCache = FsCache() - def __init__(self): - if global_config.remote_cache: - self.minio_cache = MinioCache() - - def open_cache(self, cache_hash) -> MetadataCache: - try: - if global_config.local_cache: - return self.fs_cache.open_cache(cache_hash) - else: - raise FileNotFoundError - except FileNotFoundError: - if global_config.remote_cache: - return self.minio_cache.open_cache(cache_hash) - raise FileNotFoundError - - def save_cache(self, cache_hash, metadata_cache: MetadataCache): - if global_config.local_cache: - self.fs_cache.save_cache(cache_hash, metadata_cache) - if global_config.remote_cache: - self.minio_cache.save_cache(cache_hash, metadata_cache) - - def _get_cache(self, deps_hash, targets): - ret = False - if global_config.local_cache: - ret = self.fs_cache._get_cache(deps_hash, targets) - if ret is False: - if global_config.remote_cache: - ret = self.minio_cache._get_cache(deps_hash, targets) - if ret is True: - return CacheMgr.CacheType.REMOTE - else: - return CacheMgr.CacheType.LOCAL - return CacheMgr.CacheType.NOT_CACHED - - def _save_cache(self, deps_hash, targets, local_only=False): - if global_config.local_cache: - self.fs_cache._save_cache(deps_hash, targets) - if local_only: - return - if global_config.remote_cache: - self.minio_cache._save_cache(deps_hash, targets) - - def gc(self): - self.fs_cache.gc() - + import umake.pywildcard as fnmatch + from umake.cache.cache_mgr import CacheMgr + from umake.exceptions import * + from umake.utils.fs import fs_lock, fs_unlock, join_paths, get_size_KB + from umake import config + from umake.config import UMAKE_DB, UMAKE_MAX_WORKERS, ROOT, UMAKE_ROOT_DIR, UMKAE_TMP_DIR, UMAKE_BUILD_CACHE_DIR + from umake.config import global_config + from umake.cache.base_cache import MetadataCache def byte_xor(ba1, ba2): return bytes([_a ^ _b for _a, _b in zip(ba1, ba2)]) -class TargetNotGeneratedErr(Exception): - pass - - -class CompilationFailedErr(Exception): - pass - - -class CmdFailedErr(Exception): - pass - - -class NotFileErr(Exception): - pass - - -class DepIsGenerated(Exception): - pass - - -class LineParseErr(Exception): - pass - - -class CleanExitErr(Exception): - pass - - class CmdExecuter: def __init__(self, target, sources, cmd): self.target = target @@ -521,7 +143,7 @@ class CmdExecuter: timer.add_log_line(format_text(f"\nError:\n\t\t{stderr}", "")) if stdout: timer.add_log_line(format_text(f"\nt\t{stdout}", "")) - + raise CompilationFailedErr() # TODO: print here the source of the command else: @@ -570,13 +192,6 @@ class CmdExecuter: return self.dep_files, self.target -def join_paths(root, rest): - if rest[0] == "/": - ret = f"{ROOT}/{rest[1:]}" - else: - ret = f"{root}/{rest}" - return ret - class FileEntry: class EntryType(Enum): @@ -1300,7 +915,7 @@ class UMake: for cmd in cmd_template.cmds: cmds.add(cmd.cmd) removed_cmds = last_cmds.difference(cmds) - + delete_nodes = set() for remove_cmd in removed_cmds: remove_cmd_list = list(self.graph.successors(remove_cmd)) @@ -1342,7 +957,7 @@ class UMake: while self.worker_continue: executer: CmdExecuter executer = self.jobs_queue.get() - + if type(executer) is WorkerExit: return @@ -1361,9 +976,9 @@ class UMake: executer.is_ok = False self._send_exits() out.n_active_workers.dec() - + self.done_queue.put(executer) - + def _handle_done(self, add_conns_out, del_conns_out): execucter: CmdExecuter @@ -1502,7 +1117,7 @@ class UMake: if self.n_jobs: while self._handle_done(add_conns, del_conns): pass - + # start terminating threads self._send_exits() @@ -1710,7 +1325,7 @@ class UMake: print(cmd_template.cmd_fmt) for cmd in cmd_template.cmds: print(f"\t{cmd.cmd}") - + def parse_args(self): import argparse parser = argparse.ArgumentParser() diff --git a/umake/utils/__init__.py b/umake/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/umake/utils/fs.py b/umake/utils/fs.py new file mode 100644 index 0000000..1fb9e0a --- /dev/null +++ b/umake/utils/fs.py @@ -0,0 +1,33 @@ +import os +from subprocess import check_output, CalledProcessError +from umake.config import ROOT + +def fs_lock(path): + lock_path = path + ".lock" + try: + fd = os.open(lock_path, os.O_CREAT | os.O_EXCL) + return fd, lock_path + except FileExistsError: + return None, None + + +def fs_unlock(fd, lock_path): + try: + os.close(fd) + finally: + os.remove(lock_path) + + +def join_paths(root, rest): + if rest[0] == "/": + ret = f"{ROOT}/{rest[1:]}" + else: + ret = f"{root}/{rest}" + return ret + + +def get_size_KB(path): + try: + return int(check_output(['du','-s', path]).split()[0].decode('utf-8')) + except CalledProcessError: + return 0 \ No newline at end of file diff --git a/umake/utils/timer.py b/umake/utils/timer.py new file mode 100644 index 0000000..b9d1332 --- /dev/null +++ b/umake/utils/timer.py @@ -0,0 +1,37 @@ +from umake.colored_output import format_text, out, bcolors +import time + +class Timer: + def __init__(self, msg, threshold=0, color=bcolors.OKGREEN): + self.msg = msg + self.postfix = "" + self.prefix = "" + self.threshold = threshold + self.color = color + self.log_lines = list() + + def set_prefix(self, prefix): + self.prefix = prefix + + def set_postfix(self, postfix): + self.postfix = postfix + + def add_log_line(self, msg): + self.log_lines.append(msg) + + def __enter__(self): + self.start = time.time() + return self + + def __exit__(self, *args): + self.end = time.time() + self.interval = self.end - self.start + out_str = "" + if self.interval > self.threshold: + out_str += format_text(f"[{self.interval:.3f}] {self.prefix} {self.msg} {self.postfix}", self.color) + if self.log_lines: + if out_str: + out_str += "\n" + out_str += "\n".join(self.log_lines) + if out_str: + out.print_neutarl(out_str) From 02e1cce43f34f20c6ba16fd564f5e85ff16dda12 Mon Sep 17 00:00:00 2001 From: Kfir Gollan Date: Sat, 14 Mar 2020 17:34:07 +0000 Subject: [PATCH 31/41] Break the main umake file to multiple files. As part of the preparation for adding more features and improving maintainabilty of the code it is time to split the main file. Another tool was adding linting to make sure that simple errors are identified by the linter in a static manner. --- test/test.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/test.py b/test/test.py index 627bebf..a25027d 100644 --- a/test/test.py +++ b/test/test.py @@ -510,11 +510,15 @@ def test_include(self): self._check_file_exists(["other_dir/b"]) def test_clean_exit(self): - umake = ": > /bin/sleep 0.5 && cat f > \n" - umake += ": > /bin/sleep 10 > \n" + # Create two parallel targets that are not related. + # This should make umake trigger two workers to handle the commands. + # The first command will fail and we want to make sure that all workers + # are terminated. + umake = ": > /bin/sleep 0.5 && false > \n" + umake += ": > /bin/sleep 60 > \n" start = time.perf_counter() self._compile(umake, should_fail=True) - assert time.perf_counter() - start < 1 + assert time.perf_counter() - start < 5 if __name__ == '__main__': unittest.main() From 891626d6922d894db9c955c5f9a65e743676a7e7 Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Sat, 14 Mar 2020 21:46:51 +0200 Subject: [PATCH 32/41] rebuild docker image add benchmark tests --- .drone.yml | 6 +----- Makefile | 6 ++++-- test/test.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 53 insertions(+), 9 deletions(-) diff --git a/.drone.yml b/.drone.yml index 79ce790..e98ad75 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,14 +9,10 @@ steps: commands: # /umake holds the binaries which are installed in the image. # refer to the dockerfile. - - "rm -rf /umake" - - "pwd" - - "ls -ltr" - "pip3 install --upgrade ." - - "pip3 install pyflakes" - "cd umake && pyflakes ." - "cd ../test && python3.6 test.py" - image: grisha85/umake:1 + image: grisha85/umake:2 pull: if-not-exists - name: coverage diff --git a/Makefile b/Makefile index 0577763..ab218ac 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ -.PHONY: test enter +.PHONY: test enter benchmark -IMAGE=grisha85/umake:1 +IMAGE=grisha85/umake:2 build-docker: docker build -t ${IMAGE} . @@ -16,3 +16,5 @@ lint: enter: docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash +benchmark: + docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash -c 'cd test && python3 ./test.py TestUMake.test_benchmark' \ No newline at end of file diff --git a/test/test.py b/test/test.py index a25027d..aa0565f 100644 --- a/test/test.py +++ b/test/test.py @@ -11,6 +11,20 @@ COVEARAGE_CMD = "coverage-3.6 run -a" UMAKE_BIN = f"{ROOT}/../umake/umake" +class Timer: + def __init__(self, msg, iterations): + self.msg = msg + self.iterations = iterations + + def __enter__(self): + self.start = time.time() + return self + + def __exit__(self, *args): + self.end = time.time() + interavl = self.end - self.start + print(f"[{interavl:.3f}] [{interavl/self.iterations:.5f} per iter] {self.msg}") + class TestUMake(unittest.TestCase): def setUp(self): @@ -79,7 +93,7 @@ def _check_file_not_exists(self, path): for p in path: self.assertFalse(os.path.isfile(os.path.join("env", p))) - def _compile(self, umake, variant="", targets=[], should_fail=False): + def _compile(self, umake, variant="", targets=[], should_fail=False, should_output=True, local_cache=False): with open('env/UMakefile', "w") as umakefile: umakefile.write(umake) if variant != "": @@ -87,8 +101,16 @@ def _compile(self, umake, variant="", targets=[], should_fail=False): targets_str = "" if targets: targets_str = " ".join(targets) + local_cache_conf = "--no-local-cache" + if local_cache: + local_cache_conf = "" try: - print(check_output(f"{COVEARAGE_CMD} {UMAKE_BIN} --no-remote-cache --no-local-cache {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8")) + def call(): + return check_output(f"{COVEARAGE_CMD} {UMAKE_BIN} --no-remote-cache {local_cache_conf} {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8") + if should_output: + print(call()) + else: + call() if should_fail: self.assertTrue(False, msg="umake compiled although should fail") except subprocess.CalledProcessError as e: @@ -520,5 +542,29 @@ def test_clean_exit(self): self._compile(umake, should_fail=True) assert time.perf_counter() - start < 5 + def test_benchmark(self): + n_files = 300 + umake = "" + for i in range(n_files): + self._create(f"{i}.c", +f""" +int x{i}; +int my_func{i}() +{{ + x{i}++; + return 0; +}} +""") + umake += f": {i}.c > gcc -g -O2 -Wall -fPIC -c {{filename}} -o {{target}} > {i}.o\n" + + with Timer("build", n_files): + self._compile(umake, should_output=False, local_cache=True) + + with Timer("build - null", n_files): + self._compile(umake, should_output=False, local_cache=True) + os.remove("env/.umake/db.pickle") + with Timer("build - from local cache", n_files): + self._compile(umake, should_output=False, local_cache=True) + if __name__ == '__main__': unittest.main() From a3737990af3e3700c818916842abf07008d91fdc Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Sun, 15 Mar 2020 01:39:05 +0200 Subject: [PATCH 33/41] remote cache refactor --- Dockerfile | 9 ++++--- Makefile | 12 +++++---- README.md | 5 ---- doc/umakefile.md | 9 +++++++ test/test.py | 55 +++++++++++++++++++++++++++++++++----- umake/cache/cache_mgr.py | 10 +++---- umake/cache/minio_cache.py | 32 +++++++++++----------- umake/config.py | 15 ++++++----- umake/umake | 31 ++++++++++++++------- 9 files changed, 119 insertions(+), 59 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4fda8ae..bf60162 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,12 @@ FROM ubuntu:18.04 RUN apt-get update -y -RUN apt-get install -y python3.6 build-essential python3-pip libxml2-dev zlib1g-dev strace vim -RUN apt-get install -y git +RUN apt-get install -y python3.6 build-essential python3-pip libxml2-dev zlib1g-dev strace vim wget ADD . /umake -RUN pip3 install ipdb pyflakes RUN pip3 install -e /umake +RUN pip3 install ipdb coverage pyflakes + +RUN wget https://dl.min.io/server/minio/release/linux-amd64/minio && chmod +x ./minio && mv ./minio /usr/bin + # for tests RUN apt-get install -y libprotobuf-c0-dev protobuf-c-compiler -RUN pip3 install coverage diff --git a/Makefile b/Makefile index ab218ac..690b6d5 100644 --- a/Makefile +++ b/Makefile @@ -2,19 +2,21 @@ .PHONY: test enter benchmark -IMAGE=grisha85/umake:2 +IMAGE=grisha85/umake:3 + +VOLUMES=-v`pwd`:/umake build-docker: docker build -t ${IMAGE} . -test: - docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash -c 'cd test && python3.6 test.py' +test: + docker run --rm --privileged -it ${VOLUMES} -w/umake ${IMAGE} bash -c 'cd test && python3.6 test.py' lint: - docker run --rm -v${PWD}:/umake -w/umake/umake ${IMAGE} pyflakes . + docker run --rm ${VOLUMES} -w/umake/umake ${IMAGE} pyflakes . enter: - docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash + docker run --rm --privileged -it ${VOLUMES} -w/umake ${IMAGE} bash benchmark: docker run --rm --privileged -it -v`pwd`:/umake -w/umake ${IMAGE} bash -c 'cd test && python3 ./test.py TestUMake.test_benchmark' \ No newline at end of file diff --git a/README.md b/README.md index 8dc87c5..50b11b3 100644 --- a/README.md +++ b/README.md @@ -61,11 +61,6 @@ This section lists all the various configurations that umake supports | Variable name | Description | |--------------------------------|------------------------------------------------------------| -| UMAKE_CONFIG_MINIO_ACCESS_KEY | An access key (username) for minio that umake should use | -| UMAKE_CONFIG_MINIO_SECRET_KEY | A secret key (password) for minio that umake should use | -| UMAKE_CONFIG_MINIO_BUCKET_NAME | The name of the bucket to use in minio | -| UMAKE_CONFIG_MINIO_URL | A url to use to access minio | -| UMAKE_CONFIG_LOCAL_CACHE_SIZE | The maximal size in bytes of the cache to store locally | | UMAKE_CONFIG_ROOT | The root directory in which all umake files will be stored | Real Life Examples diff --git a/doc/umakefile.md b/doc/umakefile.md index 0912b6b..58701e7 100644 --- a/doc/umakefile.md +++ b/doc/umakefile.md @@ -142,3 +142,12 @@ include another `UMakefile` into the current one. ``` will open and parse `somedir/umakefile` in the current working dir context. +#### `remote cache` +Default: None + +configure remote cache +``` +[remote-cache: ] +``` + +**remote-cache-type** - `minio` \ No newline at end of file diff --git a/test/test.py b/test/test.py index aa0565f..9ebcb8a 100644 --- a/test/test.py +++ b/test/test.py @@ -1,10 +1,12 @@ import unittest -from subprocess import check_output +from subprocess import check_output, Popen import subprocess import shutil import os import json import time +from minio import Minio +import minio ROOT = os.getcwd() COVERAGE_DIR_PATH = os.path.join(ROOT, 'coverage') @@ -31,6 +33,10 @@ def setUp(self): shutil.rmtree("env", ignore_errors=True) os.mkdir("env") os.mkdir("env/proto") + try: + check_output("pkill -9 minio", shell=True) + except subprocess.CalledProcessError: + pass @classmethod def setUpClass(cls): @@ -93,29 +99,35 @@ def _check_file_not_exists(self, path): for p in path: self.assertFalse(os.path.isfile(os.path.join("env", p))) - def _compile(self, umake, variant="", targets=[], should_fail=False, should_output=True, local_cache=False): + def _compile(self, umake, variant="", targets=[], should_fail=False, should_output=True, local_cache=False, remote_cache=False): with open('env/UMakefile', "w") as umakefile: umakefile.write(umake) if variant != "": variant = f"--variant {variant}" targets_str = "" - if targets: - targets_str = " ".join(targets) + local_cache_conf = "--no-local-cache" if local_cache: local_cache_conf = "" + + remote_cache_conf="--no-remote-cache" + if remote_cache: + remote_cache_conf = "" + + if targets: + targets_str = " ".join(targets) + try: def call(): - return check_output(f"{COVEARAGE_CMD} {UMAKE_BIN} --no-remote-cache {local_cache_conf} {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8") + return check_output(f"{COVEARAGE_CMD} {UMAKE_BIN} {remote_cache_conf} {local_cache_conf} {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8") if should_output: print(call()) else: call() if should_fail: self.assertTrue(False, msg="umake compiled although should fail") - except subprocess.CalledProcessError as e: + except subprocess.CalledProcessError: if should_fail is False: - # print(e) self.assertTrue(False, msg="Failed to run umake") def _assert_compilation(self, target, deps_conf=None, deps_manual=None, deps_auto_in=None): @@ -566,5 +578,34 @@ def test_benchmark(self): with Timer("build - from local cache", n_files): self._compile(umake, should_output=False, local_cache=True) + BUCKET_NAME = "umake-bucket" + def _start_remote_cache_minio(self): + os.environ["MINIO_ACCESS_KEY"] = "umake" + os.environ["MINIO_SECRET_KEY"] = "umakeumake" + cmd = "minio server /data" + server = Popen(cmd, shell=True) + time.sleep(2) + self.mc = Minio("172.17.0.2:9000",access_key="umake", secret_key="umakeumake", secure=False) + try: + for obj in self.mc.list_objects(bucket_name=self.BUCKET_NAME, recursive=True): + self.mc.remove_object(bucket_name=self.BUCKET_NAME, object_name=obj.object_name) + self.mc.remove_bucket(self.BUCKET_NAME) + except minio.error.NoSuchBucket: + pass + + self.mc.make_bucket(self.BUCKET_NAME) + return server + + def test_remote_cache(self): + minio_server = self._start_remote_cache_minio() + umake = f"[remote-cache:minio 172.17.0.2:9000 umake umakeumake {self.BUCKET_NAME}]\n" + umake += ": > touch f > f" + self._compile(umake, remote_cache=True) + + self.mc.stat_object(self.BUCKET_NAME, "md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") + minio_server.terminate() + + + if __name__ == '__main__': unittest.main() diff --git a/umake/cache/cache_mgr.py b/umake/cache/cache_mgr.py index 8ae8419..4310f19 100644 --- a/umake/cache/cache_mgr.py +++ b/umake/cache/cache_mgr.py @@ -13,7 +13,7 @@ class CacheType(IntEnum): fs_cache: FsCache = FsCache() def __init__(self): - if global_config.remote_cache: + if global_config.remote_cache_enable: self.minio_cache = MinioCache() def open_cache(self, cache_hash) -> MetadataCache: @@ -23,14 +23,14 @@ def open_cache(self, cache_hash) -> MetadataCache: else: raise FileNotFoundError except FileNotFoundError: - if global_config.remote_cache: + if global_config.remote_cache_enable: return self.minio_cache.open_cache(cache_hash) raise FileNotFoundError def save_cache(self, cache_hash, metadata_cache: MetadataCache): if global_config.local_cache: self.fs_cache.save_cache(cache_hash, metadata_cache) - if global_config.remote_cache: + if global_config.remote_cache_enable: self.minio_cache.save_cache(cache_hash, metadata_cache) def _get_cache(self, deps_hash, targets): @@ -38,7 +38,7 @@ def _get_cache(self, deps_hash, targets): if global_config.local_cache: ret = self.fs_cache._get_cache(deps_hash, targets) if ret is False: - if global_config.remote_cache: + if global_config.remote_cache_enable: ret = self.minio_cache._get_cache(deps_hash, targets) if ret is True: return CacheMgr.CacheType.REMOTE @@ -51,7 +51,7 @@ def _save_cache(self, deps_hash, targets, local_only=False): self.fs_cache._save_cache(deps_hash, targets) if local_only: return - if global_config.remote_cache: + if global_config.remote_cache_enable: self.minio_cache._save_cache(deps_hash, targets) def gc(self): diff --git a/umake/cache/minio_cache.py b/umake/cache/minio_cache.py index 21a4eb8..7a4276f 100644 --- a/umake/cache/minio_cache.py +++ b/umake/cache/minio_cache.py @@ -10,13 +10,11 @@ from minio.helpers import MAX_POOL_SIZE from umake.cache import base_cache from umake.cache.base_cache import MetadataCache -from umake import config from umake.config import global_config from umake.colored_output import out class MinioCache(base_cache.Cache): - BUCKET = config.MINIO_BUCKET_NAME def __init__(self): self.n_timeouts = 0 @@ -33,9 +31,9 @@ def __init__(self): ) ) - self.mc = Minio(config.MINIO_URL, - access_key=config.MINIO_ACCESS_KEY, - secret_key=config.MINIO_SECRET_KEY, + self.mc = Minio(global_config.remote_hostname, + access_key=global_config.remote_access_key, + secret_key=global_config.remote_secret_key, secure=False, http_client=http) @@ -43,12 +41,12 @@ def _increase_timeout_and_check(self): self.n_timeouts += 1 if self.n_timeouts >= 3: out.print_fail(f"remote cache timedout {self.n_timeouts} time, disabling remote cahce") - global_config.remote_cache = False + global_config.remote_cache_enable = False def open_cache(self, cache_hash)->MetadataCache: cache_src = "md-" + cache_hash.hex() try: - metadata_file = self.mc.get_object(bucket_name=self.BUCKET, object_name=cache_src) + metadata_file = self.mc.get_object(bucket_name=global_config.remote_bucket, object_name=cache_src) metadata = pickle.loads(metadata_file.read()) return metadata except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): @@ -56,7 +54,7 @@ def open_cache(self, cache_hash)->MetadataCache: raise FileNotFoundError except error.RequestTimeTooSkewed: out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") - global_config.remote_cache = False + global_config.remote_cache_enable = False raise FileNotFoundError except error.NoSuchKey: raise FileNotFoundError @@ -65,12 +63,12 @@ def save_cache(self, cache_hash, metadata_cache: MetadataCache): cache_src = "md-" + cache_hash.hex() md = pickle.dumps(metadata_cache, protocol=pickle.HIGHEST_PROTOCOL) try: - self.mc.put_object(bucket_name=self.BUCKET, object_name=cache_src, data=io.BytesIO(md), length=len(md)) + self.mc.put_object(bucket_name=global_config.remote_bucket, object_name=cache_src, data=io.BytesIO(md), length=len(md)) except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): self._increase_timeout_and_check() except error.RequestTimeTooSkewed: out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") - global_config.remote_cache = False + global_config.remote_cache_enable = False def _get_chmod(self, src): if hasattr(os, 'chmod'): @@ -90,7 +88,7 @@ def _get_cache(self, deps_hash, targets): for target in targets: f = hashlib.sha1(target.encode("ascii")).hexdigest() src = join(cache_src, f) - obj = self.mc.fget_object(bucket_name=self.BUCKET, object_name=src, file_path=target) + obj = self.mc.fget_object(bucket_name=global_config.remote_bucket, object_name=src, file_path=target) st_mode = int(obj.metadata["X-Amz-Meta-St_mode"]) self._set_chmod(target, st_mode) except KeyError: @@ -105,7 +103,7 @@ def _get_cache(self, deps_hash, targets): return False except error.RequestTimeTooSkewed: out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") - global_config.remote_cache = False + global_config.remote_cache_enable = False return False return True @@ -121,12 +119,12 @@ def _save_cache(self, deps_hash, targets): for target in targets: dst = join(cache_dst, hashlib.sha1(target.encode("ascii")).hexdigest()) file_attr = {"st_mode": self._get_chmod(target)} - self.mc.fput_object(bucket_name=self.BUCKET, object_name=dst, file_path=target, metadata=file_attr) + self.mc.fput_object(bucket_name=global_config.remote_bucket, object_name=dst, file_path=target, metadata=file_attr) except (urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.MaxRetryError, urllib3.exceptions.ProtocolError): self._increase_timeout_and_check() except error.RequestTimeTooSkewed: out.print_fail("Time on your host not configured currectlly, remote-cache is disabled") - global_config.remote_cache = False + global_config.remote_cache_enable = False finally: # fs_unlock(fd, lock_path) pass @@ -134,7 +132,7 @@ def _save_cache(self, deps_hash, targets): def get_cache_stats(self): bucket_size = 0 n_objects = 0 - for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): + for obj in self.mc.list_objects(bucket_name=global_config.remote_bucket, recursive=True): if obj.is_dir: continue bucket_size += obj.size @@ -142,6 +140,6 @@ def get_cache_stats(self): print(f"bucket size {int(bucket_size / 1024 / 1024)}MB, n_objects {n_objects}") def clear_bucket(self): - for obj in self.mc.list_objects(bucket_name=self.BUCKET, recursive=True): - self.mc.remove_object(bucket_name=self.BUCKET, object_name=obj.object_name) + for obj in self.mc.list_objects(bucket_name=global_config.remote_bucket, recursive=True): + self.mc.remove_object(bucket_name=global_config.remote_bucket, object_name=obj.object_name) self.get_cache_stats() \ No newline at end of file diff --git a/umake/config.py b/umake/config.py index b200dff..19e7c66 100644 --- a/umake/config.py +++ b/umake/config.py @@ -3,12 +3,6 @@ CONFIG_ENV_PREFIX = 'UMAKE_CONFIG_' -# Remote cache -MINIO_URL = os.environ.get(f'{CONFIG_ENV_PREFIX}MINIO_URL', "localhost:9000") -MINIO_ACCESS_KEY = os.environ.get(f'{CONFIG_ENV_PREFIX}MINIO_ACCESS_KEY', 'umake') -MINIO_SECRET_KEY = os.environ.get(f'{CONFIG_ENV_PREFIX}MINIO_SECRET_KEY', 'umakeumake') -MINIO_BUCKET_NAME = os.environ.get(f'{CONFIG_ENV_PREFIX}MINIO_BUCKET_NAME', "umake-build-cache") - # Local cache ROOT = os.environ.get(f'{CONFIG_ENV_PREFIX}_ROOT', os.getcwd()) UMAKE_BUILD_CACHE_MAX_SIZE_MB = int(os.environ.get(f'{CONFIG_ENV_PREFIX}LOCAL_CACHE_SIZE', '1500')) @@ -24,12 +18,19 @@ class Config: def __init__(self): self.json_file = None self.interactive_output = False - self.remote_cache = True self.local_cache = True self.targets = [] self.variant = "default" self.compile_commands = False self.verbose = True + self.remote_cache_config = True # how user configured + # the next is result of `remote_cache_config` and if configured + self.remote_cache_enable = False + self.remote_hostname = None + self.remote_access_key = None + self.remote_secret_key = None + self.remote_bucket = None + global_config = Config() \ No newline at end of file diff --git a/umake/umake b/umake/umake index 5d3ecba..9db911b 100755 --- a/umake/umake +++ b/umake/umake @@ -38,6 +38,7 @@ with Timer("done imports"): import umake.pywildcard as fnmatch from umake.cache.cache_mgr import CacheMgr + from umake.cache.minio_cache import MinioCache from umake.exceptions import * from umake.utils.fs import fs_lock, fs_unlock, join_paths, get_size_KB from umake import config @@ -636,7 +637,6 @@ class UMakeFileParser(): def should_line_parsing_stopped(in_variant, use_current_variant): return in_variant and not use_current_variant - for line_num, line in enumerate(self.load_file(join(workdir, umakefile)).splitlines()): try: foreach = False @@ -758,7 +758,7 @@ class UMakeFileParser(): raise RuntimeError(f"{line_num}: {line} \n can't parse this line") if should_line_parsing_stopped(in_variant, use_current_variant): continue - config_name, config_value = line[1:-1].split(":") + config_name, config_value = line[1:-1].split(":", 1) config_name = config_name.strip() config_value = config_value.strip() if config_name == "variant": @@ -774,6 +774,18 @@ class UMakeFileParser(): workdir = join(ROOT, config_value) elif config_name == "include": self.parse_file(config_value, workdir, in_variant, use_current_variant) + elif config_name == "remote-cache": + if global_config.remote_cache_config: + remote_type, hostname, access_key, secret_pass, bucket_name = config_value.split() + if remote_type == "minio": + global_config.remote_hostname = hostname + global_config.remote_access_key = access_key + global_config.remote_secret_key = secret_pass + global_config.remote_bucket = bucket_name + else: + raise RuntimeError(f"not supported remote cahce {remote_type}") + + global_config.remote_cache_enable = True else: raise RuntimeError(f"{line_num}: {line} \n can't parse this line") @@ -789,7 +801,6 @@ class UMakeFileParser(): class UMake: def __init__(self): - self.cache_mgr = CacheMgr() self.graph = None self.worker_continue = True # should wor self.worker_threads = list() @@ -1191,14 +1202,18 @@ class UMake: return try: - self._start_executer_threads() self._init_build_dirs() self.load_graph() self.scan_fs() # profiler.start() self.parse_cmd_files() # profiler.stop() - self.execute_graph() + try: + self._start_executer_threads() + self.cache_mgr = CacheMgr() + self.execute_graph() + finally: + self._exit_nicelly() # print(profiler.output_text(color=True, show_all=True)) self.dump_graph() if global_config.compile_commands: @@ -1214,8 +1229,6 @@ class UMake: os.sys.exit(-1) finally: fs_unlock(fd, lock_path) - self._exit_nicelly() - out.destroy() def show_target_details(self, target): target_fentry: FileEntry @@ -1374,7 +1387,7 @@ class UMake: global_config.json_file = args.json_file if args.no_remote_cache: - global_config.remote_cache = False + global_config.remote_cache_config = False if args.no_local_cache: global_config.local_cache = False @@ -1389,7 +1402,6 @@ class UMake: mc.clear_bucket() return - umake = UMake() if args.show_all_targets: self.load_graph() self.show_all_targets() @@ -1420,6 +1432,7 @@ class UMake: self.run() else: self.parse_args() + out.destroy() From 0f97661d6d2a0e3978616f0461af8af436c536b8 Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Sun, 15 Mar 2020 02:00:21 +0200 Subject: [PATCH 34/41] fix image version --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index e98ad75..068f22c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,7 +12,7 @@ steps: - "pip3 install --upgrade ." - "cd umake && pyflakes ." - "cd ../test && python3.6 test.py" - image: grisha85/umake:2 + image: grisha85/umake:3 pull: if-not-exists - name: coverage From 325436011c2ef2390b89542b103be301eff9a91b Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Sun, 15 Mar 2020 08:17:58 +0200 Subject: [PATCH 35/41] fix tests --- test/test.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/test.py b/test/test.py index 9ebcb8a..c0b2d56 100644 --- a/test/test.py +++ b/test/test.py @@ -584,8 +584,8 @@ def _start_remote_cache_minio(self): os.environ["MINIO_SECRET_KEY"] = "umakeumake" cmd = "minio server /data" server = Popen(cmd, shell=True) - time.sleep(2) - self.mc = Minio("172.17.0.2:9000",access_key="umake", secret_key="umakeumake", secure=False) + time.sleep(4) + self.mc = Minio("0.0.0.0:9000",access_key="umake", secret_key="umakeumake", secure=False) try: for obj in self.mc.list_objects(bucket_name=self.BUCKET_NAME, recursive=True): self.mc.remove_object(bucket_name=self.BUCKET_NAME, object_name=obj.object_name) @@ -598,7 +598,7 @@ def _start_remote_cache_minio(self): def test_remote_cache(self): minio_server = self._start_remote_cache_minio() - umake = f"[remote-cache:minio 172.17.0.2:9000 umake umakeumake {self.BUCKET_NAME}]\n" + umake = f"[remote-cache:minio 0.0.0.0:9000 umake umakeumake {self.BUCKET_NAME}]\n" umake += ": > touch f > f" self._compile(umake, remote_cache=True) From 96563e4bed3c3ac31c4970da32f2e8cdf3576f2f Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Thu, 19 Mar 2020 21:12:59 +0200 Subject: [PATCH 36/41] remote-cache: config env, config umakefile, read-only/read-write support local cache size: umakefile config, env --- doc/umakefile.md | 27 +++++++++++++++++-- test/test.py | 43 +++++++++++++++++++++++++++-- umake/cache/cache_mgr.py | 4 +-- umake/cache/fs_cache.py | 8 +++--- umake/colored_output.py | 42 +++++++++++++++++++---------- umake/config.py | 7 +++-- umake/umake | 58 +++++++++++++++++++++++++++++----------- 7 files changed, 149 insertions(+), 40 deletions(-) diff --git a/doc/umakefile.md b/doc/umakefile.md index 58701e7..5f63cd8 100644 --- a/doc/umakefile.md +++ b/doc/umakefile.md @@ -145,9 +145,32 @@ will open and parse `somedir/umakefile` in the current working dir context. #### `remote cache` Default: None +Environment: UMAKE_CONFIG_REMOTE_CACHE + configure remote cache ``` -[remote-cache: ] +[remote_cache: ] ``` -**remote-cache-type** - `minio` \ No newline at end of file +**remote-cache-type** - minio + +**hostname** - hostname:port + +**access-key** - access key (user name) + +**secret-key** - secret key (password) + +**bucketname** - bucketname + +**permission** - ro (read-only)/ rw (read/write) + + +#### `local cache size` +Default: 1500MB + +Environment: UMAKE_CONFIG_LOCAL_CACHE_SIZE + +configure local cache size +``` +[local_cache_size:] +``` \ No newline at end of file diff --git a/test/test.py b/test/test.py index c0b2d56..8da6395 100644 --- a/test/test.py +++ b/test/test.py @@ -598,14 +598,53 @@ def _start_remote_cache_minio(self): def test_remote_cache(self): minio_server = self._start_remote_cache_minio() - umake = f"[remote-cache:minio 0.0.0.0:9000 umake umakeumake {self.BUCKET_NAME}]\n" + umake = f"[remote_cache:minio 0.0.0.0:9000 umake umakeumake {self.BUCKET_NAME} rw]\n" umake += ": > touch f > f" self._compile(umake, remote_cache=True) self.mc.stat_object(self.BUCKET_NAME, "md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") + self.mc.remove_object(self.BUCKET_NAME, "md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") + self._rm(["f"]) + """ test env""" + os.environ["UMAKE_CONFIG_REMOTE_CACHE"] = f"minio 0.0.0.0:9000 umake umakeumake {self.BUCKET_NAME} rw" + umake = ": > touch f > f" + + self._compile(umake, remote_cache=True) + + self.mc.stat_object(self.BUCKET_NAME, "md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") + self.mc.remove_object(self.BUCKET_NAME, "md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") + self._rm(["f"]) + del os.environ["UMAKE_CONFIG_REMOTE_CACHE"] + + """ read only """ + umake = f"[remote_cache:minio 0.0.0.0:9000 umake umakeumake {self.BUCKET_NAME} ro]\n" + umake += ": > touch f > f" + self._compile(umake, remote_cache=True) + + with self.assertRaises(minio.error.NoSuchKey) as context: + self.mc.stat_object(self.BUCKET_NAME, "md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") + + """ no remote cache """ + self.mc.remove_object(self.BUCKET_NAME, "md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") + self._rm(["f"]) + umake = ": > touch f > f" + + with self.assertRaises(minio.error.NoSuchKey) as context: + self.mc.stat_object(self.BUCKET_NAME, "md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") + minio_server.terminate() - + def test_local_cache(self): + umake = f"[local_cache_size:100]\n" + umake += ": > touch f > f" + self._compile(umake, local_cache=True) + assert os.path.exists("env/.umake/build-cache/md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") == True + + umake = f"[local_cache_size:0]\n" + umake += ": > touch f > f" + self._compile(umake, local_cache=True) + assert os.path.exists("env/.umake/build-cache/md-48b67e8fe03dc99f08de9753e3a1dae34eb0b136") == False + if __name__ == '__main__': unittest.main() diff --git a/umake/cache/cache_mgr.py b/umake/cache/cache_mgr.py index 4310f19..a05f00a 100644 --- a/umake/cache/cache_mgr.py +++ b/umake/cache/cache_mgr.py @@ -30,7 +30,7 @@ def open_cache(self, cache_hash) -> MetadataCache: def save_cache(self, cache_hash, metadata_cache: MetadataCache): if global_config.local_cache: self.fs_cache.save_cache(cache_hash, metadata_cache) - if global_config.remote_cache_enable: + if global_config.remote_cache_enable and global_config.remote_write_enable: self.minio_cache.save_cache(cache_hash, metadata_cache) def _get_cache(self, deps_hash, targets): @@ -51,7 +51,7 @@ def _save_cache(self, deps_hash, targets, local_only=False): self.fs_cache._save_cache(deps_hash, targets) if local_only: return - if global_config.remote_cache_enable: + if global_config.remote_cache_enable and global_config.remote_write_enable: self.minio_cache._save_cache(deps_hash, targets) def gc(self): diff --git a/umake/cache/fs_cache.py b/umake/cache/fs_cache.py index a3e9990..d3648d2 100644 --- a/umake/cache/fs_cache.py +++ b/umake/cache/fs_cache.py @@ -5,10 +5,11 @@ from os.path import join from subprocess import check_output from .base_cache import MetadataCache -from umake.config import UMAKE_BUILD_CACHE_DIR, UMAKE_BUILD_CACHE_MAX_SIZE_MB +from umake.config import UMAKE_BUILD_CACHE_DIR from umake.colored_output import out from umake.utils.fs import fs_lock, fs_unlock, get_size_KB from umake.utils.timer import Timer +from umake.config import global_config class FsCache: @@ -74,9 +75,9 @@ def remove(path): with Timer("done cache gc") as timer: cache_dir_size_KB = get_size_KB(UMAKE_BUILD_CACHE_DIR) high_thresh = cache_dir_size_KB * 1.1 - low_tresh = UMAKE_BUILD_CACHE_MAX_SIZE_MB * 1024 * 0.6 + low_tresh = global_config.local_cache_size * 1024 * 0.6 - if UMAKE_BUILD_CACHE_MAX_SIZE_MB * 1024 > high_thresh: + if global_config.local_cache_size * 1024 > high_thresh: return fd, lock_path = fs_lock(UMAKE_BUILD_CACHE_DIR) @@ -84,6 +85,7 @@ def remove(path): out.print_fail(f"\tcahce: {UMAKE_BUILD_CACHE_DIR} is locked") return try: + cache_entry_size = 0 cache_dir = check_output(['ls', '-lru', '--sort=time', UMAKE_BUILD_CACHE_DIR]).decode('utf-8') for cache_line in cache_dir.splitlines(): try: diff --git a/umake/colored_output.py b/umake/colored_output.py index 9c302a6..71551af 100644 --- a/umake/colored_output.py +++ b/umake/colored_output.py @@ -1,8 +1,9 @@ import sys import threading from datetime import datetime -from umake.config import UMAKE_BUILD_CACHE_MAX_SIZE_MB, UMAKE_MAX_WORKERS, UMAKE_BUILD_CACHE_DIR +from umake.config import UMAKE_MAX_WORKERS, UMAKE_BUILD_CACHE_DIR from umake.utils.fs import get_size_KB +from umake.config import global_config MINIMAL_ENV = {"PATH": "/usr/bin"} @@ -69,31 +70,43 @@ def update_bar(self, force=False): with self.bar_lock: if force: self.n_calls = 0 - self._get_curr_cache_size() bright_blue = "\033[1;34;40m" bold = "\033[1;37;40m" diff = int((datetime.now() - self.start_time).total_seconds()) sys.stdout.write("\x1b[2K\r") print(f"\r{bright_blue} Workers {bcolors.ENDC}{bold}{self.n_active_workers}/{UMAKE_MAX_WORKERS}{bcolors.ENDC}", end="") - print(f"{bright_blue} Cache {bcolors.ENDC}{bold}{int(self.cache_current)}/{UMAKE_BUILD_CACHE_MAX_SIZE_MB}[MB] {bcolors.ENDC}", end="") - if self.n_works_done: - n_cache_hits = self.n_local_hits + self.n_remote_hits - cache_ratio = int(n_cache_hits / self.n_works_done * 100) - local_ratio = 0 - remote_ratio = 0 - if n_cache_hits: - local_ratio = int(self.n_local_hits / n_cache_hits * 100) - remote_ratio = int(self.n_remote_hits / n_cache_hits * 100) - print(f"{bright_blue} Cache Hits {bcolors.ENDC}{bold}{cache_ratio}% {bcolors.ENDC}", end="") - print(f"{bright_blue} Local/Remote {bcolors.ENDC}{bold}{local_ratio}%/{remote_ratio}% {bcolors.ENDC}", end="") - print(f"{bright_blue} Variant {bcolors.ENDC}{bold} {self.variant} {bcolors.ENDC}", end="") print(f"{bright_blue} Time {bcolors.ENDC}{bold} {diff}[sec] {bcolors.ENDC}", end="") print(f"{bold} {self.curr_job} {bcolors.ENDC}", end="") sys.stdout.flush() self.n_calls += 1 + def compilation_summary(self): + self.n_calls = 0 # for cache calculation + self._get_curr_cache_size() + + bold = "\033[1;37;40m" + bright_blue = "\033[1;34;40m" + permissions = "rw" if global_config.remote_write_enable else "ro" + print() + if global_config.remote_cache_enable: + print(f"{bright_blue} Remote URI {bcolors.ENDC}", end="") + print(f"{bold} {global_config.remote_hostname} ({permissions}) {bcolors.ENDC}", end="") + if self.n_works_done: + n_cache_hits = self.n_local_hits + self.n_remote_hits + cache_ratio = int(n_cache_hits / self.n_works_done * 100) + local_ratio = 0 + remote_ratio = 0 + if n_cache_hits: + local_ratio = int(self.n_local_hits / n_cache_hits * 100) + remote_ratio = int(self.n_remote_hits / n_cache_hits * 100) + print(f"{bright_blue} Cache Hits {bcolors.ENDC}{bold}{cache_ratio}% {bcolors.ENDC}", end="") + print(f"{bright_blue} Local/Remote {bcolors.ENDC}{bold}{local_ratio}%/{remote_ratio}% {bcolors.ENDC}", end="") + print(f"{bright_blue} Variant {bcolors.ENDC}{bold} {self.variant} {bcolors.ENDC}", end="") + print(f"{bright_blue} Cache {bcolors.ENDC}{bold}{int(self.cache_current)}/{global_config.local_cache_size}[MB]{bcolors.ENDC}", end="") + sys.stdout.flush() + def print_colored(self, out_str, color=""): if is_ineractive_terminal: sys.stdout.write("\x1b[2K\r") @@ -124,6 +137,7 @@ def print(self, s): def destroy(self): self.update_bar() + self.compilation_summary() print() diff --git a/umake/config.py b/umake/config.py index 19e7c66..fc6327b 100644 --- a/umake/config.py +++ b/umake/config.py @@ -5,7 +5,7 @@ # Local cache ROOT = os.environ.get(f'{CONFIG_ENV_PREFIX}_ROOT', os.getcwd()) -UMAKE_BUILD_CACHE_MAX_SIZE_MB = int(os.environ.get(f'{CONFIG_ENV_PREFIX}LOCAL_CACHE_SIZE', '1500')) + # General UMAKE_MAX_WORKERS = 8 @@ -18,12 +18,14 @@ class Config: def __init__(self): self.json_file = None self.interactive_output = False - self.local_cache = True self.targets = [] self.variant = "default" self.compile_commands = False self.verbose = True + self.local_cache = True + self.local_cache_size = 1500 + self.remote_cache_config = True # how user configured # the next is result of `remote_cache_config` and if configured self.remote_cache_enable = False @@ -31,6 +33,7 @@ def __init__(self): self.remote_access_key = None self.remote_secret_key = None self.remote_bucket = None + self.remote_write_enable = False global_config = Config() \ No newline at end of file diff --git a/umake/umake b/umake/umake index 9db911b..96ffbae 100755 --- a/umake/umake +++ b/umake/umake @@ -1,6 +1,6 @@ #!/usr/bin/python3.6 import time -from umake.colored_output import InteractiveOutput, bcolors, UMAKE_BUILD_CACHE_MAX_SIZE_MB, MINIMAL_ENV, format_text +from umake.colored_output import InteractiveOutput, bcolors, MINIMAL_ENV, format_text from umake.colored_output import out from umake.utils.timer import Timer @@ -43,7 +43,7 @@ with Timer("done imports"): from umake.utils.fs import fs_lock, fs_unlock, join_paths, get_size_KB from umake import config from umake.config import UMAKE_DB, UMAKE_MAX_WORKERS, ROOT, UMAKE_ROOT_DIR, UMKAE_TMP_DIR, UMAKE_BUILD_CACHE_DIR - from umake.config import global_config + from umake.config import global_config, CONFIG_ENV_PREFIX from umake.cache.base_cache import MetadataCache @@ -617,6 +617,7 @@ class UMakeFileParser(): :foreach *.c > gcc {filename} -o {target} > {basename}.o :foreach | sdf > gcc {filename} -o {target} > {basename}.o """ + def __init__(self, filename): self.fielanme = filename self.cmds_template: [CmdTemplate] = [] @@ -624,19 +625,55 @@ class UMakeFileParser(): self.load_file(filename) self.globals_vars = dict() self.macros = dict() + self.configs = dict() self.parse_file(filename) + self._resolve_configs() + + def _get_config(self, config_name): + env_config_name = f"{CONFIG_ENV_PREFIX}{config_name.upper()}" + config_value = os.getenv(env_config_name, self.configs.get(config_name, False)) + try: + del self.configs[config_name] + except KeyError: + pass + return config_value + + def _resolve_configs(self): + config_value = self._get_config("remote_cache") + if config_value: + if global_config.remote_cache_config: + remote_type, hostname, access_key, secret_pass, bucket_name, permissions = config_value.split() + if permissions not in ['rw', 'ro']: + raise RuntimeError(f"not supported permission {permissions}, supported are ['rw', 'ro']") + if permissions == "rw": + global_config.remote_write_enable = True + if remote_type == "minio": + global_config.remote_hostname = hostname + global_config.remote_access_key = access_key + global_config.remote_secret_key = secret_pass + global_config.remote_bucket = bucket_name + global_config.remote_cache_enable = True + else: + raise RuntimeError(f"not supported remote cahce {remote_type}") + + config_value = self._get_config("local_cache_size") + if config_value: + global_config.local_cache_size = int(config_value) + + if self.configs: + RuntimeError(f"unsupported config: {self.configs}") def load_file(self, filename): with open(filename, mode="r") as umakefile: return umakefile.read() def parse_file(self, umakefile, workdir=ROOT, in_variant=False, use_current_variant=False): - if workdir is None: workdir = ROOT def should_line_parsing_stopped(in_variant, use_current_variant): return in_variant and not use_current_variant + for line_num, line in enumerate(self.load_file(join(workdir, umakefile)).splitlines()): try: foreach = False @@ -774,18 +811,9 @@ class UMakeFileParser(): workdir = join(ROOT, config_value) elif config_name == "include": self.parse_file(config_value, workdir, in_variant, use_current_variant) - elif config_name == "remote-cache": - if global_config.remote_cache_config: - remote_type, hostname, access_key, secret_pass, bucket_name = config_value.split() - if remote_type == "minio": - global_config.remote_hostname = hostname - global_config.remote_access_key = access_key - global_config.remote_secret_key = secret_pass - global_config.remote_bucket = bucket_name - else: - raise RuntimeError(f"not supported remote cahce {remote_type}") - - global_config.remote_cache_enable = True + else: + self.configs[config_name] = config_value + else: raise RuntimeError(f"{line_num}: {line} \n can't parse this line") From 3ec0a57a1f233b8994be73dd27903dcc6c5ec81f Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Thu, 19 Mar 2020 21:20:54 +0200 Subject: [PATCH 37/41] readme: add full dep list --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 50b11b3..53b2284 100644 --- a/README.md +++ b/README.md @@ -36,12 +36,16 @@ Install platform: linux (tested on ubuntu 18.04) -dependencies: strace, bash +dependencies: strace, bash. python3 + +ubuntu packages(apt-get install): build-essential python-dev libxml2 libxml2-dev zlib1g-dev + +for more details check the `Dockerfile` how to create environment for umake. ``` git clone https://github.com/grisha85/umake.git cd umake -pip install . +pip3 install . ``` Running example From 2f7c99ae11bf35899cf8ed53b3ce0bad92a3560a Mon Sep 17 00:00:00 2001 From: Grisha Freilikhman Date: Thu, 19 Mar 2020 22:36:12 +0200 Subject: [PATCH 38/41] support multiple variants --- doc/umakefile.md | 6 ++++-- test/test.py | 23 ++++++++++++++------- umake/config.py | 4 ++-- umake/umake | 54 +++++++++++++++++++++++++++++++++--------------- 4 files changed, 59 insertions(+), 28 deletions(-) diff --git a/doc/umakefile.md b/doc/umakefile.md index 5f63cd8..105454b 100644 --- a/doc/umakefile.md +++ b/doc/umakefile.md @@ -110,9 +110,11 @@ Return to root #### `variant` -Defult: "default" +Defult: ["default"] -The ability to generate diffrent variants from the same sources. For example: debug/release compilations. variant `terminated` with a `newline` +Note: multiple variants supported + +The ability to generate diffrent variants from the same sources. For example: debug/release compilations. Variants are `terminated` with a `newline`. Code that is not part of a variant is always running (common to all variants). ``` # varaint is terminated with newline [variant:default] diff --git a/test/test.py b/test/test.py index 8da6395..a279155 100644 --- a/test/test.py +++ b/test/test.py @@ -99,11 +99,12 @@ def _check_file_not_exists(self, path): for p in path: self.assertFalse(os.path.isfile(os.path.join("env", p))) - def _compile(self, umake, variant="", targets=[], should_fail=False, should_output=True, local_cache=False, remote_cache=False): + def _compile(self, umake, variant=[], targets=[], should_fail=False, should_output=True, local_cache=False, remote_cache=False): with open('env/UMakefile', "w") as umakefile: umakefile.write(umake) - if variant != "": - variant = f"--variant {variant}" + variant_config = "" + if variant: + variant_config = f'--variant {" --variant ".join(variant)}' targets_str = "" local_cache_conf = "--no-local-cache" @@ -119,7 +120,7 @@ def _compile(self, umake, variant="", targets=[], should_fail=False, should_outp try: def call(): - return check_output(f"{COVEARAGE_CMD} {UMAKE_BIN} {remote_cache_conf} {local_cache_conf} {variant} {targets_str}", cwd="env/", shell=True).decode("utf-8") + return check_output(f"{COVEARAGE_CMD} {UMAKE_BIN} {remote_cache_conf} {local_cache_conf} {variant_config} {targets_str}", cwd="env/", shell=True).decode("utf-8") if should_output: print(call()) else: @@ -461,21 +462,29 @@ def test_change_working_dir(self): def test_variant(self): umake = "[variant:default]\n" umake += "$file = a\n" + umake += "!create(file1) : ../helper_file_create.sh something $file1 > $file1\n" + umake += ": > !create($file)\n" umake += "\n" umake += "[variant:test]\n" umake += "$file = b\n" - umake += "\n" umake += "!create(file1) : ../helper_file_create.sh something $file1 > $file1\n" umake += ": > !create($file)\n" + umake += "\n" self._compile(umake) self._check_file_exists(["a"]) + self._check_file_not_exists(["b"]) - self._compile(umake, variant="test") + self._compile(umake, variant=["test"]) self._check_file_exists(["b"]) self._check_file_not_exists(["a"]) - self._compile(umake, variant="test1", should_fail=True) + self._compile(umake, variant=["test1"], should_fail=True) + + """ test multiple variants """ + self._compile(umake, variant=["default", "test"]) + self._check_file_exists(["a"]) + self._check_file_exists(["b"]) def test_compiling_specific_target(self): umake = ": > ../helper_file_create.sh something a > a\n" diff --git a/umake/config.py b/umake/config.py index fc6327b..1475e30 100644 --- a/umake/config.py +++ b/umake/config.py @@ -19,9 +19,9 @@ def __init__(self): self.json_file = None self.interactive_output = False self.targets = [] - self.variant = "default" + self.variant = {"default"} self.compile_commands = False - self.verbose = True + self.verbose = False self.local_cache = True self.local_cache_size = 1500 diff --git a/umake/umake b/umake/umake index 96ffbae..91ba78e 100755 --- a/umake/umake +++ b/umake/umake @@ -108,6 +108,9 @@ class CmdExecuter: def make(self, cache_mgr: CacheMgr, is_exiting): tmp_unique_name_full_path = join(UMKAE_TMP_DIR, str(uuid.uuid1())) with Timer(self.cmd.compile_show(), color=bcolors.WARNING) as timer: + if global_config.verbose: + timer.add_log_line(self.cmd.cmd) + if self.target: cache_type = cache_mgr._get_cache(self.deps_hash, self.target) if cache_type > CacheMgr.CacheType.NOT_CACHED: @@ -626,8 +629,10 @@ class UMakeFileParser(): self.globals_vars = dict() self.macros = dict() self.configs = dict() + self.parsed_variants = {"default"} self.parse_file(filename) self._resolve_configs() + self._check_variants_usage() def _get_config(self, config_name): env_config_name = f"{CONFIG_ENV_PREFIX}{config_name.upper()}" @@ -637,6 +642,11 @@ class UMakeFileParser(): except KeyError: pass return config_value + + def _check_variants_usage(self): + not_exists_varaints = global_config.variant.difference(self.parsed_variants) + if not_exists_varaints: + raise CmdFailedErr(f"variant\s {not_exists_varaints} not exists, supported: {self.parsed_variants}") def _resolve_configs(self): config_value = self._get_config("remote_cache") @@ -644,7 +654,7 @@ class UMakeFileParser(): if global_config.remote_cache_config: remote_type, hostname, access_key, secret_pass, bucket_name, permissions = config_value.split() if permissions not in ['rw', 'ro']: - raise RuntimeError(f"not supported permission {permissions}, supported are ['rw', 'ro']") + raise CmdFailedErr(f"not supported permission '{permissions}', supported are ['rw', 'ro']") if permissions == "rw": global_config.remote_write_enable = True if remote_type == "minio": @@ -654,14 +664,14 @@ class UMakeFileParser(): global_config.remote_bucket = bucket_name global_config.remote_cache_enable = True else: - raise RuntimeError(f"not supported remote cahce {remote_type}") + raise CmdFailedErr(f"not supported remote cahce '{remote_type}''") config_value = self._get_config("local_cache_size") if config_value: global_config.local_cache_size = int(config_value) if self.configs: - RuntimeError(f"unsupported config: {self.configs}") + CmdFailedErr(f"unsupported config: '{self.configs}''") def load_file(self, filename): with open(filename, mode="r") as umakefile: @@ -714,7 +724,7 @@ class UMakeFileParser(): else: send_arg_value = sent_arg except KeyError: - raise RuntimeError(f"{umakefile}:{line_num} macro {macro_name} called with not exists arg: {macro_args_sent}") + raise CmdFailedErr(f"{umakefile}:{line_num} macro {macro_name} called with not exists arg: {macro_args_sent}") macro_body = macro_body.replace(in_macro_args, send_arg_value) line = line.replace(macro_call, macro_body) @@ -746,7 +756,7 @@ class UMakeFileParser(): source_fmt = sources_cand[1:deps_index] if workdir: if not os.path.isdir(workdir): - RuntimeError(f"path is not directory {workdir}") + CmdFailedErr(f"path is not directory {workdir}") cmd_root = workdir else: cmd_root = ROOT @@ -784,7 +794,7 @@ class UMakeFileParser(): try: self.globals_vars[var_name.strip()] += f" {var_body.strip()}" except KeyError: - raise RuntimeError(f"{line_num}: {line}, var {var_name.strip()} was not declared") + raise CmdFailedErr(f"{line_num}: {line}, var {var_name.strip()} was not declared") except ValueError: var_name, var_body = line.split("=", 1) for var_to_replace in find_between(var_body, "$", " "): @@ -792,7 +802,7 @@ class UMakeFileParser(): self.globals_vars[var_name.strip()] = var_body.strip() elif line[0] == "[": if line[-1] != "]": - raise RuntimeError(f"{line_num}: {line} \n can't parse this line") + raise CmdFailedErr(f"{line_num}: {line} \n can't parse this line") if should_line_parsing_stopped(in_variant, use_current_variant): continue config_name, config_value = line[1:-1].split(":", 1) @@ -800,9 +810,10 @@ class UMakeFileParser(): config_value = config_value.strip() if config_name == "variant": if in_variant: - raise RuntimeError(f"{line_num}: {line} \n cannot configure variant in variant") + raise CmdFailedErr(f"{line_num}: {line} \n cannot configure variant in variant") in_variant = True - if global_config.variant == config_value: + self.parsed_variants.add(config_value) + if config_value in global_config.variant: use_current_variant = True elif config_name == "workdir": if config_value == "/": @@ -813,8 +824,6 @@ class UMakeFileParser(): self.parse_file(config_value, workdir, in_variant, use_current_variant) else: self.configs[config_name] = config_value - - else: raise RuntimeError(f"{line_num}: {line} \n can't parse this line") @@ -989,7 +998,7 @@ class UMake: if global_config.targets: all_targets_exists = any(target in all_targets for target in global_config.targets) if not all_targets_exists: - raise RuntimeError(f"target not exist {global_config.targets}") + raise CmdFailedErr(f"target not exist {global_config.targets}") def executer_thread(self): cache_mgr = CacheMgr() @@ -1248,7 +1257,8 @@ class UMake: self.create_compilation_database() self.cache_gc() out.update_bar(force=True) - except CmdFailedErr: + except CmdFailedErr as e: + out.print_fail(e) os.sys.exit(-1) except Exception as e: import traceback @@ -1398,11 +1408,18 @@ class UMake: parser.add_argument('--remote-cache-delete', action='store_true', dest="remote_cache_delete", help="WARNING: delete all remote cache objects") - parser.add_argument('-v', '--variant', action='store', dest="variant", + parser.add_argument('-v', '--variant', + action='append', + type=str, + dest="variant", + default=[], help="compile with diffrent variants") parser.add_argument('--clean', action='store_true', dest="clean", help="clean umake file, with all targets") + + parser.add_argument('--verbose', action='store_true', dest="verbose", + help="show verbose compilation") parser.add_argument('--compile-commands', action='store_true', dest="compile_commands", help="Create compile_commands.json file with info on the build") @@ -1411,6 +1428,9 @@ class UMake: global_config.compile_commands = args.compile_commands + if args.verbose: + global_config.verbose = args.verbose + if args.json_file: global_config.json_file = args.json_file @@ -1435,8 +1455,8 @@ class UMake: self.show_all_targets() if args.variant: - global_config.variant = args.variant - out.variant = global_config.variant + global_config.variant = set(args.variant) + out.variant = " ".join(global_config.variant) if args.show_parsed_umakefile: self.show_parsed_umakefile() @@ -1446,7 +1466,7 @@ class UMake: self.load_graph() self.clean() return - + if args.details: args.targets = [join(ROOT, t) + "**" for t in args.targets] self.show_target_details_run(args.targets) From f2686d1206b0f9e532b9e522a28532d8b7269d02 Mon Sep 17 00:00:00 2001 From: Omer Shamash Date: Mon, 20 Apr 2020 16:19:11 +0000 Subject: [PATCH 39/41] Add support for creat syscall (example: tar, dpkg) --- umake/umake | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/umake/umake b/umake/umake index 91ba78e..feff15f 100755 --- a/umake/umake +++ b/umake/umake @@ -88,6 +88,18 @@ class CmdExecuter: path = raw_path.split('"')[1] return self._check_in_root(path) + def _parse_creat(self, raw_path, args): + """ + 1234 creat("/home/umake-user/debian-example/umake.deb", O_RDONLY|O_CLOEXEC) = 3 + 1234 creat("tar_file.tar", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) + """ + rc_index = 5 if args[4] == "=" else 4 + rc = int(args[rc_index]) + if not rc >= 0: + return None + path = raw_path.split('"')[1] + return self._check_in_root(path) + def _parse_openat(self, raw_path, args): """ 21456 openat(AT_FDCWD, "/proc/sys/net/core/somaxconn", O_RDONLY|O_CLOEXEC) = 3 @@ -122,8 +134,8 @@ class CmdExecuter: self.is_ok = True self.is_from_cache = cache_type return - strace_cmd = f"strace -o{tmp_unique_name_full_path} -f -e open,openat /bin/bash -c '{self.cmd.cmd}'" - self.proc = Popen(strace_cmd, env=MINIMAL_ENV, shell=True, stdout=PIPE, stderr=PIPE, cwd=self.cmd.cmd_root) + strace_cmd = f"strace -o{tmp_unique_name_full_path} -f -e creat,open,openat /bin/bash -c '{self.cmd.cmd}'" + self.proc = Popen(strace_cmd, env=os.environ, shell=True, stdout=PIPE, stderr=PIPE, cwd=self.cmd.cmd_root) while True: try: @@ -161,12 +173,14 @@ class CmdExecuter: for line in strace_output.readlines(): args = line.split() raw_path = args[1] - if not (raw_path.startswith('open(') or raw_path.startswith('openat(')): - continue if raw_path.startswith('open('): full_path = self._parse_open(raw_path, args) - else: + elif raw_path.startswith('openat('): full_path = self._parse_openat(raw_path, args) + elif raw_path.startswith('creat('): + full_path = self._parse_creat(raw_path, args) + else: + continue if full_path is None: continue From a9bc218260367f0ffdb63a26fa6e9ad93b61c975 Mon Sep 17 00:00:00 2001 From: Omer Shamash Date: Fri, 8 May 2020 14:43:59 +0000 Subject: [PATCH 40/41] UMAKE: Fix compile_commands.json data --- umake/umake | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/umake/umake b/umake/umake index feff15f..a70dd92 100755 --- a/umake/umake +++ b/umake/umake @@ -297,13 +297,14 @@ class Line: class Cmd: - def __init__(self, cmd, dep, manual_deps, target, line, cmd_root): + def __init__(self, cmd, dep, manual_deps, target, line, cmd_root, source): self.cmd = cmd self.dep = dep self.manual_deps = manual_deps self.conf_deps = set(dep) self.target: set = target self.cmd_root = cmd_root + self.source = source self.line: Line = line @@ -501,13 +502,13 @@ class CmdTemplate: basename=os.path.basename(full_path), noext=noext, target=target) - self.cmds.append(Cmd(cmd, deps, manual_deps, targets, self.line, self.root)) + self.cmds.append(Cmd(cmd, deps, manual_deps, targets, self.line, self.root, full_path)) else: cmd = self.cmd_fmt.format(filename=full_path, dir=dirname, basename=os.path.basename(full_path), noext=noext) - self.cmds.append(Cmd(cmd, deps, manual_deps, {}, self.line, self.root)) + self.cmds.append(Cmd(cmd, deps, manual_deps, {}, self.line, self.root, full_path)) def _find_target_in_all_targets(self, target_fmt, all_targets, found_targets): wild_card_exists = False @@ -607,7 +608,7 @@ class CmdTemplate: target=" ".join(sorted(targets))) deps.update(sources) deps.update(generated_sources) - self.cmds.append(Cmd(cmd, deps, manual_deps, targets, self.line, self.root)) + self.cmds.append(Cmd(cmd, deps, manual_deps, targets, self.line, self.root, full_path)) def find_between(string, token_start, token_end): @@ -1218,14 +1219,11 @@ class UMake: if node.entry_type != FileEntry.EntryType.CMD: continue - # Note that a single command might have multiple targets. - # Each target is a different file, thus it should be a different entry. - for cur_file in node.data.target: - cmds.append({ - 'directory': '/', - 'command': str(node.data.cmd), - 'file': str(cur_file), - }) + cmds.append({ + 'directory': '/', + 'command': str(node.data.cmd), + 'file': str(node.data.source), + }) import json with open('compile_commands.json', 'w') as db_file: From 13bf23f3468aab745bde1573166f3c8a42aa1d31 Mon Sep 17 00:00:00 2001 From: oschwartz-dn <59393920+oschwartz-dn@users.noreply.github.com> Date: Wed, 5 May 2021 17:49:24 +0300 Subject: [PATCH 41/41] Fix: broken Drivenets blog link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53b2284..e63b382 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ This section includes link to various places around the web that reason about um We believe that by reviewing questions and opinions that other people wrote about umake one can learn more about it. So without further ado is here is the list: -* [DriveNets blog](https://drivenets.com/blog/the-inside-story-of-how-we-optimized-our-own-build-system/) +* [DriveNets blog](https://drivenets.com/blog/technology-developments/the-inside-story-of-how-we-optimized-our-own-build-system/) * [Reddit r/bazel](https://www.reddit.com/r/bazel/comments/fa084s/how_we_optimised_our_build_system_using_umake/) * [Reddit r/cpp](https://www.reddit.com/r/cpp/comments/f9yjxn/how_we_optimised_our_build_system_using_umake/) * [Reddit r/gcc](https://www.reddit.com/r/gcc/comments/faiqum/how_we_optimised_our_build_system_using_umake/)