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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
9bea708
added cde first impl with configuration and a lot of magic ... stuff …
kikass13 Sep 8, 2020
f10a9e6
refined plugin based system; implemented first real plugin for local …
kikass13 Sep 10, 2020
902c65f
git lines of code action plugin works now, its not finished but it be…
kikass13 Sep 10, 2020
6b143ce
Reworked gitFile plugin so that it does not suck anymore; Plugins can…
kikass13 Sep 10, 2020
31601a4
Updated plugins and their handling of globals(); plugins can now use …
kikass13 Sep 21, 2020
4a419d6
added include_deps to remote action plugin #164
kikass13 Oct 21, 2020
e4366bf
fixed bug in test of file_contributions_plugin, it will now find its …
kikass13 Oct 21, 2020
9745229
small bugfix in file contributions plugin regarding current project p…
kikass13 Oct 24, 2020
133164d
renamed actions to activities; cleaned up plugins a little and added …
kikass13 Oct 24, 2020
377d6a8
contribution engine will now work with proper dicts instead of gather…
kikass13 Oct 24, 2020
f6931f3
Changed plugins to be stateless (at least for the relevant user code)…
kikass13 Oct 26, 2020
46a2468
removed stale code and reapplied black #164
kikass13 Oct 26, 2020
58eea16
Update README.md
Ly0n Oct 26, 2020
27ac936
Fix some typos in README.md (#188)
Yossi Oct 26, 2020
3a2fcc2
@ly0n and @kikass running LibreSelery on a complete awesome list
kikass13 Nov 22, 2020
2bb594e
improved to work with pip install and further awesome improvements
Ly0n Nov 23, 2020
0072a13
added project url to coinbase message
Ly0n Dec 5, 2020
1b704d7
linter now works
Ly0n Dec 5, 2020
be255e2
reviewed and tested changes to run LibreSelery in Docker with @kikass13
Ly0n Dec 5, 2020
57a521a
Merge pull request #1 from Ly0n/cd_engine
kikass13 Dec 5, 2020
7528c20
merged cd_engine into devel @ly0n @kikass13, fixed merge conflicts
kikass13 Dec 5, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ The amount distributed to each contributor is calculated from an accumulation of
It is sent via the cryptocurrency market API to the public email address of the git platform user profile.
You can even configure the compensation of contributors from your own dependencies, therefore donating money back to open source platforms which play an integral role in your project.

The weights calculations are under active development and will be extended in the future in cooperation with the community. We always listen to concerns and actively seek options for fair and appropriate measures of payout weights. The goal is a system that is fair and recognizes the contributions made without being susceptible to abuse. urthermore the issue of 'morality' is still open and any issues, concerns or ideas, regarding the following questions, are always welcome:
The weights calculations are under active development and will be extended in the future in cooperation with the community. We always listen to concerns and actively seek options for fair and appropriate measures of payout weights. The goal is a system that is fair and recognizes the contributions made without being susceptible to abuse. Furthermore the issue of 'morality' is still open and any issues, concerns or ideas, regarding the following questions, are always welcome:

- Which metric should give contributions more weight than others?
- How can we design metrics, which do represent and reward more helpful contributors?
Expand All @@ -63,7 +63,7 @@ LibreSelery ...
6. adds the weights to the combined weight used for different distribution splitting behaviors.
7. distributes the funding between the contributors based on the selected split behavior.
8. pays out cryptocurrency to the selected contributor's email addresses via the Coinbase API. Contributors without a Coinbase account will receive an email to claim the donation.
9. automatically generates a dotation and transaction visualization website in your GitHub wiki.
9. automatically generates a donation and transaction visualization website in your GitHub wiki.


<a href="https://asciinema.org/a/X0eONfhRtPAevNLPueyZ5Tamq" target="_blank">
Expand Down Expand Up @@ -208,14 +208,15 @@ env $(cat ~/.libreselery/secrets/tokens.env) selery run -d ~/<target_repository>



LibreSelery is gone support multiple APIs and assets in the near future like:
LibreSelery is going to support multiple APIs and assets in the near future like:

- [x] GitHub
- [ ] Gitlab
- [ ] Savannah
- [x] Libraries.io
- [x] Coinbase
- [ ] Uphold
- [ ] [GNU Taler](https://taler.net/)

## Frequently Asked Questions

Expand Down Expand Up @@ -252,6 +253,10 @@ Let's assume you have a small donation that you want to distribute within a larg

LibreSelery is working on a way to make even this referral income transparent for the sending account.

### How does this work from the legal side in the context of people partly funded by third-party sources, being employed in academics, or people working in industries?

LibreSelery will send the donation to the public email address of your GitHub account. In case the email address is a business or academics address you need to talk to your organization about what to do with the donation. If you have entered a private e-mail address here, you can accept donations at your own discretion. We consider your project contribution as privately done that has not already been rewarded.

## Support LibreSelery

### Donations
Expand Down
23 changes: 9 additions & 14 deletions libreselery/commandline.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,29 +23,24 @@ def _runCommand(args):
# let it initialize configurations,
# arguments and environments
selery = libreselery.LibreSelery(config)

# let libreselery connect to
# various APIs and servers to
# allow data gathering
selery.connect()

# initialize the CDE (Contribution Distribution Engine)
# this also involves finding and
# instantiating activity plugins
selery.startEngine()

# let libreselery gather data
# of all involved projects,
# dependencies and contributors
(
mainProjects,
mainContributors,
dependencyProjects,
dependencyContributors,
) = selery.gather()
# please modify the weights
# calculation to your need
combined_weights, combined_contributors = selery.weight(
mainProjects, mainContributors, dependencyProjects, dependencyContributors
)
contributors, weights = selery.run()
# split between contributors
# who should receive payout
recipients, contributor_payout_split = selery.split(
combined_contributors, combined_weights
)
recipients, contributor_payout_split = selery.split(contributors, weights)
# let libreselery use the given
# address containing virtual currency
# to pay out the selected contributors
Expand Down
2 changes: 1 addition & 1 deletion libreselery/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class LibreSeleryConfig(object):
}

__default_config_template__ = {
"contribution_domains": list,
"simulation": bool,
"include_dependencies": bool,
"include_main_repository": bool,
Expand All @@ -27,7 +28,6 @@ class LibreSeleryConfig(object):
"min_payout_per_contributor": float,
"split_strategy": str,
"min_contributions_required_payout": int,
"uniform_weight": int,
"activity_weight": int,
"activity_since_commit": str,
}
Expand Down
Empty file.
Loading