diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..f7caeab --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,49 @@ +# Contributing to funcnodes-core + +This repository contains the **core runtime** (nodes, IO, nodespace, library, config, serialization). + +## Development setup (Python) + +Prereqs: + +- Python **3.11+** +- `uv` (https://github.com/astral-sh/uv) + +Recommended environment variables (keep caches/config local): + +- `UV_CACHE_DIR=.cache/uv` +- `FUNCNODES_CONFIG_DIR=.funcnodes` + +Install dev dependencies: + +```bash +cd funcnodes_core +UV_CACHE_DIR=.cache/uv uv sync --group dev +``` + +Run tests: + +```bash +cd funcnodes_core +FUNCNODES_CONFIG_DIR=.funcnodes UV_CACHE_DIR=.cache/uv uv run pytest +``` + +## Code style & hooks + +Run pre-commit: + +```bash +cd funcnodes_core +UV_CACHE_DIR=.cache/uv uv run pre-commit install +UV_CACHE_DIR=.cache/uv uv run pre-commit run -a +``` + +## TDD expectations + +- Write tests first; add edge cases as separate tests. +- Avoid mocks unless simulating external resources. + +## Pull requests + +- Work on a feature branch (direct commits to `main`/`master`/`test` are blocked by pre-commit). +- Keep changes scoped: core is widely used across FuncNodes packages. diff --git a/README.md b/README.md index 2118fee..231857f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,25 @@ -Core package for funcnodes. -for detailed instructions go to the funcnodes repo +# FuncNodes Core + +This is the core package for **FuncNodes**, a flexible and modular framework for building and managing computational graphs. + +`funcnodes_core` contains the fundamental logic for Nodes, NodeSpaces, and the event-driven architecture that powers the system. + +> [!NOTE] +> If you are looking for the full application, including the web interface and worker management, please visit the main [FuncNodes repository](https://github.com/Linkdlab/FuncNodes) or install the `funcnodes` package. + +## Installation + +If you are developing a custom implementation or only need the core logic: + +```bash +pip install funcnodes-core +``` + +For the full experience: +```bash +pip install funcnodes +``` + +## Documentation + +For detailed instructions and documentation, please visit the [FuncNodes Documentation](https://linkdlab.github.io/FuncNodes). diff --git a/context7.json b/context7.json new file mode 100644 index 0000000..f6297ed --- /dev/null +++ b/context7.json @@ -0,0 +1,4 @@ +{ + "url": "https://context7.com/linkdlab/funcnodes_core", + "public_key": "pk_jr5hlTznUKh2bFkliKxXR" + } \ No newline at end of file diff --git a/tests/test_config.py b/tests/test_config.py index 90db9da..aa5c5ce 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -42,7 +42,7 @@ def test_no_deprecation_warning(): warnings.simplefilter("error", DeprecationWarning) -def test_config_not_laoded(): +def test_config_not_loaded(): try: assert not fn.config._CONFIG_CHANGED, "Expected _CONFIG_CHANGED to be False"