I ❤️ PR from everyone, and I appreciate your help but before opening a PR, make an issue and describe your feature, bug, etc.
Most parts of keshvar
library are auto-generated. Actually each file that starts with Rust comment // DO NOT TOUCH THIS FILE. ...
is auto-generated. There is another Rust crate (application) that generates these source files. You can find source code of the generator inside keshvar-code-generator
directory. The generator uses YAML data files to generated most parts of keshvar
library. These YAML files are parts of another repository called countries
which is written in Ruby. So this is how the keshvar
library is generated:
- We have some source files of
keshvar
library (Parts that we wrote by hand). - We pull
countries
library as a Git submodule. - We tell
keshvar-code-generator
application to use YAML files (insidecountries
library) and generate other parts ofkeshvar
library.
- We should not change to the data inside this repository. We need to make a PR to
countries
library instead. - We are not allowed to change auto-generated files by hand. Change the generator instead.
- After re-generating source files, We should use
cargo fmt
to fix the style of newly generated source files. keshvar
andkeshvar-code-generator
are two separate Rust crates. Do not combine them.- Makefile is your friend.