If the project was "5 years untouched" as you wrote, it is likely that pull requests are not going to be accepted, regardless if someone fixed a typo in a comment or did a complete rewrite. The project was probably abandoned by the original authors.
The first thing I would try is to contact the authors and ask them what they think about it. If they do not ...
As you spent a year working on this thing and pioneered this feature for your own project, I do not think it is unreasonable to want to be included in the credits. Simply ask this author politely to consider adding you to the credits if he found your work helpful. I would think most fellow open source contributors would understand completely. Simply asking ...
There are two levels of answering this: challenging your assumption in general, and addressing each project specifically. I will start with the general part.
The Unix Way
You are assuming that, because those projects have a rich commandline interface but no dynamic library, they don't have an API.
However, the Unix way of building applications is small ...
This is thinking a bit outside the box: you could write a paper about your algorithm, publish it (maybe in some scientific journal, on arXiv, just on your personal blog, or maybe just inside your project), and reference it in your project. Then ask the other author to do the same.
Basically, you have now provided free documentation to their project (by ...
Of course, anyone can change the permissions and ownership to their liking after downloading the project (or maybe they are on other platforms) but is there a best-practice on what to set owner, user and group to initially?
Just leave the ownership to default values. Once someone clones a repository on their machine, they'll become the owner.
Same for ...
Few open source utilities were originally developed to be good libraries. They were instead developed to be good utilities, and any library functionality grew as the utility needed it to.
Everything takes effort to achieve. Providing multiple layers of interfaces while arguably more flexible also imposes a burden a maintenance and curation. Many open source ...
The LGPL v2.1 states that:
You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence ...
Hooking up to a command line program is straight forward in just about any useful programming language.
Hooking up to a library means you have to either use the same language, often the same compiler, or someone has to expend the effort to create cross-language bindings.
If you want to make a standalone utility integratable into larger works, exposing the ...
Two other strategies:
See the build system: this may define an entry point, or at least make clear which source file is most likely to contain it. It may be specified in linker options or linker scripts (.ld files).
See the debugger: often there is a "break after program start" option, which will drop you at the entry point. However that requires you to ...
The main function on many platforms is defined as int main (int argc, char **argv) or equivalently as int main (int argc, char *argv).
But beware of odd conventions on specific platforms. How about int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow).
Also be aware that it is possible to call functions before ...
To be honest, don't bother cutting your teeth on a project you are not passionate about. That is called work.
If you want to contribute to Chromium (or any project for that matter).
find their development page,
join the discussion channels
immerse yourself in their direction by looking at the dev faq, roadmaps, and bug tracker
verify that you can ...
The semantic versioning is meant to manage the dependencies between components, based on their public API:
Software using Semantic Versioning MUST declare a public API. This API
could be declared in the code itself or exist strictly in
documentation. However it is done, it should be precise and
The whole versioning logic is ...
Yes, you should bother because you do not know how things evolve in the future. Maybe the author one day decides to create a commercial software from your code.
What you are after is not the license but the copyright. You can provide your code under any license you like but you hold the copyright since the moment you conceived the code as long as noone else ...
Taking each of your points in turn
The benefits of Behavior Driven Development (BDD) seem to be that
non-technical stakeholders are more easily included in the writing of
I'd say that the benefits are to define a common language on both sides.
Stakeholders define the story in terms of: As a... I want... so that... which ...
If an application is open-source or not depends on all the copyright licenses that apply to the different parts of the application. Your code must be published under an open-source license and all third-party code that you use must have a compatible license.
The .Net Core framework is licensed under the MIT license, which is a permissive open-source license....
The only way I know you could solve is by find a trusted third party, hand your code over to them and let them compile and run it (maybe on a neutral cloud platform). If you want to provide / host the server on your own, you will probably have to let the trusted third party audit your internal processes.
No that is impossible. Even if you included a service method that has some challenge/response mechanism, the service provider could run a proxy and pass on the request. And any mechanism could be reproduced easily because it is all open.
Even knowing they are running the same sever would not guarantee it would behave as expected. Results could be input ...
I am wondering if I can build a trully open source application using .Net Core?
Yes you can if you chose to. .Net Core is open source itself, covered by the MIT licence and you are free to use it for any purpose (subject to the terms of the MIT licence), including open source projects of your own.
No. There are just too many languages and operating systems for a single package format to be viable.
before the explosion of package managers, there was the expectation that ./configure && make && sudo make install would do the right thing
there are tons of build-system or package-manager specific approaches
Homebrew's formulas and Arch's ...
Git is not for versions. More precisely, git makes it easy to track project history, but does not make it easy to maintain a different variant or edition of a project.
Your suggested strategy of regularly merging your modifications with upstream changes is fine and may be unavoidable. However, you will have to merge the same differences again and again. So ...
This question was asked a really long time ago, but saying as you didn't mark a solution, I think I'll add a contribution.
Basing of my experience with open source, you should consider a few things before setting up structure.
Things to consider
Language and Technology: Frameworks and languages dictate a lot of what your structure should look like. For ...