Skip to main content

Tool for converting `pixi update` diffs to markdown

Project description

pixi-diff-to-markdown

License Build Status Conda Platform Conda Downloads pypi-version python-version codecov

pixi-diff-to-markdown is a tool that generates markdown from a JSON diff that's generated by pixi update --json. It reads from the standard input and writes to the standard output.

pixi update --no-install --json | pixi exec pixi-diff-to-markdown > diff.md

[!TIP] If you don't care about the environment being installed and only want to update the lockfile (for example in a CI pipeline), you can use pixi update --json --no-install to generate the diff.

Example output:

Dependency Before After Change
new-package 0.10.1 Added
removed-package 0.10.1 Removed
bpy 0.10.1 2.10.1 Major Upgrade
polars herads_0 herads_1 Only build string
python 0.10.0 0.10.1 Patch Upgrade

[!TIP] The sorting of the tables is done by explicit/implicit, change type and alphabetically.

Installation

You can install pixi-diff-to-markdown using pip or pixi.

# via pixi
pixi global install pixi-diff-to-markdown
# via pip
pip install pixi-diff-to-markdown

Configuration

Depending on your use case, you may want to configure the output of pixi-diff-to-markdown. You can do this by creating a configuration section in pixi.toml or pyproject.toml.

# defaults
[tool.pixi-diff-to-markdown]
merge-dependencies = "no" # or "split-explicit" when there are three or more environments / platforms
hide = "auto"
max-expanded-rows = 10
change-type-column = true
explicit-column = false
package-type-column = false
create-links-for-packages = true

You can also override the configuration options by passing them as arguments to pixi-diff-to-markdown.

pixi update --json | pixi-diff-to-markdown --merge-dependencies=yes --explicit-column

merge-dependencies

Depending on the amount of environments and platforms you have in your pixi.toml, it might make sense to either merge all dependencies into one table, split them by explicit and implicit dependencies or split them by environment and platform. For a large amount of environments and platforms, it is recommended to merge the dependencies into one table for deduplication. merge-dependencies can be set to one of the following values:

  • no: Don't merge the dependencies, each environment will be displayed in their own table. Only recommended for a small amount of environments / platforms (example).
  • yes: Merge all dependencies into one table and deduplicate them (example).
  • split-explicit: Merge all dependencies into one table and deduplicate them but split the table into one explicit and one implicit table (example).

The default is no when there are less than three environments / platforms and split-explicit when there are three or more environments / platforms.

hide

Whether to hide the tables in a collapsible object. hide can be set to one of the following values (defaults to auto):

  • no: Don't hide the tables (example).
  • yes: Put the tables in collapsible objects (example).
  • auto: Put the tables in collapsible objects if there are at most max-expanded-rows rows in each table.

max-expanded-rows

The maximum amount of rows in a table before it is hidden. Defaults to 10.

change-type-column

Whether to enable the Change column in the output (example true, example false).

explicit-column

Whether to enable the Explicit column in the output (example true, example false). If a dependency is explicitly defined in pixi.toml, it will be marked as Explicit. Otherwise, it will be marked as Implicit.

If this is set to false, the Explicit column will be omitted and the explicitly defined dependencies will be marked as cursive.

package-type-column

Whether to enable the Package Type column in the output (example true, example false). This column will show whether the dependency is a conda or pypi package.

create-links-for-packages

Whether to create links for packages from public channels (i.e., conda-forge or bioconda, etc.) or channels on prefix.dev (example). Defaults to true.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pixi_diff_to_markdown-0.3.3.tar.gz (406.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pixi_diff_to_markdown-0.3.3-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file pixi_diff_to_markdown-0.3.3.tar.gz.

File metadata

  • Download URL: pixi_diff_to_markdown-0.3.3.tar.gz
  • Upload date:
  • Size: 406.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixi_diff_to_markdown-0.3.3.tar.gz
Algorithm Hash digest
SHA256 95e0a67e2476b817cbe5c2826a9eeff47f96f355200db039229998f09dbcb0bc
MD5 b08e5f7b034d4a6f5b91363987b37923
BLAKE2b-256 3f47b4fcc99fea28400b6d00e2d8d0168e80d0b1b22903321bbfd92b6efbdd8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pixi_diff_to_markdown-0.3.3.tar.gz:

Publisher: build.yml on pavelzw/pixi-diff-to-markdown

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pixi_diff_to_markdown-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pixi_diff_to_markdown-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 603f012901260b7d7a1d50c9ae62e74ce998e64214420f25a7914e8286904aca
MD5 22b0da352a1536078f2dff1ecf5160c7
BLAKE2b-256 0e4d7252e4f3375944dec66dac853fa37d597a9c955bfcc855b78abdc918c8d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pixi_diff_to_markdown-0.3.3-py3-none-any.whl:

Publisher: build.yml on pavelzw/pixi-diff-to-markdown

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page