Skip to content

Latest commit

 

History

History
187 lines (184 loc) · 9.24 KB

changelog.md

File metadata and controls

187 lines (184 loc) · 9.24 KB

Changelogs

  • 2024.09.17

    • download_python remove default stripped keyword
    • test_utils.py use test_cache/ folder to avoid conflict
  • 2024.08.07

    • [Compatible WARNING]: update sys_paths insert index from -1 to 0
    • disable --download-python, use python -m zipapps.download_python instead
      • add -a/--auto
        • auto download the latest version matched the current platform: x86_64+install_only
        • python -m zipapps.download_python -a
      • add -k/--keywords, filt with keywords split by ,
        • python -m zipapps.download_python -a -k 3.11
      • add -u/--unzip, unzip the .tar.gz
        • python -m zipapps.download_python -a -k 3.11 -u
          • download and unzip the .tar.gz
  • 2024.06.04

    • add arg --download-python: interactive download standalone python interpreter (https://www.github.com/indygreg/python-build-standalone)
    • custom --rm-patterns to remove useless files . fixed #28 #29
    • add pip_install_target to install requirements and insert to sys.path, cache support
      • from zipapps import pip_install_target
      • pip_install_target(Path("./mock_dir"), ["six"], force=False, sys_path=0); import six
  • 2023.09.12

    • add --download-pip-pyz to download pip.pyz
      • install pip module to win32 embeded exe
        • win32 embeded ./python.exe xxx/xxx/zipapps.pyz auto download pip.pyz and append to _pth
    • fix main.py docs
  • 2023.06.04

    • save zipapps_config.json to pyz file
  • 2022.08.28

    • add -q for quiet mode
      • -qqqqq to mute all the logs
    • -m support source code mode while not matched module.submodule:function format
      • like python -c "python code"
      • demo: python -m zipapps -m "import six; print(six.__file__)"
      • WARN: only when -m not matched regex r'^\w+(\.\w+)?(:\w+)?$'
  • 2022.04.27

    • handle PermissionError for chmod
    • support --dump-config and --load-config #24 fixed
    • support --freeze-reqs close #22
      • Freeze package versions of pip args with venv, output to the given file path.
        • - equals to stdout
        • logs will be redirect to stderr
      • Based on pip + venv
        • the work folder is tempfile.TemporaryDirectory, prefix='zipapps_'
    • support clear self pyz after running fix #21
    • refactor environment variables template and interval variables(with string.Template) #23
      • change TEMP/HOME/SELF prefixes with $TEMP/$HOME/$SELF
        • backward compatibility is preserved
      • support $PID, $CWD
    • normalize the map of environment variables
      • use these envs to reset build args at runtime
      •   'unzip': 'ZIPAPPS_UNZIP',
          'unzip_exclude': 'ZIPAPPS_UNZIP_EXCLUDE',
          'unzip_path': 'ZIPAPPS_CACHE',
          'ignore_system_python_path': 'STRICT_PYTHON_PATH',
          'python_version_slice': 'PYTHON_VERSION_SLICE',
          'clear_zipapps_cache': 'CLEAR_ZIPAPPS_CACHE',
          'clear_zipapps_self': 'CLEAR_ZIPAPPS_SELF',
          'unzip_chmod': 'UNZIP_CHMOD',
        
  • 2022.03.17

    • fix --chmod forget the parent folder and .pyz self
  • 2022.03.13

    • check is_zipfile before activate
    • --ensure-zipapps as the alias of --activate-zipapps
    • fix the conflict between -d mode and -u
    • add --chmod for unzipped files, fix #17
  • 2022.03.10

    • fix bug of sys.path missing the parent of __file__ while running python venv.pyz xx.py
  • 2022.03.07

    • fix bug of version 2022.03.06
      • file xxx.template not found
  • 2022.03.06

    • rename some template files
    • remove duplicated sys.path
    • only activate zipped file, ingore the folders path
  • 2022.03.02

    • fix #16 pip import at old version
    • add environment variable CLEAR_ZIPAPPS_CACHE for arg clear_zipapps_cache
    • zipapps.create_app now has the exact parameters
  • 2022.02.27

    • add --unzip-exclude, -ue
      • The opposite of --unzip / -u which will not be unzipped, should be used with --unzip / -u.
      • Can be overwrite with environment variable ZIPAPPS_UNZIP_EXCLUDE
  • 2022.01.17

    • add runtime arg --activate-zipapps to ensure cache folder and do nothing
    • fix pip install for -d (lazy install mode) with pip.main function instead of subprocess
    • tell how to use zipapps with nuitka
  • 2021.11.01

    • add --clear-zipapps-cache / -czc command line arg
      • Clear the zipapps cache folder after running, but maybe failed for .pyd/.so files.
    • move the const to the top of ensure_zipapps template.
  • 2021.09.22

    • fix --layer-mode-prefix not work for -a files
  • 2021.09.21

  • 2021.05.17

    • lazy-install mode will re-install packages while pip args including -U or --upgrade.
  • 2021.04.29

    • add arg --ensure-pip for embed-python(windows) or other python versions which have no pip installed but lazy-install mode is enabled.
  • 2021.04.24

    • remove conflict command args with pip
      • remove --compile arg, it will only work for pip
      • -c will not be removed, pip install -c could use pip install --constraint instead
    • Refactor for OOP(Object-oriented programming)
      • Will be used as the first stable version and end experimental phase
      • remove Config class
      • show version info and other logs in stderr
      • compiled should not be True while unzip is null
      • a successful message has been added to the tail of logs: Successfully built
  • 2021.04.23

    • lazy install mode:
      • fix bug: python version conflict
      • remove repeated installation
        • pip install will execute only once for same pip_args_md5
        • pip_args_md5 comes from pip_args string, including bytes of related files(like requirements.txt)
    • logs of pip install will be redirected, from stdout to stderr
  • 2021.04.22

    • update the lazy_install mode (-d)
      • simple use case:
          1. python -m zipapps -d six
          1. python app.pyz -c "import six;print(six.__file__)"
      • it will not rmtree the _zipapps_lazy_pip folder for new build
        • if you need to upgrade those requirements, use -U arg of pip
        • lazy_install mode will install requirements with pip install while first running
          • so you can just run like this to init its installation(-m not set): python3 app.pyz -V
      • for now, -d is to server for the cross-platform and cross-python-version app
        • pip target path is separated from different python version and system platform
          • python version accurity can be reset with -pva 5, defaults to 2, means 3.8.3 and 3.8.4 are same 3.8
  • 2021.04.11

    • add --sys-paths to include new paths of sys.path
      • support TEMP/HOME/SELF prefix, separated by commas
      • sometimes be used for separating pyz code from requirements
        • requirements often be installed by pip install xxx -t $SOME_PATH
  • 2021.04.01

    • use ensurepip instead of install pip while running with lazy-install
    • unzip_path has been set to SELF/zipapps_cache by default when lazy_install is True
  • 2021.03.31

    • use sys.stderr.write instead of warnings.warn
    • support -d for lazy pip install
      • example: python3 -m zipapps -d bottle -r requirements.txt
      • the bottle and other packages of requirements.txt will be install while first running
      • this is useful for cross-platform distributions, which means pyz file size is much smaller
  • 2021.03.02

    • fix auto-unzip nonsense folders while -u AUTO but no need to unzip any files
  • 2021.01.29

    • fix packaging zipapps self
      • python3 -m zipapps -m zipapps.__main__:main -a zipapps -o zipapps.pyz
    • add zipapps.pyz to release page
  • 2021.01.28

    • fix bug: run .py file with run_path missing sys.argv
      • python3 app.pyz xxx.py -a -b -c
  • 2021.01.11

    • add --zipapps arg while building pyz files
      • to activate some venv pyz with given paths while running it
      • also support TEMP/HOME/SELF prefix, these internal variables are still runtime args.
  • 2020.12.27

    • Combile multiple pyz files, do like this:
      • python3 -m zipapps -o six.pyz six
      • python3 -m zipapps -o psutil.pyz -u AUTO psutil
      • python3 six.pyz --zipapps=psutil.pyz -c "import six,psutil;print(six.file, psutil.file)"
  • 2020.12.23

    • --unzip support auto-check by -u AUTO, alias for --unzip=AUTO_UNZIP
    • fix run_module bug while running ./app.pyz -m module
  • 2020.12.21

    • now will not run a new subprocess in most cases.
      • using runpy.run_path and runpy.run_module
      • and using subprocess.run instead of subprocess.call
  • 2020.12.13

    • --unzip support complete path
    • --unzip support auto-check by --unzip=AUTO_UNZIP
  • 2020.11.23

    • add activate_zipapps to activate zipapps PYTHONPATH easily
  • 2020.11.21

    • reset unzip_path as the parent folder to unzip files
      • so the cache path will be like ./zipapps_cache/app/ for app.pyz,
      • this is different from old versions.
    • add environment variable ZIPAPPS_CACHE for arg unzip_path
    • add environment variable ZIPAPPS_UNZIP for arg unzip