Skip to content
This repository has been archived by the owner on Jan 2, 2023. It is now read-only.

CDE (Contribution Distribution Engine) Upgrades #187

Merged
merged 21 commits into from
Dec 5, 2020

Conversation

kikass13
Copy link
Contributor

General

This is the PR relating to everything happening in #164
you have to read my changelogs in there to get the full feature list :)

System Overview

CDE_Architecture

How to install it

cd libreselery
sudo python setup.py develop ## proper package install, should install deps as well

How to start it

Libreselery

cd ~/libreselery
source ~/.libreselery/tokens.env
selery run -c ~/libreselery/selery.yml -d ~/libreselery -r ~/libreselery/results/

Plugin (testcase)

cd libreselery/libreselery/contribution_activity_plugins
python3 hello_world_activity_plugin.py ## start plugin for hello world
python3 git_file_contributors.py ## start plugin for file contributors
python3 github_remote_contributors.py ## start plugin for remote contributors using github api

kikass13 and others added 13 commits September 10, 2020 15:44
…file contributions scanning; 'blacked' my code as far as possible; still work in progress protontypes#164
…haves in a proper manner so that the engine can be tested; CDE now accepts optional and mandatory args for domains, actions etc; only email addresses will be used as keys (identifieing contributors) from now on, we could add algorithms for username<>email aggregation later; protontypes#164
… now access the global libreselery configuration object via self.getGlobals(), which is used by the gitFile plugin to identify the directory to look for files; Added file filter into gitFile plugin so that only files matching the given patterns will be blamed for information protontypes#164
…connectors; added plugin which gets all remote contributors and scores them with a base uniform score (whatever selery did before in the main class); selery functionality is now restored up until the split() function and works as expected - CAREFULL, i did not add all the weight and split functionality back as as plugin, only some placeholder stuff; Contributrs are now a class used by all plugins, this makes their handling easier and uniform across the code; all actionns now have a generic <params> arg which is parsed from the selery.yml and can be used to express all sorts of stuff; restructured and repaired plugins a little bit; connectors can now be used in plugins, this functionality required some restruecturing and event handling with the CDE object from the LbreSelery main class using updateGlobals() functions protontypes#164
…proper git dir; also fixed a bug there, where non committed authors would not be deleted properly protontypes#164
…a plugin alias helper function which uses the filename as plugin name; removed unnecessary plugin test code protontypes#164
…ing all steps into one single dict; helper function for splittgn dict into key-val-lists added for convenience; normalize_ step added after merge_ step in the engine, to be more transparent protontypes#164
…; Configuration and conenctors given to plugins now exist with plugin initialization (and will probably not change, although they could); reworked parameter set for domains and activities to be of a consuming nature, which allows us to spot wrong user config params and report them (we do raise an exception); Removed unnecessary code; Cleanup preps for PR into main repo devel branch; protontypes#164
@kikass13
Copy link
Contributor Author

@Ly0n @fdietze @cornerman

@Ly0n
Copy link
Member

Ly0n commented Nov 22, 2020

Thanks @kikass13 for amazing Sunday coding together. The new architecture works perfectly.

@kikass13
Copy link
Contributor Author

We added a plugin which uses awesomelists to pick a single random contributor from 5 random projects and pay them out.
We also tested the payout mechanism, which works fine for now.

@Ly0n Ly0n closed this Nov 22, 2020
@Ly0n Ly0n deleted the branch protontypes:devel November 22, 2020 19:16
@Ly0n Ly0n reopened this Nov 22, 2020
@Ly0n
Copy link
Member

Ly0n commented Dec 5, 2020

New architecture works with awesome-list integration plugins as example implementation.
Branch tested with:

docker build -t libreselery . && env $(cat ~/.libreselery/tokens.env | xargs) ~/libreselery/run.sh ~/awesome-sustainable-technology

Native install with:

pip3 install . 

@Ly0n
Copy link
Member

Ly0n commented Dec 5, 2020

For runing on the host machine use the following command:

env $(cat ~/.libreselery/tokens.env | xargs) selery run -c ~/awesome-sustainable-technology/selery.yml -d ~/awesome-sustainable-technology -r ~/.libreselery/results/

@Ly0n Ly0n merged commit 90029ed into protontypes:devel Dec 5, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants