Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
244 changes: 132 additions & 112 deletions ABI-FFI-README.md → ABI-FFI-README.adoc

Large diffs are not rendered by default.

48 changes: 48 additions & 0 deletions ARCHITECTURE.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
== Architecture

=== Overview

This repository follows a modular, maintainable architecture designed
for clarity, scalability, and long-term sustainability.

=== Directory Structure

....
.
├── src/ # Source code
├── tests/ # Test suites
├── docs/ # Documentation
├── scripts/ # Utility scripts
├── config/ # Configuration files
├── LICENSE # License file
├── LICENSES/ # Full license texts
└── README.adoc # Project documentation
....

=== Design Principles

* *Separation of Concerns*: Each module has a single responsibility
* *Testability*: Code is written to be easily testable
* *Documentation*: All public APIs are documented
* *Configuration*: Environment-specific settings are externalized

=== Dependencies

* External dependencies are minimized and clearly declared
* Version pinning is used for reproducibility

=== Security Considerations

* Sensitive data is never committed to the repository
* Secrets are managed through environment variables or secure vaults
* Regular dependency audits are performed

=== Maintainability

* Code follows consistent style guidelines
* Pull requests require review and CI checks
* Issues and discussions are tracked transparently

'''''

_Last updated: 2026-07-18_
47 changes: 0 additions & 47 deletions ARCHITECTURE.md

This file was deleted.

73 changes: 38 additions & 35 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
@@ -1,38 +1,41 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= Changelog
== Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

== [2.0.0] - 2024-11-06

=== Added
- Complete Ada 2022 rewrite from Python
- Type-safe navigation system with compile-time guarantees
- Interactive directory navigation with depth limiting
- Bookmark system for frequently accessed locations
- Color-coded file type detection
- Configuration management with validation
- Error handling for permission-denied directories
- Command-line argument parsing
- Help and version information

=== Changed
- Migrated from Python to Ada 2022 for enhanced reliability
- Improved error messages and user feedback
- Modernized terminal output with emojis and colors

=== Technical Details
- Uses GNAT Ada compiler with Ada 2022 standard
- Implements unbounded strings for dynamic path handling
- Custom terminal abstraction for cross-platform compatibility
- Comprehensive type system for file categorization

== [1.0.0] - Initial Python Version

=== Added
- Basic directory tree navigation
- Python-based implementation
The format is based on https://keepachangelog.com/en/1.0.0/[Keep a
Changelog], and this project adheres to
https://semver.org/spec/v2.0.0.html[Semantic Versioning].

=== [2.0.0] - 2024-11-06

==== Added

* Complete Ada 2022 rewrite from Python
* Type-safe navigation system with compile-time guarantees
* Interactive directory navigation with depth limiting
* Bookmark system for frequently accessed locations
* Color-coded file type detection
* Configuration management with validation
* Error handling for permission-denied directories
* Command-line argument parsing
* Help and version information

==== Changed

* Migrated from Python to Ada 2022 for enhanced reliability
* Improved error messages and user feedback
* Modernized terminal output with emojis and colors

==== Technical Details

* Uses GNAT Ada compiler with Ada 2022 standard
* Implements unbounded strings for dynamic path handling
* Custom terminal abstraction for cross-platform compatibility
* Comprehensive type system for file categorization

=== [1.0.0] - Initial Python Version

==== Added

* Basic directory tree navigation
* Python-based implementation
40 changes: 0 additions & 40 deletions CHANGELOG.md

This file was deleted.

24 changes: 24 additions & 0 deletions CODE_OF_CONDUCT.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
== Contributor Covenant Code of Conduct

=== Our Pledge

We pledge to make participation a harassment-free experience for
everyone.

=== Our Standards

*Positive behavior:* * Using welcoming language * Being respectful of
differing viewpoints * Accepting constructive criticism * Focusing on
what is best for the community

*Unacceptable behavior:* * Harassment, trolling, or personal attacks *
Publishing private information without permission

=== Enforcement

Report issues to the maintainers. All complaints will be reviewed.

=== Attribution

Adapted from https://www.contributor-covenant.org/[Contributor Covenant]
v2.1.
27 changes: 0 additions & 27 deletions CODE_OF_CONDUCT.md

This file was deleted.

92 changes: 92 additions & 0 deletions CONTRIBUTING.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
== Contributing to Tree Navigator

Thank you for your interest in contributing to Tree Navigator! This
document provides guidelines and instructions for contributing.

=== Development Setup

==== Prerequisites

* GNAT Ada compiler (GCC 12.0 or later with Ada 2022 support)
* GPRbuild
* Git

==== Building from Source

[source,bash]
----
git clone https://github.com/yourusername/tree-navigator.git
cd tree-navigator
gprbuild -P tree_navigator.gpr
./bin/main
----

=== Code Style

This project follows Ada 2022 standards with these conventions:

* *Indentation*: 3 spaces (Ada standard)
* *Line length*: Keep under 100 characters where practical
* *Naming*: Use `+Snake_Case+` for identifiers
* *Comments*: Use `+--+` for single-line comments
* *Pragmas*: Place `+pragma Ada_2022;+` at the top of each file

=== Project Structure

....
tree-navigator/
├── src/ # Ada source files (.ads/.adb)
├── obj/ # Compiled objects (gitignored)
├── bin/ # Compiled executable (gitignored)
├── tree_navigator.gpr # GNAT project file
└── README.md
....

=== Testing

Before submitting a pull request:

[arabic]
. Ensure your code compiles without errors:

[source,bash]
----
gprbuild -P tree_navigator.gpr
----

[arabic, start=2]
. Test basic functionality:

[source,bash]
----
./bin/main --help
./bin/main
----

[arabic, start=3]
. Verify no new warnings are introduced

=== Submitting Changes

[arabic]
. Fork the repository
. Create a feature branch (`+git checkout -b feature/amazing-feature+`)
. Commit your changes (`+git commit -m 'Add amazing feature'+`)
. Push to the branch (`+git push origin feature/amazing-feature+`)
. Open a Pull Request

=== Pull Request Guidelines

* Provide a clear description of the changes
* Reference any related issues
* Ensure code compiles cleanly
* Update documentation if needed
* Add yourself to CONTRIBUTORS.md

=== Code of Conduct

Be respectful, constructive, and professional in all interactions.

=== Questions?

Open an issue for questions, bug reports, or feature requests.
Loading
Loading