calendRio

calendR fork with additional features (backwards compatible).

Description

Fork of calendR R package with additional features (backwards compatible). calendRio provides a calendR() function that serves as a drop-in replacement for the upstream version but allows for additional parameters unlocking extra functionality.

License

Copyright © 2020, 2021 José Carlos Soage González
Copyright © 2020, 2021 Natalia Pérez Veiga
Copyright © 2022 Marcel Schilling

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

This work is based on (and therefore contains major portions of) the calendR R package that was originally released under the following licensing terms:

MIT License

Copyright (c) 2020 R-Coder

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Run

git diff calendR-branch-point

from within your local clone of the calendRio Git repository or compare the main branch to the corresponding tag on GitLab to see the exact changes made since branching off from calendR (and therefore released under the less permissive licensing terms).

Motivation

When I wanted to create a calendar with custom annotation from within R, I came across the calendR R package by José Carlos Soage González of r-coder.com and Natalia Pérez Veiga that already did almost everything I needed.

After using it for a while, I came across a (very minor and niche) feature I ‘needed’ that was missing from the package: The ability to color the moon phase outlines by a gradient indicating the moon’s progression. There had been other issues I had to work around (e.g. by adding additional text layers with different formatting using plain ggplot2 commands on top of the object returned by calendR) to get the exact results I was looking for, but this was the first one I was unable to solve without modifying the package source itself. Thankfully, the original authors had released calendR under a (permissive) free software license that allowed me to do so.

Following the free software philosophy, I decided to give back by sharing my work with others. Particularly, I opened a pull request on the project’s GitHub page adding the new feature implemented by me to the upstream package in a backwards-compatible way. This pull request got merged at first by José Carlos Soage González but later got reverted again after Natalia Pérez Veiga expressed concerns about the growing complexity of the function in question.

While I can relate to these concerns and consider them absolutely valid, I neither wanted to miss out on features rejected by the upstream authors, nor did I feel like building my own package from scratch when something this close to what I wanted was already out there. Thus, after some constructive exchange with José Carlos Soage González, I decided to maintain my own fork of the package.

Following an additional exchange with José Carlos Soage González, I further decided to license my changes (and thus the resulting versions of the package) under the GNU Affero General Public License to mitigate the risk of anyone capitalizing on my free of charge work while restricting the(ir) users’ freedoms.

To allow for a better separation between the differently licensed projects, I decided to rename my fork. The name ‘calendRio’ not only hints at the relation to (and backwards compatibility with) calendR, but is also a nod to the upstream package’s country of origin as a tribute to the original authors. And, coincidentally(?), the calendar I was creating that triggered me looking into this project in the first place (and thus ultimately responsible for the very existence of calendRio) happens to have been a Spanish calendar(io) as well. :-)