Posted by Difio Team
@
May 7
th, 2013
Today Difio is pleased to announce the general
availability of add-on tests which are
designed to test and verify potential issues or
known bugs. Add-on tests are provided as a
subscription service
for 10 $ per month. First month is free.
What add-on tests are available
API diff - Difio generates API definition from the package
source code. Changes in API could be
backward incompatible and result in application crash and runtime failures.
API diff is currently available for Python, PHP and Java.
Full diff - this is the full git diff between two package versions.
It is available for informational purposes.
Package Size Change - packages that change their size significantly
can be a sign of
a corrupted build.
This test reports any size changes over 30%.
See DIFIO-12243 for example.
File Size Change - inspects files which are present in both versions.
Any size change that is both more than 20% and more than 20 KB or
any file that changes from being zero-sized to non-zero sized, and vice-versa is reported.
Added non-text Files - new files are classified with libmagic.
Any non-text file is reported.
Bugs like Django #19858 can
be found with this test. For example see DIFIO-12987.
Modified Files - lists all modified files. You should manually review the
list and inspect if unwanted files were modified.
Added Files - lists all newly added files. New files are usually resources, tests of new
functionality. Manually inspect to verify additions are expected.
Removed Files - files in packages should be removed only if properly obsoleted or
initial inclusion was a bug. Removing modules or parts of them can break the API.
Renamed Files - renaming files can break API. This test lists all renames
between two versions.
Permissions Change - file permissions change (Linux/UNIX only) could indicate
security issues. In a source package without executable programs permissions should
not change.
Symlinks - this test traverses the entire package tree and reports any symlinks found.
It will report FAIL if any symlinks exist in the new package.
For example see DIFIO-16005.
File Types Change - this test compares file types reported by libmagic between
two package versions. Files should not be changing their type between updates.
Virus Scan - a virus scan is performed on the package using the ClamAV virus scanner.
Even though it is unlikely that packages contain viruses, it’s still important to know if anti
virus tools will trigger false positives.
Test Cases - this test reports any changes in test cases. It counts the number of available
test case files in some well known locations. If new version is missing tests or has less
then severity will be VERIFY or FAIL.
Subscribe Now!
Difio is constantly working on improving the service. In the mean time
start following packages,
invite your friends and send us your feedback via
GitHub
or Twitter.
Posted by Difio Team
@
Mar 10
th, 2013
Today Difio is pleased to announce API diff support
for Java and PHP programming languages.
The API diff feature extracts class and method signatures and compares the
results between an older and a newer version. If API has changed this
is a good indicator that there were substantial changes in the new package
version, which require through testing.
With this release API diff becomes available for source code written in
Java, PHP and Python. We are looking to support other languages as well.
What’s next
Difio is constantly working on improving the service. In the mean time
start following packages,
invite your friends and send us your feedback via
GitHub
or Twitter.
Posted by Difio Team
@
Mar 6
th, 2013
Today Difio is pleased to announce improved support
for the PHP programming language and the
Composer dependency management tool.
Previously only PHP PEAR packages were supported and it was not possible
to manually import a list of packages. Starting today, these issues have been
fixed.
At the moment Difio supports three upstream sources for PHP packages:
Users are now able to manually import package list from their PHP applications
using Composer.
To register PHP apps go to
https://difio-otb.rhcloud.com/application/import/composer-show/?
and paste the output of php composer.phar show --installed command.
For example:
$ ./composer.phar show --installed
doctrine/common 2.3.0 Common Library for Doctrine projects
imagine/Imagine v0.4.1 Image processing for PHP 5.3
pear-pear.php.net/HTTP_Request2 2.1.1 PHP5 rewrite of HTTP_Request package ...
pear-pear.php.net/XML_Util 1.2.1 Selection of methods that are often needed when working with XML documents ...
pear-pear2.php.net/PEAR2_Cache_SHM 0.1.0 Allows you to share data across requests as long as the PHP process is running. ...
pear-pear2.php.net/PEAR2_Text_Markdown 0.1.0 This is a port of Solar_Markdown.
psr/log 1.0.0 Common interface for logging libraries
symfony/symfony v2.2.0 The Symfony PHP framework
twig/twig v1.12.2 Twig, the flexible, fast, and secure template language for PHP
This application contains packages from the three different sources and they
will be properly parsed and recognized by Difio.
What’s next
Difio is constantly working on improving the service. We are now looking into
API diff support for PHP among other things, so stay tuned!
In the mean time
start following packages,
invite your friends and send us your feedback via
GitHub
or Twitter.
Posted by Difio Team
@
Feb 25
th, 2013
Today Difio is pleased to announce our new dashboard
and the ability to follow packages without registering applications. Read
below for more information.
Latest Releases

The default dashboard page is showing a news stream of all latest releases
for packages the user is following or using inside applications.
Change History

This page is showing a news stream of change analysis between multiple package
versions that the user is following or using inside applications. As shown in this
example the user is following bundler-1.2.1 and bundler-1.2.3 while the latest
available is bundler-1.3.0 and bundler-1.2.5.
Follow Packages

A new page to view and search packages is now available. Users can follow or unfollow
any packages and versions they want through the buttons. Simple color codes
distinguish between different states: green - user is following version;
gray - version is used inside registered application; transparent - not following version.
Versions which are used inside applications can only be removed/unfollowed by deleting
the entire application, or deleting the package from the application.
For example Pygments-1.5 is been used in an application, but Pygments-1.6 is been
followed manually.
It is highly recommended to follow a particular version, not only the package name.
If a user decides to follow only package name, but not versions, Difio will not be
able to generate change analysis reports because there’s no
basis to compare to. In this case the user will be able to see only the latest
releases news stream.
Applications
This page is showing all registered applications for which Difio is monitoring dependencies.
This page has been available previously and also includes the improvements
announced last week.
Small speed improvements have been made to this page as well.
Invite Friends
This is an interactive dialog which allows you to invite your fellows to try Difio.
It only asks for the email addresses of your friends and sends them an invitation.
We do not keep track of these addresses nor send any spam to them.
We encourage developers from all supported backgrounds and
languages to start following packages
and send us their feedback via GitHub
or Twitter.
Posted by Difio Team
@
Feb 21
st, 2013
Today Difio is pleased to announce new look and feel
for application info pages. Difio keeps track of application
dependencies and tells you when they change. We let you inspect the
changes and make informed decision when or what to upgrade.

Previously the application info page was showing only the latest available
updates. This made it hard for users to inspect older updates.
For example if you had Django-1.4.3 you would see the
latest Django-1.4.5 but not 1.4.4.
For packages which maintain several active branches it was not possible to
compare installed version against stable branch versions. It was always compared
to the latest from the master branch.
For example if you had ffi-1.3.0 you could not see ffi-1.3.1 but
would see ffi-1.4.0 instead.
Today’s release fixes this by offering the user all available updates to
their packages. In addition change rate icons are replaced by color codes.
The version string is now shown as a button in one of the standard colors
green (low), orange (medium) or red (high). Improvement has been made to
the page load speed as well. It is now significantly faster.
Email notifications still display only the highest available version.
This will be changed soon to include intermediate versions.
At the moment information about intermediate versions is available only
via the web interface or RSS.
We encourage developers from all backgrounds and
languages to register their applications and
send us their feedback via GitHub
or Twitter.
Posted by Difio Team
@
Jan 28
th, 2013
SofiaValley is a Bulgarian blog focused on the
IT life in the Sofia valley :). Today they announced a new section called
SV startups which will be focusing on startups and interesting projects in
the region.
We are happy that Difio is the first startup to be featured on their website
and hope that there will be many others. Kudos to SofiaValley!
You can read the actual article in Bulgarian
or try the
English translation
by Google Translate (it’s pretty accurate).
Posted by Difio Team
@
Jan 24
th, 2013
Hello guys! We haven’t posted in a while and we’re sorry for this. Here’s an idea which is
going around in our heads. Let us know what do you think.
Tabular View
Currently when you log into the application dashboard
and navigate to the details view of each application you see this:

The installed packages are on the left while new versions are on the right. The links point to
more detailed information about changes between the two versions. By default only the
available updates are shown but you can display all installed packages as well.
We also have a history page which holds a snapshot of your installed dependencies
whenever they change. It looks like this:

These two pages inform you about the latest and greatest versions
and which ones you have been using in the past. However they don’t show you
any version release history nor how does your application relate to that.
Graphical View
Our proposal is to implement a graphical view as shown on the mock-up below:

On the vertical axis are all the dependencies used by your application. By default only outdated
ones are shown, sorted by their name for readability.
On the horizontal axis are all available versions for that particular package shown as markers.
A tooltip shows you the package name and version. Density and scale is based on release dates.
Zoom will help you investigate more closely.
The marker or the tooltip can be a link to the standard page where these two versions are compared and analyzed.
The marker icon can be left as is or be one of the icons representing Low, Medium or High change rate.
Individual packages can be turned on or off of course.
Application state is shown as a line connecting the versions you have installed. Previous states, where dependency
versions were different can be represented as similar lines on the left. The leftmost being the oldest history record.
State lines can also be turned on or off if the view gets too crowded.
You Vote, We Code
The ball is yours now! If this page gets over 50 tweets, comments, shares or likes we are going to implement this in Difio.
A breakdown of features will be posted in the comments below. Please vote up or down for any of them.
Features that get promoted will be implemented.
If you have any other ideas or suggestions please let us know. You can use the comments form or submit them
via GitHub or Twitter.
Posted by Difio Team
@
Nov 27
th, 2012
Today Difio is pleased to announce
support for tracking application history. Difio keeps track of application
dependencies and tells you when they change. We let you inspect the
changes and make informed decision when or what to upgrade.
Our team has added a new feature to track changes in the list of
dependencies used by applications. Every time you upgrade, add or remove a
package from your application dependencies Difio creates a history record.
As always, don’t forget to re-run the registration script or to manually refresh
your apps after changing the dependencies!
Every application starts with a single history record, reflecting its latest state.
Later you can review your app history and revert to previously used versions
for example. Difio is planning to add more goodies to the history page in a future
release. If you have an idea and want us to implement it, please post it on the
ideas dashboard!
This new functionality is accessible on the application details view via the
Last check-in hyperlink, as shown below.

We encourage developers from all backgrounds and languages to register
their applications and send us their feedback via GitHub
or Twitter.
Posted by Difio Team
@
Nov 14
th, 2012
Today Difio is pleased to announce version 1.9
of our dependencies monitoring service. Difio keeps track of application
dependencies and tells you when they change. We let you inspect the
changes and make informed decision when or what to upgrade.
This release includes several new features and website updates.
API diff
The API diff feature is exploring packages source code and builds their
API definitions. Then definitions between your currently installed package
and the latest upstream version are compared. Changes are presented as a
colored diff format for better readability.
API diff is accessible through the main update view, next to changelog,
commit log and bugs list as shown below:

API diff is initially available only for Python. For Python we support
detection of class definitions, function definitions and decorators.
Example showing no API changes can be seen with a recent
MySQL-python release.
Example showing new classes being added and some functions changing can be
seen with a recent
django-social-auth release.
API diff support for other languages will be added in future releases!
Refresh manually imported apps
It is now possible to refresh the dependency list for manually imported applications.
Simply click the Refresh button as shown below and import the dependency list again.

The refresh functionality has always been present for all of our PaaS
registration agents.
Share the package list
When you need to match your dev environment with the production one, or
ensure dependency similarity between multiple nodes you need the
list of already installed packages.
In this release Difio adds a new button labeled Package List which exports
all installed dependencies as plain text. The format is name==version.
You can share this list with other developers as needed.
Minor improvements and bug fixes
We have also done lots of minor improvements and fixes to our website.
They are invisible to the naked eye so no need to tell you more :).
We encourage developers from all backgrounds and languages to register
their applications and send us their feedback via GitHub
or Twitter.
Posted by Difio Team
@
Nov 5
th, 2012
Today Difio is pleased to announce initial
support for cloudControl. Difio provides insight of available
updates for open source components. It lets you inspect changes and take
informed decision when or what to upgrade. This improves software life cycle
planning and minimizes possible regressions and downtime.
We have added two new registration scripts allowing cloudControl developers to
subscribe their applications to Difio. At the moment there is support for
Python and
Ruby
programming languages. Difio is working together with cloudControl to add support
for Java and PHP as well, so stay tuned!
We encourage developers who use cloudControl to register
their applications and send us their feedback via GitHub
or Twitter.