aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Wait for signaled processes to hang upJoseph Hunkeler2024-09-181-1/+5
| | | | * Only initiate a kill if we have more than one process. The current process is already failed out, no need to terminate it again.
* Set task status to -1 by defaultJoseph Hunkeler2024-09-181-0/+3
|
* Add comments, remove dead codeJoseph Hunkeler2024-09-181-2/+24
|
* Break parent/child calls into static functionsJoseph Hunkeler2024-09-181-71/+86
|
* Add test_multiprocessing.cJoseph Hunkeler2024-09-181-0/+73
|
* Split mp_task into to functionsJoseph Hunkeler2024-09-181-63/+74
|
* Guard against overrunJoseph Hunkeler2024-09-181-2/+6
|
* Update example configJoseph Hunkeler2024-09-181-0/+13
|
* Fix doxygen commentsJoseph Hunkeler2024-09-181-3/+3
|
* Add multiprocessing.h to core.hJoseph Hunkeler2024-09-183-2/+2
| | | | * Remove multiprocessing.h from other files
* Fix opt_flags assignment.Joseph Hunkeler2024-09-181-1/+3
|
* Fix mp_pool_join exampleJoseph Hunkeler2024-09-181-1/+1
|
* Workaround for a bug in firewatchJoseph Hunkeler2024-09-181-1/+1
|
* Fix sem_open initial stateJoseph Hunkeler2024-09-182-29/+16
| | | | | | * Move slot->gate assignment to mp_pool_task() * Remove mmap() to slot->gate. * Change type of ident and log_root variables for the sake of easy (fewer maps)
* Darwin: Remove mmap MAP_POPULATE flagJoseph Hunkeler2024-09-181-3/+3
|
* Darwin portability: Use sem_open and sem_close instead of sem_init and ↵Joseph Hunkeler2024-09-182-4/+8
| | | | sem_destroy
* Correct package nameJoseph Hunkeler2024-09-181-1/+1
|
* Fixing headersJoseph Hunkeler2024-09-182-12/+3
|
* Update integration test to utilize the multiprocessing poolJoseph Hunkeler2024-09-182-5/+30
|
* Implement multiprocessing pool(s)Joseph Hunkeler2024-09-187-86/+252
| | | | | * Adds --cpu-limit and --parallel-fail-fast arguments * Adds disable, parallel, and setup_script keys to [test] blocks
* Move guard_ macros to core_mem.hJoseph Hunkeler2024-09-185-10/+515
| | | | * Move core_mem.h below config.h
* Reference basetemp_dir and junitxml_file functions in README.md (#44)Joseph Hunkeler2024-09-181-11/+11
|
* Fixes incorrect reference to conda environment variable (#45)Joseph Hunkeler2024-09-181-1/+1
| | | | * Change CONDA_ENV_DEFAULT to CONDA_DEFAULT_ENV * Thanks, @GeorgeJCleary!
* Fix errant change of "cmd" string (#42)Joseph Hunkeler2024-09-161-2/+2
| | | * Was supposed to be pandoc_versioned_args
* Fix typo: (#41)Joseph Hunkeler2024-08-304-8/+8
| | | * Change python_compat to python_compact
* Bug fix: CONDA_ENV_DEFAULT should be CONDA_DEFAULT_ENV (#40)Joseph Hunkeler2024-08-291-1/+1
|
* Add test_environment.c (#39)Joseph Hunkeler2024-08-291-0/+76
|
* Pandoc improvements (#37)Joseph Hunkeler2024-08-283-12/+355
| | | | | | | | | | | | | | | * Tweak pandoc command and add a style sheet * Only search for platform sub-string when valid * Add get_pandoc_version * Add version checking and set options accordingly * Add support for globals.sysconfdir * Add missing brace * Remove options that are created dynamically
* System calls fixup (#38)Joseph Hunkeler2024-08-282-47/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix up shell() behavior * Removes dead code after execl() * Return the return value of execl() immediately * Output redirection fix: if f_stderr and redirect_stderr were both set, stderr was not redirected * Move the file handles into the child process * Bash now executes with --norc to avoid clobbering environment variables. This mimics /bin/sh behavior. * Fix test script environment * shell() already provides a temporary script. Not jumping into another sub-shell should preserve help preserve the top-level environment. * Try a different approach using declare -f * Revert "Try a different approach using declare -f" This reverts commit ea8ec855c3c6870d29c55afe3787afb2c05026a1. * Revert "Fix test script environment" This reverts commit 0a4efe972a78378eba5c5fbc6819c39b3cc6c9cb. * Change script permissions: 0700 * Force conda reactivation in test script * Switch to the usual environment reactivation method
* More tests (#36)Joseph Hunkeler2024-08-262-0/+133
| | | | | * Add test_copy.c * Add test_wheel.c
* CI add pandoc (and bug fixes) (#35)Joseph Hunkeler2024-08-203-1/+19
| | | | | | | | | * Fix pandoc command regression * Add space between destination and input * Add pandoc dependency * Dump output of indexed files
* Update mission configs (#34)Joseph Hunkeler2024-08-209-103/+211
| | | | | | | | | | | * Clean package caches (saves about 1GB of layer-space) * Update installation instructions * Update layout * Use template variables where appropriate * Instructions now provide release notes in one place * Pandoc now uses --standalone
* Pypi existence check (#30)Joseph Hunkeler2024-08-204-11/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add python_package_exists() function * Poll pypi.org or compatible index to see if a package exists * Returns non-zero on success * Implements python_package_exists() in delivery_defer_packages() * Implements python_package_exists() in delivery_defer_packages() * Bugfix: Avoid incorrect package selection * With large package lists that contain multiple packages starting with the same strstr() would pick the first match * This adds a temporary name variable that strcmp() can check against. * Message correction: * Change "release" to "testing" in testing environment failure message * Amend message to fit the flow of the output * Disable outdated conda notifications * The latest version isn't always the greatest. Don't give the end-user any ideas. Just use whatever the installer provides... quietly * Rename python_package_exists to pip_index_provides * Document the function prototype * Add missing comments in micromamba structure * Ensure the temporary output file does not linger
* Allow the user to disable uploading build info objects to artifactory (#33)Joseph Hunkeler2024-08-174-6/+20
| | | | | * Add enable_artifactory_build_info to globals structure * Add --no-artifactory-build-info command line argument to status main() * Useful for diag/test runs when a fully traceable delivery isn't desired
* Implement TODO item (#32)Joseph Hunkeler2024-08-171-11/+25
| | | | * The array of packages now used to check the runtime environment instead of two separate scanning methods * Renamed tools array to: conda_minimum_viable_tools
* Undo changes made to Dockerfile.in (#31)Joseph Hunkeler2024-08-174-8/+4
| | | | * The packages directory is copied to the build/docker directory. * There is no need to separate these ADD calls.
* Add template convience functions (and bug fixes) (#29)Joseph Hunkeler2024-08-156-2/+57
| | | | | | | | | | | | | | | | | | | | | | | | | * Die when render variable is NULL * This was caught when a call to {{ func:xyz() }} lacked opening/closing parenthesis * Scripts in tests should only render template strings right before execution * Remove conda version pin * This avoids updating conda in the base environment * This also avoids pitfalls associated with newly released (always broken) versions of conda * Add two template convenience functions * get_junitxml_result_auto() * get_basetemp_result_auto() * Handle rendering error for test script * Rename functions * get_junitxml_result_auto -> junitxml_file * get_basetemp_result_auto -> basetemp_dir * Thank you, @zacharyburnett
* Support git+schema style strings in package list (#24)Joseph Hunkeler2024-08-151-16/+41
|
* indexer: Handle destination directories more gracefully (#28)Joseph Hunkeler2024-08-153-35/+128
| | | | | | | | | | | | | | | | | | | | * Handle destination directories more gracefully * The storage.output_dir is now the storage.root to avoid generating a sub-directory beneath the temporary working directory * The destination directory is created, then resolved by realpath to avoid generating the destination directory within the temporary working directory when a relative path is used as input * Replace the original file instead of using rename() * rename() cannot operate across file system boundaries * Dynamically allocate rootdirs array * Use realpath on positional arguments * Convert all markdown files to HTML * README.html files are considered entry points and are linked as index.html * Assign retcode after indexing
* Remove unused copytree() function (#27)Joseph Hunkeler2024-08-132-102/+0
| | | * Functionality was replaced by rsync long ago
* Move mkdirs() into utils module (#26)Joseph Hunkeler2024-08-134-35/+36
|
* Add test_recipe.c (#25)Joseph Hunkeler2024-08-131-0/+100
| | | | | | | | | * Add test_recipe.c * Unit test for recipe functions * Add error cases * Add missing explicit members in testcase array definition
* More unit tests (and fixing bugs) (#23)Joseph Hunkeler2024-08-1211-5/+352
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add test_artifactory.c to suite * Add test_ini_getval_wrapper to ini.c * basic ini_getval_TYPE() conversion checks * bugfix: use strtof in INIVAL_TYPE_FLOAT case * Include stdio.h to pull in FILE structure * bugfix: free data at index during strlist_set operation * Previous behavior of setting the pointer to NULL introduced a subtle memory leak * Set strlist error when index it out of range * Import private delivery functions required for mock context creation * Remove static declaration * populate_delivery_cfg() * Add test_junitxml.c * Fix duplicate define value for JUNIT_RESULT_STATE_ERROR * Add static junit test data * Copy test data to current test directory
* Fix Dockerfile ADD (#22)Joseph Hunkeler2024-08-094-4/+8
| | | | * Destination directories were not created properly * This ensures $HOME/packages/{conda,wheels} are created in the docker developer home directory
* Render during bootstrap (#21)Joseph Hunkeler2024-08-081-2/+2
|
* Return of the INI refactor (#20)Joseph Hunkeler2024-08-0814-200/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Continuation of #19 * Fixes always_update_base_environment override bug added by PR #19 * Finish type hinting implementation * ini_getval_* functions now able to affect rendering mode using INI_READ_RAW and INI_READ_RENDER * Created pointers to deeply nested structures to increase readability * Output from ini_write() is more consistent, with fewer errant spaces and line feeds * Fixes accidental regression in #19. INIVAL_TYPE_STR_ARRAY never produced an array of pointers to char. This needs to be corrected in the future. i.e. It has always generated a new-line delimited string, not a StrList, or array. * Fix strlist_append_tokenize * original pointer is no longer modified * token strings are stripped of leading space before appending to the list * Use defines instead of magic numbers * delivery_init: add render_mode argument * test_conda: Add render mode * test_ini: Add render mode * Only add conda packages and wheels to the image * docker images are saved to the packages directory and will be consumed by the image if present. * Render template variables after bootstrapping the delivery
* Fix leaks in tpl functions (#18)Joseph Hunkeler2024-08-072-0/+4
| | | | | | | | * Free the function key string in tplfunc_frame during tpl_free() * Fix leaks in get_github_release_notes_auto_tplfunc_entrypoint(): * Free repository name * Free list of release notes
* Refactor ini getter and setter usage (#19)Joseph Hunkeler2024-08-076-244/+324
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add handler for space-delimited lists * This needs attention, however. The INI writer has no way to know a list with spaces is a list; this happens in the value conversion functions. * Add type_hint member to INIData structure. At some point support with be added for all INIVAL_TYPE_* defines. Right now it's only used with arrays. * Zero out line buffer in ini_open after each iteration * Do not strip raw INI data. Let the conversion functions handle it * Add spaces to key value pairs in rendered INI output. * Add ini_getvar_TYPE() functions * These replace the functionality of static conv_TYPE() functions in delivery.c * Add support for missing types: U/CHAR, U/SHORT, STRLIST * ini_getval: expand template variables immediately before processing the output * Strip leading space to avoid issues with string comparisons against the result * ini_getval: Return copies, not the original. * This forces one to use ini_setval to replace/append values to the data array(s). It's safer this way. * fix_tox_conf(): Use ini_getval and ini_setval instead of modifying the original pointers directly * Tests: Free resources * Replace ini_getval(), ini_getval_required() and conv_*() usage * Now using ini_getval_TYPE() functions and ini_setval() * Remove unused helper functions and variables * download() returns long, not int * actions: update apt cache
* Fixes deprecated call to ENV in Dockerfile templates (#17)Joseph Hunkeler2024-07-314-4/+4
| | | * LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line XY)
* Fixes readout of packages in delivery (#16)Joseph Hunkeler2024-07-312-8/+27
| | | | | | | | | | * Fixes readout of packages in delivery * Now that the overview is displayed after deferred packages are filtered out of the main list, filtered packages were no longer displayed * This combines the main list and deferred list for both conda, and pip packages. * Read the main and deferred lists no matter what * Use new style package definition in test config