dev #10
|  | @ -33,7 +33,7 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: | |||
|     # Construct healthcheck stage | ||||
|     healthcheck_stage = get_healthcheck_config(repo_conf) | ||||
|     result_conf.stage.stages.append(healthcheck_stage) | ||||
|     cached: list[str] = [] | ||||
|     cached: List[str] = [] | ||||
|     # Convert each stage in the task configuration | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 | ||||
|     for task_stage in task_conf.stages: | ||||
|         executor_with_config, cached = get_executorWithConfig(task_stage, cached) | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ class CmdFile(BaseModel): | |||
|     content: Optional[str] = None | ||||
|     file_id: Optional[str] = Field(None, serialization_alias="fileId") | ||||
|     name: Optional[str] = None | ||||
|     max: Optional[int] = 40 * 1024 * 1024 | ||||
|     max: Optional[int] = 400 * 1024 * 1024 | ||||
|     symlink: Optional[str] = None | ||||
|     stream_in: bool = Field(False, serialization_alias="streamIn") | ||||
|     stream_out: bool = Field(False, serialization_alias="streamOut") | ||||
|  | @ -24,7 +24,7 @@ class Cmd(BaseModel): | |||
|     cpu_limit: int = Field(4 * 1000000000000, serialization_alias="cpuLimit") | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  default value too large, should be 1s 128MB default value too large, should be 1s 128MB 
				
					
						李衍志523370910113
						commented  will fix later, we need to hold some test I reckon? will fix later, we need to hold some test I reckon? 
				
					
						张泊明518370910136
						commented  no no 
				
					
						李衍志523370910113
						commented  @bomingzh fixed @bomingzh fixed | ||||
|     real_cpu_limit: int = Field(0, serialization_alias="realCpuLimit") | ||||
|     clock_limit: int = Field(8 * 1000000000000, serialization_alias="clockLimit") | ||||
|     memory_limit: int = Field(80 * 1024 * 1024, serialization_alias="memoryLimit") | ||||
|     memory_limit: int = Field(800 * 1024 * 1024, serialization_alias="memoryLimit") | ||||
|     stack_limit: int = Field(0, serialization_alias="stackLimit") | ||||
|     proc_limit: int = Field(50, serialization_alias="procLimit") | ||||
|     proc_limit: int = Field(50, serialization_alias="procLimit") | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  unit? unit? 
				
					
						李衍志523370910113
						commented  I think  I think `timeparse` and `humanfriendly` would deal wth that? 
				
					
						李衍志523370910113
						commented  resolved. resolved. | ||||
|  | @ -54,7 +54,7 @@ class OptionalCmd(BaseModel): | |||
|     real_cpu_limit: Optional[int] = Field(None, serialization_alias="realCpuLimit") | ||||
|     clock_limit: Optional[int] = Field(8 * 1000000000000, serialization_alias="clockLimit") | ||||
|     memory_limit: Optional[int] = Field( | ||||
|         80 * 1024 * 1024, serialization_alias="memoryLimit" | ||||
|         800 * 1024 * 1024, serialization_alias="memoryLimit" | ||||
|     ) | ||||
|     stack_limit: Optional[int] = Field(None, serialization_alias="stackLimit") | ||||
|     proc_limit: Optional[int] = Field(50, serialization_alias="procLimit") | ||||
|  |  | |||
|  | @ -40,10 +40,10 @@ class Files(BaseModel): | |||
| 
 | ||||
| 
 | ||||
| class Limit(BaseModel): | ||||
|     mem: Optional[int] = 4 | ||||
|     cpu: Optional[int] = 4 | ||||
|     stderr: Optional[int] = 4 | ||||
|     stdout: Optional[int] = 4 | ||||
|     mem: Optional[int] = 800 | ||||
|     cpu: Optional[int] = 1000 | ||||
|     stderr: Optional[int] = 800 | ||||
|     stdout: Optional[int] = 800 | ||||
| 
 | ||||
| 
 | ||||
| class Stage(BaseModel): | ||||
|  |  | |||
|  | @ -47,8 +47,7 @@ def get_healthcheck_cmd(repo_conf: repo.Config) -> result.Cmd: | |||
|             immutable_files = immutable_files + name + " " | ||||
|         else: | ||||
|             immutable_files = immutable_files + name + "," | ||||
|     # FIXME: need to make solution and make things easier to edit with global scope | ||||
|     chore = f"./repo-health-checker -root=. " | ||||
|     chore = f"/tmp/repo-health-checker -root=. " | ||||
|     args = "" | ||||
|     args = args + chore | ||||
|     args = args + repo_size | ||||
|  | @ -63,7 +62,7 @@ def get_healthcheck_cmd(repo_conf: repo.Config) -> result.Cmd: | |||
|         args=shlex.split(args), | ||||
|         copy_in={ | ||||
|             # This path is hardcoded | ||||
|             f"./repo-health-checker": result.CmdFile( | ||||
|             f"/tmp/repo-health-checker": result.CmdFile( | ||||
|                 src="/usr/local/bin/repo-health-checker" | ||||
|             ) | ||||
|         }, | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| import shlex | ||||
| 
					
					jon-lee marked this conversation as resolved
					
				 
				
					
						张泊明518370910136
						commented  Path should not be relative to  Path should not be relative to `JOJ3_CONFIG_ROOT` in this file, should be relative to `task.toml` dir 
				
					
						李衍志523370910113
						commented  I reckon you said things is relative to  I reckon you said things is relative to `JOJ3_CONFIG_ROOT` in JTC before. we have a `task.type` in `task.toml` to mend the path 
				
					
						张泊明518370910136
						commented  
 `config.path` is relative to `JOJ3_CONFIG_ROOT`. 
				
					
						李衍志523370910113
						commented  could you explain further? I m not quite sure my understanding is clear. could you explain further? I m not quite sure my understanding is clear. 
				
					
						张泊明518370910136
						commented  In  In `joj3_config_generator/models/task.py`, `Config.path` is relative to `JOJ3_CONFIG_ROOT`, so `task.toml` will located at `JOJ3_CONFIG_ROOT / task_conf.path` in JTC. | ||||
| from typing import Tuple | ||||
| from typing import Tuple, List | ||||
| 
					
					jon-lee marked this conversation as resolved
					
				 
				
					
						张泊明518370910136
						commented  Some  Some `with_.update` is still using raw dict, not model with `model_dump`. | ||||
| 
 | ||||
| from joj3_config_generator.models import result, task | ||||
| 
 | ||||
|  | @ -29,8 +29,8 @@ def get_conf_stage( | |||
| 
 | ||||
| 
 | ||||
| def get_executorWithConfig( | ||||
|     task_stage: task.Stage, cached: list[str] | ||||
| ) -> Tuple[result.ExecutorWith, list[str]]: | ||||
|     task_stage: task.Stage, cached: List[str] | ||||
| ) -> Tuple[result.ExecutorWith, List[str]]: | ||||
|     file_import = ( | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  should loop through  should loop through `conf_stage.parsers` here and update the `with` field according to the parser name. 
				
					
						李衍志523370910113
						commented  I think its already implemented in each of the  I think its already implemented in each of the `fix_parsers` functions 
				
					
						张泊明518370910136
						commented  No, do not find the parser in the  No, do not find the parser in the `fix_xxx` function. Instead, iterate through the parsers here and decide how to fill in the `with`. 
				
					
						李衍志523370910113
						commented  resolved. resolved. 
				
					
						张泊明518370910136
						commented  Use a dict to store parser name, field, function to process. Use a dict to store parser name, field, function to process.
```
    process_dict: Dict[
        str, Tuple[Callable[[result.ParserConfig, BaseModel], None], BaseModel]
    ] = {
        "clangtidy": (fix_keyword, task_stage.clangtidy),
        "keyword": (fix_keyword, task_stage.keyword),
        "diff": (fix_diff, task_stage.diff),
    }
    for i, parser in enumerate(task_stage.parsers):
        if parser in process_dict:
            func, parser_model = process_dict[parser]
            func(conf_stage.parsers[i], parser_model)
``` 
				
					
						李衍志523370910113
						commented  resolved. resolved. | ||||
|         task_stage.files.import_ | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  Do we need to support both kinds of names? Do we need to support both kinds of names? 
				
					
						李衍志523370910113
						commented  probably yes, since it is easy for new ta to type it wrong probably yes, since it is easy for new ta to type it wrong 
				
					
						张泊明518370910136
						commented  parsers name should be a str enum, force them to use the correct names parsers name should be a str enum, force them to use the correct names 
				
					
						李衍志523370910113
						commented  ok, then removed. ok, then removed. | ||||
|         if hasattr(task_stage, "files") | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  underscore underscore 
				
					
						李衍志523370910113
						commented  fixed fixed | ||||
|  | @ -58,39 +58,39 @@ def get_executorWithConfig( | |||
|                 file: result.CmdFile(src=f"/home/tt/.config/joj/{file}") | ||||
|                 for file in copy_in_files | ||||
|             }, | ||||
|             copy_in_cached={file: file for file in copy_in_files}, | ||||
|             copy_in_cached={file: file for file in cached}, | ||||
|             copy_out_cached=file_export if file_export is not None else [], | ||||
|             cpu_limit=( | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  not necessary not necessary 
				
					
						李衍志523370910113
						commented  resolved. resolved. | ||||
|                 task_stage.limit.cpu * 1_000_000_000 | ||||
|                 task_stage.limit.cpu * 1_000_000_000_000 | ||||
|                 if task_stage.limit is not None and task_stage.limit.cpu is not None | ||||
|                 else 4 * 1_000_000_000 | ||||
|                 else 80 * 1_000_000_000_000 | ||||
|             ), | ||||
|             clock_limit=( | ||||
|                 2 * task_stage.limit.cpu * 1_000_000_000 | ||||
|                 2 * task_stage.limit.cpu * 1_000_000_000_000 | ||||
|                 if task_stage.limit is not None and task_stage.limit.cpu is not None | ||||
|                 else 8 * 1_000_000_000 | ||||
|                 else 80 * 1_000_000_000_000 | ||||
|             ), | ||||
|             memory_limit=( | ||||
|                 task_stage.limit.mem * 1_024 * 1_024 | ||||
|                 if task_stage.limit is not None and task_stage.limit.mem is not None | ||||
|                 else 4 * 1_024 * 1_024 | ||||
|                 else 800 * 1_024 * 1_024 | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  do not use  do not use `getattr`, visit the field explictly 
				
					
						李衍志523370910113
						commented  resolved. resolved. | ||||
|             ), | ||||
|             stderr=result.CmdFile( | ||||
|                 name="stderr", | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  is there a conclusion now? or it should have a prefix  is there a conclusion now? or it should have a prefix `TODO: `? 
				
					
						李衍志523370910113
						commented  so far works fine on 280 sides, indicating that pbs in 151 can be resolved with proper guidelines I think. so far works fine on 280 sides, indicating that pbs in 151 can be resolved with proper guidelines I think. 
				
					
						张泊明518370910136
						commented  ok, then add that prefix ok, then add that prefix | ||||
|                 max=( | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  is it in the correct unit? is it in the correct unit?
Give all the fields in `Limit` a default value and make it non optional in task_stage.limit 
				
					
						李衍志523370910113
						commented  resolved resolved | ||||
|                     task_stage.limit.stderr * 1_000_000_000 | ||||
|                     task_stage.limit.stderr * 1_000_000_000_000 | ||||
|                     if task_stage.limit is not None | ||||
|                     and task_stage.limit.stderr is not None | ||||
|                     else 4 * 1_024 * 1_024 | ||||
|                     else 800 * 1_024 * 1_024 | ||||
|                 ), | ||||
|             ), | ||||
|             stdout=result.CmdFile( | ||||
|                 name="stdout", | ||||
|                 max=( | ||||
|                     task_stage.limit.stdout * 1_000_000_000 | ||||
|                     task_stage.limit.stdout * 1_000_000_000_000 | ||||
|                     if task_stage.limit is not None | ||||
|                     and task_stage.limit.stdout is not None | ||||
|                     else 4 * 1_024 * 1_024 | ||||
|                     else 800 * 1_024 * 1_024 | ||||
|                 ), | ||||
| 
					
					jon-lee marked this conversation as resolved
					
						
						
							Outdated
						
					
				 
				
					
						张泊明518370910136
						commented  The reason for the suffix in  The reason for the suffix in `keyword_parser_`? 
				
					
						李衍志523370910113
						commented  just forgot to remove, sorry just forgot to remove, sorry | ||||
|             ), | ||||
|         ), | ||||
|  |  | |||
|  | @ -15,11 +15,11 @@ | |||
|                     "with": { | ||||
|                         "default": { | ||||
|                             "args": [ | ||||
|                                 "./repo-health-checker", | ||||
|                                 "/tmp/repo-health-checker", | ||||
|                                 "-root=.", | ||||
|                                 "-repoSize=50.5", | ||||
|                                 "-meta=Readme.md", | ||||
|                                 "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,1965adff52af61da8b9e089ff580d60f7e4c294a2930b9809c5cbdf76528de4d,c8bd62bf5297bac738b3845612fd595d677884093070904375463ab7953fce28", | ||||
|                                 "-checkFileSumList=a5b63323a692d3d8b952442969649b4f823d58dae26429494f613df160710dfc,b1bbad25b830db0a77b15a033f9ca1b7ab44c1d2d05056412bd3e4421645f0bf,7300de510e1674f6d533ae799eb5395fae6d5fbe6f64ff5047480e503602a4da,ad7ba6fbee5d80e018e4190e31bd842553d540044f0faf13592d73cef93a061b", | ||||
|                                 "-checkFileNameList=.gitignore,.gitattributes,.gitea/workflows/push.yaml,.gitea/workflows/release.yaml" | ||||
|                             ], | ||||
|                             "env": [ | ||||
|  | @ -27,7 +27,7 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|  | @ -49,15 +49,15 @@ | |||
|                             "cpuLimit": 4000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000000, | ||||
|                             "memoryLimit": 83886080, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|                             "cpuSetLimit": "", | ||||
|                             "copyIn": { | ||||
|                                 "./repo-health-checker": { | ||||
|                                 "/tmp/repo-health-checker": { | ||||
|                                     "src": "/usr/local/bin/repo-health-checker", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -101,29 +101,29 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stdout": { | ||||
|                                 "name": "stdout", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stderr": { | ||||
|                                 "name": "stderr", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "cpuLimit": 4000000000, | ||||
|                             "cpuLimit": 1000000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000, | ||||
|                             "memoryLimit": 4194304, | ||||
|                             "clockLimit": 2000000000000000, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|  | @ -131,23 +131,21 @@ | |||
|                             "copyIn": { | ||||
|                                 "tools/compile": { | ||||
|                                     "src": "/home/tt/.config/joj/tools/compile", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 } | ||||
|                             }, | ||||
|                             "copyInCached": { | ||||
|                                 "tools/compile": "tools/compile" | ||||
|                             }, | ||||
|                             "copyInCached": {}, | ||||
|                             "copyInDir": ".", | ||||
|                             "copyOut": [], | ||||
|                             "copyOutCached": [ | ||||
|                                 "h6/build/ex3", | ||||
|                                 "build/asan", | ||||
|                                 "build/ubsan", | ||||
|                                 "build/msan", | ||||
|                                 "build/compile_commands.json" | ||||
|                                 "h6/build/asan", | ||||
|                                 "h6/build/ubsan", | ||||
|                                 "h6/build/msan", | ||||
|                                 "h6/build/compile_commands.json" | ||||
|                             ], | ||||
|                             "copyOutMax": 0, | ||||
|                             "copyOutDir": "", | ||||
|  | @ -209,29 +207,29 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stdout": { | ||||
|                                 "name": "stdout", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stderr": { | ||||
|                                 "name": "stderr", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "cpuLimit": 4000000000, | ||||
|                             "cpuLimit": 1000000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000, | ||||
|                             "memoryLimit": 4194304, | ||||
|                             "clockLimit": 2000000000000000, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|  | @ -239,14 +237,18 @@ | |||
|                             "copyIn": { | ||||
|                                 "tools/filelength": { | ||||
|                                     "src": "/home/tt/.config/joj/tools/filelength", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 } | ||||
|                             }, | ||||
|                             "copyInCached": { | ||||
|                                 "tools/filelength": "tools/filelength" | ||||
|                                 "h6/build/ex3": "h6/build/ex3", | ||||
|                                 "h6/build/asan": "h6/build/asan", | ||||
|                                 "h6/build/ubsan": "h6/build/ubsan", | ||||
|                                 "h6/build/msan": "h6/build/msan", | ||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" | ||||
|                             }, | ||||
|                             "copyInDir": ".", | ||||
|                             "copyOut": [], | ||||
|  | @ -323,29 +325,29 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stdout": { | ||||
|                                 "name": "stdout", | ||||
|                                 "max": 65000000000, | ||||
|                                 "max": 65000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stderr": { | ||||
|                                 "name": "stderr", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "cpuLimit": 4000000000, | ||||
|                             "cpuLimit": 1000000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000, | ||||
|                             "memoryLimit": 4194304, | ||||
|                             "clockLimit": 2000000000000000, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|  | @ -353,14 +355,25 @@ | |||
|                             "copyIn": { | ||||
|                                 "projects/p2/.clang-tidy": { | ||||
|                                     "src": "/home/tt/.config/joj/projects/p2/.clang-tidy", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 }, | ||||
|                                 "build/compile_commands.json": { | ||||
|                                     "src": "/home/tt/.config/joj/build/compile_commands.json", | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 } | ||||
|                             }, | ||||
|                             "copyInCached": { | ||||
|                                 "projects/p2/.clang-tidy": "projects/p2/.clang-tidy" | ||||
|                                 "h6/build/ex3": "h6/build/ex3", | ||||
|                                 "h6/build/asan": "h6/build/asan", | ||||
|                                 "h6/build/ubsan": "h6/build/ubsan", | ||||
|                                 "h6/build/msan": "h6/build/msan", | ||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" | ||||
|                             }, | ||||
|                             "copyInDir": ".", | ||||
|                             "copyOut": [], | ||||
|  | @ -464,35 +477,41 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stdout": { | ||||
|                                 "name": "stdout", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stderr": { | ||||
|                                 "name": "stderr", | ||||
|                                 "max": 65000000000, | ||||
|                                 "max": 65000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "cpuLimit": 4000000000, | ||||
|                             "cpuLimit": 1000000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000, | ||||
|                             "memoryLimit": 4194304, | ||||
|                             "clockLimit": 2000000000000000, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|                             "cpuSetLimit": "", | ||||
|                             "copyIn": {}, | ||||
|                             "copyInCached": {}, | ||||
|                             "copyInCached": { | ||||
|                                 "h6/build/ex3": "h6/build/ex3", | ||||
|                                 "h6/build/asan": "h6/build/asan", | ||||
|                                 "h6/build/ubsan": "h6/build/ubsan", | ||||
|                                 "h6/build/msan": "h6/build/msan", | ||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" | ||||
|                             }, | ||||
|                             "copyInDir": ".", | ||||
|                             "copyOut": [], | ||||
|                             "copyOutCached": [], | ||||
|  | @ -571,35 +590,41 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stdout": { | ||||
|                                 "name": "stdout", | ||||
|                                 "max": 65000000000, | ||||
|                                 "max": 65000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stderr": { | ||||
|                                 "name": "stderr", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "cpuLimit": 4000000000, | ||||
|                             "cpuLimit": 1000000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000, | ||||
|                             "memoryLimit": 4194304, | ||||
|                             "clockLimit": 2000000000000000, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|                             "cpuSetLimit": "", | ||||
|                             "copyIn": {}, | ||||
|                             "copyInCached": {}, | ||||
|                             "copyInCached": { | ||||
|                                 "h6/build/ex3": "h6/build/ex3", | ||||
|                                 "h6/build/asan": "h6/build/asan", | ||||
|                                 "h6/build/ubsan": "h6/build/ubsan", | ||||
|                                 "h6/build/msan": "h6/build/msan", | ||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" | ||||
|                             }, | ||||
|                             "copyInDir": ".", | ||||
|                             "copyOut": [], | ||||
|                             "copyOutCached": [], | ||||
|  | @ -680,35 +705,49 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stdout": { | ||||
|                                 "name": "stdout", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stderr": { | ||||
|                                 "name": "stderr", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "cpuLimit": 4000000000, | ||||
|                             "cpuLimit": 1000000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000, | ||||
|                             "memoryLimit": 4194304, | ||||
|                             "clockLimit": 2000000000000000, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|                             "cpuSetLimit": "", | ||||
|                             "copyIn": {}, | ||||
|                             "copyInCached": {}, | ||||
|                             "copyIn": { | ||||
|                                 "build/asan": { | ||||
|                                     "src": "/home/tt/.config/joj/build/asan", | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 } | ||||
|                             }, | ||||
|                             "copyInCached": { | ||||
|                                 "h6/build/ex3": "h6/build/ex3", | ||||
|                                 "h6/build/asan": "h6/build/asan", | ||||
|                                 "h6/build/ubsan": "h6/build/ubsan", | ||||
|                                 "h6/build/msan": "h6/build/msan", | ||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" | ||||
|                             }, | ||||
|                             "copyInDir": ".", | ||||
|                             "copyOut": [], | ||||
|                             "copyOutCached": [], | ||||
|  | @ -761,35 +800,49 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stdout": { | ||||
|                                 "name": "stdout", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stderr": { | ||||
|                                 "name": "stderr", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "cpuLimit": 4000000000, | ||||
|                             "cpuLimit": 1000000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000, | ||||
|                             "memoryLimit": 4194304, | ||||
|                             "clockLimit": 2000000000000000, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|                             "cpuSetLimit": "", | ||||
|                             "copyIn": {}, | ||||
|                             "copyInCached": {}, | ||||
|                             "copyIn": { | ||||
|                                 "build/msan": { | ||||
|                                     "src": "/home/tt/.config/joj/build/msan", | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 } | ||||
|                             }, | ||||
|                             "copyInCached": { | ||||
|                                 "h6/build/ex3": "h6/build/ex3", | ||||
|                                 "h6/build/asan": "h6/build/asan", | ||||
|                                 "h6/build/ubsan": "h6/build/ubsan", | ||||
|                                 "h6/build/msan": "h6/build/msan", | ||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" | ||||
|                             }, | ||||
|                             "copyInDir": ".", | ||||
|                             "copyOut": [], | ||||
|                             "copyOutCached": [], | ||||
|  | @ -842,35 +895,49 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stdout": { | ||||
|                                 "name": "stdout", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stderr": { | ||||
|                                 "name": "stderr", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "cpuLimit": 4000000000, | ||||
|                             "cpuLimit": 1000000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000, | ||||
|                             "memoryLimit": 4194304, | ||||
|                             "clockLimit": 2000000000000000, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|                             "cpuSetLimit": "", | ||||
|                             "copyIn": {}, | ||||
|                             "copyInCached": {}, | ||||
|                             "copyIn": { | ||||
|                                 "build/ubsan": { | ||||
|                                     "src": "/home/tt/.config/joj/build/ubsan", | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 } | ||||
|                             }, | ||||
|                             "copyInCached": { | ||||
|                                 "h6/build/ex3": "h6/build/ex3", | ||||
|                                 "h6/build/asan": "h6/build/asan", | ||||
|                                 "h6/build/ubsan": "h6/build/ubsan", | ||||
|                                 "h6/build/msan": "h6/build/msan", | ||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" | ||||
|                             }, | ||||
|                             "copyInDir": ".", | ||||
|                             "copyOut": [], | ||||
|                             "copyOutCached": [], | ||||
|  | @ -922,29 +989,29 @@ | |||
|                             ], | ||||
|                             "stdin": { | ||||
|                                 "content": "", | ||||
|                                 "max": 41943040, | ||||
|                                 "max": 419430400, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stdout": { | ||||
|                                 "name": "stdout", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "stderr": { | ||||
|                                 "name": "stderr", | ||||
|                                 "max": 4000000000, | ||||
|                                 "max": 800000000000000, | ||||
|                                 "streamIn": false, | ||||
|                                 "streamOut": false, | ||||
|                                 "pipe": false | ||||
|                             }, | ||||
|                             "cpuLimit": 4000000000, | ||||
|                             "cpuLimit": 1000000000000000, | ||||
|                             "realCpuLimit": 0, | ||||
|                             "clockLimit": 8000000000, | ||||
|                             "memoryLimit": 4194304, | ||||
|                             "clockLimit": 2000000000000000, | ||||
|                             "memoryLimit": 838860800, | ||||
|                             "stackLimit": 0, | ||||
|                             "procLimit": 50, | ||||
|                             "cpuRateLimit": 0, | ||||
|  | @ -952,46 +1019,46 @@ | |||
|                             "copyIn": { | ||||
|                                 "h6/build/ex2": { | ||||
|                                     "src": "/home/tt/.config/joj/h6/build/ex2", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 }, | ||||
|                                 "h6/build/ex4": { | ||||
|                                     "src": "/home/tt/.config/joj/h6/build/ex4", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 }, | ||||
|                                 "h6/build/ex5": { | ||||
|                                     "src": "/home/tt/.config/joj/h6/build/ex5", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 }, | ||||
|                                 "h6/build/ex6": { | ||||
|                                     "src": "/home/tt/.config/joj/h6/build/ex6", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 }, | ||||
|                                 "h6/build/ex7": { | ||||
|                                     "src": "/home/tt/.config/joj/h6/build/ex7", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|                                 } | ||||
|                             }, | ||||
|                             "copyInCached": { | ||||
|                                 "h6/build/ex2": "h6/build/ex2", | ||||
|                                 "h6/build/ex4": "h6/build/ex4", | ||||
|                                 "h6/build/ex5": "h6/build/ex5", | ||||
|                                 "h6/build/ex6": "h6/build/ex6", | ||||
|                                 "h6/build/ex7": "h6/build/ex7" | ||||
|                                 "h6/build/ex3": "h6/build/ex3", | ||||
|                                 "h6/build/asan": "h6/build/asan", | ||||
|                                 "h6/build/ubsan": "h6/build/ubsan", | ||||
|                                 "h6/build/msan": "h6/build/msan", | ||||
|                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json" | ||||
|                             }, | ||||
|                             "copyInDir": ".", | ||||
|                             "copyOut": [], | ||||
|  | @ -1010,7 +1077,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case0.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -1026,7 +1093,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case1.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -1042,7 +1109,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case2.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -1058,7 +1125,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case3.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -1074,7 +1141,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case4.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -1090,7 +1157,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case5.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -1106,7 +1173,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case6.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -1122,7 +1189,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case7.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -1138,7 +1205,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case8.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  | @ -1154,7 +1221,7 @@ | |||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/tests/homework/h6/e3/case9.in", | ||||
|                                     "max": 41943040, | ||||
|                                     "max": 419430400, | ||||
|                                     "streamIn": false, | ||||
|                                     "streamOut": false, | ||||
|                                     "pipe": false | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ release.stages = [ "compile" ] | |||
| name = "Compilation" | ||||
| command = "./tools/compile" # eg. script running cmake commands | ||||
| files.import = [ "tools/compile" ] | ||||
| files.export = [ "h6/build/ex3", "build/asan", "build/ubsan", "build/msan", "build/compile_commands.json" ] | ||||
| files.export = [ "h6/build/ex3", "h6/build/asan", "h6/build/ubsan", "h6/build/msan", "h6/build/compile_commands.json" ] | ||||
| 
 | ||||
| # compile parsers | ||||
| parsers = [ "result-detail", "dummy", "result-status" ] | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| name: Run JOJ3 on Push | ||||
| on: [push] | ||||
| 
 | ||||
| jobs: | ||||
|   run: | ||||
|     container: | ||||
|  | @ -15,4 +16,4 @@ jobs: | |||
|           fetch-depth: 0 | ||||
|       - name: run joj3 | ||||
|         run: | | ||||
|           sudo -E -u tt joj3 -conf-root /home/tt/.config/joj | ||||
|           sudo -E -u tt joj3 -conf-root /home/tt/.config/joj/tests/homework                     | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ name: Run JOJ3 on Release | |||
| on: | ||||
|   release: | ||||
|     types: [published] | ||||
| 
 | ||||
| jobs: | ||||
|   run: | ||||
|     container: | ||||
|  | @ -17,4 +18,4 @@ jobs: | |||
|           fetch-depth: 0 | ||||
|       - name: run joj3 | ||||
|         run: | | ||||
|           sudo -E -u tt joj3 -conf-root /home/tt/.config/joj -msg "feat(h1-release): joj on ${{ github.ref }}" | ||||
|           sudo -E -u tt joj3 -conf-root "/home/tt/.config/joj/tests/homework" -conf-name "conf-release.json" -tag "${{ github.ref_name }}"           | ||||
|  |  | |||
where is it used?
this should be storing all the files that are about to be copy in or out
It is as the input and output for the following functions about parsers
so this feature is not implemented?
it is
this is a loop, so this
cachedwill be updated in every round of stageThe return value is unnecessary.
I have a lazing coding style here, everything has get imported would get exported, so should maintain this until the end of the loop. Everything is exported in previous stage would be imported in the next stage.
settry it yourself
I see why
resolved.