Metadata-Version: 2.4
Name: intent-lng
Version: 0.7.0a1
Summary: Experimental declarative language for stateful applications
Author: Intent contributors
License-Expression: Apache-2.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# Intent

Experimental declarative programming language for application state, transitions, invariants and executable tests.

**Documentation:** [Русский](docs/README.ru.md) · [English](docs/README.en.md)

**Install from PyPI after the public release:** `python -m pip install intent-lng==0.7.0a1` (CLI: `intent`). The earlier TestPyPI candidate uses the distribution name `intent-lang`.

**License:** [Apache 2.0](LICENSE) · [Open-source policy (RU)](docs/OPEN_SOURCE.ru.md) · [Open-source policy (EN)](docs/OPEN_SOURCE.en.md)

**Contributing:** [Guidelines](CONTRIBUTING.md) · [Code of Conduct](CODE_OF_CONDUCT.md)

## Quick start

Requires Python 3.10+ according to package metadata; CI covers Python 3.12 and 3.13.

```bash
python -m unittest discover -s tests -v
python web_codegen.py examples/workflow.intent --output build/web/index.html
```

Open `build/web/index.html` in a browser.

To generate an Android/Compose project:

```bash
python android_codegen_v03.py examples/workflow.intent --output build/generated-android
```

The generated Android project additionally requires Java, Android SDK and Gradle.

## Architecture

Intent source → restricted typed AST (`intent_core.py`) → interpreter / Android backend / web backend.

Each action computes a candidate state. All declared invariants must hold before changes are committed. The same source program is used by both code generators.

## Status

**Experimental, not production-ready.** Android 0.3 has been manually tested on a device. Web generation has automated tests; coverage remains limited. Python/JavaScript differential conformance tests cover selected scenarios, not all possible programs.

Release candidate: `release/intent-0.7.0a1`. [Alpha release notes](docs/RELEASE_NOTES_0_7.ru-en.md).
