fedora-java / howto Goto Github PK
View Code? Open in Web Editor NEWJava packaging HowTo
License: Other
Java packaging HowTo
License: Other
Quoting abstract from https://docs.fedoraproject.org/en-US/java-packaging-howto/
Abstract
This document aims to help developers create and maintain Java packages in Fedora. It does not supersede or replace Java Packaging Guidelines, but rather aims to document tools and techniques used for packaging Java software on Fedora.
Since gradle is not available on Fedora, I think it should be removed from Fedora Packaging Guidelines.
I think that we should reconsider how the HOWTO should be developed and versioned.
My idea is that we would be developing it only in master branch, which would reflect state of rawhide. Knowing how we love writing docs, they are unlikely to be added before corresponding code hits rawhide, so this should be fine. In (unlikely) case of new docs that need to be added for upcoming features (not yet available in rawhide), we could use feature branches. At some point of Fedora release (after branching, but before GA) we would create release branch from master. Release branch would not be changed except for major bugfixes.
If the above workflow is implemented then we should version 26 and replace it with snapshot.
Any comments or objections?
After removing gradle from javapackages, we should document how a packager should package such projects.
Inspiration can be taken from Fedora packages such as aqute-bnd
, objectweb-asm
, lucene
.
%_ivyxmldir should be documented in directory layout, similarly to %_mavenpomdir.
Users doing local RPM builds may experience unexpected build behaviour due to pre-existing content in their Maven local repository. We should point it out explicitly and advise to use mock. For more info see thread on devel list
After including manpages in appendix TravisCI build fails because these manpages are not available on Ubuntu. TravisCI should be configured to fetch these manpages from javapackages on GitHub.
There is one place in the document that refers to "%mnv_alias" instead of "%mvn_alias", in Section 7.1, Packaging Maven project
Related to fedora-java/javapackages#18, but should be done even in case Mock config is not added.
Diagram of Java-related packages with dependencies (images/xmvn.svg) has been available since 2013, but it is not included in generated docs.
Currently HOWTO versions correspond to versions of Fedora release that giver HOWTO corresponds to. I think it would be better to make it use Calendar Versioning instead.
In fedora-java/javapackages#56 @mbooth101 reported that pom_xpath_replace is not documented.
Although there are some mentions of xmvn-builddep and Mock pm_request, but I perhaps that this may be insufficient.
IMHO, builddep is a great feature, which has been available for almost 4 years. Together with Mock pm_request plugin it effectively enables auto-build-requires. Unfortunately I have a feeling that it is not used widely and often enough.
INCLUDE_ASCIIDOC(../version-links)
Is shown on https://fedora-java.github.io/howto/latest/
Currently generated documentation contains comments that should rather be hidden from the user, but kept in source code. These comments include TODO/FIXME items or notes about persons working on particular sections.
We need to have TravisCI (or another automation, like CentOS CI) build Antora version of the HOWTO and push generated code to some git repository (most likely on pagure.io), from where docs.fedoraproject.org will be able to pull it and integrate with the website.
It would be nice to automatically compile and deploy GH pages using Travis CI. Some inspiration: http://www.steveklabnik.com/automatically_update_github_pages_with_travis_example/
Package diagram at images/xmvn.dia should be updated to current state, including:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.