Skip to content

Optimize repo tree #120

@janikmu

Description

@janikmu

Hi maintainers,

while not necessarily blocking, while reviewing for JOSS (openjournals/joss-reviews#10439), the initial clone of the repository takes quite some time and the repo tree is huge (>300 MB):

janik@Mac Mighty % git-sizer --verbose
Processing blobs: 3054
Processing trees: 3136
Processing commits: 762
Matching commits to trees: 762
Processing annotated tags: 0
Processing references: 17
| Name                         | Value     | Level of concern               |
| ---------------------------- | --------- | ------------------------------ |
| Overall repository size      |           |                                |
| * Commits                    |           |                                |
|   * Count                    |   762     |                                |
|   * Total size               |   260 KiB |                                |
| * Trees                      |           |                                |
|   * Count                    |  3.14 k   |                                |
|   * Total size               |   926 KiB |                                |
|   * Total tree entries       |  24.5 k   |                                |
| * Blobs                      |           |                                |
|   * Count                    |  3.05 k   |                                |
|   * Total size               |   798 MiB |                                |
| * Annotated tags             |           |                                |
|   * Count                    |     0     |                                |
| * References                 |           |                                |
|   * Count                    |    17     |                                |
|     * Branches               |     1     |                                |
|     * Tags                   |     1     |                                |
|     * Remote-tracking refs   |    15     |                                |
|                              |           |                                |
| Biggest objects              |           |                                |
| * Commits                    |           |                                |
|   * Maximum size         [1] |  1.24 KiB |                                |
|   * Maximum parents      [2] |     2     |                                |
| * Trees                      |           |                                |
|   * Maximum entries      [3] |    37     |                                |
| * Blobs                      |           |                                |
|   * Maximum size         [4] |  47.2 MiB | ****                           |
|                              |           |                                |
| History structure            |           |                                |
| * Maximum history depth      |   597     |                                |
| * Maximum tag depth          |     0     |                                |
|                              |           |                                |
| Biggest checkouts            |           |                                |
| * Number of directories  [5] |   148     |                                |
| * Maximum path depth     [6] |     7     |                                |
| * Maximum path length    [6] |   114 B   | *                              |
| * Number of files        [5] |   419     |                                |
| * Total size of files    [7] |   592 MiB |                                |
| * Number of symlinks     [8] |     3     |                                |
| * Number of submodules       |     0     |                                |

[1]  a03e6b445822763735f66fc44079d53b186f1c6d
[2]  3511553f393b874254a1e73c0e23975547b31e9e (refs/heads/main)
[3]  71aa35353f494f39bb004dd7d9108dfcfd6757b9 (ed92c1afbb8e3476fdcdf71bf41dfeec0b3a12b3:main/.doctrees/api)
[4]  57e1839f2227d235ec5872592941f9716490e73b (refs/remotes/origin/experiments:hpo/SAC_SMAC/Walker2d-v4/seed_0/results.csv)
[5]  a335454a7f01d087396e3da1ee4cdf6f5cd578a4 (refs/remotes/origin/experiments^{tree})
[6]  c8db33de805963bc80763f3e5cbad3301f8da85c (refs/remotes/origin/joss_paper^{tree})
[7]  ff7087d26f8ebf336306882261b31dfed4e09474 (ca87d0f542b3a339a24d925c0abcdd38ceb7882c^{tree})
[8]  267a3c4e3108fc1c2855b5b1212ae8709c3b98b8 (refs/remotes/origin/experiments:hpo)

git-sizer shows that some experiment results have been committed to branches, maybe you can use something like https://github.com/newren/git-filter-repo to clean up a little. In my opinion this is relevant because mighty is not simply a module that is distributed over PyPi, but a framework where one needs to either clone this repository or use something like the template repo, which itself has some coldstart problems at the moment (automl/mighty_project_template#1).

I would think that if you promote the template repository to a real first-stop for new users such that they don't have to clone this repository the tree size becomes less of an issue 🙂 That would necessitate that the PyPI version is up-to-date (including things like the gymnasium versioning fix which is both in the joss_paper branch and in main but remains in the pip installable package!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions