Skip to content

Releases: julien-boudry/Condorcet

Version 0.91.0

28 Mar 21:17
Compare
Choose a tag to compare

Changed

  • Condorcet now use more usual PSR-0 class loading philosophy. And each Class and Interface has now her own PHP file according to PSR-0 specifications.
    • As result, the new architecture from Condorcet 0.90 is now fully compatible with framework (composer autoloader), is case of you would to play with Candidate Class (for example) before creating first an election by Condorcet Class. It's was a serious issue from Condorcet 0.90.
    • You can too continue to include /lib/Condorcet/Condorcet.php file as loader, if there is no others compatible autoloader, Condorcet will now use a new and special PSR-0 like autoloader for himself.
  • Documentation files now use filename compatible with Windows filesystem (thanks Bill ^^)
  • Minor and unnecessary coding style change.

Version 0.90.0

14 Feb 17:43
Compare
Choose a tag to compare

Description

New internal architecture. very important code refactoring, often completely rewritten. Relatively new API.

Added

  • Algorithms are now more isolated than Condorcet activities, they use them by their own API.

Vote & Candidate are now objects!

  • Candidate and Vote are now objects. You can continue to provide string, but all will be converted into object and the return values of most methods will favor this new philosophy.
  • Vote and candidate are independent objects. They can participate in various elections simultaneously. They have their own lives and historical (name change, change of vote, elections to which they are taking or no longer taking part ...).
    They can be cloned, serialized, analyzed...
  • Like Candidate object, a Vote object can take part into multiple elections. He can change its ranking and it will automatically affect all its elections. You can also provide top ranking, and its election can have other candidates. Condorcet will intelligently reconstruct a context for each election even if they do not have the same list of candidates!
  • Off course, you can extend them !

Kemeny-Young improvements

  • Code review.
  • New Permutation class. 9 maximum candidates instead of 6! So, for performance reasons, I suggest to stay at 8.
    Thanks to Jorge Gomes (@cyberkurumin) for his helpful commit!

Documentation

Documentation more consistent with the new size of the library has been established. It is not perfect yet, but the documentation work continues day after day to make up for the delay.

However, foundations and most contents are available now.

  • New examples of codes meeting the latest revolutions.
  • A new manual, in the form of a Wiki Github.
  • Complete specifications for each of the public methods. Into the doc directory.

Changed

  • Condorcet::format static method is a substitute to var_dump to print easily better human readable Condorcet data (Vote, Résult). It can also be used to return (and not print) more simple dataset.
  • Many new methods or API change. But structure stay similar, and old simple scripts can continue to work without modifications or really minor changes.

Version 0.14.0

10 Aug 16:23
Compare
Choose a tag to compare

Description

The code will be very severely rewritten and restructured for the next major release.

Added

  • Added UNIX timestamp of the record of each vote time as a special tag.
  • Ability to perform cryptographic checksum (SHA-2 256) the status of an election (candidates, votes, cache, library version).
  • New static method setMaxVoteNumber, allow you to limit the number of votes in a election. And public method to ignore it (or not) for each object.
  • Improvements and bugfixes around object serialization.
  • New Options for getClassVersion method

Changed

  • Compatibility is now guaranteed from PHP 5.5.12 to PHP 5.6.x. But the vital methods seem functional with PHP (>=) 5.4.3
  • Algorithm Kemeny-Young V2: more than 1000 times faster with a cache of pre-computed data. 6 candidates on an election is now very fast, and it is the new provisional limit.
    Next Condorcet version will allow more candidates for Kemeny-Young (7 or 8), with more pre-computed sets.
  • Customized limitation of maximum candidate for Kemeny-Young is removed.
  • Works around the presentation of the single primary tag of each vote

Fixed

  • Improvements and bugfixes around object serialization.
  • Many bugfixes and minor internal adjustments. Mostly to satisfy the development of condorcet-vote.org, which uses the library as a real framework of election management.

Version 0.13.2

28 Jul 23:15
Compare
Choose a tag to compare

Fixed

  • Bugfix on getVotesList() and all tag filter methods

Version 0.13.1

28 Jul 22:50
Compare
Choose a tag to compare

Fixed

Backporting important bugfix from DEV branch. Other fix on getVotesList will releases with v0.14.


  • Bugfix on getVotesList() and all tag filter methods

Version 0.13.0

06 Jul 14:08
Compare
Choose a tag to compare

Added

  • New logo by @Christelle-Radena
  • Add getLastTimer() and getGlobalTimer() methods

Changed

  • isJson is now a static method, useful for Condorcet API project
  • Add an exception handler into the examples

Fixed

  • Some minors bugfix about CondorcetException class

Version 0.12.0

02 Jul 08:59
Compare
Choose a tag to compare

Added

  • Votes and candidates can now be defined by a json input. ( jsonVotes(), jsonCandidates() )
  • Candidates can now be defined by a text input ( string or file with parseCandidates() )
  • The input text or json can now take a parameter of anti-flood safety generating an exception, providing you foresee yourself.

Changed

  • (Git) The static method ::getClassVersion() returns 'DEV' entitle on developments branches.
  • Candidate name are now trim()
  • The old system of errors reporting is deleted.
  • The class now throws exceptions of class 'CondorcetException'

Fixed

  • Various bugfix

Version 0.11.1

01 Jul 17:03
Compare
Choose a tag to compare

Fixed

  • Minor bugfix for getMethod() & setMethod() methods.

Version 0.11.0

14 Jun 13:36
Compare
Choose a tag to compare

Added

  • Added the ability to include a multitude of votes votes simultaneously from a text or a single wide string file.

  • Adding an adjustable anti-flood on the previous method.

  • More flexibility to register or claim tags. Use an array or a string separated by commas.

  • The countVote() method can now act on specific tags.

  • The getVoteList() method can now be used more accurate and extensive.

  • The removeVote() method can now be used more accurate and extensive.

  • The getResult() method can now be used to gain a profit on a partial selection of the votes (using tags) without requiring the prior removal of votes.

  • Added more specific error message on addVote()

Changed

  • Improved documentation
  • Various optimizations

Version 0.10.1

17 May 14:24
Compare
Choose a tag to compare

Fixed

  • Bugfix for Schulze_Ratio (division by 0)