Skip to content

Log of regenerating gitoxide archives from scripts with changed shebangs, and post-tests

License

Notifications You must be signed in to change notification settings

EliahKagan/gitoxide-1361-regeneration-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gitoxide-1361-regeneration-notes

This relates to regenerating archives for Byron/gitoxide#1361.

This is the "full repo" version of this gist, which got quite large. Both have effectively the same content, but this is a bit easier to navigate.

Note that, in spite of being unfortunately named noble-x64, the system this was done on was actually an Ubuntu 22.04 LTS (Jammy Jellyfish) system, not an Ubuntu 24.04 LTS (Noble Numbat) system. The naming was originally a mistake related to an initial plan to set up 24.04 LTS. This is not a problem, just a confusing hostname shown in the log. In particular, the version of Git used is from the git-core PPA and is a build of the latest stable version of Git (as of when this is being done). The exact package version is 1:2.45.2-0ppa1~ubuntu22.04.1.

The branch name freebsd relates to an original motivating reason for wanting the compatibility improvement conferred by changing the #! lines (see the PR). The system the archives were regenerated on is not FreeBSD either.

License for this repository (not gitoxide): CC0-1.0

The following is a guide to the files in this repo as well as some specific notes.

Files

Without the shebang change or regeneration

These are on the main branch, using generated archives as usual, to show what archives were already not used, even without any feature branch changes, i.e., to allow which files are modified in such runs to be inspected:

Regenerating the archives

These are logs from the session where I regenerated the archives:

Post-checks

These are logs of manually initiated test suite runs on the feature branch that has the regenerated archives committed to it, on multiple systems, supplementing the CI checks in Byron/gitoxide#1361:

Ubuntu

macOS

Windows

Round 2: Regenerating one last archive on macOS

Round 2: Post-checks

macOS

The first clean test run on macOS after the round-2 single-archive regeneration had one failing test:

That seems to have been due to random events, since three more separate test runs afterwards all passed:

Where all the above test runs used the generated archives.

Ubuntu

Since only one regenerated archive was committed in round 2, I only did one retest on the original Ubuntu system.

FreeBSD

The one macOS-specific regenerated archive is not releated to FreeBSD, but I had not tested regenerated archives with FreeBSD in round one, so I did it now.

Specific Notes

These have not been updated for "Round 2," except that the note that indicated that I had not done FreeBSD runs has been modified to clarify that this is no longer the case.

Post-testing on Ubuntu

Re-running on Ubuntu, using generated archives

After regenerating the archives and committing, I did a gix clean -xde and ran the tests again (on the same Ubuntu 22.04 LTS system, with the same command). One archive was changed:

ek@noble-x64:~/repos/gitoxide (freebsd *=)$ git diff
diff --git a/gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar.xz b/gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar.xz
index 2602d5df0..ef4c40b7f 100644
Binary files a/gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar.xz and b/gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar.xz differ

I'm not sure why. However, this is not new. That is one of the archives that is regenerated even without GIX_TEST_IGNORE_ARCHIVES=1 even when the tests were run on the main branch, both with the system-provided git 2.34.1 and git-core PPA git 2.45.2 on Ubuntu as well as the system-provided git on macOS. All three had the same such files:

        modified:   gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar.xz
        modified:   gix/tests/fixtures/generated-archives/make_head_repos.tar.xz
        modified:   gix/tests/fixtures/generated-archives/make_status_repos.tar.xz

In contrast, only the first one, in gix-diff, differs when the tests are rerun on Ubuntu on the feature branch where the shebangs have been made more portable and the archives have been regenerated:

        modified:   gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar.xz

Re-running on Ubuntu, not using generated archives

Rerunning on Ubuntu 22.04 LTS without using pre-generated archives also passed. It modified a number of archives that don't seem to need regeneration, but I think it is common for archives that are forced to be regenerated by GIX_TEST_IGNORE_ARCHIVES=1 to differ and thus show as modified.

Post-testing on macOS

Running on macOS, using generated archives

Running the tests on macOS 14.5 after the regenerated archives were in place worked, with all tests passing. But two archives were modified:

        modified:   gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar.xz
        modified:   gix-discover/tests/fixtures/generated-archives/make_exfat_repo_darwin.tar.xz

The first is the one that is also modified in Ubuntu re-runs. The second appears to be modified because it was actually not regenerated at all, due the test that uses it only running on macOS.

Running on macOS, not using generated archives

Running the tests on macOS 14.5 again, but without using pre-generated archives still passes as well. As in Ubuntu, a number of archives are modified when this is done, but I think that is normal.

Post-testing on Windows

Running on Windows, using generated archives

Running the tests on Windows 10 after the regenerated archives were in place worked, all tests passing and no tracked files modified.

Running on Windows, not using generated archives

Running the tests on Windows 10 again, but without using pre-generated archives produced 16 failures.

Running with GIX_TEST_IGNORE_ARCHIVES=1 has never passed all tests on Windows, so the goal here is to compare to what was failing before, as seen in Byron/gitoxide#1358. The failures this time were:

     Summary [ 805.476s] 2351 tests run: 2335 passed (17 slow, 14 leaky), 16 failed, 9 skipped
        FAIL [   7.350s] gix-glob::glob pattern::matching::compare_baseline_with_ours
        FAIL [   7.628s] gix-pathspec::pathspec parse::baseline
        FAIL [   0.045s] gix-pathspec::pathspec parse::valid::glob_negations_are_always_literal
        FAIL [   0.077s] gix-pathspec::pathspec parse::valid::whitespace_in_pathspec
        FAIL [   6.129s] gix-pathspec::pathspec search::files
        FAIL [  10.753s] gix-pathspec::pathspec search::prefixes_are_always_case_sensitive
        FAIL [ 180.981s] gix-ref-tests::refs packed::iter::performance
        FAIL [   4.751s] gix-submodule::submodule file::baseline::common_values_and_names_by_path
        FAIL [  35.035s] gix-submodule::submodule file::is_active_platform::pathspecs_matter_even_if_they_do_not_match
        FAIL [  28.607s] gix-submodule::submodule file::is_active_platform::submodules_with_active_config_are_considered_active_or_inactive
        FAIL [  21.430s] gix-submodule::submodule file::is_active_platform::submodules_with_active_config_override_pathspecs
        FAIL [  14.781s] gix-submodule::submodule file::is_active_platform::without_any_additional_settings_all_are_inactive_if_they_have_a_url
        FAIL [   9.120s] gix-submodule::submodule file::is_active_platform::without_submodule_in_index
        FAIL [  26.757s] gix::gix object::tree::diff::track_rewrites::copies_in_entire_tree_by_similarity_with_limit
        FAIL [   0.182s] gix::gix revision::spec::from_bytes::regex::find_youngest_matching_commit::regex_matches
        FAIL [   0.088s] gix::gix revision::spec::from_bytes::regex::with_known_revision::contained_string_matches_in_unanchored_regex_and_disambiguates_automatically
error: test run failed

Those are the exact same tests that had failed before when run this way, shown in Byron/gitoxide#1358. So I think we are okay there, as far as proceeding with Byron/gitoxide#1361 is concerned.

Post-testing on FreeBSD

I didn't have a chance to test on a FreeBSD during the first round, but I did it after the second round.

Comparing to https://gist.github.com/EliahKagan/ede466f2d3f14ccc021c1c17fabd5015#file-output-txt-L2871 (as the "14 failures remaining" link points to from Byron/gitoxide#1361) reveals that, whether the generated archives are used or not, the same tests fail, and these are 12 of the 14 tests that had failed before when the new portable shebang was used without having committed regenerated archives.

About

Log of regenerating gitoxide archives from scripts with changed shebangs, and post-tests

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published