I’m a sophomore year student studying Computer Science at Netaji Subhash Institute of Technology, Dehli. I am always looking for opportunities to put my programming skill to good use by contributing to open source which also allows me to improve my own skill.
3f2f7637e08a669ceff1dc701f3d7c22df22b301e6b59957650dccd104008863
Copy Hash valueRepository | Link to Commit/s | Description | |
c | cEPs | View | Create a proposal regarding the project. |
c | cib | View | Add appveyor CI. |
c | cib | View | Use dependency management master |
c | cib | View | Fix docopt usage pattern. |
c | cib | View | Fix incorrect behaviour |
c | cib | View | Clean up code required for 100% coverage |
c | cib | View | Use pragma no cover due to bug with coverage |
c | cib | View | Fix bug in code for complete coverage |
c | cib | View | Add unittests for 100% coverage |
c | cib | View | Mobanise setup.cfg |
c | cib | View | Allow showing multiple bears |
c | cib | View | Remove useless if conditions |
c | cib | View | Ignore build dir |
c | cib | View | Remove unused import |
c | cib | View | Remove call_without_output |
c | coala-mobans | View | Remove test_pyversion |
c | coala-mobans | View | Add variable for cache dir on appveyor |
c | coala-mobans | View | Add option for Python 3.6 jobs on all repos |
c | coala-mobans | View | Add template for init file for exporting version |
c | coala-mobans | View | Remove brackets around string with one item in setup.py template |
c | coala-mobans | View | Run coala static code analysis from Appveyor |
c | coala-mobans | View | Pin setuptool to 21 for supporting environment markers |
c | coala-mobans | View | Use coala-bears master for coala analysis on Appveyor |
c | coala-mobans | View | Create coveragerc template to resolve a bug with coverage on cib |
c | coala-utils | View | Remove error handling on import for complete test coverage on Appveyor build |
c | coala-utils | View | Define exports through all to prevent failing coala –ci check |
c | coala-utils | View | Use appveyor template for coala-utils |
c | coala-utils | View | Ignore build dir from coafile |
c | coala-utils | View | Use all in init.py |
c | coala-bears | View | Improve and cleanup script for generating bear requirements and generate cabal requirements |
c | coala-bears | View | Move the generate_package script from the coala-bears package to .ci directory |
c | coala-bears | View | Use CabalRequirement for HaskellLintBear |
c | coala-bears | View | Add language setting for ESLintBear using various plugins for eslint |
c | coala-bears | View | Add GherkinLintBear |
c | coala-bears | View | Add BashateBear |
d | dependency_management | View | Add PlatformRequirement class for system specific package managers |
d | dependency_management | View | Return exitcode after running the install command |
d | dependency_management | View | Add CabalRequirement for backwards compatibility |
d | dependency_management | View | Run pip as python module |
b | bear-install-playbook | View | Add playbook for installing individual bears |
b | bear-install-playbook | View | Test playbook using docker + Travic CI |
b | bear-install-playbook | View | Add instructions on using playbook |
b | bear-install-playbook | View | Add coafile for running static code analysis by coala |
coala uses a DistributionRequirement
class to represent dependencies
from system specific package managers such as apt, yum, dnf. This project
breaks the class into multiple subclasses one for each package manager that
all inherit from the base PlatformRequirement
class and deprecates
the older class. Additionaly, the project added a repository for
Ansible playbooks that allow to install individual bears for coala.
Lastly, the project involved fixing and improving the exiting cib install bears
tool which uses the dependency management API by adding 100% test coverage.
Major tasks of the project:
bear-install-playbook
for Ansible playbook
that would allow to install individual bear and their dependencies.The major challenge of the project was trying to test the Ansible playbook by installing the dependencies of the bear inside docker on Travis CI. It was very difficult to properly setup some of the package managers inside the docker container and I had to run the Travis build more than a 100 times. Eventually, I ended using Ansible roles that could setup the package managers on the host machine which made it a lot easier.
There is a lot more functionality that can be used from Ansible. Ansible allows us to create roles that run various tasks and define variables to complete a task for numerous platforms. These roles can be uploaded to Ansible-galaxy. We could create roles for installing certain bears that require different installation instruction for each distribution. There could be a role that could create a virtualenv with coala setup and install an appropritate python version for multiple platforms if it is not already there. Ansible-galaxy already has a lot of roles that can setup various package managers for multiple distributions.