-
Notifications
You must be signed in to change notification settings - Fork 7
BIG: Breaking everything into smaller repos #32
Description
What are we doing?
Currently, the Rover Team's repository is really... scary. Frankly, I'm not too sure how everyone got so much work done with this level of organization. Anyways, the plan is to fix the problems by organizing all of the different subdirectories that are sitting in this one repo. As needed, they will all become separate GitHub repos on the Sooner Rover Team org.
How are we splitting everything up?
I'm deciding a rough draft below. You can use the command tree to easily look at the file structures. Use tree -d to see only directories (folders). When I see patterns of grouped utilities that are developed together, they'll stay as a group. Otherwise, they're getting stored or archived.
How will it look?
Each of the listed items below will become their own split-off repo and project. The (/foo) represents its current location in the giant repo. There don't need to be any active maintainers, since our "human resources" are limited. That said, if something needs to be archived, let me know. Also, this link on moving files between repos while preserving commit history will be very useful!
Anyways, I plan to have it look something like this:
Arduino
(/Arduino/)
This was a pretty easy split. This folder contains various Arduino files, all of which are related. Here's a folder listing:
Arduino/
├── arm_controller
├── arm_test
├── capstone_arm
│ ├── control_arm
│ ├── rover_arm
│ ├── rover_arm_pid_test
│ └── rover_arm_test
├── drill_controller
├── drill_test
├── servo_test
└── wheel_controller
YOLO/darknet
(/Autonomous/YOLO/darknet/)
This is a sizeable library whose source is just sitting in the middle of everything. It really needs its own repo. Here's a folder listing:
Autonomous/
├── YOLO
│ └── darknet
│ ├── 3rdparty
│ │ ├── pthreads
│ │ │ └── include
│ │ └── stb
│ │ └── include
│ ├── cfg
│ ├── cmake
│ │ └── Modules
│ ├── data
│ │ └── soro
│ ├── include
│ ├── scripts
│ │ ├── log_parser
│ │ └── windows
│ └── src
│ └── csharp
├── artags
│ └── old
│ └── PrintARTags
├── examples
├── gps
└── libs
MBED
(/MBED/)
MBED is a mixed bag for me. It includes many small projects that have connected goals. For this reason, I'm not sure if I want to put each project in its own repo, do that but with submodules, or just keep everything together. For now, I'll just say it belongs together. Here's a listing (it's so small that you can put files too):
MBED
├── EBoxMBED
│ └── main.cpp
├── README.md
├── SPItoCANRead
│ └── main.cpp
├── SPItoCANSend
│ └── main.cpp
├── UDPSocket
│ └── main.cpp
└── WheelMBED
└── main.cpp
RoverMap
(/Mission Control/RoverMap/)
To be honest, even after studying the README, I'm not sure if these are two separate projects (frontend and backend) or if they both require each other. For now, let's keep them together. Here's a directory listing:
RoverMap/
├── RoverMapTileGenerator
├── example
└── frontend
└── leaflet
└── images
(frontend is a whole web interface. but it's a lil guy)
python_drive
(/Mission Control/python_drive/)
This project is completely distinct from the rest of everything. It controls the vehicle! Here's a short file listing:
python_drive/
├── README.md
├── config.ini
├── controllertester.py
├── manual_operate.py
└── util.py
video_streamer
(/Mission Control/video_streamer/)
The video_streamer project has a lot of documentation! I think it would be well off in its own repo, along with a detailed INSTALLATION.md and reduced README.md. Here's a file listing:
video_streamer/
├── README.md
├── client.py
├── config.ini
├── static
│ └── logo.png
├── templates
│ └── index.html
├── utils.py
└── videostream.py
TO ARCHIVE
- udp_mc_drill and udp_mc_drive (/Mission Control/udp_mc_dr***)
- According to the Mission Control README, both of these are useless and have been replaced with a modern Python script.
- It's sad to get rid of the only Rust projects, but necessary :(
And..?
With that, we're done! All of the files in the Sooner Rover Team's modern repo have been accounted for! I think it would be also wise to make a Junkyard repo that acts as a place to store archived projects that are pretty old/small. If you have any suggestions or changes I should make, please let me know!
Complete
- Arduino
- darknet
- MBED
- RoverMap
- python_drive
- video_streamer
- Graveyard
- udp_mc_drill
- udp_mc_drive
- my rusty dreams :(