Contributing

There are a variety of ways to contribute to the Asciiville project. All forms of contribution are appreciated and valuable. Also, it’s fun to collaborate. Here are a few ways to contribute to the further improvement and evolution of Ascii Art, Animation, and Utilities:

Testing and Issue Reporting

Asciiville is fairly complex with many components, features, options, configurations, and use cases. Although currently only supported on Linux platforms, there are a plethora of Linux platforms on which Asciiville can be deployed. Testing all of the above is time consuming and tedious. If you have a Linux platform on which you can install Asciiville and you have the time and will to put it through its paces, then issue reports on problems you encounter would greatly help improve the robustness and quality of Asciiville. Open issue reports at https://github.com/doctorfree/Asciiville/issues

Contribute to Development

If you have programming skills and find Ascii text based art, animation, and utilities to be an interesting area, you can contribute to Asciiville development through the standard Github “fork, clone, pull request” process. There are many guides to contributing to Github hosted open source projects on the Internet. A good one is available at https://www.dataschool.io/how-to-contribute-on-github/. Another short succinct guide is at https://gist.github.com/MarcDiethelm/7303312.

Once you have forked and cloned the Asciiville repository, it’s time to setup a development environment. Although many of Asciiville’s commands are Bash shell scripts, there are also text based applicatons and games written in C and C++ along with documentation in Markdown format, configuration files in a variety of formats, examples, screenshots, video demos, build scripts, packaging, and more.

The development environment consists of several packages needed to build, package, and test Asciiville components. These include:

coreutils, sed, git, build-essential, gcc, g++, make, uuid-dev, libboost-graph-dev, cmake, python3, jdk, flex, bison, libncurses5-dev, autotools-dev, libjpeg-dev, libpng-dev, libcurl4-gnutls-dev, libncurses5-dev, autoconf-archive, pkg-config

On Arch, Debian, and RPM based systems the Asciiville installation package can be created with the mkpkg script. This script invokes the build script for each of the projects included with Asciiville, populates a distribution tree, and calls the respective packaging utilities. Packages are saved in the ./releases/<version>/ folder. Once a package has been created it can be installed with the Install script.

It’s not necessary to have C/C++ expertise to contribute to Asciiville development. Many of the Asciiville commands are Bash scripts and require no compilaton. Script commands reside in the bin directory. To modify a shell script, install Asciiville and edit the bin/<script> you wish to improve. Simply copy the revised script to /usr/bin and test your changes. Modifying the configuration files is a little more tricky. Configuration files generally live in the conf directory but each has its own installation location and some are modified by the ascinit command during installation. If you are just modifying the shell scripts or configuration files then you don’t need to worry about the extensive list of dependencies listed above.

Feel free to email me at github@ronrecord.com with questions or comments.

Connect

ronrecord.com doctorfree | YouTube ronrecord | Twitter ronrecord | LinkedIn doctorfree | Instagram doctorfree | Mastodon


Stats

Analytics