Skip to content

Latest commit

 

History

History
2074 lines (1595 loc) · 129 KB

CHANGELOG.md

File metadata and controls

2074 lines (1595 loc) · 129 KB

CHANGELOG

v2.0.1 (2024-12-02)

Patch

  • patch: Support Python 3.13 (bb7f272)

    Bump the patch version to update the README on PyPI.

v2.0.0 (2024-12-02)

Chores

Continuous integration

Documentation

  • docs: Update type hint to match the docs/code (ee8fdcc)

    Sourcery caught that this should be a sequence of tuples, and not just a single one.

  • docs: Pin Sphinx version (6373150)

    The Sphinx 8.0.0 release poses a problem for the sphinx-rtd-theme, so I'm pinning sphinx below 8.0 to get things back up and running.

Refactoring

  • refactor: Use exception instead of return value (f9ec075)

    Sourcery suggested using an exception for this unreachable scenario.

Testing

  • test: Remove unnecessary parentheses (9fb0adf)

    To align with updated ruff rules.

v1.0.4 (2024-07-11)

Patch

  • patch: Remove conda-forge badges (120b656)

v1.0.3 (2024-07-10)

Chores

  • chore: Remove build artifacts (98768ab)

    These were accidentally committed in 0cbf0dfd410dd01e84eece340ac7f42c8cf24da9.

Patch

  • patch: Maintenance mode release (fcc6b4b)

v1.0.2 (2024-07-10)

Bug fixes

  • fix: Point to correct PyPI location (249a295)

    Should have been included in 0cbf0dfd410dd01e84eece340ac7f42c8cf24da9.

Continuous integration

  • ci: Add semantic release workflow & templates (f883a81)

v1.0.1 (2024-07-10)

Chores

Continuous integration

  • ci: Change documentation coverage file name (8f62d45)

Patch

  • patch: Change package name for PyPI (0cbf0df)

    When trying to upload the initial release to PyPI, the upload failed with the following error:

    ERROR HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/ The name 'shell-logger' is too similar to an existing project. See https://pypi.org/help/#project-name for more information.

    I couldn't determine which existing package had a name that was too similar, so I'm hoping appending the owning GitHub organization to the end of the name differentiates it sufficiently.

v1.0.0 (2024-07-10)

Bug fixes

Chores

  • chore: Create separate copyright file (984e1ee)

    Also correct copyright year.

  • chore: Remove flake8 configuration (0713fe8)

  • chore: Indicate that the package is typed (ddea83a)

  • chore: Indicate Python >= 3.8 supported (4d6e826)

  • chore: Update .gitignore (a131745)

  • chore: Remove commitizen configuration (12649e1)

  • chore: Remove commitizen pre-commit hook (012cb21)

    In order to enable a faster development workflow, remove the commitizen pre-commit hook to allow commits messages that don't adhere to the Conventional Commits specification. Commit messages are still checked in the Continuous Integration workflow, though, so a branch will need to be clean before merging.

  • chore: Disable pyupgrade (13a27b2)

    Until I have time to come back and deal with all the findings.

  • chore: Disable Bandit security analysis (bdaac47)

    I'll need to revert this and deal with the findings when I have more time available.

  • chore: Disable warning on mutable class default (b2eddf3)

    This is something I'll need to come back and re-evaluate when I have more time available.

    https://docs.astral.sh/ruff/rules/mutable-class-default/

  • chore: Ignore magic number warnings in HTML utils (728874b)

    The HTML utilities module has a bunch of magic numbers in it for converting between SGR codes and HTML. Replacing the magic numbers with corresponding constants will be a significant refactoring, so for now, just ignore these warnings in this one file.

  • chore: Disable certain Pylint findings (dd52a94)

    Disable the warning regarding too many arguments or return statements, because I don't have time at the moment to refactor to address them.

  • chore: Allow boolean positional args in some cases (a81af8a)

    The os.set_inheritable() doesn't allow keyword arguments, so we have to whitelist it.

    https://docs.astral.sh/ruff/rules/boolean-positional-value-in-call/

  • chore: Remove unnecessary shebang line (ee138a7)

    https://docs.astral.sh/ruff/rules/shebang-not-executable/

  • chore: Disable datetime checks (cef4d26)

    I'll need to come back at some point and make all the datetime objects timezone-aware. Ruff produces the following findings:

    • DTZ005 datetime.datetime.now() called without a tz argument
    • DTZ006 datetime.datetime.fromtimestamp() called without a tz argument
    • DTZ007 Naive datetime constructed using datetime.datetime.strptime() without %z
  • chore: Ignore complexity warning (b99056a)

    Reducing the complexity will have to be handled later.

    https://docs.astral.sh/ruff/rules/complex-structure/

  • chore: Switch to Ruff for linting/formatting (b20890e)

  • chore: Remove YAPF disable flags (39fff4e)

    We've transitioned fro YAPF to black for formatting.

  • chore: Remove UNIX classifier (69927ce)

    For some reason, Pyroma thinks this is a non-standard classifier.

  • chore: Enable pyroma pre-commit hook (0415cac)

  • chore: Enable pydocstyle pre-commit hook (472bfc4)

  • chore: Enable isort pre-commit hook (09f0c46)

  • chore: Enable flake8 pre-commit hook (76ba088)

  • chore: Enable doc8 pre-commit hook (cf98d36)

  • chore: Enable pygrep pre-commit hooks (5aba441)

  • chore: Enable black pre-commit hook (f1c5c86)

  • chore: Add pre-commit configuration (98c4b48)

    Only enable standard pre-commit hooks to begin with.

  • chore: Add PR template (6c5e92c)

  • chore: Update hidden files (b6777bf)

  • chore: Update pyproject.toml (837dddf)

  • chore: Change directory structure (364d29b)

    Convert this older Python package structure to the one I currently prefer.

  • chore: Switch GitLab to GitHub issue templates (a5febf8)

Code style

Continuous integration

Documentation

Refactoring

Testing

  • test: Don't check disk statistics on RHEL (a3ff573)

    For some reason, the DiskStatsCollector appears to not be collecting disk statistics at the specified interval on RHEL. Disable these checks until there's time to debug the issue.

  • test: Use keyword argument in constructor (f9bf643)

    Should have been included in af677a1156715c579f8b2c34dca105921093fb6d.

  • test: Rename fixture (fde870e)

    Prepend the use_tmpdir fixture with a leading underscore to indicate that it doesn't return anything.

    https://docs.astral.sh/ruff/rules/pytest-missing-fixture-name-underscore/

Unknown

  • Add copyright/license info to all source files (76a00b5)

  • Add LICENSE.md (e49ffbd)

  • Add CHANGELOG.md (652c9b5)

  • Require Conventional Commits (02d8773)

  • Fix typo (e683a64)

  • Add CODE_OF_CONDUCT (fd08693)

  • Add SECURITY.md (0d3efc9)

  • Add Security issue template (3075485)

  • Update .gitlab-ci.yml file (f1bf887)

    Adjust coverage report syntax for upgrade to GitLab 15.

  • Update CONTRIBUTING.md (eccab54)

  • Merge branch 'Issue#42' into 'master' (b09364d)

    Correct typo in CONTRIBUTING.md

    Closes #42

    See merge request ShellLogger/ShellLogger!27

  • Correct typo in CONTRIBUTING.md (33ae7da)

  • Merge branch '33-add-yapf-configuration' into 'master' (641cfe7)

    Resolve "Add YAPF configuration"

    Closes #33

    See merge request ShellLogger/ShellLogger!26

  • Fix broken tests (31e16b3)

  • Fix broken test (4f160ac)

  • Fix style issues (11f1dc3)

  • Update YAPF error message (55dd0e1)

  • Alphabetize jobs (cf77528)

  • Alphabetize job specs (e298c35)

  • Archive yapf.diff.txt (ca6b5ae)

  • Debugging (c478aa5)

  • Tweak (156a3e3)

  • Debugging (63a89f6)

  • Add YAPF job (c9523d9)

  • Merge branch 'remove-windows-support-take-2' into 'master' (5e35357)

    Remove Windows support (take 2)

    See merge request ShellLogger/ShellLogger!25

  • Remove Windows support (8a5e08f)

    Follow-on to #12. These changes should have been included in e034d0b6c8c1a10616d8d07ea5cae687fc70d263, but were accidentally omitted.

  • Merge branch '31-change-file-naming-scheme' into 'master' (aa564f2)

    Change file naming scheme (#31)

    Closes #31

    See merge request ShellLogger/ShellLogger!24

  • Change file naming scheme (#31) (e6ecedd)

  • Merge branch '12-remove-windows-support' into 'master' (79e5adc)

    Remove Windows support (#12)

    Closes #12

    See merge request ShellLogger/ShellLogger!23

  • Remove Windows support (#12) (e034d0b)

  • Merge branch '30-create-snapshot-script' into 'master' (9a58ad0)

    Resolve "Create snapshot script"

    Closes #30

    See merge request ShellLogger/ShellLogger!21

  • Remove snapshot script (ff92fbd)

  • Add notes to script (5898817)

  • Add instructions to README (ee7d56d)

  • Merge branch '11-reorganize-classes-in-files' into 'master' (fe509ed)

    Resolve "Reorganize classes in files"

    Closes #11

    See merge request ShellLogger/ShellLogger!22

  • Tweaks to docs (7f44ff0)

  • Fix typo in last commit (4c343ba)

  • Fix typo in last commit (ea707e9)

  • Switch util.py to HTMLUtilities.py (4d962a9)

  • Switch classes to AbstractMethod (3dc312d)

  • Move Trace classes to new file (fbe9919)

  • Move StatsCollector classes to new file (2b781a4)

  • Move encoder/decoder to bottom of file (1557a94)

  • Adjust required coverage (5eacf33)

  • Adjust docs for Shell movement (94da4b1)

  • Move Shell to its own file (e84ceca)

  • Update README.md (6169426)

  • Merge branch '27-preserve-newlines-and-spacing' into 'master' (759ce10)

    Preserve newlines and spacing (#27)

    Closes #27

    See merge request ShellLogger/ShellLogger!20

  • Preserve newlines and spacing (#27) (cee1d80)

  • Merge branch '26-remove-no-break-character' into 'master' (ae07f99)

    Remove no-break character (#26)

    Closes #26

    See merge request ShellLogger/ShellLogger!19

  • Update javascript after removal of no-break (4a4f298)

    We no longer need to have the javascript search function take out the no-break characters since we no longer use them in the first place.

  • Remove no-break character (#26) (0484662)

  • Merge branch '10-add-issue-templates' into 'master' (204fc52)

    Add issue templates (#10)

    Closes #10

    See merge request ShellLogger/ShellLogger!18

  • Add issue templates (#10) (02e69a7)

  • Merge branch 'switch-to-login-shell' into 'master' (756705f)

    Switch to login shell

    See merge request ShellLogger/ShellLogger!17

  • Add login_shell toggle (a2d10c9)

    Add the ability to optionally spawn a login Shell when creating a ShellLogger. Defaults to False to preserve existing functionality.

  • Merge branch 'downgrade-to-python-3.7' into 'master' (1a1c5da)

    Downgrade to Python 3.7

    See merge request ShellLogger/ShellLogger!16

  • Downgrade to Python 3.7 (040f505)

  • Merge branch '9-add-contributing-guidelines' into 'master' (74356f5)

    Resolve "Create contributing guidelines"

    Closes #9

    See merge request ShellLogger/ShellLogger!15

  • Add contributing guidelines (#9) (bfd73b2)

  • Merge branch '7-fill-out-readme' into 'master' (83303ce)

    Resolve "Fill out README.md"

    Closes #7

    See merge request ShellLogger/ShellLogger!14

  • Fill out README.md (#7) (ea21b89)

  • Merge branch '17-publish-example-log-files-vi-pages' into 'master' (0917561)

    Resolve "Publish example log files via Pages"

    Closes #17

    See merge request ShellLogger/ShellLogger!13

  • Publish example log files via Pages (#17) (0206797)

    • Switch from global cache to artifacts for the extras getting published via pages
    • Copy example log files to appropriate directory
    • Link to example log files from docs index
  • Merge branch '18-troubleshoot-virtual-environment-in-ci' into 'master' (fb0a941)

    Resolve "Troubleshoot virtual environment in CI"

    Closes #18

    See merge request ShellLogger/ShellLogger!12

  • Remove needs (297d0dc)

    Allow jobs to run serially stage by stage instead.

  • conda list after uninstall (b378543)

  • Fix env name (d51c77b)

  • Specify Python 3.8 when creating the environment (8bee9d5)

  • Switch from venv to conda (650d7f9)

  • Remove unnecessary uninstall (3828ee1)

  • Change virtual environment name (0ac6cb0)

  • Rename jobs (41b4627)

  • List the contents of the virtual environment when it's loaded (9ee4d7e)

  • Revert "Replace cache with artifacts" (28c747c)

    This reverts commit ca232364599c56c766967f4cad3532d5208248d0.

  • Merge branch '19-add-bash-versions-of-the-examples' into 'master' (b2ab949)

    Add bash versions of the examples (#19)

    Closes #19

    See merge request ShellLogger/ShellLogger!11

  • Add bash versions of the examples (#19) (f666c44)

    • Add bash scripts equivalent to hello_world_html.py and build_flex.py.
    • Include them in the documentation home page for comparison purposes.
    • Rework example write-up into bulleted list.
  • Merge branch 'replace-cache-with-artifacts' into 'master' (084f474)

    Replace cache with artifacts

    See merge request ShellLogger/ShellLogger!10

  • Replace cache with artifacts (ca23236)

    It seems storing the virtual environment in the cache was causing non-deterministic problems with shelllogger sometimes not existing in the environment after it was installed. Hopefully using artifacts instead of the cache will solve the problem.

  • Merge branch '15-create-examples' into 'master' (3a5a282)

    Resolve "Create examples"

    Closes #15

    See merge request ShellLogger/ShellLogger!7

  • Create examples (#15) (c478b3c)

    • Add example scripts demonstrating the usage of ShellLogger.
    • Add the examples to the documentation, along with screenshots of the generated log file.
    • Run the examples in the pipeline to ensure they always work.
  • Merge branch 'fix-ci-stages' into 'master' (8f4c88a)

    Fix CI Stages

    See merge request ShellLogger/ShellLogger!9

  • Fix CI Stages (d36ee93)

    Make the pages job happen in the deploy stage (just the way GitLab expects it to be), and rename the deploy stage install.

  • Merge branch 'fix-pages-deployment' into 'master' (dca0795)

    Fix Pages Deployment

    See merge request ShellLogger/ShellLogger!8

  • Fix Pages Deployment (cca72b7)

    Lowercase all CI job names. It sounds like the CI job name needs to be pages (case-sensitive) to tell the GitLab Runner to deploy the public directory via GitLab Pages.

  • Merge branch '6-add-sphinx-documentation' into 'master' (a642d81)

    Resolve "Add Sphinx documentation"

    Closes #6

    See merge request ShellLogger/ShellLogger!6

  • Add Sphinx Documentation (#6) (1e41edc)

    • Create the infrastructure for generating the Sphinx documentation.
    • Add a job to the CI pipeline to build the documentation.
    • Add a documentation badge to the README.md.
    • Fix Sphinx warnings/errors.
  • Merge branch '5-add-flake8' into 'master' (5e862f7)

    Resolve "Add flake8"

    Closes #5

    See merge request ShellLogger/ShellLogger!4

  • Exclude virtual environment from flake8 (dbd41eb)

  • Add flake8 to testing requirements (aded66c)

  • Add flake8 CI job (b4e97d5)

  • Get flake8 passing (a3fd6ba)

  • Merge branch '4-add-pytest' into 'master' (8b0a4af)

    Resolve "Add pytest"

    Closes #4

    See merge request ShellLogger/ShellLogger!5

  • Add pytest (#4) (6a80d00)

    • Create a GitLab CI pipeline to run pytest
    • Rework the requirements files
    • Loosen tolerances on trace tests
    • Include coverage testing, distribution creation, and un/installation
  • Fix CaptureFixture type hinting (06c7381)

  • Merge branch '8-refactor-for-python-3.8' into 'master' (8e65770)

    Resolve "Refactor for Python 3.8"

    Closes #8

    See merge request ShellLogger/ShellLogger!2

  • Update the test suite; finish work on branch (daa36bc)

  • Finish updating everything but the test suite (2eb3f79)

  • Finish util.py (385860e)

  • Still more util.py WIP (d3f4972)

  • More util.py WIP (1c2f623)

  • util.py WIP (bb4d8e3)

  • Document Trace and StatsCollector subclasses (c5cd8ee)

  • Almost done with classes.py (095acab)

  • And some more (51d0943)

  • More WIP (2ea5edf)

  • WIP COMMIT (709247e)

  • Reformat classes.py (41273c9)

    • Mostly type hinting and docstrings.
    • The occasional reorganization of a function.
  • Reformat ShellLogger.py (20d80cc)

    • Mostly type hinting and docstrings.
    • The occasional reorganization of a function.
  • Merge branch '14-get-the-pytest-suite-passing' into 'master' (a67fa22)

    Resolve "Get the pytest suite passing"

    Closes #14

    See merge request ShellLogger/ShellLogger!3

  • Add installation files (0ec0ce4)

  • Remove unused imports (04d5b91)

  • Skip trace test for Darwin (4204630)

  • Switch from Process().start() and .join() to simple logger.log()s (9b641d1)

    I'm not sure of the motivation for the former method. It was causing TypeError: cannot pickle '_thread.lock' object errors on the start()s, but I couldn't figure out why or how to fix it.

  • Add sleeps to allow time to collect memory/CPU stats (b8012ff)

  • Use tmpdir for all tests (ae1c49e)

  • Adjust test_stats (8166bdf)

  • Skip ltrace test on Darwin (a2a06ad)

  • Revert "WIP: Trying to get next test working" (760d754)

    This reverts commit 89bade69948d10c442328a80ef961b648316fb0a.

  • WIP: Trying to get next test working (89bade6)

    test_finalize_creates_html_with_correct_information is failing because the memory and CPU usage aren't getting written to the HTML log file, and I can't figure out why.

  • Turn on more tests that use the fixture (cd52351)

  • Get first failing test passing (72992e5)

  • Add shell_logger fixture (45f3d86)

    Accidentally forgot this when I filtered the ShellLogger history out of the BuildScripts repository.

  • Add .gitignore (65e9c7c)

  • Skip failing tests for now (357783e)

    Will re-enable them one at a time and get them passing.

  • Rename test with duplicate name (b536bab)

  • Lowercase variable names (16c81c8)

  • PEP8 pass (3402ed0)

  • Lowercase function names (d1a2b87)

  • Merge branch '1-reorganize-directory-structure' into 'master' (9492ac5)

    Resolve "Reorganize directory structure"

    Closes #1

    See merge request ShellLogger/ShellLogger!1

  • Rename class: Logger -> ShellLogger (3faf70f)

  • Rename directory: logger -> shelllogger (be2a76b)

  • Add Pycharm configuration (196cd41)

  • Restructure Logger files for conversion to ShellLogger repo (60f9c00)

  • Use fonts in logger whose word joiner is zero width (0d71dc8)

  • Small HTML message tweak (3939cde)

  • Merge branch 'logger-output-change' into 'develop' (72ad3ab)

    Logger output change

    See merge request EM-Plasma/BuildScripts!516

  • Improve logger layout a bit (e60a10a)

    • Less blank space
    • Put command at top level
    • Put return code at top level
  • Fixed errors in deciding invalid characters from bytes in logger (69ad45b)

  • Fixed a bug in logger when commands are provided as arrays. (acd2f8b)

    For example, logger.log("test", ["echo", "'"]) would not work before this commit.

    Added a unit test to ensure this works.

  • Fixed a logger exception message (missing space) (7ac0714)

  • Ensure the logger cannot continue running commands after a syntax error. (9aea9ef)

    In an interactive python session, we don't want someone reusing the logger in the event of a syntax error since the shell is dead.

  • Added a guard for syntax errors in logger. (1b3758a)

    Previously, the logger would hang if there was a syntax error in the command provided. Now, logger will just exit, printing an error message that the command could not complete.

    Note: if we ever wanted to, we could change the behavior to restart the crashed shell by changing the handler for the KeyboardInterrupt exception to see if it came from the child thread teeing the shell's stdout/stderr or from the user hitting Ctrl+C, restarting the shell in the former case and exiting in the later case.

  • Quick fix for logger when $SHELL is not in os.environ (946e05c)

    There's no requirement for a shell to define the SHELL environment variable (see https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_05_03) so we shouldn't rely on that.

  • Modified logger HTML creation behavior (211077d)

    Logger will no longer destroy the HTML file when appending until finalize() is called.

  • Added an append mode to the logger to append to previous loggers (56b4323)

  • Adjust search opacity in logger (cbfe9a8)

  • Improved search (eec0844)

    • Added a search button (interactive search-as-you-type is too slow for large inputs)
    • Added a "show nearby" option to show lines near a matching line.
  • Changed logger output back to table (previously tried grid). (4bdda39)

    The problem with grid layouts is that Chrome only supports a maximum of 1000 rows. Since we have one row per line of output, we might exceed that number and cause some very strange behavior from Chrome and other browsers based off of it (e.g. Edge).

    See: https://stackoverflow.com/q/53236054 https://www.w3.org/TR/css-grid-1/#overlarge-grids

  • Prevent logger from trying to use psutil when it isn't installed (e.g. on certain machines) (9782e89)

  • Actually push new files (oops) (4a13021)

  • Put search behind a magnifying glass. (77cd05d)

  • Forgot to add new template file (a14b541)

  • Added an html_print to print messages only to the log (4ca88d7)

  • Changed output blocks so that they wrap in logger HTML (fd54ec7)

  • Improved templates in logger (indent is specified in the template now) (bd12152)

  • Stripped out SVG generation from logger. (c75fe33)

  • Refactor sgr_to_html in logger (eb8e2c8)

  • Search now isnored html tags in output boxes (45d5b2a)

  • Added SGR (select graphics rendition) to HTML. (c60beee)

    Some commands like to output color. Unfortunately, this means that they use ANSI escape codes to do so which makes things hard to read in the HTML output (e.g. you see something like ^[[38;5;196mhello^[[0m where you would normally see just "hello" in red).

    TODO: ensure this doesn't break search.

  • Re-added redirecting stdin to /dev/null (also made this the default behavior again) (f890c63)

  • Re-added removal of uninteresting disks in disk stats in logger (07fe253)

  • Minor tweak to logger HTML (5490776)

  • More adjustment to the HTML (1260b55)

  • Templatized logger HTML almost entirely (f036b56)

  • Templatized child logger log entries in logger (4509e96)

  • More templatization in the logger (3840138)

  • Tweak chart in logger (26d9ca2)

  • Templatize chart output in logger (1afa26b)

  • Templatize some of the HTML in logger (a1629be)

  • Moved extra CSS to resource files (512cab0)

  • Migrate from importlib.resources to pkgutil. (667c08f)

    Python < 3.7 does not support importlib.resources.

  • Fixed an issue where TMPDIR can break multiprocessing.Manager in logger. (7b4a3db)

    There doesn't seem to be a reliable way to test this with py test.

  • Make regex search case-insensitive (35fd993)

  • Added a feature to test a single stat only (with trace), tests for bug fixed in previous commit (dfb696f)

  • Fixed a bug when we collect only a subset of stats (cpu, disk, memory) (5048779)

  • Attempt to speed up trace; bugfix in search (f62029f)

  • Minor HTML tweak (push line numbers to the left) (1800ebd)

  • Added line numbers to improve search experience (4d91b37)

  • Forgot to add search JS (05d24c0)

  • Added a search feature for stdout/stderr/trace/ulimit/env (df6f3f4)

    Also added a disabled unit test. Not sure if we want to fix the behavior it identifies.

    TODO: maybe only enable this search under certain circumstances (e.g. line count is super long or something).

  • Make sure /tmp is always included in disk stats (08ec0ea)

  • Minor tweak to HTML (no tooltips) (e8d13be)

  • Minor tweak to HTML (remove points on graph) (6530773)

  • Fixed bug by giving resource usage charts a unique id. (9085e45)

  • Now I'm fairly happy with the HTML. (5a1aeff)

    Will remove SVG stuff soon.

  • Updates to HTML generation. (37e9186)

    included the bundle which contained some dependencies).

    • Added hostname to the command details
    • Rearranged the stats graphs in the generated HTML.
  • More updated to HTML output (be68d40)

    • Now using Chart.js instead of SVGs for CPU/Memory/Disk usage
    • Code is even uglier (TODO: fix that)
    • TODO: remove SVG functionality entirely.
  • More HTML tweaks (a259446)

  • Bug fix (25a75e4)

  • More refactoring of HTML output (f7c976b)

  • More refactoring of HTML generation (843fe1f)

  • Refactor some of the HTML generation (47cf3f9)

  • Embed bootstrap and Chart.js into generated HTML files for furute HTML enhancements (15b6fbf)

  • Don't print an extra newline at the end of each line in HTML stderr/stdout (3204ba1)

  • Changed stdout and stderr in HTML to monospaced font (3a7323e)

  • Fixed a bug in logger where commands with heredocs would hang (579096a)

  • Removed stray debug print (885777a)

  • Fixed a few bugs in Logger. (5ca52d9)

    • CWD is now correct in HTML
    • Commands which spawn subshells like newgrp don't raise an error when logger tries to look at the return code.
  • Changed the logger to run all commands in a single shell. (69496f2)

    Previously, a new shell was spawned for every command run in the logger. Now it is the case that the logger will run all commands in one shell. So running something like logger.log("Switch groups", "newgrp my-group") followed by logger.log("Print group", "id -gn") would have the same effect as running "newgrp my-group" and "id -gn" in your terminal: the output should be "my-group".

  • Refactor (25ca040)

  • Fixed a bug in logger. Moved trace to file instead of str by default. (c5447a9)

    Accidentally removed stdout/stderr output in html.

  • Logger aux data added to HTML. (a0fdea8)

    Also actually committed memory test for logger saving memory by not keeping stdout/stderr in a string.

  • Added a unit test to ensure that the logger conserves memory. (25799b8)

    Also fixed the logger so that it actually conserves memory. The newly added test exposed that the logger wasn't conserving memory as it should when it doesn't save stdout/stderr to a string.

    Added a unit test test_logger_does_not_store_stdout_string_by_default which reads 256 MB from /dev/urandom to stdout and ensures that memory usage never exceeds 64 MB; conversely, the test will also ensure that it takes more than 128 MB of memory to store stdout into a string.

    Caveat: if it takes too long to read 128MB from /dev/urandom on a system running pytest tests/test_logger.py, memory usage may seem to small and cause an assertion failure. This doesn't necessarily mean that the test is wrong, it might mean you'll need to modify the test to sleep longer before capturing memory usage.

  • Updated logger stdin/stdout storage (disk vs memory). (c198083)

    • Removed console (combined stdin/stdout)
    • Readded streaming to file (instead of storing stdin/stdout in memory).
  • Rearranged imports. (a078fa9)

    Switch (non-internal) imports from "from ... import ..." for everything except for types and annotations.

  • Updated the logger. (a50d2dc)

    • Moved the logger into a directory with its own package
    • Fixed the pytests for logger so that pytest tests/test_logger.py is error-free and warning-free
    • Added support for trace collection (strace, ltrace)
    • Added support for CPU, memory, and disk usage collection (TODO: make everything nice in the HTML)
    • Added partial support for aux data (TODO: add aux data to HTML) aux data includes environment, user, group, umask, ulimit, shell
  • Update documentation on stdin_redirect (d3b191e)

  • Merge branch '477-allow-override-of-stdin-dev-null-for-logger-jobs' into 'develop' (2eb5e96)

    Resolve "Allow override of stdin=/dev/null for logger jobs"

    Closes #477

    See merge request EM-Plasma/BuildScripts!415

  • Resolve "Allow override of stdin=/dev/null for logger jobs" (2dc1424)

    Closes #477

    See merge request EM-Plasma/BuildScripts!415

  • Deal with Paths in command lists (866f11c)

  • Merge branch '303-refactor-scripts-to-use-pathlib' into 'develop' (a4f919a)

    Resolve "Refactor Scripts to Use Pathlib"

    Closes #303

    See merge request EM-Plasma/BuildScripts!339

  • DEBUGGING (8f4cd85)

  • test_logger (048735e)

  • logger updates (ec18db4)

  • Updates to common_functions.py (addee2c)

  • Fixed a syntax error in logger.py (3eb39be)

  • Added JSON (de)serialization support for pathlib.Path in logger.py (eb82e9a)

  • Import pathlib in logger.py (ad31c29)

  • more syntax error fixing in python scripts (cd123a6)

  • Refactor BuildScripts to use pathlib (9ebb300)

  • Use mkdtemp to create strm_dir in logger.py (4054aa4)

  • Fixed some duration logic and added a test. (5ce4f30)

  • All current logger tests passing in <1s (390b482)

  • Create HTML Log File in Stream Directory (dbb5161)

    Create it in the stream directory and let all the work happen there, then create a symlink in the log directory pointing to it. This is to avoid multiple Loggers in the same workspace overwriting one another's HTML log file.

  • Merge branch '236-simultaneous-loggers-in-same-workspace' into 'develop' (b56ca76)

    Resolve "Simultaneous Loggers in Same Workspace"

    Closes #236

    See merge request EM-Plasma/BuildScripts!270

  • Simultaneous Loggers in Same Workspace (#236) (28338f4)

    Append microseconds to logger directory names to deconflict "simultaneous" directory creation.

  • Merge branch '228-have-timestamped-log-files-with-symlink-to-latest' into 'develop' (5039ffc)

    Resolve "Have Timestamped Log Files with Symlink to Latest"

    Closes #228

    See merge request EM-Plasma/BuildScripts!266

  • Remove files for recreated HTML logs. (e91b8b7)

  • Don't append '_latest_run' to the HTML file name. (5946a57)

  • Updated logger to symlink main HTML to newest run HTML. Have not run the test. (2bc9aea)

  • Shifted log method higher in the file since it is a more-used method (68a0ef3)

  • Merge branch '162-integrate-update-trilinos-fork-py-into-the-pipeline' into 'develop' (15105c6)

    Resolves "Integrate update_trilinos_fork.py into the Pipeline"

    Closes #162

    See merge request EM-Plasma/BuildScripts!215

  • Integrate update_trilinos_fork.py into... (#162) (8f33f28)

    In the Trilinos sync pipeline, swap out the old bash updateTrilinosFork script for the new update_trilinos_fork.py Python one.

  • Merge branch '173-python-logger-json-is-not-pretty' into 'develop' (336328a)

    Resolve "python logger json is not pretty"

    Closes #173

    See merge request EM-Plasma/BuildScripts!221

  • logger now does pretty printing of json (6a51733)

  • Merge branch '166-build_empire-py-has-a-bug-if-not-invoked-in-buildscripts' into 'develop' (04c262f)

    Resolve "build_empire.py has a bug if not invoked in BuildScripts"

    Closes #166

    See merge request EM-Plasma/BuildScripts!216

  • Fixed build_empire.py when not called in BuildScripts (418e9cb)

    also sorted the Trilinos options when using --interactive.

  • Added logger test suite changes from 156-create-one-build-trilinos-script-to-rule-them-all 6e40af4 (d5948ce)

  • Changed run_cmd_generator to be much simpler (66e8704)

  • Made '--compiler' only required flag for Trilinos script (3efa3ff)

  • Fixed a few things with logger (8833cc1)

  • Fixed name conflict in Logger (57f2a03)

  • Added easy script to recreate HTML from JSON (10ae0a5)

  • Changed logger tmp_dir and stdout/stderr files to have timestamps (2a38baf)

  • Removed top_dict from Logger and dependent files. (5d678a8)

  • Flush stdout/stderr more frequently in common_functions and logger (e43ff4b)

  • Small change to logger.py. Print command before executing. (d8dbe5f)

  • Added some suggestions from Scot. (9714fb0)

  • Added a CCI directory structure test. (a8056cc)

  • Updated more documentation, mostly for tests. (f7f841a)

  • Added build_empire CCI wrapper. Fixed some CCI prefix issues. (caf17db)

  • Add 156-create-one-build-trilinos-script-to-rule-them-all commits to this branch. (94114e1)

    Transfer common_functions and logger updates from 152-create-one-build-empire-script-to-rule-them-all 0846d9cd

    Added update_trilinos_fork first draft.

    Updated some documentation in update_trilinos_fork

    Updated documentation to work better with Sphinx.

    Updated more documentation.

    Added files for easy documentation generation.

    Changed documentation title.

    Add 156-create-one-build-trilinos-script-to-rule-them-all commits to this branch.

  • Transfer install_trilinos development work from (3bc132f)