abstreet
abstreet copied to clipboard
Adding more README's for the subdirectories
I am a beginner Rust programmer and wanted to try and contribute code to AB-street
However, I am very confused on the role of each subdirectory and how I can begin to understand the functionality of each component of AB-street
This Is very likely mainly due to my inexperience with the software and more importantly the language itself. However, it would be nice to have some sort of guidelines on what is happening in each subdirectory.
Currently these are the directories that already have READMEs
Tasklist for remaining crates:
- [ ] abstio
- [ ] cloud
- [x] geom
- [ ] map_gui
- [ ] raw_map
- [ ] target
- [ ] updater
- [ ] abstutil
- [ ] collisions
- [ ] headless
- [ ] map_model
- [ ] release
- [ ] tests
- [x] web
- [x] apps
- [ ] convert_osm
- [ ] importer
- [x] piggyback
- [ ] sim
- [ ] traffic_seitan
- [x] widgetry
- [ ] cli
- [x] data
- [ ] kml
- [ ] popdat
- [ ] synthpop
- [ ] traffic_signal_data
- [ ] widgetry_demo
- [ ] update the corresponding docs section
I'd welcome any contributions! If you have anything in particular you're interested in, I can help onboard you to the codebase, maybe by adding more documentation for the relevant pieces.
It is such a large codebase and so understanding all the different crates is indeed important. https://a-b-street.github.io/docs/tech/dev/index.html#code-organization attempts to lay this out. (It's a little bit outdated, I'll update it as part of this issue.) Is the level of detail there too little? Maybe each crate should have its own README kind of explaining the big picture for that area too
I was interested into diving into some GUI, potentially working on issue #391 later on.
I started to look into the map_gui crate and wasn't completely sure what was going on.
I feel like further explanation of the subdirectories (render and tools) along with guided external resources (documentation, or other ways to learn how to manipulate the library) in a README could be quite helpful.
I will add some tasks for each subdirectory along with the docs.
I could definitely help you with this as I document my process of learning some of the crates and provide you feedback with some of the issues/concerns I end up encountering.