Access to add and change pages is restricted. See: https://cwiki.apache.org/confluence/display/OFBIZ/Wiki+access

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 99 Next »

These guidelines have been created to help our community use JIRA effectively for Apache OFBiz development. These are the best practices that we want all contributors to follow. If you have a question, or something is unclear, then please don't hesitate to ask for help on the OFBiz development mailing list.

PLEASE NOTE: This page is a WIP

What is JIRA?

  • JIRA is the tool that we use to track project related work. This includes ideas for improvements, non code based work such as testing and documentation as well as bug fixes and issues. Please see the following link to the OFBiz JIRA Summary Panel. 
  • JIRA also provides a list of tasks that need to be actioned in the form of a To Do list, which can be sorted by a range of categories including priority, current status or the person assigned. It also can be used to generate statistics about work in progress and issue resolution.
  • During our Community Days, JIRA's inbuilt agile functionality is used to manage the project backlog and create a Sprints for community members to work on.

If you want to find out more about how JIRA works then please see the link to the complete JIRA documentation

JIRA Fields and Meta Data

Issue Types

When you create a JIRA it needs to have an Issue Type. This is important because it helps to classify the issue and can be one of the following type:


Issue TypeDefinition and when to use this type
BugA bug is generally a problem with code or data which is not functioning correctly.
ImprovementAn improvement is something that enhances the functionality of an existing feature
New Feature

New functionality that does not already exist (What is the difference between this and Wish?)

Proposal:

  • All potential improvements could start as a Wish.
  • When they have been discussed / reviewed by the community then they can be changed to be an approved New Feature

 

The proposal seems inline with the existing text regarding creating JIRA 

This following text comes from our existing pages re Jira : If you don't have a patch, and you have want to suggest an enhancement or new feature, then discuss this in the dev mailing list instead of creating a Jira issue; at the end of the discussion, the community will consider if a summary of the thread should be saved in a new Jira issue, to facilitate future development

TaskA Task is an action that needs to be carried out that does not fall under any of the other issue types. (NOTE: We have used Tasks in the past - maybe need to specify more clearly when to use....)
TestA Test is a unit test or integrated test
Wish

A Wish is a requirement for new something that does not already exist (What's the difference between this and New Feature?

Proposal:

  • All potential improvements could start as a Wish.
  • When they have been discussed / reviewed by the community then they can be changed to be an approved New Feature

 

The proposal seems inline with the existing text regarding creating JIRA 

This following text comes from our existing pages re Jira : If you don't have a patch, and you have want to suggest an enhancement or new feature, then discuss this in the dev mailing list instead of creating a Jira issue; at the end of the discussion, the community will consider if a summary of the thread should be saved in a new Jira issue, to facilitate future development

 

Sub Task

This task is a child of another JIRA:

Proposal :

  • To stop using sub tasks for JIRA issues
  • Main reasoning
    • they add to too much detail to an existing task
    • we are adding a level of detail that is not needed
    • if an issue is that complicated that it needs sub-tasks then it may be cleaner and easier for it to be a separate JIRA issue
    • JIRA sprints don't include sub tasks as part of work delivered, so gives a distorted view of actual work performed
    • JIRA issues can remain open for an extended time with only 1 or 2 sub-tasks remaining

Summary

This is a brief title for the issue and summarises what the issue is about. It must give us the key information. Try to focus on the actual issue that you are facing as this will help us quickly identify and classify it.

e.g  Use 'Problem with Sales Order Status Change from In Process to Shipped" rather than simply "Problem with Sales Order"

Other examples of good JIRA summaries

  • Create a separate SVN repository for OFBiz official plugins
  • Add the auto-entity CRUD services for Runtimedata
  • View Sales Order throws exception in getReturnableQuantity
  • Not able to select virtual products in WebPos

 

Proposal:

  • Review existing JIRA summaries for issues that are open / unresolved
  • We ask the creator to tidy up any unclear summaries


Description

The issue description is the most important part of the JIRA issue. If you are reporting a bug or problem then it provides information that will allow someone else to investigate and resolve it. It must be written in such a way that it is clear enough for someone to easily replicate the problem. This means that you need to include information about:

  • What you did (e.g what application, screen, and the highlight the steps you went through etc) 
  • What you were expecting to happen
  • What actually happened

In some cases you might already have an idea about what is causing the issue. If so then please include your suggestions as this may be helpful to the person picking up the issue.

e.g (ADD AN EXAMPLE)




If the issue is about some project work that is planned (e.g refactoring, documentation etc) or agreed after a community discussion then please use the description is used to highlight the steps needed to get the work done. Add a reference back to the community discussion if relevant.

Example

This issue is related to the discussion found in this thread in which the community approved restructuring our repositories. To achieve this task the following needs to be done (in this order)

  1. Update the gradle scripts to assume that no plugins exist in the plugins directory by default and no component-load.xml exists. It should follow the same logic in loading the components as found in the ComponentContainer class. Also the activation and deactivation of plugins happens in ofbiz-component.xml, not in component-load.xml
  2. Add a new task to gradle called pullPluginSource that retrieves a plugin from subversion and defaults to the official plugins repository of Apache OFBiz. This task mostly server "Trunk" because it always needs the latest source code of the plugins.
  3. delete plugins/component-load.xml
  4. move all plugins to a new repository called http://svn.apache.org/repos/asf/ofbiz/ofbiz-plugins
  5. move the core framework to a new repository called http://svn.apache.org/repos/asf/ofbiz/ofbiz-framework
  6. fix buildbot to point to the new framework location
  7. update documentation where applicable including README.md


Priority

All JIRA issues need a priority as it determines what needs to be worked on. This is important because it helps to ensure that the community is focussed and working on the right tasks.

  • OFBiz has several versions of the code base available as released and unreleased branches, as well as the trunk and JIRA covers all of them.
  • Blocking and Critical issues are generally reserved for problems with production systems (i.e systems that customers use). 
  • The OFBiz 'production systems' are our officially released versions that have been signed and approved for release and issues here are the highest priority.


PriorityCurrent JIRA DefinitionProposed Revised Definition and when to to use this priority
BlockerBlocks development and/or testing work, production could not run

A blocking issue an issue with a released OFBiz version that does not run, causes the system to crash, is security vulnerability to users or exposes the project and Apache Software Foundation to significant risk

CriticalCrashes,loss of data, severe memory leakA critical issue is an issue with a released OFBiz version that causes the system to crash, become unstable, lose data and has no workaround.
MajorMajor loss of function

A major issue is an issue with a released OFBiz version that has a significant impact due to loss of function and has no or limited workarounds

NOTE: Generally none of the unreleased branches or the trunk will have this issue priority unless there are outstanding major issues with a released OFBiz version and the fixes need to be implemented within the unreleased branch or trunk
MinorMinor loss of function or problem where easy workaround is presentA minor issue is an issue with a released OFBiz version, an unreleased branch or trunk that has isolated impact but workarounds are available
TrivialCosmetic problem like misspelt words or misaligned textA trivial issue is an issue with a released OFBiz version, an unreleased branch or trunk that are cosmetic or do not change the functionality

 

Labels

Labels are a way to classify issues. 

  • For example an issue can be labelled as 'Beginner' indicating that it is suitable for beginners or newcomers who want to begin contributing to OFBiz, or 'Documentation' for document related tasks.

An issue can have more than one label and JIRA allows you to create new labels automatically if the one you need does not already exist.  Please be careful that you are not using the label as an indicator for the OFBiz 'Component'  as we already have a component field in JIRA to define the OFBiz component or application area.


Also be aware that the JIRA labels are shared across all ASF JIRA projects so you will find labels releated to other projects in the drop down selection box.

 

Proposal

  • We need to standardise as duplicate labels will created
  • Extract out all existing labels from current open OFBiz issues
  • Define a list of standard labels that we can use to classify our issues:
Standard ListList of all currently used OFBiz JIRA labelsKeep - yes / noComments
accounting

accounting, services, tax, transactions

Tax,, accounting, transactions

accounting, form

?Is this a more a component or more generic?
AccountsAP, AR, Accountsnoaccounting would be a better label, but it is also a component
addressaddress, ordernoThis would fit under contactmech
APAP, AR, AccountsnoThis is a component..... not sure it should be a label too
ARAP, AR, AccountsnoThis is a component..... not sure it should be a label too
addadd, phase, project, task, voidnoDon't think this needs to be a JIRA label
agreements

agreement(s), dropship, purchase

agreement(s), role, roles

yes 
ajaxajax? 
api-changeapi-change, ofbiz, tomcatnoDon't think api-change is a label. It is more of a description of the task, we could maybe have something that is more generic e.g api
billingbilling, invoice, project, scrum, tax?Might be billing accounts, invoicing etc. May need more clarification on what the existing issues in this category contain
bitratebitrate,, multiplier,, units,noDon't think we need this as a JIRA label
budgetbudget, rolesyes 
CACHECACHE, LEAK, MEMORYnoDon't think this needs to be a JIRA label
calendar

calendar, entry

calendar, week_of_year

yes 
campaign

campaign, roles

noDon't think we need this as a JIRA label
catalogGroupOrder, catalognoThis is a component
certificatecertificate, keystore, x509noDon't think we need this as a JIRA label
closureclosure, groovy, inline, patchnoDon't think we need this as a JIRA label
collectioncollection, performancenoDon't think we need this as a JIRA label
configuration

configuration, multi-tenant

configuration, multi-tenant, setup

configuration, product

configuration, find, multi-tenant, search

common, configuration, multi-tenant

configuration, request

yes 
contactmechcontactmech? 
content

content, task

content,, data, demos

content, email, quote,

?This is a component
controlcontrol, filters, request-objects, servlet-context, session-context, websitenoDon't think this needs to be a standard JIRA label
commoncommon, configuration, multi-tenant?Don't think this needs to be a standard JIRA label
component

component, tenant

component, data, tenant

?Does saying it is a component add value?
consistencyconsistency, create, employee, servicenoDon't think we need this as a JIRA label. What is happening is that labels are being used to capture information that would be best included in the issue summary!
createconsistency, create, employee, servicenoDon't think we need this as a JIRA label. What is happening is that labels are being used to capture information that would be best included in the issue summary!
crud

crud

crud, entity-auto, shipment

noDon't think this needs to be a JIRA label
CVECVE?Duplicate: Is this linked to correction of security vulnerabilities? If so then security might be a better and clearer label
cvecve?Duplicate of CVE. All others are lower case
data

component, data, tenant

content,, data, demos

yes 
currencycurrency, requestyes 
database

database, devops, refactoring

database, readonly

yes 
datatypedatatype, fieldtypenoThink this is a bit too low level for a label.
demoscontent,, data, demosyes 
devopsdatabase, devops, refactoring?Don't think that we need this as a JIRA label
dropshipagreement(s), dropship, purchaseyes 
dynamicdynamic, formsnoDon't think that we need this as a JIRA label
ecommerce

ecommerce, order_confirmation

yes 
EFTEFT, payment, payment-methodnoThink this fits in payments
emailcontent, email, quote,?If it is email then it could fit under contactmech If it was related to email templates then maybe a templates label.....
employeeconsistency, create, employee, serviceyes 
entityentityyes 
entity-autocrud, entity-auto, shipmentnoThis could fit under a generic entity label
entity-conditionentity-condition, entityenginenoThis could fit under a generic entity label
entityengineentity-condition, entityenginenoThis could fit under a generic entity label
entrycalendar, entrynoDon't think we need this as a JIRA label
featuresfeaturesnoThere is an issue type 'New Feature' so this does not have to be a label. If it is product features then it needs to be a under the product label
finAccountfinAccount, rolesyes 
findconfiguration, find, multi-tenant, searchnoDon't think we need this as a JIRA label
fieldfield, widgetnoHaving a field label doesn't give us any additional information. It is too generic
fieldtypedatatype, fieldtypenoThink this is a bit too low level for a label
filterfilter, phase, tasknoDon't think that this needs to be a JIRA label
filterscontrol, filters, request-objects, servlet-context, session-context, websitenoDuplicate. Don't think this needs to be a JIRA label
focus-field-namefocus-field-name, skip-startnoToo specific for a label
formaccounting, form?Don't think that saying an issue is related to a form helps very much
formsdynamic, forms?One entry is form and this is forms.
gradlegradle, jaryes 
groovyclosure, groovy, inline, patchyes 
GroupOrderGroupOrder, catalognoThis would be better under order
hotelhotel, rooms, travelnoThis would be better under travel
inlineclosure, groovy, inline, patchnoDon't think this needs to be a JIRA label
invoice

invoice, roles

billing, invoice, project, scrum, tax

yes 
layeredcontent, layered, quote, uxnoDon't think that this needs to be a JIRA label
LEAKCACHE, LEAK, MEMORYnoDon't think this needs to be a JIRA label
localelocale, themeyes 
lookupcontent, locale, lookupnoDon't think that this needs to be a JIRA label
jargradle, jarnoDon't think that this needs to be a JIRA label. Too generic to have very much meaning as a JIRA label
keystorecertificate, keystore, x509noDon't think that this needs to be a JIRA label
MEMORYCACHE, LEAK, MEMORYnoDon't think that this needs to be a JIRA label
modalwindowmodalwindow, renderernoDon't think that this needs to be a JIRA label
multiplierbitrate,, multiplier,, units,noDon't think that this needs to be a JIRA label
multi-tenant

multi-tenant

configuration, multi-tenant

common, configuration, multi-tenant

?Duplicate of tenant. Need to decide whether to use tenant or multi-tenant as the standard label
newbienewbie, patchyeswe could also call it beginner...
ofbizapi-change, ofbiz, tomcatnoWe don't need ofbiz as a label
operationsdata, operations, refactoring?Not sure what this means?
order

order, payment, payment-gateway

order, roles

?Could be purchase order, sales order...
order-confirmation

ecommerce, order_confirmation

noThis would fit under order
PartyRelationshipPartyRelationshipnoThis would fit under roles
patchnewbie, patchnoThis doesn't need to be a label as there is a specific field for flagging patches in the issue itself
payment

payment, payment-application

EFT, payment, payment-method

order, payment, payment-gateway

yesWould be better if this was called payments
payment-applicationpayment, payment-applicationnoThink this fits in payments
payment-gatewayorder, payment, payment-gatewaynoThink this fits in payments
payment-methodEFT, payment, payment-methodnoThink this fits in payments
performancecollection, performancenoDuplicate. Don't think this needs to be a JIRA label
PERFORMANCEPERFORMANCEnoDon't think this needs to be a JIRA label
persistencepersistencenoDon't think this needs to be a JIRA label
phaseadd, phase, project, task, voidnoDon't think this needs to be a JIRA label
portalportal, portalPage, portlet, profilenoDon't think this needs to be a JIRA label
portalPageportal, portalPage, portlet, profilenoDon't think this needs to be a JIRA label
portletportal, portalPage, portlet, profilenoDon't think this needs to be a JIRA label
productconfiguration, productyes 
profileportal, portalPage, portlet, profilenoDon't think this needs to be a JIRA label
project

is add, phase, project, task, void

project, projectmgr, relations, roles

billing, invoice, project, scrum, tax

?If this is project manager related then I think it could be a component (even an official plug in one)
projectmgr

project, projectmgr, relations, roles

noThis is a component. Could use project...
purchaseagreement(s), dropship, purchase?Not sure this is a good label, purchasing might be a better description
questionnairequestionnaire, surveynoThis is included under survey
quoteagreement(s), quote? 
readonlydatabase, readonlynoDon't think this needs to be a JIRA label
refactoring

refactoring

refactoring, widget

labels, refactoring

database, devops, refactoring

data, operations, refactoring

yes 
relations

project, projectmgr, relations, roles

?Unsure of what this means? Sounds like it could be more linked to roles
renderermodalwindow, renderer?Don't think this needs to be a JIRA label
reportingreporting, vatyes 
request

configuration, request

request, website

currency, request

yes 
request-objectscontrol, filters, request-objects, servlet-context, session-context, websitenoDon't think this needs to be a JIRA label
resourcesresources, rolesnoDon't think this needs to be a JIRA label
roleagreement(s), role, roles?This is very generic, also there is another label roles, what the difference? or is it just duplication
roles

agreement(s), role, roles

project, projectmgr, relations, roles

invoice, roles

?See above
roomshotel, rooms, travelnoThis would be better under travel
scrumbilling, invoice, project, scrum, tax?Does this become part of a plug-ins label
searchconfiguration, find, multi-tenant, searchnoDon't think we need this as a standard JIRA label
securitysecurityyes 
servlet-contextcontrol, filters, request-objects, servlet-context, session-context, websitenoDon't think this needs to be a JIRA label
serviceconsistency, create, employee, servicenoDon't think we need this as a standard JIRA label
servicesaccounting, services, tax, transactionsyes 
session-contextcontrol, filters, request-objects, servlet-context, session-context, websitenoDon't think this needs to be a JIRA label
shipmentcrud, entity-auto, shipmentyes 
shippingshippingnoThis can fit under shipment
skip-start

focus-field-name, skip-start

skip-end, skip-start

noToo specific to be a useful JIRA standard label
survey

survey

questionnaire, survey

yes 
SurveySurveynoDuplicate of survey, another example of how easy it is to create duplicates if no standard list is specified
setupconfiguration, multi-tenant, setup?Think this is too generic
svnconfiguration, multi-tenant, scrum, svnnoDon't think this needs to be a JIRA label
task

add, phase, project, task, void

content, task

noDon't think this needs to be a JIRA label
tax

accounting, services, tax, transactions

tax, vat

billing, invoice, project, scrum, tax

yes 
TaxTax,, accounting, transactionsnoDuplicate that is easily created and used if we don't have a standard list
tenant

component, tenant

component, data, tenant

yes 
themelocale, themeyes 
tomcatapi-change, ofbiz, tomcatyes 
transactionsaccounting, services, tax, transactions?This description is to generic
travelhotel, rooms, travelyesConsolidate things like hotel, rooms etc under this label
unitsbitrate,, multiplier,, units,noDon't think that this needs to be a standard JIRA label
upgradegradle, upgradenoDon't think that this needs to be a standard JIRA label
uxcontent, layered, quote, ux? 
vat

tax, vat

reporting, vat

yesIt could be under tax, but VAT does has some specific rules so separating it out from generic tax could be useful for the community
VAT

VAT, tax

noDuplicate
voidadd, phase, project, task, voidnoDon't think this needs to be a JIRA label
website

request, website

control, filters, request-objects, servlet-context, session-context, website

yes 
week_of_yearcalendar, week_of_yearnoDon't think this needs to be a JIRA label
widget

widget

field, widget

yes 
x509certificate, keystore, x509?Does this mean anything?
xsdxsd?Don't think this needs to be a JIRA label
    
    
    
    
    
    
 employment, humanres, project, projectmgr, resources  
 assignment, project, projectmgr, relations, roles  
 ESS, employee, management, manufacturing, marketing, registration,, tasks, time, timesheet, vacation,  
 expressions  
 ftl, java, links, xsd  
 DBMS  
 BillingAccountWorker, OrderPurchasePaymentSummary, getBillingAccountBalance  
 Birt, NetBeforeOverhead, Order  
 html, webapp, widget, widgetrendering  
 Expense  
 engine, entity, ldap, mapping  
 easyfix  
 entity, i18n, webtools  
 NER, NLP  

 

To refine the use of labels it may be easier to define the ones that we want to use:

 

 

 

 

Do we have a list of labels that we could use and can we extract the existing list from Jira?

 

Reporter

The issue reporter is automatically assigned by JIRA based on the user profile of the person creating the Jira

Assignee

An Assignee is the person that is currently working on the JIRA issue. By default when an issue is created, the assignee is blank. Any OFBiz JIRA contributor can then assign themselves to an issue where the Assignee is blank. If an issue already has an Assignee then it means that person is still working on it.

If you are an Assignee for an issue and you have completed your work then once you have updated the JIRA details or comments, please unassign yourself from the issue. This is important if the work is a patch that needs to be committed. Our Committers will be able to see the unassigned tasks that are available to be picked up, review them and if necessary commit them

Component

The component field is used to identify which OFBiz component or application area is affected by the issue, The issue could be across all the applications or it could be restricted to a particular area such as Workeffort, Content, Datamodel or Accounting.

NOTE: Be careful that that details in the Labels field is not being duplicated.


Flags

There are two flags available on a JIRA issue. One flags that the issue is a Patch and the other that the issue is Important.

JIRA already provides a 'Provide Patch' button for an issue so the Patch flag here is a duplication of functionality. Some of the issues include it as well as the patch, and some don't. (We may need to look at revising how we use this flag)

JIRA also already provides a 'Priority' field for an issue so the Important flag seems like a duplication of functionality.

Status

The status field tracks the current status of an issue from creation to resolution or closure.


StatusDefinition
OpenThis status indicates that the issue is open and is the default status when a JIRA issue is created
In ProgressThis status indicates that the issue is in progress and that someone is working on it
ReopenedThis status indicates that the issue has been previously closed but has to be re-opened because of some additional work
ResolvedThis status indicates that the issue has been resolved. If the issue is code or patch related then it also indicates that the code has been committed
ClosedThis status indicates that the issue has been closed. It can indicate issue completion or simply the closure of an invalid issue
Patch AvailableThis status indicates that the issue has a code patch uploaded that will resolve the issue.


Affect Versions


Fix Versions


Creating JIRA Issues

Creating issues in JIRA adds to the project workload so it is important that they are created when needed and with the right level of information that will help someone to pick it up and resolve it as soon as possible.

When Not to Create a Jira Issue

  • If you want general OFBiz help or advice
  • If you want to know which version to use
  • If you want to talk about anything related to your specific OFBiz implementation
  • If you want to know how other users manage a process or function
  • If the issue has already been reported and exists in the current list of issues

Instead please post your question or comments on our user or development mailing lists and someone from our community will respond to you.

Discussion Point


  • If you have an idea for a new feature or improvement
    •  If you don't have a patch, and you want to suggest an enhancement or new feature, then discuss this in the dev mailing list instead of creating a Jira issue; at the end of the discussion, the community will consider if a summary of the thread should be saved in a new Jira issue, to facilitate future development
    • If you don't have a patch, but you are planning to work on it, and you want to share your design details with the community, you should discuss this in the mailing list instead of creating a Jira issue


Many people use OFBiz so there is a chance that issue you have encountered may have already been reported. You can search JIRA using the keyword search to see if anything with a similar topic has been created. There is a 'Search' box in the top right of the main JIRA screen and this searches across all ASF projects. All OFBiz issues have the format 'OFBIZ-9999'

Another way to search issues is by clicking the 'Issues' link on the left hand column and then 'All Issues'. An advanced search query filter box is displayed that allows the user to enter their search criteria. The query box is user friendly and offers interactive lookup on the query commands as you type. See below for an example of a query to find all issues that have the word 'accounts' in their description

project = OFBIZ and description ~accounts


When  to Create a JIRA Issue

Reminder: Before creating a JIRA issue, please check that it has not already been reported.

  • If you have discovered a bug that has not yet been reported
  • If you have identified a bug then also fixed it and want to contribute the fix back to the project, then you can create an issue and attach your patch to it. (Note if the issue has already been created then attach your patch to the existing issue and do not create a jira) 
  • If after a community mailing list discussion the recommendation is the create a JIra (e.g. new features, improvements etc)

 

Discussion Point :

 if, on the other hand, you don't have time to do this, (i.e. to discuss the design solution with the community) you have already decided that you want to implement your patch following your design notes, and you just want to let the community know about the upcoming patch, you can create a Jira issue (to which you will attach your patch when it is ready

  • Doing this means that patches for improvements and new features can get uploaded to JIRA and the community has not discussed or agreed they want them or are necessary
  • Are we trying to use JIRA like a patch code repository too? If so then is JIRA the best place to do it? How do we make the distinction between patches that are contributed and are accepted to the repository and those that are not acceptable due to whatever reasons (coding, design etc)

 

 

How to Create a JIRA Issue

  1. You need a JIRA account so if you do not have one then create an account here
  2. Login to your JIRA account
  3. Click 'Create' at the top of the screen to create a new issue and a screen form will be displayed for you to fill in
  4. Project: OFBiz should the default project for the issue. If it is not then please select it from the dropdown selection box
  5. Issue Type: Bug is the default so please change this if your issue belongs to a different issue type
  6. Priority: Major is the default priority. Please review the guidelines around assigning a priority and change it if necessary
  7. Component: Select the OFBiz component that is affected by the issue you are creating. If all components are affected select ALL_COMPONENTS 
  8. Affect version: Select the OFBiz version that is affected by the issue you are creating. I
  9. Assignee: If you are going to work on this issue yourself the enter your name
  10. Reporter:  The name of the person creating the issue should be automatically default as the reporter
  11. Environment: Specify at least your operating system and the database you are using for OFBiz as this information could be very useful to help people working on the issue. If you are running the trunk then please specify the SVN revision number
  12. Description:

 

 

  1. If you need to attach files such as patches you must do it as a second step after the issue creation. It is also possible to easily attach screenshots to the issue see here
    • When attaching files or screenshots you can add a comment where you explain how the attached file is supposed to be used. Please reference the file name in the comment because more files could be attached to the issue at a later time and they will be all listed togheter far from their comments. If, for any reason, you don't want your patch or attachment to be granted to the ASF or committed, please note it in one related comment (possible cases: not ready yet, examples, etc.)
    • Also please use preferably .patch as extension for patches. When updating an attached file keep the same name : Jira is able to deal with that and will simply gray old files, you don't need to delete them (sometimes its usefull to compare older patches versions)
    • If you provide a patch, be sure to use the button "Provide Patch" (the status will then be "Patch Available"). This allows us (commiters) to know that this issue is ready for review.
  2. Jira offers a voting mechanism that is used to give more relevance to the issues (see here to learn more)


How to Update a JIRA Issue

  1. You need a JIRA account so if you do not have one then create an account here
  2. Login to your JIRA account

    1. (optional if you are sure it's new) Search if an issue for what you are after already exists by using the "Find issues"
    2. (optional if you are sure it's new) If an issue on the subject already exists you can add a comment on it
  3. If a issue does not exist, create a new one selecting the "create new issue" command. For details on the issue creation see here
  4. Select the OFBiz project and the issue type.
  5. Fill in all fields, give as many detail you think necessary
    • Generally it is very important to select in the "Affect version" field the ofbiz version you are running. If you are running the trunk then the SVN revision should also be specifyed in the Environment field
    • Use the Environment field to specify at least your operating system and the database ofbiz is using since these information could be very useful to help people to work on the issue
    • Select the concerned component(s). If all components are affected select ALL_COMPONENTS (uncommon case)
  6. If you need to attach files such as patches you must do it as a second step after the issue creation. It is also possible to easily attach screenshots to the issue see here
    • When attaching files or screenshots you can add a comment where you explain how the attached file is supposed to be used. Please reference the file name in the comment because more files could be attached to the issue at a later time and they will be all listed togheter far from their comments. If, for any reason, you don't want your patch or attachment to be granted to the ASF or committed, please note it in one related comment (possible cases: not ready yet, examples, etc.)
    • Also please use preferably .patch as extension for patches. When updating an attached file keep the same name : Jira is able to deal with that and will simply gray old files, you don't need to delete them (sometimes its usefull to compare older patches versions)
    • If you provide a patch, be sure to use the button "Provide Patch" (the status will then be "Patch Available"). This allows us (commiters) to know that this issue is ready for review.




How to create a Jira issue

 
  1. Create an account here, if you do not have one
  2. Login
    1. (optional if you are sure it's new) Search if an issue for what you are after already exists by using the "Find issues"
    2. (optional if you are sure it's new) If an issue on the subject already exists you can add a comment on it
  3. If a issue does not exist, create a new one selecting the "create new issue" command. For details on the issue creation see here
  4. Select the OFBiz project and the issue type.
  5. Fill in all fields, give as many detail you think necessary
    • Generally it is very important to select in the "Affect version" field the ofbiz version you are running. If you are running the trunk then the SVN revision should also be specifyed in the Environment field
    • Use the Environment field to specify at least your operating system and the database ofbiz is using since these information could be very useful to help people to work on the issue
    • Select the concerned component(s). If all components are affected select ALL_COMPONENTS (uncommon case)
  6. If you need to attach files such as patches you must do it as a second step after the issue creation. It is also possible to easily attach screenshots to the issue see here
    • When attaching files or screenshots you can add a comment where you explain how the attached file is supposed to be used. Please reference the file name in the comment because more files could be attached to the issue at a later time and they will be all listed togheter far from their comments. If, for any reason, you don't want your patch or attachment to be granted to the ASF or committed, please note it in one related comment (possible cases: not ready yet, examples, etc.)
    • Also please use preferably .patch as extension for patches. When updating an attached file keep the same name : Jira is able to deal with that and will simply gray old files, you don't need to delete them (sometimes its usefull to compare older patches versions)
    • If you provide a patch, be sure to use the button "Provide Patch" (the status will then be "Patch Available"). This allows us (commiters) to know that this issue is ready for review.
  7. Jira offers a voting mechanism that is used to give more relevance to the issues (see here to learn more)

 

If you don't have a patch, and you have discovered a bug, create a Jira issue (if there is not one already) providing as much details as possible (including the rev. number and the environment you are using, and the step to recreate the bug). if you have no ideas how to describe the bug use this template

  1. What you did (including detailed steps to reproduce)
  2. What you expected to happen
  3. What actually happened (including exact quotes of error messages, etc)
  4. If possible provide an URL



Commenting on a JIRA Issue


Voting for a JIRA Issue

Watching a JIRA Issue


OFBiz JIRA Workflow




Epics are disabled - do we enable them?



Add a wiki page (if one does not exist) documenting:
  - Guidelines for writing JIRA mentioning clarity, provision of solution.
  - A clear definition of priorities (blocker, critical, major, minor,
trivial) with some examples.
  - A description of meaning of assignee and how to use it
  - A description of other metadata and how to properly use it (tags,
components, affects version, etc...)

 

TO TIDY UP - Copied from Committers Roles and Responsibilities page

Type of changes and where should they go

There are roughly 3 main types of changes:

  1. New features
  2. Improvements
  3. Bug fixes

Bug fixes should normally go in the release branches, as much as they can. Security fixes must trigger a new released packages.
New features and Improvements should never get into a release branch. Exceptions may occur, but they need a consensus, and as ever can be vetoed (only by committers, though this rule can be adapted by the community)

 

All committers must do the following to ensure licensing compliance

  1. Make sure the contribution is posted publicly on the Apache OFBIZ JIRA issue tracker. Please do not commit changes that were sent to you privately. If you receive a patch, open a JIRA issue and then ask the submitter to post his patch there. This way, we can avoid having to get an iCLA for the contributor, as well as let everybody in the community view and comment on the contribution.
  2. If it is a new file, the file must have the Apache 2.0 license header.
  3. The commit log must identify the name of the contributor and, if relevant, the JIRA issue for it.

 

Manage JIRA's issues

Please take the time to correctly fill the different Jira fields we now use for our releases change logs.

  • Specifiy in Resolution :
    • Improvements : use either Done or Implemented Status as you feel right
    • New features : use the Implemented Status
    • Bug : use the Fixed Status
    • Of course you might also use other status (like duplicate, won't fix, invalid, etc.) when needed...

 

 

  • Specify in the Fix Version/s the codebase(s) to which you have committed the patch/fix :

 

Temporary warning

 

Because we decided to not release the R14.12 and R15.12 branches, and because 13.07.03 was the last release of the R13.07 branch, currently only "Upcoming Branch" and Release Branches (like  Release Branch 15.12) are available in the "Fix Version/s" field. Not released versions (like 13.07.03) will no longer appear but when we wil release the next coming R16 branch.

 

    •  you can select from the dropdown one or more of the items under the "Unreleased Versions" group in the top part of the drop down box;
    •  you should never use one of the items in the "Released Versions"  section (bottom part);
    •  if the commit is only done (ie not backported) on "Trunk" then select "Upcoming Branch";
    •  if you are backporting/committing to a release branch then select the latest (next) release version in that branch available in the dropdown.

 

 

After some time the following Jira reports will contain very useful information :

 

  • Note about backports for bug fixes

When you don't backport a bug fix to a release branch, please explain the reason/s you don't backport. Then when others review they don't wonder why it was not backported and don't have to search why!

TO TIDY UP - Copied from Contributors Best Practices Page

How to create a Jira issue

 
  1. Create an account here, if you do not have one
  2. Login
    1. (optional if you are sure it's new) Search if an issue for what you are after already exists by using the "Find issues"
    2. (optional if you are sure it's new) If an issue on the subject already exists you can add a comment on it
  3. If a issue does not exist, create a new one selecting the "create new issue" command. For details on the issue creation see here
  4. Select the OFBiz project and the issue type.
  5. Fill in all fields, give as many detail you think necessary
    • Generally it is very important to select in the "Affect version" field the ofbiz version you are running. If you are running the trunk then the SVN revision should also be specifyed in the Environment field
    • Use the Environment field to specify at least your operating system and the database ofbiz is using since these information could be very useful to help people to work on the issue
    • Select the concerned component(s). If all components are affected select ALL_COMPONENTS (uncommon case)
  6. If you need to attach files such as patches you must do it as a second step after the issue creation. It is also possible to easily attach screenshots to the issue see here
    • When attaching files or screenshots you can add a comment where you explain how the attached file is supposed to be used. Please reference the file name in the comment because more files could be attached to the issue at a later time and they will be all listed togheter far from their comments. If, for any reason, you don't want your patch or attachment to be granted to the ASF or committed, please note it in one related comment (possible cases: not ready yet, examples, etc.)
    • Also please use preferably .patch as extension for patches. When updating an attached file keep the same name : Jira is able to deal with that and will simply gray old files, you don't need to delete them (sometimes its usefull to compare older patches versions)
    • If you provide a patch, be sure to use the button "Provide Patch" (the status will then be "Patch Available"). This allows us (commiters) to know that this issue is ready for review.
  7. Jira offers a voting mechanism that is used to give more relevance to the issues (see here to learn more)

 

When to create a Jira issue

 
  1. Before creating any Jira issue, please check, using some related key words, if a similar issue does not exist already. For that you can first use the quich search at top right of Jira pages and after refine your search using relevant information. For instance by default all projects are scanned, you may then search only in OFBiz, etc.
  2. If you already have a patch for an improvement/fix then create a Jira issue (if there is not one already) and attach your patch to it
  3. If you don't have a patch, and you have discovered a bug, create a Jira issue (if there is not one already) providing as much details as possible (including the rev. number and the environment you are using, and the step to recreate the bug). if you have no ideas how to describe the bug use this template
    1. What you did (including detailed steps to reproduce)
    2. What you expected to happen
    3. What actually happened (including exact quotes of error messages, etc)
    4. If possible provide an URL
  4. If you don't have a patch, and you have want to suggest an enhancement or new feature, then discuss this in the dev mailing list instead of creating a Jira issue; at the end of the discussion, the community will consider if a summary of the thread should be saved in a new Jira issue, to facilitate future development
  5. If you don't have a patch, but you are planning to work on it, and you want to share your design details with the community, you should discuss this in the mailing list instead of creating a Jira issue; if, on the other hand, you don't have time to do this, you have already decided that you want to implement your patch following your design notes, and you just want to let the community know about the upcoming patch, you can create a Jira issue (to which you will attach your patch when it is ready);
    Summarizing:
  • Bugs: always create a new Jira issue everytime you find a new bug
  • New features/enhancements: create new Jira issue only if you have a patch (or if you plan to submit it very soon)

 

Editing comments in Jira

 

This feature should be used very parsimoniously because it's not easy to read edited comments from a mailing list and most people read comments from the dev ML (Jira issues are redirected to dev ML).
So, as far as it's possible, you should better add a new comment than editing one. If you really need to edit a comment, you MUST put a BIG prefix before your comment so it is possible to distinguish it from the original text. That should include more than just a pair of "*" to bold part or all of the response, and should also include your initials so that it is clear which things you added.

  1. Before creating any Jira issue, please check, using some related key words, if a similar issue does not exist already. For that you can first use the quich search at top right of Jira pages and after refine your search using relevant information. For instance by default all projects are scanned, you may then search only in OFBiz, etc.
  • No labels