Skip to content

Commit 506294f

Browse files
committed
Add project goals/roadmap.
1 parent 922315c commit 506294f

File tree

3 files changed

+48
-10
lines changed

3 files changed

+48
-10
lines changed

CONTRIBUTING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Contributions of any kind are welcome. The current guidelines are listed below.
2+
3+
## Guidelines
4+
- It is best to open an issue before adding new features to ask for input.
5+
- Adhere to the project style. Style enforced by CI is mandatory and violations won't be accepted.
6+
For other filetypes, use common sense and follow the current style as much as possible.

GOALS.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Project Goals
2+
I believe strongly in being verbose about the goals and long term roadmap of a project. The goals
3+
below should stay the same in the future. New ones that are compatible with the current ones can be
4+
added.
5+
6+
# Goals
7+
- Strictly follow [semantic versioning 2.0.0](https://semver.org/spec/v2.0.0.html).
8+
- Dependencies should only be added if they provide considerable benefit.
9+
- Depencencies should be maintained at the point in time they are added.
10+
- Filetypes with available formatting tools are checked for style by CI. Code that doesn't follow
11+
this style is rejected. This keeps the codebase clean and nice for everyone to work on.
12+
- Correctness of the code, both in the sense of the code doing what it is supposed to do, and in the
13+
sense of the library following the specifications that are listed in the goals.
14+
15+
## Before 1.0.0
16+
- Refine/reconsider the public API so it can become stable.
17+
- Add tests to the public API to avoid breaking changes.
18+
- Aim for a first release. I don't want this project to stay in 'unstable limbo' indefinitely. This
19+
doesn't mean the first release will be rushed, but having a first major release and stabilizing
20+
the public API is a goal.
21+
22+
# Other Goals
23+
> These goals are hard to formally write down or check.
24+
- After the first major release, extra care has to be taken to prevent breaking changes to the
25+
public API.
26+
- Follow [the Rust API Design
27+
Guidelines](https://rust-lang.github.io/api-guidelines/checklist.html).
28+
- The flexbox implementation tries to adhere to the [CSS3 flexbox
29+
specification](https://www.w3.org/TR/2018/CR-css-flexbox-1-20181119/) where it makes sense in a
30+
TUI context.
31+
32+
# Non-goals
33+
> Things that aren't goals right now and arent considered to become goals in the near future.
34+
- Optimize for performance. While the library should be performant and I try to make things go fast,
35+
it is not a main goal of this project.
36+
- Optimize for memory usage. The dependency limitation goal should keep memory usage low, but low
37+
memory usage is not a main goal.

README.md

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
11
# Cursive Flexbox ![Maintenance](https://img.shields.io/maintenance/yes/2023?style=flat-square) [![crates.io](https://img.shields.io/badge/crates.io-cursive--flexbox-brightgreen.svg?style=flat-square)](https://crates.io/crates/cursive-flexbox) [![docs.rs](https://img.shields.io/badge/docs.rs-cursive--flexbox-brightgreen.svg?style=flat-square)](https://docs.rs/cursive-flexbox/latest/cursive_flexbox/)
2-
> This library is not stable yet. It is under development and the API will change before the first
3-
> release. Starting from major version 1 (1.x.x), this library can be considered stable and
4-
> generally usable.
5-
62
A correct, complete flexbox implementation for the [Cursive TUI
7-
library](https://github.com/gyscos/cursive). The implementation follows the CSS3 specification where
8-
it makes sense for a TUI. All implemented functionality should be exactly the same as for the CSS3
9-
flexbox.
3+
library](https://github.com/gyscos/cursive). The implementation follows [the CSS3
4+
specification](https://www.w3.org/TR/2018/CR-css-flexbox-1-20181119/) where it makes sense for a
5+
TUI. All implemented functionality should be exactly the same as for the CSS3 flexbox.
106

11-
## Contributions
12-
Contributions are very much welcome. Keep in mind that the project just started so there isn't much
13-
implemented yet.
7+
- [Project Goals](GOALS.md)
8+
- [Contributing](CONTRIBUTING.md)

0 commit comments

Comments
 (0)