On 10/25/21 12:41 PM, Andrea Tosoni wrote:
Hello,

I'm Andrea Tosoni.

Some years ago I started to write some perl scripts because I don't like to
re-made the same thing many times, especially when I have to write
documentation (I'm a hardware designer).

In these years, scripts have become perl modules that work almost fine.

I started from POD idea: merge code and documentation. I added the
possibility to load parameters from an external file or by constants
defined in my code (VHDL or Verilog or some other language). I can also
calculate fields and iterate on lists or similar basic programming
operations.The markup is very easy. Documentation can be split in many
source files without order and it's merged at the end.

I also added the possibility to load images (vectorial images for the
moment) and create tables.

Today my output is a Framemaker file (in my company it is the tool for
official documentation) but I think to add the possibility to export in
Latex (because I like) and Word (because I have to support it).

I don't know if these modules can help somebody else.

Today I have to rework to remove deprecated modules, increase test coverage
and add some missing functionalities and this can be the moment to
organize in official modules, if you think that can be useful.

Thank you for reading my mail.

Best regards,

                         Andrea Tosoni


On 10/26/21 11:53 PM, Shlomi Fish wrote:
> I read your message, but I don't understand what you wish to ask. What is the
> dilemma?


On 10/27/21 8:02 AM, Shlomi Fish wrote:
> AFAIK, one is allowed to upload any FOSS and non-malware code to CPAN. That put
> aside, I have collected some resources about sw quality guidelines:
> https://github.com/shlomif/Freenode-programming-channel-FAQ/blob/master/FAQ_with_ToC__generated.md#what-are-some-best-practices-in-programming-that-i-should-adopt
>
> ; I also wrote about the overwhelming state of doc formats here:
> https://www.shlomifish.org/philosophy/computers/web/choice-of-docs-formats/ .
>
> HTH.


On 10/27/21 12:06 AM, Andrea Tosoni wrote:
> Hello,
>
> sorry : I'm asking if these modules can be a candidate to be posted on CPAN.
>
> Best regards,
>
>                 Andrea


On 10/27/21 8:46 AM, Andrea Tosoni wrote:
> Hello,
>
> thank you.
>
> My code is written in pure perl, mainly with Moose: I like object oriented
> language because code is cleaner. So, no compilation is necessary and the
> output is predictable.
>
> Documentation is written at the end of each module with POD. One test is
> dedicated to verify if all functions have their description.
>
> I don't write malware :) and I try to have full code coverage with
> automatic tests. I can't be sure that all is working fine, but I think that
> it's a first step.
>
> I will ask for an account and in the next day I will prepare the modules.
> Working locally, normally I don't need a Makefile.PL to automate
> installation and this is new for me to prepare.
>
> Best regards,
>
>                   Andrea


Contributing to a FOSS project can be an exciting learning experience.  :-)


You will want to create a distribution that the various Perl and CPAN tools can understand. "Writing Perl Modules for CPAN" by Sam Tregar was helpful back in the day:

https://link.springer.com/book/10.1007/978-1-4302-1152-5


I have always used ExtUtils::MakeMaker and h2xs(1) to create Perl distributions:

https://man.archlinux.org/man/core/perl/h2xs.1perl.en


Git seems to be the current, popular choice for version control.  I use CVS.


GitHub seems to be the current, popular choice for collaboration and support. I will need to convert to Git to utilize GitHub.


That's the fun stuff. Then there's the not-so-fun stuff -- legal. Notably, intellectual property (IP) and data privacy. You do not want to make a mistake here.


You will need to select a license. For Perl, the Artistic License is traditional. But, there are examples of CPAN distributions with other licenses. Note that "Public Domain" can be problematic. h2xs(1) provides a POD license section in the main module that indirectly refers to the Artistic License. To be pedantic, include a LICENSE file in the root of your distribution. See:

https://opensource.org/licenses

https://opensource.org/licenses/Artistic-2.0


Do you have sole and complete ownership of everything you plan to release? More directly: do you have the legal right to release the software?


In the USA, where I reside, any document I create -- software, data, this e-mail message, etc. -- is automatically copyrighted. But if I wish to defend my copyright, I would be wise to submit a copy and file a copyright application with the United States Patent and Trademark Office (USPTO).


You mentioned your software in the context of a company. In the USA, if I conceive, create, use, improve, etc., content in an employment or consulting arrangement without a contract stating otherwise, then my employer or client gains rights to all or part of that content. This is called the "work for hire" principle.


Have you signed any contracts with your employer related to IP and/or data privacy, such as a Confidential Disclosure Agreement, a Non-Disclosure Agreement, an Intellectual Property Assignment Agreement, etc.? Does your employer have any written policies regarding IP and/or data privacy?


Have you reviewed the license for FrameMaker?


If others helped you with the software, or if you used their ideas and/or content, then they could have a stake in the software.


Regarding data privacy, be aware of the Health Insurance Portability and Accountability Act (HIPPA) (USA), the EU Charter of Fundamental Rights, and whatever laws apply in your country.


What is your strategy for liability of content within the release -- e.g. unauthorized use of copyrighted content, unauthorized use of patented processes, improper reverse engineering, etc.? Even if everything is okay today, new patents, etc., may create violations in the future. Have you heard of "patent trolls"?


You should discuss this with your employer. You or they may wish to consult an attorney or legal service.


David

Reply via email to