Add submodules - #103
Open
Erotemic wants to merge 11 commits into
Open
Conversation
…l triage IBEIS/utool parse function source code at runtime, but PyInstaller ships bytecode only, so inspect.getsource raised "OSError: could not get source code" in installed Windows builds (e.g. the Advanced ID interface crash). - ibeis_pyi_helper.py: bundle .py sources for ibeis and the utool ecosystem (SOURCE_INTROSPECTED_PKGS) so inspect.getsource works when frozen; collect .so/.dylib shared libs in addition to .dll/.pyd so non-Windows builds get their native libs (libflann.so was silently dropped). - ibeis_app_entry.py: add IBEIS_FROZEN_SELFTEST=1 mode that exercises the crash path (ut.parse_func_kwarg_keys on get_annot_stats_dict) and exits 0/1, verified pass/fail A/B against a frozen Linux build. - build_installer.ps1: run the selftest as a hard gate in -Checks; find ISCC.exe in Program Files (x86)/Program Files/PATH, not just LOCALAPPDATA\Programs (fixes Inno step on GitHub runners). - dev/code_smells.md: triage list of Windows/frozen-app hazards and general smells from a full-repo sweep, with suggested fix order. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ubmodules # Conflicts: # dev/_installers/build_installer.ps1
run_developer_setup.sh now creates/uses .venv, installs ibeis editable with [headless,tests] extras, swaps the pure-python tpl/ submodules (utool, vtool/dtool/plottool/guitool_ibeis, futures_actors) in as editable installs, and verifies imports. Compiled repos stay on PyPI wheels unless IBEIS_DEV_BINARY=1. Version-robust fixes for new upstream releases (old versions still work): - demo.py: networkx now raises on union_all([]); guard num_pccs=0. - test_neg_metagraph.py: use nx.selfloop_edges(G) function form (the Graph method was removed); fix num_pccs typo (2 -> 4) and an `=` that should have been `==`. - sklearn_utils.py: sklearn >= 1.9 rejects all-zero sample_weight in confusion_matrix; preserve the old all-zero-matrix behavior. - tpl/pyflann_ibeis: np.row_stack (removed from numpy) -> np.vstack. NOTE: needs a pyflann_ibeis push + PyPI release before CI test jobs (which install from PyPI) pick it up. Real bug found by the never-run-in-CI pytest files: on a dirty PCC merge (pos-between-dirty-merge), nid_to_errors kept a stale entry for the absorbed nid and the merged component's error hypothesis was never recomputed. Purge both old nids and call _new_inconsistency, mirroring the neg-within-split-dirty pattern. Test-suite findings recorded in dev/code_smells.md section 8. Full suite after fixes: 445 passed, 518 skipped, 0 failed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
All changes preserve current Linux behavior (full suite: 445 passed,
518 skipped, unchanged from baseline).
- sysres.get_workdir: the unset-workdir default was the bare relative
string 'ibeis_default_workdir', which resolves against CWD - for an
installed app that is C:\Program Files\IBEIS (unwritable). Keep the
legacy CWD-relative dir when it already exists (developer checkouts),
otherwise use a per-user data dir via ub.Path.appdir.
- selectivesearch/darknet: open('/dev/null') -> os.devnull.
- detectcore: image_path.split('/') -> basename/splitext (wrong export
filenames on Windows).
- manual_name_funcs / manual_imageset_funcs: pass encoding='utf-8' on
the name-change JSON log and smart-patrol XML reads (Windows default
is cp1252; non-latin names crashed the rename flow).
- interact_annotations2: remove 'if True: rrr()' dev hot-reload blocks
that re-imported the annotation interaction module on every editor
open (loader-dependent under PyInstaller, gratuitous in production).
- guiback.update_source_install: no-op with an info dialog in frozen
builds (sys.executable is the app exe; there is no source checkout).
- main_module.set_newfile_permissions doctest: use a tempdir and restore
the previous umask instead of dropping tempfile1/2.txt into CWD and
leaking umask 0o000 into the rest of the test run.
dev/code_smells.md updated to mark these items fixed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
All changes preserve current behavior on Linux (full suite: 445 passed,
518 skipped, unchanged from baseline).
- ibeis_pyi_helper: exclude ibeis.algo.verif.torch* from hiddenimports;
those modules 'import torch' at top level while the spec excludes
torch, so they shipped as guaranteed-to-crash bytecode. Nothing else
imports them.
- win_installer_script.iss + build_installer.ps1: stop hardcoding the
app version in the .iss; the ps1 now parses __version__ from
ibeis/__init__.py and passes /DAppVersion (the .iss define remains as
an #ifndef fallback for direct ISCC runs).
- params.py: honor the correctly-spelled IBEIS_PARSE_ARGS env var while
keeping the legacy typo IBIES_PARSE_ARGS working as a fallback.
- __main__.py: main_locals['ibs'] -> .get('ibs') so run_ibeis does not
KeyError when no database is opened.
- tests.yml: run the plain pytest suites (tests/,
ibeis/algo/graph/tests/) that the xdoctest-only CI never executed and
which had rotted. Non-blocking (continue-on-error) until observed
green across the matrix.
- .gitignore: remove the stray quote line; ignore testdb_dst/,
synthetic_creatures/, .venv/.
dev/code_smells.md updated to mark these items fixed; noted that boto
removal needs coordination (utool lazily imports it for s3:// grabs).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The tests-strict/runtime-strict leg on Python 3.13 pins every dep to its
minimum. pyzmq==26.0.0 has no cp313 wheels and its sdist no longer
builds (old scikit-build config rejected by scikit-build-core >= 0.10);
simplejson==3.6.5 and coverage==7.3.0 are also pre-3.13 C-extension
sdists. Bump the >=3.13 minimums to the first releases with cp313
wheels (pyzmq 26.1.0, simplejson 3.19.3, coverage 7.6.1) and untangle
the overlapping pyzmq markers. Older pythons keep their existing
minimums.
Policy: CI and installer jobs build against PyPI releases; the tpl/
submodules are for local development only (run_developer_setup.sh).
Drop the recursive submodule checkout from the Windows installer jobs -
it was unused by the build and made CI fail hard when a submodule
gitlink pointed at a not-yet-pushed commit ("not our ref 5791ab1").
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- setup.py: python_requires >=3.11 (was >=3.8); drop 3.9/3.10 trove classifiers. - pyproject.toml: xcookie min_python = 3.11. - tests.yml: remove the 3.9/3.10 matrix legs; the full-strict leg (which runs on min python) moves from 3.9 to 3.11. - requirements/*: remove the 37 version-ladder rungs that only applied below 3.11 and tighten the floor markers of the 6 surviving rungs that spanned across (e.g. pyzmq "python_version < '3.12'" now also says ">= '3.11'"); fix stale rung comments (networkx, pynmea2, pyqt5, coverage). Safety check: dependency resolution for every package in every requirements file was snapshotted before the edit and verified byte-identical on Python 3.11, 3.12, 3.13, and 3.14 afterward, and uv can fully resolve runtime+tests+headless on 3.11 and 3.13. Ecosystem tpl/ repos to be updated separately. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Minor bump for the significant changes on this branch: dropped Python 3.9/3.10, new default-workdir behavior, Windows installer overhaul, and the PyPI-not-submodules CI policy. The unreleased 2.4.1 changelog notes are folded into the 2.5.0 entry since 2.4.1 was never released. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- dev/_installers/README.md: full fresh-VM-to-verified-installer guide: prerequisites (Python on PATH is the only real one; the script bootstraps uv/venv/PyInstaller/Inno itself), no submodules needed, one-command build, output layout, the IBEIS_FROZEN_SELFTEST / IBEIS_BOOT_DEBUG / IBEIS_DLL_DEBUG diagnostic hooks, a manual GUI test checklist ordered by historical breakage (Advanced ID interface included), what to send back on failure, and troubleshooting for the failure modes we have actually hit. - README.rst: the "Self Installing Executables" section now points at the guide instead of only decade-old HotSpotter Dropbox links. - docs/source/manual/: commit the previously-untracked Ubuntu install instructions so they exist in a fresh clone. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.