Releases: pharo-vcs/iceberg
Version v1.1.0
Time for the weekly Iceberg update.
Thanks to all brave users, issue reporters and contributors :).
Key changes: we have introduced some tag support, a new credential manager to manage keys and passwords per host or repository, a new version of tonel, and simplified the contribution to Iceberg by listing it as Pharo's repository.
Following, the detailed changes log.
New Features
#842 Adding Credentials Store
#843 Update Tonel to 1.0.7
#823 Iceberg repository should be listed as Pharo's one
#841 Basic tag support (#372)
Infrastructure
#787 Add Windows ci with Appveyor (not yet green!)
Enhancements
#827 Add package dialog has some glitches
#833 replace #asIcon with #iconNamed:
#832 Move Iceberg from MostUsedTools to Tools
#830 Better handling of not github remote urls
#825 Enhance Migrate to tonel commit message
#637 Show tag version instead of "Detached HEAD"
#829 migrate-versions-browser
Bug Fixes
#835 Compare file definitions by their binary uninterpreted content
#838 Clone from incorrect github repository fails with DNU
#826 Pushing to virgin repository raises a DNU
Version 1.0.1
#821 Migration plugin does not work on missing repositories
Version 1.0.0
Cleanups
#819 Fix tooltip typo in settings
#800 Iceberg should be removed from the catalogue
#801 Remove not referenced packages
#803 Correct some lints in tests
#806 Bad repair options when local repository is missing
#725 Remove and clean old UI
#794 Some classes should use category "utilities" instead of "utility"
#791 Begin to remove old UI
#734 Begin to remove old UI
#576 Add link to github/gitlab ssh instructions
Enhancements
#776 Upgrade to Commander 0.6.2 dependencies
#765 Add command to copy SHA from history window
#793 Add the commit message to history window
#785 Metacello conflicts are not handled Metacello Integration
Bug fixes
#771 IceTipRemoveFromRepositoryPackageCommand >> execute is not implemented
#748 Code subdirectory in empty repository
#767 Error while pulling with renamed packages
#814 Moving extension from a package removes extended class
#807 When we do not have the right to push on a report we get an Error instead of the pop up!
#768 Inverse merge preview shows wrong diff
#784 Pulling from a non existing remote branch fails#810 #removePackage: should recursively delete files
Documentation
#702 Create screencast - How to contribute to iceberg
#774 Copy Wiki contribution page to pharo-project/pharo wiki
Infrastructure
#761 Make tests run in 64 bits Pharo 7
v0.7.5
Time for the weekly Iceberg update.
Thanks to all brave users, issue reporters and contributors :).
Key changes:
Infrastructure changes:
- In 0.7.4 we introduced in the build tests againt pharo 6.1 and 64 bits
- In 0.7.5 all iceberg tests run green on Pharo 6.1 32 bits
- In the next release we plan to do a pass on 64 bits
Pharo 6.1 backport
- Cyril has been using the development version of Iceberg on Pharo 6.1 for a couple of weeks now.
- This plus the green CI encourages us to backport to Pharo 6.1
Detailed ChangesLog:
#625 Non explicit error while loading a project
#758 [Regression] Repair action clone is not setting pharo repository
#756 Iceberg dev-0.7 is broken in Pharo6.1 (Instance of IceTipURLLabelMorph did not understand #addEmphasis:)
#749 Adding repair actions to the code subdirectory missing problem
#655 Rename extension method buildToolbarItem of CommandActivator
#755 Extracting the URL label behavior as a component that we can reuse
#468 Commiting via Iceberg does not commit package removal
#750 Add possibility to see current commit in Repositories/Package view
#754 Showing and coping the Commit ID
#753 Create branch dialog layout is broken
#664 Package wrongly shown with "uncommited changes" status
#752 Add "invalid ssh"
#747 Cloning a Git repository should change the path with the project name.
#738 Remove "pharo" Repository with "also remove from filesystem" gives error
#746 Make tests run on pharo 6
#735 Issue while registering a new project on Pharo 6.1
#733 Add license file
#740 Fogbugz panel: Improve label, focus order and layout
#549 IceRestoreRepositoryModel should have a class comment
#688 Duplicated project error when loading in a fresh image
v0.7.4
#729 Update .travis.yml to test Pharo 6 and 64 bits
#689 Creating a repository in an existing location shows a debugger UI enhancement
#556 Removed packages are not removed from git Model bug
#727 Adapt properties reading of Tonel projects for Pharo 6.1.
#728 Ask confirmation on fetch all action
#543 In merge window removed methods are not taken into account Model bug
#695 Specifying that Clone GitHub repository only deals with ssh mode Github plugin UI
#690 Revert all does not behave correctly in detached working copy Model bug important
#720 Commit panel should be selected by default when opening the commit window UI enhancement
#724 Change focus order of commit window UI enhancement
#719 Typing just after entering commit windows throw an error UI bug
#721 Repository creation error not handled Github plugin bug
#722 Typo in email git properties Libgit bug
#716 "#pathString was sent to nil" if Pharo repository is not resolved Metacello Integration bug important
#709 Cannot see the arrow in merge view
#701 Merge view shows extra things UI enhancement merge
#710 Merge does not apply changes right bug merge
#711 The merge lose some changes bug merge
#694 Extra diffs happen Model enhancement important
#705 Clone repair action does extra actions Model enhancement
#647 Following script for Pharo6.1 leads to unusable Iceberg (>>#binaryWriteStream) Pharo6-backport bug important
v0.7.3
- #693: fixing problem when the announcement of changes in a package is nil. (bug, important)
- #682: update update script (Pharo6-backport)
- #681: Author name is not correctly decoded (UI, enhancement)
- #680: Repair actions dialog should explain the situation (UI, enhancement, important)
- #679: Create branch repair action should show create branch from issue if available (Pharo plugin, UI)
- #678: Iceberg does not correctly recognize packages (bug, important)
- #677: Unknown commit can only be solved with repair action (Model, bug, important)
- #676: Unknown commit state is not properly shown (UI, bug, important)
- #667: Merging branches with file deletion doesn't seem possible (bug, important, merge)
- #666: Iceberg sometimes add a
$
to commit message (Model, bug) - #662: The Pharo plugin has to do the fetch only if required. (Pharo plugin, enhancement)
- #660: Add a star badge in the push button in case of a new branch ()
- #658: Progress Bar during checkout of Repository. (UI, enhancement)
- #657: Confusing UI: Ghost Test maybe should be default? (UI, enhancement)
- #656: Typo in Progress Bar (UI, bug)
- #651: When pushing a new branch the list of commit is empty (UI, bug)
- #650: "Create new branch from issue" is leaving image in detached working copy state ()
- #649: The VM is crashing when trying to use Iceberg from a saved image (bug)
- #645: IceLibgitRepository should use "utilities" protocol instead of "utils" (clean up)
- #644: Unnecessary temp in IceTipGitHubRepositoryPanel>>#getGitHubRepository" (clean up)
- #643: LGit_GIT_ERROR: error authenticating: no auth sock variable loading a Tonel based baseline dependency in smalltalkCI (bug, important)
- #639: Create pull request fails if branch has not been pushed (Github plugin, bug)
- #636: The pull button should have a star badge when it has no upstream (UI, enhancement, important)
- #634: Travis is not building Pull Requests (CI, bug, important)
- #624: add "add remote" to remote picking on pull/push browsers (enhancement)
- #610: Fix for issue #608 and #607. (clean up)
- #609: New branch repair action does not refresh dirty packages (UI, bug)
- #583: Creating a tonel project does not commit the properties file (Model, bug)
- #542: Bug during commit of a new package (Model, bug)
v0.7.2
v0.7.1
Version 0.7.0 alpha
First release of new model and UI. To be integrated in Pharo 7, and compatible with Pharo 6.1.
Changeslog:
-
Backend Cleanup.
- Iceberg's backend was cleaned up. Most API methods are commented and clean. Abstractions were clarified.
- All caches were reviewed and minimized. Only a couple of caches were kept or implemented when profiling indicated so.
-
IceWorkingCopy cleanups.
Previous Iceberg version had an abstraction called IceLoadedCode. In the new version this class was renamed as IceWorkingCopy and given more reponsibilities.- it knows the packages that belong to the repository
- it holds the commit from where the repository code was loaded
This point is particularly important. Previous iceberg version tried to calculate the current commit from its MC packages, causing some hiccups when part of the packages of a repository where also commited or loaded from Monticello. - it manages the merge and the commit operations
- it manages package dirtyness, behavior that was decoupled from monticello. This simplifies extensively iceberg and decouples it from MC. Further, this permits us:
- to have one package as part of two repositories
- to avoid refresh bugs when committing from monticello
-
New Working copy states
Iceberg now detects problems in the repository and de-synchronization between repository and image. This includes also managing detached HEAD state and the new detached working copy state. Several repair actions are proposed with explanations on their potential consequences. -
New Merge Algorithm
The merge of Pharo code should be done inside Pharo to avoid the typical merge markers used by git (<<< >>>).
Otherwise these markers may break our parser and tools.The new merge algorithm fixes the following bugs:
- external resources are not ignored anymore (the old version was ignoring them, provoked some times their lost)
- manage well cases such as fast-forward to avoid creating extra merge commits when not necessary
It includes also the following enhancements:
- single merge for all packags in a project instead of one merge per package
-
New Changes Model
To correctly support the new merge algorithm we had to review the changes model.
Monticello change model was reused when possible, but Iceberg had to extend it to support external resources. -
Lots of tests
More than 200 test were added for the new changes model, the new merge algorithm and the new backend.
Tests were sped up using Ring2 to be able to run them in a couple of seconds instead of minutes.
An iceberg backend designed to be used for testing was introduced to enforce a clean API. -
New UI based on Spec and Commander. Cleaner and clearer. Tutorials incoming.