https://github.com/esther-poniatowski/eresthanaconda
Conda channel for personal packages distribution
https://github.com/esther-poniatowski/eresthanaconda
conda-packages distribution
Last synced: 4 months ago
JSON representation
Conda channel for personal packages distribution
- Host: GitHub
- URL: https://github.com/esther-poniatowski/eresthanaconda
- Owner: esther-poniatowski
- Created: 2025-05-28T11:17:38.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-06-07T19:07:10.000Z (4 months ago)
- Last Synced: 2025-06-07T20:19:02.618Z (4 months ago)
- Topics: conda-packages, distribution
- Language: HTML
- Homepage:
- Size: 834 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# EresthAnaconda
Personal Conda channel for managing and distributing internal packages through static hosting.
## Features
- Distributes platform-independent and platform-specific build artifacts and metadata for dependency resolution by the Conda package manager.
- Provides static hosting via GitHub Pages.
- Supports automated build and deployment via continuous integration workflows.## Package Distribution
To fecth packahes from this Conda channel:
- **Via Conda Configuration**: Add the channel to the channel configuration of a Conda environment.
```sh
conda config --add channels https://esther-poniatowski.github.io/eresthanaconda
```- **Via Environment Specification**: Specify the channel in an `environment.yaml` file of a Conda environment.
```yaml
channels:
- https://esther-poniatowski.github.io/eresthanaconda
- conda-forge
- defaults
dependencies:
-
```- **Via Direct Install**: Pass the channel to the installation command option.
```sh
conda install -c https://esther-poniatowski.github.io/eresthanaconda
```## Package Deployment
This repository supports automated publication of Conda packages using continuous integration workflows.
To implement automated publication of Conda packages to this channel:
1. **Define a Conda Recipe**:
Within the source repository of the package to be built, create a `conda.recipe/` directory containing at least a `meta.yaml` metadata specification.3. **Configure GitHub Repository Secrets**:
In the package repository settings, add the following repository secrets:- `CHANNEL_TOKEN`: GitHub Personal Access Token to the `eresthanaconda` repository (with specific write permissions).
- `CHANNEL_USERNAME`: GitHub username associated with the token, i.e. `esther-poniatowski`.4. Implement a GitHub Action Workflow:
Define a workflow (e.g., `.github/workflows/publish.yml`), following the appropriate template provided in `templates/` (platform-specific or "noarch").
This workflow must:- Build the package for the required platforms using `conda-build`.
- Copy the resulting archives to a clone of this repository.
- Update platform metadata in the channel using `conda-index`.
- Commit and push the new package archives and metadata files to the channel repository using the credentials provided via secrets.## Repository Structure
The repository complies with the canonical directory and metadata layout expected by the Conda package manager.
Each supported platform defines a subdirectory named according to the standard Conda platform tags (e.g. `noarch`, `linux-64/`, `osx-64/`, `win-64/`). Each directory contains the following components:
- `repodata.json`, `repodata.json.bz2`: Metadata files listing all available packages and their respective dependency specifications.
- `.cache/cache.db`: SQLite cache to accelerate metadata loading.
- `--.tar.bz2`: Binary package archives for the corresponding platform.The root directory includes:
- `templates/`: Models of reusable GitHub workflows.
- `.nojekyll`: Flag file that disables GitHub Pages' default Jekyll processing to ensure correct serving of files with underscores and unaltered directory layout.```tree
eresthanaconda/
├── README.md
├── .nojekyll
├── linux-64/
│ ├── repodata.json
│ ├── repodata.json.bz2
│ ├── .cache/
│ │ └── cache.db
│ └── --.tar.bz2
├── osx-64/
│ └── ...
├── win-64/
│ └── ...
└── templates/
└── conda-publish.yml
```