-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Thomas von Dein
committed
Oct 14, 2022
1 parent
487ba62
commit 7e01d54
Showing
2 changed files
with
205 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
# No Code of Conduct | ||
|
||
This project does **NOT** have a so called Code of Conduct, nor will | ||
it ever get one. | ||
|
||
The reasons are somewhat complicated and I'll try my best to document | ||
them here. | ||
|
||
Ethical codes or rules come along like laws. But how is ethical or | ||
moral behavior defined? And who defines which behavior is ethical and | ||
which is not? Certainly not me. | ||
|
||
Unless you live in a dictatorship (and more than half of the | ||
population of planet earth do as of this writing), laws come into | ||
existence by democratic procedures. Laws cover almost every aspect of | ||
live in a society. Laws allow and forbid behavior and laws sanction | ||
infringements. | ||
|
||
A software project like this one on the other hand is not a society. | ||
There are not enough people involved to form democratic | ||
structures. And there will always be a minority of users who have the | ||
right to commit or reject code. How could any maintainer of a software | ||
project dare to decree rules upon others? Actually, am I, the current | ||
maintainer of this very project authorized to do so? | ||
|
||
I think the anser to this question clearly is NO. | ||
|
||
The issue is being complicated by the fact, that open source | ||
development these days happens on planetary scale. And this planet | ||
houses hundreds if not thousands of different cultures, philosophies, | ||
ideologies and worldviews. The answer to many ethical questions will | ||
in most cases vague and nebulous. | ||
|
||
Ones joke will always be another ones insult. | ||
|
||
Then there is the problem of language. I myself am not an english | ||
native, but I publish everyting using the english language. I am able | ||
to communicate with most people in the open source community because | ||
of that. But I am certainly not able to understand everything and | ||
everyone. There might be nuances to a sentence I don't sense, there | ||
might be sarcastic connotations I don't understand or references to | ||
historical figures, events or traditions I don't know and never have | ||
heard of. | ||
|
||
Juding over other peoples online behavior looks like a titanic task to | ||
me. It is just not my job to judge others. I am not legitimized or | ||
authorized to do so. | ||
|
||
Another huge problem with ethical rules is that you need to outline | ||
and enforce sanctions on thos who violate the rules. But since I am | ||
not an elected authority how would I be able to do this? I don't | ||
know. And what happens if someone complains about myself? Shall I | ||
remove myself from my own project? Come on! | ||
|
||
Last but not least there's the law. I am a german citizen and am | ||
living in relatively freedom. Unlike many other people living in | ||
democracies these days, I myself fought for this very freedom on the | ||
streets of Leipzig in 1989. I saw the tanks, the Stasi officers, I | ||
felt the fear. But the laws under I live today and which I have to | ||
adhere to, are only limited to the small speck on earth I am living on. | ||
|
||
So, let's say someone in india says something insulting to some other | ||
developer in an issue. Of course german law does not apply to indian | ||
people. More, the insult might actually not be an insult in india. In | ||
the end, nothing would happen. Under normal circumstances, maintainers | ||
would delete the posting, ban the user or remove push privileges etc. | ||
|
||
But then, is there a way for the offending user to defend himself? Of | ||
course not, since neither indian or german law alone applies. I cannot | ||
go to a german court and sue the guy and he cannot do the same in | ||
india. Or - we possibly could but the judges on both countries would | ||
just laugh and close the case. | ||
|
||
And let's not even start talking about there undemocratic "comitees" | ||
many projects are forming to circumvent this problem. | ||
|
||
That being said, I don't have the power nor the tools, nor the | ||
authority to enforce serious sanctions of any meaningful kind against | ||
others. Therefore I cannot outline any rules whatsoever. | ||
|
||
## So, which are the ethical rules within this project then? | ||
|
||
Well, there are none. | ||
|
||
This project is about code, not society. It doesn't matter where you | ||
come from, how you look, how you think, what you believe, who your | ||
friends are, whay you said or did sometime in the past. I don't even | ||
care if you are a human being. You are an alien so bored that you need | ||
to submit code on github? Fine with me. | ||
|
||
**The only thing I am interested here is Code and only Code.** | ||
|
||
So if anyhing happens here I don't like or I am obliged by law to act | ||
on, I will decide on a case to case basis what to do. And | ||
unfortunately, since this is the nature of a github project, you | ||
cannot complain, object or protest. I am very sorry! | ||
|
||
If you will, let's at least outline these: | ||
|
||
- Please - just please - behave towards others as you'd expect others | ||
to behave towards yourself. | ||
|
||
- Don't judge others for any reason. | ||
|
||
- Only judge the code. | ||
|
||
But these are not rules, only a friendly appeal to you as a developer | ||
and user. | ||
|
||
|
||
Thanks a lot! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
## Project Goals | ||
|
||
The goal of this project is to build a small tool which helps in day | ||
to day work with tabular output of various commandline programs. It | ||
should be small, fast and easy to understand. The idea is to replace | ||
multiline shell pipes using awk, sed and grep with just one | ||
binary. | ||
|
||
There will be no GUI, no web interface, no public API of some sort, no | ||
builtin interpreter. | ||
|
||
The programming language used for this project will always be | ||
[GOLANG](https://go.dev/) with the exception of the documentation | ||
([Perl POD](https://perldoc.perl.org/perlpod)) and the Makefile. | ||
|
||
# Contributing | ||
|
||
You can contribute to this project in various ways: | ||
|
||
## Open an issue | ||
|
||
If you encounter a problem or don't understand how the program works | ||
or if you think the documentation is unclear, please don't hesitate to | ||
open an issue. | ||
|
||
Please add as much information about the case as possible, such as: | ||
|
||
- Your environment (operating system etc) | ||
- tablizer version (`tablizer --version`) | ||
- Input data. Please replace sensitive information with mock data! | ||
- Actual program output. | ||
- Expected program output. | ||
- Error message - if any. | ||
|
||
Be aware that I am working on this (and some other) project in my | ||
spare time which is scarce. Therefore please don't expect me to | ||
respond to your query within hours or even days. Be patient, but I | ||
WILL respond. | ||
|
||
## Pull Requests | ||
|
||
Code and documentation help is always much appreciated! Please follow | ||
thes guidelines to successfully contribute: | ||
|
||
- Every pull request shall be based on latest `development` | ||
branch. `main` is only used for releases. | ||
|
||
- Execute the unit tests before committing: `make test`. There shall | ||
be no errors. | ||
|
||
- Strive to be backwards compatible so that users who are already | ||
using the program don't have to change their habits - unless it is | ||
really neccessary. | ||
|
||
- Try to add a unit test for your addition. | ||
|
||
- Don't ever change existing unit tests! | ||
|
||
- Add a meaningful and comprehensive rationale about your contribution: | ||
- Why do you think it might be useful for others? | ||
- What did you actually change or add? | ||
- Is there an open issue which this PR fixes and if so, please link | ||
to that issue. | ||
|
||
- [Re-]format your code with `gofmt -s`. | ||
|
||
- Avoid unneccesary dependencies, especially for very small functions. | ||
|
||
- **If** a new dependency is being added, it must be compatible with | ||
our [license agreement](LICENSE). | ||
|
||
- You need to accept that the code or documentation you contribute | ||
will be redistributed under the terms of said license agreement. If | ||
your contribution is considerably large or if you contribute | ||
regularly, then feel free to add your name and if you want your | ||
email address to the *AUTHORS* section of the | ||
[manpage](tablizer.pod). | ||
|
||
- Adhere to the above mentioned project goals. | ||
|
||
- If you are unsure if your addition or change will be accepted, | ||
better ask before starting coding. Open an issue about your proposal | ||
and let's discuss it! That way we avoid doing unnessesary work on | ||
both sides. | ||
|
||
Each pull request will be carefully reviewed and if it is a useful | ||
addition it will be accepted. However, please be prepared that | ||
sometimes a PR will be rejected. The reasons may vary and will be | ||
documented. Perhaps the above guidelines are not matched, or the | ||
addition seems to be not so useful from my perspective, maybe there | ||
are too much changes or there might be changes I don't even | ||
understand. | ||
|
||
But whatever happens: your contribution is always welcome! |