Skip to content
/ lgc Public

Let's Get Coding! A command line tool that creates template files and configures a development environment for projects in a variety of languages (work in progress!)

License

Notifications You must be signed in to change notification settings

nrminor/lgc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LGC: Let's Get Coding!

Rust Build Open Source Files

A Rust-based command line tool that creates template files and configures a development environment for projects in a variety of languages.

This project is in its very early stages, but the vision is to be able to run a command like:

lgc init python3.11 --name my_project

The command will then create a project root directory, initialize git, initialize Poetry for dependency management, and create PEP8-conforming a Python script template. This project is very much inspired by Rust's cargo package manager, which imposes opinionated formatting standards and idioms. This imposition can be tedious to comply with at first, but in the long run, it makes collaboration on Rust projects much easier.

This project aims to do the same thing for a variety of languages that are common (or likely to become common) in scientific computing, including Python, R, Julia, Mojo, Go, Rust, Nextflow, Bash, and maybe Perl. Users are encouraged to suggest additional languages, if desired, as an Issue. Once discussed there, we welcome PRs from users who are more experienced with the desired language than us (which is virtually guaranteed!). The key to any successful PR is not just a template in the new language; the PR will need to successfully integrate the tooling that makes developing in that language organized, readable, performant, and scientifically reproducible.

A Disclaimer

Inevitably, the standards here will be strongly influenced by the contributors' preferences with respect to code styling and idioms (e.g., writing Python like it's Rust). This is as it should be: having standards at all is more important than the specific nature of those standards. Still, any users who'd like to make suggestions about improving standards, environment setup tools, etc. should feel free to raise issues--or just fork the repo and make LGC your own!

That said, a goal of this project is to cite our sources, like any good scientist. Where possible, our templates will contain links to where a certain standard comes from, which will include the likes of:

A markup file of of these sources may also be included for each language if that is more useful.

It should also be noted that this project is not a linter. However, projects initialized with LGC will come with a directory of suggested VSCode extensions. Included in the suggestions will be the relevant linters, which VSCode users are strongly encouraged to take advantage of.

About

Let's Get Coding! A command line tool that creates template files and configures a development environment for projects in a variety of languages (work in progress!)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published