Sonar 2.2 Released – Know what’s new in Sonar 2.2 ?

sonar-2.2

Sonar 2.2 Released – Know what’s new in Sonar 2.2 ?

The Sonar Team is pleased to announce the release of Sonar 2.2. There are two key features in this new version :

 

1. Filters

Users can define filters that allow to add new tabs on the homepage like :

  • all projects
  • projects analyzed during last 3 days
  • unit tests with longest execution time
  • classes of a given project with coverage < 50% and complexity>10
  • treemap of projects with a given maven groupId
  • my favourites (each resource : project, package, file, … can be flagged as favourite)

 

 

Administrators can customize the default filters displayed in the homepage and users can define their own filters.
Some screenshots :

 

 
2. Plugin classloaders
Plugins are now executed in independent classloaders. The main advantage is that plugins can declare their own dependencies instead of being limited to Sonar libraries. That’s a major improvement for developing plugins.

More details in the section “How to use external dependencies?”

of the documentation. You can read also this page

to know how to upgrade existing plugins.

 
 

On top of those 2 features, this release contains more than 60 improvements and bug-fixes (see the release notes

), including Checkstyle/PMD upgrades and support of Clover 3. To enjoy the new version, you can download it straight away

.

 

Special thanks to all the contributors who provided patches, gave their feedback or helped us improving Sonar.

– The Sonar team

Tagged : / / / / / / / / / / /

Build Stability Plugin 1.1.1 Released by Sonar team – Overview

Sonar team

The Sonar team is pleased to announce the release of the Build
Stability Plugin version 1.1.1.

The new version fixes an issue with Bamboo support.

The documentation, changes log and jar file are available on the
plugin page [1].

Enjoy !

– The Sonar Team

Tagged : / / / / / / / / / / / / /

Best Practices-Software Configuration and Release Management (SCRM)

software-configuration-and-release-management-best-practices

Introduction

The development of software applications is an evolutionary process, moving towards some predetermined end goals. These goals are usually in the form of a Release, either internal or external, to deliver a set of required functionality. Software Release Management is the process of ensuring releases can be reliably planned, scheduled and successfully transitioned (deployed) to Test and Live Environments. Software Release Management is not just about “automating the path to production” although that is certainly an important part. It also about adopting a holistic view of application changes, using the “Release” as the container to ensure that changes are packaged, released and tested in a repeatable and controlled manner. Release Management is often likened to the conductor of an orchestra, with the individual changes to be implemented the various instruments within it. Software Release Management is intrinsically linked with the more well understood and adopted Software Change and Configuration Management disciplines.

This article defines a set of good practices for helping in the successful adoption of Software Release Management. Although this article is about Software Release Management, many of the practices are generic and can also apply to Release Management in its wider sense as described in the IT Infrastructure Library (ITIL) whereby all aspects of hardware installation (e.g. do we need new PCs?), infrastructure upgrade (e.g. do we need to upgrade inter-site links?) and end-user training are considered. In some cases such a release might not include any software artefacts at all.

Defintions

In order to define some good practices it is first worth defining some terms which are used in Software Release Management. The following table lists of set of generic terms which are taken both from service management and application development.

Term

Definition

RFC (Request for Change)

A high-level change request that captures the detail of a change that is to be made to a new or existing application. RFCs are usually decomposed down to lower level work requests or tasks for software development.

CAB (Change Advisory Board)

The collection of stakeholders who review all RFCs at specific intervals to assess whether they should be implemented, assign priorities and allocated them to a Release.

Release

A stable, executable version of a product  intended for deployment to testing and production.

Release Package

A logical container that defines the set of RFCs and Deployment Units (sometimes called Release Units) that are to be included in a Release. It also includes metadata such as the type of release (see Release Type) and its planned dates (see Release Calendar).

Release Type

The type of release that is to be implemented, i.e. Major, Minor, Emergency. Each Release Type will usually have a different workflow.

Release Policy

An organizations published policy that determines under which circumstances different Release Types should be used as well as the standard set of milestones that selecting a particular Release Type implies in the Release Calendar.

Release Calendar

A set of published milestones that details when Releases are planned to transition through the different development, test and production phases.

Baseline

A snapshot of the exact versions of Configuration Items, including executables, libraries, configuration files and documentation that are to be deployed.

Build

An operational version of a product or part of a product. Not all builds are released but builds are typically carried to transform inputs (source code) into executed and installable Deployment Units.

Deployment Unit

A physical, self-contained, installable release of an application.

An example of how these different definitions relate to one another is illustrated in the diagram below:

The Best Practices

The following good practices are based on many years implementing and observing Software Release Management. They are listed in no particular priority or order.

1. Define regular, targeted release dates
You should strictly plan and manage your releases and deliver releases regularly. Create a Release Calendar for each type Product’s Release Package to ensure that release progress is effectively communicated and planned. If a number of releases are being developed in parallel, create and communicate a high-level release milestone plan. The Release Calendar should communicate both internal (development, testing) and external (deployment to live) milestones. The Release Packages and Release Calendar are more easily managed and communicated if the details are kept within a database or workflow tool.

2. Always have a tested back-out plan
For releases that are being deployed to managed live environments you should always have a tested back-out plan. For example, if you deploy a new Internet Banking product release onto the live servers and subsequently find that there are problems with it, there should be a process in place for removing this release and rolling back to the previous one. In this scenario it is desirable that this process is as automatic as possible. The acceptance testing and rollout scenario should be part of the workflow defined for each Release Package.

3. Have a documented Release Policy
Your Software Release Management processes and policies should be clearly defined and documented. This should include the definition of the types of release you will manage, their workflows, the default calendars, as well as roles, responsibilities and artifacts. Usually this type of information is captured in a Release Management Plan. Make sure that this plan clearly states who is responsible for each part of the release process, i.e. who plans and manages the release, who builds and delivers the release internally and who packages and deploys the release externally. All the artefacts that are to be produced as part of the release process, i.e. Release Plan, Release Notes, Installation Instructions, should be clearly documented (and example templates given) along with who is responsible for generating them.

4. Construct Deployment Units as early as possible
Every time you build your application you should be constructing Deployment Units with the potential to be installed, for example a J2EE .EAR file or a Windows .MSI package. These Deployment Units might not be released beyond the development team but the point is that the build, packaging and installation process is proven early and at each phase.

5. Use an independent team to construct all external releases
If your team is very small then the developers might be able to carry out the build and construct the Deployment Unit. However, for any medium to large size product it is desirable to have a separate release team. This team usually manages the build process and packages up the results of the build into the Deployment Unit. They usually deploy internally (and sometimes externally) or pass the deployment unit to a separate deployment team. The release team is also responsible for creating the logical Release Package’s and communicating release dates.

6. All deployments should be performed by a team independent of the Development team
Developers should not be allowed to transition Deployment Units into a live environment. There is a potential conflict of interests in this situation. For audit ability and traceability it is better to have a separate team deploy the release to Live (and usually Acceptance Testing)

7. Test the deployment process at least once before deploying to Live
The deployment process should be tested at least once before any release is put into a live environment. This is normally carried out by having an Acceptance Test environment that mimics the live environment and is controlled in the same way.

8. Automate as much as possible – use integrated tools for Configuration, Change Management and Deployment Management
Software Release Management can be a repetitive and error prone manual process, therefore as much as possible should be automated. At the very least, the inputs and outputs of the release process (including the build components and release documentation) should be versioned using a Configuration Management tool (e.g Perforce,Subversion,Clearcase,TFS,etc) A Change Management tool can be used for controlling the content of the release and making Requests For Changes (RFCs) to it. A Deployment Management tool can be used to move the release to different environments or to install onto multiple desktop machines. Obviously, this all works best if these tools are integrated through to the Release Management process and its supporting tool(s).

9. Use a mature Software Configuration Management process and tool to support the development of multiple releases in parallel
When you are developing, building and deploying multiple releases in parallel it is critical that you have a Software Configuration Management tool that supports parallel development. Such tools are sometimes high-end, expensive toolsets (not open-source  but they can significantly help to automate and reduce errors in the otherwise manual branching and merging process.

10. Link all release documentation and scripts to your Deployment Unit
When a release is deployed you should be able to identify from the Deployment Unit all the related hardware and software that is required to support the release.  The Release Package is a good container for managing these relationships. The Release Package can either relate all this together in documentation form or better still reference entries in a database. Such a database should identify for each product that is built and released: the required hardware, supporting third-party software and the Installation and Configuration instructions. In the
ITIL world such a database is often called the CMDB (Configuration Management Database).

Tagged : / / / / / / / / / / / / / /

Maven 3.0-beta-1 Release – What’s new in Maven 3.0? – Quick guide

maven-30-beta-1

The Apache Maven team would like to announce the release of Maven 3.0-beta-1.

Maven 3.0-beta-1 is available for download from the ‘preview’ section.

Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central place.

Maven 3 aims to ensure backward compatibility with Maven 2, improve usability, increase performance, allow safe embedding, and pave the way to implement many highly demanded features.

The core release is independent of the plugins available. Further releases of plugins will be made separately. See the Plugin List for more information.

We hope you enjoy using Maven! If you have any questions, please consult:

 

For More Info…

http://maven.apache.org/docs/3.0-beta-1/release-notes.html

 

Tagged : / / / / / / / / / / / / / / /

Apache Continuum Version 1.3.6 Beta 1 – What’s new in Apache Continuum ?

apache-continuum-version-136-beta-1

The Apache Continuum team have released a beta of Apache Continuum 1.3.6.

Apache Continuum is a continuous integration server, which offers automated builds, role-based security, release management and integration with build tools and source control management systems. The project aims to improve quality and maintain a consistent build environment.

This beta introduces updates to the error handling if deleting a project fails, and has fixed the invalid links when generating pdf of continuum-docs. Untested platforms have been removed from the installation docs, and the LDAP configuration documentation has been updated.

A PDF version of the Continuum docs is planned for some point in the future. See the Release Notes for more information.

Tagged : / / / / / / / / / / / / / / / / /

Syncro Soft Announces New Release of Syncro SVN Client

syncro-svn-client

Syncro Soft Announces New Release of Syncro SVN Client

Syncro Soft Ltd, the producer of Syncro SVN Client, has announced the immediate availability of version 5.1 of its Subversion (SVN) client.

PR Log (Press Release)Mar 15, 2010 – Release date: March 15, 2010

Version 5.1 of Syncro SVN Client improves working copy load time, automatically refreshes the working copy on external file changes, makes repository browsing more responsive, adds support for repository imports at file level, adds support for replacing resources, improves handling of obstructed resources, improves history support, allows creating branches/tags directly from the repository and offers options to print or save as image a revision graph.

For the complete list of features please visit http://www.syncrosvnclient.com

New in version 5.1:

A working copy is cached, so when it is loaded next time in the Working Copy view, the operation will be much faster than in the previous versions of Syncro SVN Client.

The working copy is automatically refreshed if changes are detected in the file system. This is done in order to update the state of the resources modified by external applications.

You can configure the repository connections timeout and stop non-responsive repository browsing operations.

Added support for importing files into a repository.

Working copy resources can be replaced with their HEAD or BASE revision.

Operations correctly take into account obstructed resources.

The history for a resource deleted from the repository but which is still present in the working copy is now displayed by properly detecting the revision at which the resource was deleted.

The Branch/Tag action can be performed directly on the repository, without having a working copy previously checked out.

Generated revision graphs can be printed or saved as images.

Pricing and Availability
Syncro SVN Client with One Year Maintenance Pack costs $59
Syncro SVN Client Site License with One Year Maintenance Pack costs $2970
Volume discount rates are available starting with 5 licenses.

Syncro SVN Client can be run on Windows, Mac OS X, Linux, Solaris.

To purchase please visit the Syncro SVN Client store at
http://www.syncrosvnclient.com/buy.html
Syncro SVN Client 5 can be freely evaluated for 30 days from
http://www.syncrosvnclient.com/download.html

About Syncro Soft LTD

Syncro Soft is a privately held software company founded in 1998 with a large area of expertise in XML technologies: XML Schema, Relax NG, Schematron, XSLT, XPath and XQuery. The main product oXygen XML Editor provides the best coverage of the today XML technologies; it complies with the established standards released by W3C and other organizations and enhances developer productivity through an intuitive and innovative XML IDE. Syncro Soft is a member of W3C.

oXygen is a registered trademark of Syncro Soft in the U.S and other countries. Subversion is a trademark of CollabNet. Any other trademarks or service marks contained herein are the property of their respective owners.

SOURCE: Syncro Soft Ltd.
support@syncrosvnclient.com
http://www.syncrosvnclient.com/

# # #

Syncro Soft provides consulting services that are focused on creating Java based XML solutions. Other aspect is the integration of the XML Editor within your content management system.

Tagged : / / / / / / / / / / / / / /

AnthillPro 3.6 Released – What’s New Features in AnthillPro?

anthillpro-new-version

Major New Features In AnthillPro 3.6

 

Improved support for geographic distribution. The server-agent communication layer has been reworked for better performance. The new approach also supports the use of a Relay Server that acts as a proxy for agents behind a firewall or in another location. Distributed web front ends can also be employed to improve responsiveness for users connecting over the WAN.

Preflight builds. At the push of a button, preflight builds integrate the developer’s changes with a snapshot of the latest source code, and then run a build in the build environment, not on the developer’s machine. If a Preflight Build fails, the developer is immediately notified.

Test and coverage trending and metrics. Discover test and coverage trends. Compare any two builds and see which tests and suites fail the most or take the longest. Or see if coverage is improving or decreasing.

 

New and Improved Integrations

  

EMMA code coverage integration. Run EMMA and publish coverage reports with the EMMA integration. In addition, AnthillPro users can generate a coverage report for every project that uses EMMA.

Mercurial integration. Set up AnthillPro projects that use the Mercurial repository to check out code, build, tag, and more.

AccuRev integration expanded. AnthillPro can now automatically generate and manage a pool of AccuRev streams, making configuration and maintenance easier.

Team Foundation Server 2005 and 2008 are now supported concurrently.

Jira Integration updated. AnthillPro can now update issue status and leave a comment regarding what it did.

  

Other Improvements

 

 Remote agent management. Agents can be restarted from the main UI.

 Easier view of source code changes across builds. Any two builds can be compared with AnthillPro listing the changes between them as well as changes to their dependencies.

 Copying projects, workflows and jobs has been made easier and more flexible.

 The types of user defined workflow properties can now be changed. Fields can also be marked as password fields.

Tagged : / / / / / / / / / / / / /