Reliable Software Logo
Home > Code Co-op > Release Notes

Co-op Icon Code Co-op Release Notes


 

Version 5.0 (beta 2) released - Oct 17, 2006

Based on user feedback, we made some major changes to the user interface.
  • Automatic merge. One-click automatic merge-- can be used to merge rejected scripts as well as merge files between branched projects. The rules of automatic merging are:
    • If source and target files are identical, nothing happens.
    • If target file hasn't changed since the fork, the source file is copied over.
    • If any or both files have been renamed/moved, the target name/position takes precedence.
    • If the file contents are different, and the files are textual, the external merger is called in the background.
    If the merge results in a conflict, the merge status is displayed as "conflict", otherwise it's set to "merged". Conflicts can then be resolved using manual merge.
  • Merging rejected scrips directly from the history view.
  • Folder merging is done automatically.
  • Wiki
    • Optional local stylesheet (and HTML template). If wiki root contains wiki.css, it is used as the stylesheet for the whole wiki site.
    • Opening of external links in external browser.
    • Browser stays in wiki site even when user changes directories in file view.
    • Added SQWiki "ORDER BY" and "DESC" (descending) clause
There were also some minor bug fixes (overeager assertions) and UI cosmetics. No serious bugs were discovered.

Version 5.0 (beta 1) released - Sep 26, 2006

Version 5.0 introduces a lot of new functionality.

  • Wiki sites. Wikify a folder in your project and develop a local wiki site shared with other project members. Use it for storing project documentation, to-do lists, etc.
  • Wiki database. Using built-in wiki database support organize your bug reports.
  • Major ease-of-use improvements. Simplifying synchronization, display of history and inbox, "interesting" projects, etc.
  • Project invitation.
  • SMTP/POP3 support, including simple configuration to use Gmail.
  • Non-blocking dispatcher. Dispatcher errors are now logged and problem scripts quarantined.
  • Local branching instead of script rejection. Easy merging of branches.
  • Merging between project created as branches.

Note: Reliable Software works with Scooter Software, the makers of Beyond Compare, to provide an integrated merger. At the moment, Scooter Software has only started beta testing its merger. If you want to use it, you have to contact Scooter Software and join their beta program. Once the merger is released, it will be bundled with Code Co-op.

Note: Versions 4.6 and 5.0 are compatible. It is possible to revert from 5.0 to 4.6.

The Code Co-op 5.0 (beta 1) can be downloaded from: ftp://ftp.relisoft.com/co-op50.exe


Version 4.6e - Mar 18, 2006

Bugs related to chunks and full synch
  • Full synch not showing in Code Co-op Mailbox tab (a "missing" entry created for one of the re-sent chunks)
  • Large chunks sometimes deleted because of sharing contention between Code Co-op and Dispatcher
Install and configuration
  • Better feedback when interacting with e-mail client
  • Fixed installation when user has no admin privileges on the machine
  • Fixed uninstall (close after user cancels)

Version 4.6d - Feb 21, 2006

  • Co-op does not allow to resend the initial files inventory
  • Bug fix: better prevention of a deadlock in co-op server
  • UI bug fix: viewing of add/delete actions in co-op's History tab
  • UI bug fix: stricter validation of data in a couple of Dispatcher dialogs

Version 4.6c - Dec 07, 2005

  • Improved mechanism of handling membership update scripts.
  • Bug fix: Restored broken branching and version export functionality.

Version 4.6b - Dec 02, 2005

  • Bug fix: Error when user deleted a directory tree and a script came editing files in the bottom of the hierarchy.
  • Bug fix: Incorrect "Corrupted Script" message when accepting some multiple acknowledgment scripts
  • Fixed the editing of forwarding paths in the Dispatcher's Diagnostic View
  • Improvements in dealing with corrupted scripts and corrupted chunks
  • Force defect from all projects when uninstalling Code Co-op
  • Added DefectAll applet
  • Allow deletion of duplicate scripts from the Mailbox tab
  • Don't ask confirmation (you are joining the same project twice) when joining the same project from a satellite and from the hub
  • Checking for co-op updates: remember new settings from Code Co-op Project Options
  • Allow passing administrator privileges even when there's only one licensed seat
  • In distribution projects: prevent Receivers from sending resend requests about other Receivers

Version 4.6a - August 23, 2005


Improvements:

  • During setup, try to configure Code Co-op as email peer
  • Display file name when setting file type with no extension
  • Create special setup, which joins the RSWL project
  • Improve the logic of guessing user email during configuration

Bug fixes:

  • Don't remove non-co-op directories from co-op database directory during uninstall
  • In Add Files dialog, selections were read incorrectly
  • Trim spaces in project names
  • Fix installation on Win98
  • Fix Add Files dialog to work with no-extension files
  • Allow acceptance of new licenses with a different licensee name
  • In Distribution projects
    • Membership data of defected members were leaked during project join
    • When removing a receiver, admin shouldn't wait for acknowledgments from other receivers
    • Receiver member data edits should not be propagated to other receivers from the admin
    • Add cleanup of histories polluted by the above bugs

Version 4.6 - June 27, 2005

 

Code Co-op for Software Distribution

Version 4.6 introduces major new functionality for companies that need a system for controlled distribution of source code to their clients.
  • Who needs distribution functionality?
    Any company that sells their products in the form of source code.
  • How does it work?
    • The company creates a Distribution Project using Code Co-op on one of their computers (workstation or server). This project contains the source code to be distributed to clients
    • A new client installs Code Co-op on one of their machines and configures it as e-mail peer(Note: they don't have to buy a Code Co-op license!)
    • The client Joins the distribution project. A Join Request is emailed to the company
    • The administrator at the company accepts the join request, making the client a Receiver. The contents of the project is e-mailed to the client and accepted by their Code Co-op
    • Any time the company updates the sources by performing a check-in in the Distribution Project, all Receivers receive the updates
  • What can Receivers do? Not much.
    • They cannot check files out or in
    • They cannot see other Receivers (e-mails are either sent to a BCC list or separately to each member--configurable).
    • If you let them, they can create their own branch project and selectively propagate your updates to that branch.
  • How does Code Co-op licensing work?
    The company must purchase a block of Distribution Licenses and assign them to Receivers (either when accepting a join request, or at a later time, but before the Receiver's trial period expires)

Go to the Distribution Project Page for more information.


Additional Features & Improvements

  • Added new options to Project>New, Join, and Branch. For instance, you may now join a project and request that the full synch script be executed automatically in the background. We also separated the Auto-Synch option from the Auto-Join options, so you may chose to automatically process all join requests without automatically processing other types of scripts.
  • Integration with another third-party differ, Guiffy SureMerge. Eventually we are planning to use Guiffy merge capabilities for merging changes.
  • Centralized license storage per workstation. When newer license is entered, it will be propagated to all projects.
  • Change command name "Remove From Project" to "Uncontrol"
  • Stop auto-synch when a local script is rejected. Mark project icon with a wave.
  • Bypassed the annoying tendency of Visual Studio to check in temporary files

GUI

  • Added uncheck-out button to Synch Area
  • Column "Change" in synch area and the check-in area now displays information about moves and renames, as well as edits
  • Several UI changes to History View functionality. Better explained the positioning of the revert points (after the selected script!). The UI is still not perfect, but we're working on it.
  • Add Branch and Export to Project menu (it is still available in history view through Selection menu)

Command-Line Applets

  • Report - Added additional option to this applet enabling you to save selected history reports
  • Restore (equivalent to Selection > Restore)
  • Version Label (equivalent to History > Add Label)

Bug and Performance Fixes

  • Introduced more defenses against orphan files (it's impossible now to add a file or folder without adding the parent folder(s) as well).
  • Hidden files aren't added to project in initial inventory and AddMoreFiles dialog
  • During re-installation, check whether the dispatcher shortcut is in the AllUsers or ThisUser startup group and don't override it (important for multi-user machines).
  • Fixed branching/exporting of HTML files with linked directories
  • Fixed resend delay for the first resend request according to user settings (it was being sent immediately)
  • Fixed problem with membership scripts arriving (out of order) after a defect script
  • Fixed propagation of maximum chunk size to satellites when the change was made in Code Co-op (rather than in the Dispatcher)
  • Fixed the sorting by type of non-project files to take into account file extensions

Version 4.6 (RC 2) - June 17, 2005

  • Fixed problem with the corruption of the history of members removed by the administrator
  • Final cosmetic touches. Among them: added radio buttons to the check-in dialog to make developers declare the testing status of their changes (very useful, but probably controversial).

Version 4.6 (RC 1) - June 10, 2005

We added a few minor features and fixed some minor bugs in preparation for the final release.


Fixes:

  • Fixed branching/exporting of HTML files with linked directories
  • Delay the first resend request according to user settings (it was being sent immediately)

Features:

  • Stop auto-synch when a local script is rejected. Mark project icon with a wave.
  • Change command name "Remove From Project" to "Uncontrol"
  • Don't add hidden files to project in initial inventory and AddMoreFiles dialog
  • Add Branch and Export to Project menu (it is still available in history view through Selection menu)
  • Better Branch dialog
  • Updated tutorial and help with new screen captures

Version 4.6 beta 3 (final) - May 13, 2005

We made further improvements to the setup when upgrading existing installations. It does a project scan and detects possible addressing problems. If there are problems, it creates an in-depth report and saves in into a file.

  • The new Software Distribution functionality has been further improved. The various options are now better described and the UI improved.
    • Added the option to send a script in separate email messages to each recipient, so that Receivers have no way of learning about each other by looking at the TO: list.
    • Fixed a bug where a Receiver's license was propagated to a new project.
  • Added the possibility of saving selective history reports from command line
  • Fixed a problem related to defect scripts messing up membership history. Pre-messed up histories are automatically repaired.
  • Several UI changes to History View functionality. Better explained the positioning of the revert points (after the selected script!). The UI is still not perfect, but we're working on it.

Code Co-op 4.6 (beta 2) - April 20, 2005

In this version, setup on existing installations scans all projects (sorry, it takes some time!) to find the best user license (latest version, most seats) and make it global. Eventually this scan will also detect addressing inconsistencies in the routing table.

As an experiment, we turned on BCC (blind carbon copy) option for all scripts that are emailed. It means that no recipient will see the addresses of other recipients. We'll turn it off it it becomes confusing.

We have reengineered some of the multi-threading subsystems hoping to solve the problem of "project is busy" bogus messages. We allowed a thread to commit suicide without the need to synchronize it with the thread owner in a samurai-like ritual.

We also changed the visual style of Code Co-op.

A few bugs and annoyances were fixed as well:

  • Bypassed the annoying tendency of Visual Studio to check in temporary files
  • fixed problem with membership scripts arriving (out of order) after a defect script
  • Fixed propagation of maximum chunk size to satellites when the change was made in Code Co-op (rather than in the Dispatcher)
  • Fixed: Sorting by type of non-project files didn't take into account file extensions

Code Co-op 4.6 (beta 1) - March 24, 2005

Version 4.6 introduces a totally new way of using Code Co-op.

Here's the idea:

A company makes custom software and sells its clients source code and support, including bug fixes and upgrades. They can now simplify the process by using Code Co-op. This is how they do it:

  • Buy a block of "distributor licenses" from Reliable Software.
  • Create a project containing their source code, with the option "Distributor project" (there is an "Options" tab in the Project>New dialog).
  • Ask their clients to install free evaluation copies of Code Co-op.
  • Ask clients to join the distributor project.
  • When the join request arrives, the Distributor Administrator has a choice in accepting the join to make the joinee a "Receiver" and transferring to him/her one of the distributor licenses from the block.
  • Receivers are passive members of the project. They cannot check files out or modify their membership. They don't see other receivers in the project membership list.
We decided to implement this functionality for two reasons:
  • We were approached by one of our clients who needed it
  • We wanted to use this mechanism to distribute our own free Windows Library.

 

In addition to that, we made a number of modifications in v. 4.6:
  • Added new options to Project>New, Join, and Branch. For instance, you may now join a project and request that the full synch script be executed automatically in the background. We also separated the Auto-Synch option from the Auto-Join options, so you may chose to automatically process all join requests without automatically processing other types of scripts.
  • Extended Project>Options to include switching to Distributor (only if you're the only member of the project)
  • Integration with another third-party differ, Guiffy. Eventually we are planning to use Guiffy merge capabilities for merging changes.
  • Added uncheck-out button to Synch Area
  • Column "Change" in synch area and the check-in area now displays information about moves and renames, as well as edits
  • Centralized license storage per workstation. When new, better license is entered, it will be propagated to all projects.
  • During re-installation, check whether the dispatcher shortcut is in the AllUsers or ThisUser startup group and don't override it (important for multi-user machines).
  • Introduced more defenses against orphan files (it's impossible now to add a file or folder without adding the parent folder(s) as well.

You can download 4.6 (beta 1) from ftp://ftp.relisoft.com/co-op46b1.exe



Code Co-op 4.5d - March 17, 2005

More bug fixes.
  • Fixed the problem with copies of co-op or dispatcher running deadlocked in the background
  • Bugs related to script re-sending, and rejection of some resends.
  • Fixing some more obscure problems produced by conversion from 4.0
  • Ameliorated some problems when switching a dormant observer to voting (resends were sometimes rejected)

Code Co-op 4.5c - December 29, 2004

This version fixes histories of projects that were converted using the beta versions of Code Co-op.


Other bugs:

  • Scripts being re-sent over and over again (including acknowledgments)
  • Missing chunks disappearing from the re-send queue
  • Occasional problems with check-ins (std::deque being reallocated). Exceptions during check-in and (very rarely) corrupted scripts
  • Text differ not dealing very well with upper ASCII characters
  • Script names with upper ASCII characters showed as corrupted
  • Branch creation
  • Optional project name added to command line when calling dispatcher pre-processor

Code Co-op 4.5b - November 22, 2004

Version 4.5b fixes a few bugs and adds more diagnostic support.

 

These are the major corrections:

  • Conflicts leading to orphaned files
    Rejecting a script might lead to the undoing of a script that added a folder. It's then possible for the user to check in files that were in that folder, thus making "orphan" files.
  • Increased barriers against checking in orphans
    (Earlier we introduced barriers against accepting scripts with orphans, and that led to the discovery of problems by some of our users.)
  • Dispatcher hang ups
    We discovered that checking email in Outlook every minute for 24 hours brings MAPI to its knees (Hello! Microsoft!). We had to increase the minimum to every two minutes. We also put some more breaks in our decompressor to detect corrupt scripts. There were cases when the dispatcher would get into a frenzy while trying to decompress corrupt scripts.

If you haven't done so, it's still a good idea to check your Project>Members list and to peruse dispatcher's "View Diagnostics" to find any dead souls or missing members.

A hub dispatcher should list all local and satellite members for each project. They all should have the same email address under "local hub"--that of the current hub. Their forwarding paths should be UNC paths leading to satellite machines; except for off-site satellites, which have an email address instead of the forwarding path.


Code Co-op 4.5a - November 10, 2004

 

Version 4.5a fixes a number of bugs and also re-introduces support for Win 98 (as well as ME, 2000, and NT4) These are the major bugs:

  • Executing rejected script
    There were cases when an incoming script was marked Next even when it was rejected. The execution of such script led to history corruption
  • Changing hub ID sometimes leads to addressing problems and lost scripts
    The duplicate entries for local users in the dispatcher are sometimes causing scripts to be ignored
  • Resend of some missing membership scripts doesn't work
    This happened when conversion scripts (after upgrading to 4.5) were lost. They couldn't be re-sent.
  • Multiple missing scripts are not re-sent correctly
    Adding the second script to the missing list caused the first one to be removed. This resulted in problems with the resending of chunked scripts
  • No way to restart resend requests
    After one cycle of resend requests, no more requests were sent, and there was no way to restart it.

We still weren't able to reproduce some reports of the dispatcher hanging or getting swamped with acknowledgment scripts. This might be related to other reports of occasional MAPI and network errors.

We believe that a lot of problems popped up because version 4.5 has more sanity checks, and it discovers problems that have been quietly brewing in some databases--mostly membership problems, and addressing inconsistencies. These things will either clear themselves up at some point, or will require some manual cleanup.

It's a good idea to check your Project>Members list and to peruse dispatcher's "View Diagnostics".



Code Co-op 4.5, October 2004 - October 11, 2004

Version 4.5 introduces major improvements in two important areas:

  1. Handling of missing script
    • Missing scripts are detected much earlier. Code Co-op automatically requests the resending of missing scripts from other members of the project (first from the author, then, in one day increments, from other members).
    • When a large script is split into chunks, missing chunks are detected and Code Co-op generates appropriate resend requests. This is particularly useful when dealing with large Full Synch scripts. Maximum chunk size is can be set in the email options of the dispatcher on the hub (or in email peer).
    • Script resending if fully automated.
    • Incoming scripts are automatically acknowledged in the background even before they are executed. All acknowledgment scripts carry additional information that is used to detect missing scripts.
    • Check-ins are disallowed when there are incoming (or missing) scripts in the Mailbox.
  2. Handling of membership changes
    • Membership change scripts are automatically executed in the background (they are no longer visible in History).
    • Code Co-op detects missing membership change scripts and automatically generates resend requests.
    • Special Defect and Remove User scripts are distributed around until everybody receives them. This solves most problems with "zombies"--users who defected or were removed, but not everybody was notified about it.

The above changes dramatically reduce the number of script conflicts.


Other useful improvements

  • Code Co-op now supports histories larger than 4GB.

Usability changes

  • Drag and drop is supported in the Files area. Drag from the Check-In Area is supported too.
  • Default action (double-clicking on a script) in the History is to show changes made by the selected script using the differ.
  • Check-in Area tab includes "Date Modified" field
  • Easily retrieve and copy the list of files that were changed since the selected version in the project history

Upgrade Path

We worked very hard to make version 4.5 interoperable with version 4.2. In fact, the recommended upgrade path is to install v. 4.5 on one machine at a time, starting with satellites (if present), without any interruption of normal activity. The users who have successfully upgraded are considered verified and those still using v. 4.2 are called unverified.

There are a few limitations in interoperability.

  • You won't be able to cross-join between versions, that is, if the joinee and the project admin have different versions of Code Co-op, the join request will be rejected. The correct option is to upgrade the 4.2 user to v. 4.5.
  • Version 4.2 cannot unpack 4.5 chunks (works the other way though). If you use the script splitting options in 4.5, and version 4.2 refuses to accept a chunk, you'll have to upgrade the recipient.
  • An unverified user cannot change membership data of a verified user, even if he or she is the administrator.

Unverified members are shown using grayed out icons in the Project > Members dialog. After you are sure that everybody in the project has upgraded to v. 4.5, chances are that the remaining gray icons correspond to "zombies". At that point try to personally verify that these members are no longer active (pay attention to their user IDs, since the same person may appear several times in the same project under different IDs). If so, remove them from the membership list.


Note: even if you are not an administrator, you can still remove non-verified members.


This procedure will let you begin anew with a clean membership slate. The new improvements in Code Co-op will help you keep it this way.


One-Way Conversion

To convert your machine to version 4.5 of Code Co-op, simply run the 4.5 setup program.


Do not uninstall the previous version!.


The conversion rewrites project databases to a new format and cannot be undone. The conversion starts with consistency checks, and if those fail, the project is returned to its original state. If that happens, contact support@relisoft.com immediately.

One thing you might notice after the conversion is that all the rejected scripts and membership change scripts have been removed from your history. Otherwise, there are very few visible changes.