Skip to content

Commit bf473d2

Browse files
committed
chore: prepare for public release
- Add LICENSE (MIT) - Add CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md - Add GitHub issue/PR templates - Fix hardcoded email in config defaults - Update pyproject.toml author and URLs
1 parent 231c1d0 commit bf473d2

11 files changed

Lines changed: 775 additions & 7 deletions

File tree

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to report a bug. Please fill out the information below.
10+
11+
- type: textarea
12+
id: description
13+
attributes:
14+
label: Description
15+
description: A clear and concise description of what the bug is.
16+
placeholder: What went wrong?
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: steps
22+
attributes:
23+
label: Steps to Reproduce
24+
description: How can we reproduce this issue?
25+
placeholder: |
26+
1. Run command '...'
27+
2. Use sample pack '...'
28+
3. See error
29+
validations:
30+
required: true
31+
32+
- type: textarea
33+
id: expected
34+
attributes:
35+
label: Expected Behavior
36+
description: What did you expect to happen?
37+
placeholder: What should have happened instead?
38+
validations:
39+
required: true
40+
41+
- type: textarea
42+
id: actual
43+
attributes:
44+
label: Actual Behavior
45+
description: What actually happened?
46+
placeholder: What actually happened?
47+
validations:
48+
required: true
49+
50+
- type: input
51+
id: os
52+
attributes:
53+
label: Operating System
54+
description: Which OS are you using?
55+
placeholder: e.g., macOS 14.0, Ubuntu 22.04, Windows 11
56+
validations:
57+
required: true
58+
59+
- type: input
60+
id: python
61+
attributes:
62+
label: Python Version
63+
description: Run `python --version` to get this
64+
placeholder: e.g., Python 3.11.5
65+
validations:
66+
required: true
67+
68+
- type: input
69+
id: audiomancer
70+
attributes:
71+
label: Audiomancer Version
72+
description: Run `audiomancer --version` if available
73+
placeholder: e.g., 0.1.0
74+
75+
- type: textarea
76+
id: logs
77+
attributes:
78+
label: Logs and Errors
79+
description: Please paste any relevant error messages or logs
80+
render: shell
81+
placeholder: Paste error messages or stack traces here
82+
83+
- type: textarea
84+
id: additional
85+
attributes:
86+
label: Additional Context
87+
description: Any other information that might be helpful
88+
placeholder: Screenshots, configuration files, etc.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Documentation
4+
url: https://axiomantic.github.io/audiomancer
5+
about: Check the documentation for guides and API reference
6+
- name: Discussions
7+
url: https://github.com/axiomantic/audiomancer/discussions
8+
about: Ask questions and discuss ideas with the community
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Feature Request
2+
description: Suggest a new feature or enhancement
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for suggesting a feature! Please describe your idea below.
10+
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Problem or Use Case
15+
description: What problem does this feature solve? What are you trying to accomplish?
16+
placeholder: |
17+
I often need to... but currently there's no way to...
18+
This would help with...
19+
validations:
20+
required: true
21+
22+
- type: textarea
23+
id: solution
24+
attributes:
25+
label: Proposed Solution
26+
description: How do you envision this feature working?
27+
placeholder: |
28+
The feature could work like this:
29+
1. ...
30+
2. ...
31+
32+
Example usage:
33+
```python
34+
# code example
35+
```
36+
validations:
37+
required: true
38+
39+
- type: textarea
40+
id: alternatives
41+
attributes:
42+
label: Alternatives Considered
43+
description: Have you considered any alternative solutions or workarounds?
44+
placeholder: |
45+
I've tried... but it doesn't work because...
46+
Another approach could be... but...
47+
48+
- type: dropdown
49+
id: priority
50+
attributes:
51+
label: Priority
52+
description: How important is this feature to your workflow?
53+
options:
54+
- Nice to have
55+
- Would improve workflow significantly
56+
- Critical for my use case
57+
validations:
58+
required: true
59+
60+
- type: checkboxes
61+
id: contribution
62+
attributes:
63+
label: Contribution
64+
description: Would you be willing to contribute this feature?
65+
options:
66+
- label: I'd be willing to submit a PR for this feature
67+
- label: I can help with testing
68+
69+
- type: textarea
70+
id: additional
71+
attributes:
72+
label: Additional Context
73+
description: Any other information that might be helpful
74+
placeholder: Related features, example workflows, references to similar tools, etc.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
## Description
2+
3+
<!-- Provide a brief description of the changes in this PR -->
4+
5+
## Related Issues
6+
7+
<!-- Link to related issues using #issue_number -->
8+
<!-- Example: Fixes #123, Relates to #456 -->
9+
10+
## Type of Change
11+
12+
<!-- Mark the relevant option with an 'x' -->
13+
14+
- [ ] Bug fix (non-breaking change that fixes an issue)
15+
- [ ] New feature (non-breaking change that adds functionality)
16+
- [ ] Breaking change (fix or feature that causes existing functionality to change)
17+
- [ ] Documentation update
18+
- [ ] Code refactoring
19+
- [ ] Performance improvement
20+
- [ ] Other (please describe):
21+
22+
## Changes Made
23+
24+
<!-- List the specific changes made in this PR -->
25+
26+
-
27+
-
28+
-
29+
30+
## Testing
31+
32+
<!-- Describe how you tested these changes -->
33+
34+
- [ ] Tested locally
35+
- [ ] Added new tests
36+
- [ ] All existing tests pass
37+
- [ ] Tested with sample packs
38+
- [ ] Tested with SuperDirt integration
39+
40+
## Checklist
41+
42+
- [ ] Code follows the project style guidelines
43+
- [ ] Self-review completed
44+
- [ ] Comments added for complex logic
45+
- [ ] Documentation updated (if applicable)
46+
- [ ] No new warnings introduced
47+
- [ ] Tests added/updated (if applicable)
48+
- [ ] All tests passing
49+
- [ ] Breaking changes documented (if applicable)
50+
51+
## Screenshots/Examples
52+
53+
<!-- If applicable, add screenshots or code examples showing the changes -->
54+
55+
## Additional Notes
56+
57+
<!-- Any additional information reviewers should know -->

CODE_OF_CONDUCT.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Code of Conduct
2+
3+
## Our Pledge
4+
5+
We pledge to make participation in our community a harassment-free experience for everyone.
6+
7+
## Our Standards
8+
9+
**Positive behavior:**
10+
- Being respectful and inclusive
11+
- Accepting constructive feedback gracefully
12+
- Focusing on what is best for the community
13+
14+
**Unacceptable behavior:**
15+
- Harassment, trolling, or personal attacks
16+
- Publishing others' private information
17+
- Other conduct inappropriate in a professional setting
18+
19+
## Enforcement
20+
21+
Instances of unacceptable behavior may be reported to the project maintainers. All complaints will be reviewed and investigated promptly and fairly.
22+
23+
## Attribution
24+
25+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.

CONTRIBUTING.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Contributing to audiomancer
2+
3+
Thanks for your interest in contributing!
4+
5+
## Development Setup
6+
7+
```bash
8+
git clone https://github.com/axiomantic/audiomancer
9+
cd audiomancer
10+
uv sync --extra dev
11+
```
12+
13+
## Running Tests
14+
15+
```bash
16+
uv run pytest
17+
```
18+
19+
## Code Style
20+
21+
- **Linting:** `uv run ruff check src/`
22+
- **Formatting:** `uv run ruff format src/`
23+
- **Type checking:** `uv run pyright src/`
24+
25+
Pre-commit hooks run automatically on commit.
26+
27+
## Pull Request Process
28+
29+
1. Fork the repository
30+
2. Create a feature branch (`git checkout -b feature/my-feature`)
31+
3. Make your changes
32+
4. Run tests and linting
33+
5. Commit with a descriptive message
34+
6. Push and open a PR
35+
36+
## Commit Messages
37+
38+
Use conventional commits:
39+
- `feat:` new feature
40+
- `fix:` bug fix
41+
- `docs:` documentation
42+
- `test:` tests
43+
- `chore:` maintenance
44+
45+
## Questions?
46+
47+
Open a discussion or issue on GitHub.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Elijah Rutschman
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

SECURITY.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
| Version | Supported |
6+
| ------- | ------------------ |
7+
| 0.1.x | :white_check_mark: |
8+
9+
## Reporting a Vulnerability
10+
11+
Please report security vulnerabilities through [GitHub Security Advisories](https://github.com/axiomantic/audiomancer/security/advisories/new).
12+
13+
**Do not** report security issues in public GitHub issues.
14+
15+
## Response Timeline
16+
17+
- **Acknowledgment:** Within 48 hours
18+
- **Initial assessment:** Within 1 week
19+
- **Fix timeline:** Depends on severity
20+
21+
## Scope
22+
23+
This policy covers the audiomancer Python package. Third-party dependencies should be reported to their respective maintainers.

pyproject.toml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,15 @@ version = "0.1.0"
44
description = "MCP server for music production metadata, analysis, and generation"
55
requires-python = ">=3.11"
66
license = {text = "MIT"}
7-
authors = [{name = "Your Name"}]
7+
authors = [{name = "Elijah Rutschman", email = "elijahr@users.noreply.github.com"}]
88
readme = "README.md"
99

10+
[project.urls]
11+
Homepage = "https://github.com/axiomantic/audiomancer"
12+
Documentation = "https://axiomantic.github.io/audiomancer"
13+
Repository = "https://github.com/axiomantic/audiomancer"
14+
Issues = "https://github.com/axiomantic/audiomancer/issues"
15+
1016
dependencies = [
1117
# MCP
1218
"mcp>=1.25.0",

src/audiomancer/config.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,7 @@ class LibraryConfig(BaseModel):
124124
"""
125125
# Source directory (e.g., Google Drive samples folder)
126126
source_dir: Path = Field(
127-
default_factory=lambda: Path(
128-
"~/Library/CloudStorage/GoogleDrive-elijahr@gmail.com/"
129-
"My Drive/Manual Library/Music Production/Samples"
130-
).expanduser().resolve()
127+
default_factory=lambda: Path("~/Music/Samples").expanduser().resolve()
131128
)
132129

133130
# Project root - expects samples/ and library/ subdirectories
@@ -207,7 +204,7 @@ class AudiomancerConfig(BaseModel):
207204
"max_days": 7
208205
},
209206
"library": {
210-
"source_dir": "~/Library/CloudStorage/GoogleDrive-elijahr@gmail.com/My Drive/Manual Library/Music Production/Samples",
207+
"source_dir": "~/Music/Samples",
211208
"project_root": "~/Development/my-music",
212209
"auto_analyze": True,
213210
"max_file_size_mb": 10,

0 commit comments

Comments
 (0)