forked from I2P_Developers/i2p.www
dev guidelines update
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Developer Guidelines and Coding Style') }}{% endblock %}
|
||||
{% block lastupdated %}2019-11{% endblock %}
|
||||
{% block lastupdated %}2020-05{% endblock %}
|
||||
{% block content %}
|
||||
<p>{% trans newdevs=site_url('get-involved/guides/new-developers') -%}
|
||||
Read the <a href="{{ newdevs }}">new developers guide</a> first.
|
||||
@@ -20,7 +20,7 @@ check with the appropriate developer for guidance.
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
Please don't just "write code". If you can, participate in other development activities, including:
|
||||
development discussions and support on IRC, zzz.i2p, and forum.i2p; testing;
|
||||
development discussions and support on IRC, zzz.i2p, and i2pforum.i2p; testing;
|
||||
bug reporting and responses; documentation; code reviews; etc.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
@@ -33,11 +33,11 @@ the checkin deadline for a release.
|
||||
|
||||
|
||||
<h3>{{ _('Release Cycle') }}</h3>
|
||||
<p>{% trans -%}
|
||||
Our normal release cycle is 6-10 weeks.
|
||||
<p>
|
||||
Our normal release cycle is 6-12 weeks.
|
||||
Following are the approximate deadlines within a typical 8-week cycle.
|
||||
Actual deadlines for each release are set by the lead developer.
|
||||
{%- endtrans %}</p>
|
||||
Actual deadlines for each release are set by the lead developer after consultation with the full team.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
@@ -55,19 +55,19 @@ Actual deadlines for each release are set by the lead developer.
|
||||
<li>{% trans -%}
|
||||
2-3 weeks before release: Hold project meeting to review new home page link requests, if any.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
7-10 days before release: String freeze. No more changes to translated ("tagged") strings.
|
||||
<li>
|
||||
10-14 days before release: String freeze. No more changes to translated ("tagged") strings.
|
||||
Push strings to Transifex, announce translation deadline on Transifex.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
7-10 days before release: Feature deadline. Bug fixes only after this time. No more features, refactoring or cleanup.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
</li>
|
||||
<li>
|
||||
10-14 days before release: Feature deadline. Bug fixes only after this time. No more features, refactoring or cleanup.
|
||||
</li>
|
||||
<li>
|
||||
3-4 days before release: Translation deadline. Pull translations from Transifex and check in.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
2-3 days before release: Checkin deadline. No checkins after this time without the permission of the release builder.
|
||||
{%- endtrans %}</li>
|
||||
</li>
|
||||
<li>
|
||||
3-4 days before release: Checkin deadline. No checkins after this time without the permission of the release builder.
|
||||
</li>
|
||||
<li>{% trans -%}
|
||||
Hours before release: Code review deadline.
|
||||
{%- endtrans %}</li>
|
||||
@@ -132,7 +132,7 @@ Javadocs for new private methods are desirable.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
For any Javadocs added, there must not be any doclint errors or warnings.
|
||||
Run 'ant javadoc' with Oracle Java 8 or higher to check.
|
||||
Run 'ant javadoc' with Oracle Java 14 or higher to check.
|
||||
All params must have @param lines, all non-void methods must have @return lines,
|
||||
all exceptions declared thrown must have @throws lines, and no HTML errors.
|
||||
{%- endtrans %}</li>
|
||||
@@ -157,14 +157,14 @@ Use generics and concurrent classes where possible. I2P is a highly multi-thread
|
||||
Be familiar with common Java pitfalls that are caught by findbugs.
|
||||
Run 'ant findbugs' to learn more.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
We require Java 7 to build and run I2P.
|
||||
Do not use Java 8 classes or methods anywhere.
|
||||
Do not use Java 7 or 8 classes or methods in embedded subsystems (core, router, mstreaming, streaming, i2ptunnel),
|
||||
as Android and embedded applications require only Java 6. All classes must be available in Android API 14.
|
||||
<li>
|
||||
We require Java 8 to build and run I2P as of release 0.9.47.
|
||||
Do not use Java 7 or 8 classes or methods in embedded subsystems: addressbook, core, i2ptunnel.jar (non-UI), mstreaming, router, routerconsole (news only), streaming.
|
||||
These subsystems are used by
|
||||
Android and embedded applications that require only Java 6. All classes must be available in Android API 14.
|
||||
Java 7 language features are acceptable in these subsystems if supported by the current version
|
||||
of the Android SDK and they compile to Java 6-compatible code.
|
||||
{%- endtrans %}</li>
|
||||
</li>
|
||||
<li>
|
||||
Try-with-resources cannot be used in embedded subsystems as it requires java.lang.AutoCloseable
|
||||
in the runtime, and this is not available until Android API 19 (KitKat 4.4).
|
||||
@@ -174,6 +174,11 @@ The java.nio.file package cannot be used in embedded subsystems as it
|
||||
is not available until Android API 26 (Oreo 8).
|
||||
</li>
|
||||
<li>
|
||||
Other than the above limitations,
|
||||
Java 8 classes, methods, and constructs may be used in the following subsystems only:
|
||||
BOB, desktopgui, i2psnark, i2ptunnel.war (UI), jetty-i2p.jar, jsonrpc, routerconsole (except news), SAM, susidns, susimail, systray.
|
||||
</li>
|
||||
<li>
|
||||
Plugin authors may require any minimum Java version via the plugin.config file.
|
||||
</li>
|
||||
<li>{% trans -%}
|
||||
|
Reference in New Issue
Block a user