Skip to main content

Contributing

Pycora Pro is a commercial product by Axcora Technology. Contributions are welcome for bugs, documentation, and templates.


Before You Contribute​

Pycora Pro is not open source. The source code is sold under a proprietary End User License Agreement (EULA).

You may:

  • Report bugs
  • Suggest features
  • Improve documentation
  • Submit template examples
  • Share extensions with the community

You may not:

  • Redistribute the source code
  • Publish forks publicly
  • Sell modified versions of Pycora Pro itself

See LICENSE for details.


Reporting Bugs​

Found a bug? Open an issue on GitHub:

👉 github.com/mesinkasir/pycora/issues

What to Include​

A good bug report has:

  1. Pycora Pro version — check ssg.py or the header
  2. Python version — output of python --version
  3. Operating system — Windows, macOS, or Linux
  4. Steps to reproduce — exact commands
  5. Expected behavior — what you thought would happen
  6. Actual behavior — what actually happened
  7. Error messages — full output, not a screenshot
  8. Minimal example — a small content file that triggers the bug

Example Bug Report​

Pycora Pro version: 2.4.6
Python: 3.11.4
OS: Ubuntu 22.04

Steps:
1. Create content/test.md with frontmatter:
---
layout: layouts/post
title: "Test"
tags: [a, b]
---
2. Run python ssg.py

Expected: test page generated
Actual: build fails with "Unrecognized front-matter format"

Error output:
[paste full traceback here]

Suggesting Features​

Have an idea? Open a discussion or issue:

👉 github.com/mesinkasir/pycora/discussions

What to Include​

  1. The problem — what is hard or missing today
  2. The proposal — what you want added
  3. Why it matters — who benefits and how
  4. Alternatives — other approaches you considered

Features are prioritized by:

  • How many users benefit
  • How well it fits the minimalist philosophy
  • How much it increases complexity

Contributing Documentation​

Documentation is at docspycorapro.axcora.com.

To improve it:

  1. Fork the docs repository
  2. Make your changes in Markdown
  3. Submit a pull request

Docs Style Guide​

  • Clear and direct — short sentences
  • Second person — "you", not "the user"
  • Action-first — start with the verb
  • No marketing fluff — explain what and why
  • Code blocks — always specify the language
  • Test every command — do not guess

Contributing Templates​

If you build a template for Pycora Pro, you can share it with the community.

Template Checklist​

  • Works with the latest Pycora Pro
  • No external dependencies beyond the standard stack
  • Follows the folder structure (content/, templates/, static/, _data/)
  • Includes a README.md with setup instructions
  • Has a live demo or screenshots

Share via:

  • A GitHub repo
  • A blog post
  • A post in the discussions

Reporting Security Issues​

Do not open public issues for security vulnerabilities.

Instead, email:

👉 [email protected]

Include:

  • A description of the issue
  • Steps to reproduce
  • The potential impact
  • Any suggested fix

We aim to respond within 72 hours.


Code Contributions​

Code contributions to Pycora Pro itself are accepted on a case-by-case basis.

If you want to contribute code:

  1. Open an issue first to discuss the change
  2. Wait for approval from the maintainer
  3. Fork the repository
  4. Make your changes
  5. Submit a pull request

Coding Standards​

  • Python 3.8+ — no newer features
  • No external dependencies beyond the standard stack (Jinja2, Markdown, PyYAML, watchdog)
  • Readable over clever — clarity first
  • Comment the why, not the what
  • No breaking changes without discussion

Development Setup​

To set up a development environment:

git clone https://github.com/mesinkasir/pycora.git
cd pycora
python install.py
python ssg.py
python dev.py

Test your changes with:

python ssg.py

Check the output/ folder for the result.


Testing Your Changes​

Before submitting a pull request:

  1. Build a test site with python ssg.py
  2. Open output/index.html in a browser
  3. Check that all pages render
  4. Check that feeds and sitemap are generated
  5. Check that no error messages appear

There is no automated test suite — manual testing is expected.


Pull Request Process​

  1. Fork the repo
  2. Create a branch: git checkout -b feature/my-feature
  3. Make your changes
  4. Commit: git commit -m "Add my feature"
  5. Push: git push origin feature/my-feature
  6. Open a pull request

In your PR description, include:

  • What the change does
  • Why it matters
  • How you tested it
  • Screenshots if relevant

What We Look For​

When reviewing contributions:

  • Clarity — is the change easy to understand?
  • Scope — is it focused on one thing?
  • Compatibility — does it work on Python 3.8+?
  • Consistency — does it follow existing patterns?
  • Documentation — are the docs updated?

We may request changes before merging.


Community​

Be respectful. Follow the Contributor Covenant.


Thank You​

Every bug report, documentation fix, and template example makes Pycora Pro better.

Thank you for contributing.

— Axcora Technology