• Re: Formatting (was: Best practise for managing Conda environments?)

    From Martin Schöön@3:633/10 to All on Thu Sep 24 08:31:59 2026
    Den 2026-09-23 skrev Stefan Ram <ram@zedat.fu-berlin.de>:
    Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> wrote or quoted:
    If you're wondering how to format text for Usenet, I like Emacs for this >>task. I then paste into Thunderbird for posting, but that's because I'm >>not inclined yet to figure out how to configure GNUS.

    To wrap paragraphs, I wrote a script in Python that uses dynamic
    programming to find the globally best wrap and made it available
    to vim via a key mapping. It was used to wrap this paragraph here.

    <snip>

    My problem is the unique 'mark up' I need to weed out...

    Also, some questionable tips are hiding among the good ones. I will keep
    them but add comments. I think it illustrates nicely how careful you
    need be when reading LLM produce.

    /Martin

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Martin Schöön@3:633/10 to All on Fri Sep 25 08:53:53 2026
    Den 2026-09-24 skrev Martin Sch””n <martin.schoon@gmail.com>:
    <snip>

    My problem is the unique 'mark up' I need to weed out...

    Also, some questionable tips are hiding among the good ones. I will keep
    them but add comments. I think it illustrates nicely how careful you
    need be when reading LLM produce.

    OK, let's see how I managed. Org-mode kind of markup used:

    * Heading 1
    ** Heading 2
    ~code~
    + list bullet
    *bold*
    /emphasis/

    # Python style inline comment by me.

    ###################################################################

    Mistral Small 4 on bets practice for managing virtual environments
    using conda.

    Managing virtual environments with Conda (Anaconda/Miniconda) is
    essential for isolating project dependencies and avoiding
    conflicts. Here are the best practices. By following these
    practices, you ensure reproducible, conflict-free environments for
    your projects.

    * Create isolated environments
    Always create a dedicated environment for each project to
    avoid dependency conflicts.

    Create a new environment with a specific Python version:

    ~conda create --name my_project python=3.9~

    Activate the environment:

    ~conda activate my_project~

    *Best Practice:*
    + Use descriptive names (e.g., `my_project_dev', `data_science_env').
    + Specify Python versions explicitly (`python=3.9' instead of just
    `python').

    * Export and recreate environments
    To share or replicate an environment, export its dependencies to
    a YAML file.

    Export the environment to a YAML file:

    ~conda env export --name my_project > environment.yml~

    Recreate the environment from the YAML file:

    ~conda env create --file environment.yml~

    *Best Practice:*
    + Commit environment.yml to version control (e.g., Git) for
    reproducibility.
    + Use `conda env export --from-history' to export only explicitly
    installed packages (avoids unnecessary dependencies).

    * Update environments safely
    Avoid breaking dependencies by updating packages carefully.

    Update all packages in the environment:

    ~conda update --all~ # This is /not/ recommended by NSC!

    Update a specific package:

    ~conda update numpy~

    *Best Practice:*
    + Test updates in a staging environment before applying them to
    production.
    + Use `conda list' to check installed versions before updating.

    * Remove unused environments
    Clean up old environments to save disk space.

    List all environments:

    ~conda env list~

    Remove an environment:

    ~conda env remove --name old_env~

    *Best Practice:*
    + Regularly prune unused environments (`conda clean --all' removes
    cached packages).

    * Use conda-forge for additional packages
    Prefer conda-forge for community-maintained packages.

    Add conda-forge as a channel:

    ~conda config --add channels conda-forge~

    Install a package from conda-forge:

    ~conda install some_package~

    *Best Practice:*
    + Prioritize conda-forge over the default Anaconda channel for
    broader package availability.

    * Avoid mixing conda and pip
    If you must use pip, install it first in the Conda environment.

    ~conda install pip~

    ~pip install some_pip_package~

    *Best Practice:*
    + Prefer Conda packages when possible to avoid conflicts.
    + If using pip, document it in environment.yml under `pip:'.

    # According to NSC you should /never/ install packages using conda
    # /after/ you have used pip. Do /all/ conda (mamba) installs before
    # using pip!

    * Use `conda clean' regularly
    Remove unused packages and caches to free up space.

    ~conda clean --all~

    *Best Practice:*
    + Run this periodically to keep your Conda installation lean.

    * Use environment variables for paths
    Set environment variables to avoid hardcoding paths.

    Set a variable in the current shell:

    ~export MY_DATA_DIR=/path/to/data~

    Or set it in the Conda environment:

    ~conda env config vars set MY_DATA_DIR=/path/to/data~

    ~conda activate my_project~

    **Best Practice:**
    + Use `.env` files for project-specific variables (load them with
    `python-dotenv`).

    * Use mamba for faster dependency resolution
    Mamba is a drop-in replacement for Conda that resolves dependencies
    much faster.

    Install mamba:

    ~conda install mamba -n base -c conda-forge~

    Use mamba instead of conda:

    ~mamba install numpy pandas~

    *Best Practice:*
    + Use mamba for large environments to speed up installation.

    * Document dependencies clearly
    Include a README.md in your project with:
    - Environment setup instructions.
    - Key dependencies.
    - How to activate the environment.

    * Example Workflow
    ** Create environment
    ~conda create --name my_project python=3.9~

    ~conda activate my_project~

    ** Install packages
    ~conda install numpy pandas scikit-learn~

    ~pip install some_pip_package~

    ** Export environment
    ~conda env export --from-history > environment.yml~

    ** Share environment
    Share environment.yml and README.md with collaborators.

    ####################################################################

    I hope this is readable.

    Note that some advice above is /not/ good practice according to the instructions supplied by NSC and NCS provides plausible motivation
    for their advice.

    https://nsc.gitlab-pages.liu.se/berzelius-training/managing-conda-environments-best-practices/2.%20best-practices/

    I have tested none of this so far. The weather has been too nice :-)

    /Martin

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)