From ed920dd2e198857681e0373da46a813f0d5e3585 Mon Sep 17 00:00:00 2001 From: Arctic Ice Studio Date: Sat, 28 Jan 2017 17:27:09 +0100 Subject: [PATCH] Prepare stable development release version 0.2.0 --- CHANGELOG.md | 43 +++++++++++++++++++++++++++++++++++++++++++ README.md | 17 +++++++++++------ snowsaw/setup.py | 2 +- 3 files changed, 55 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bfb5c4..f8e5ddc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,49 @@ --- +# 0.2.0 +*2017-01-28* +## Improvements +### Core Plugins +❯ The `hosts` option format of the [`link`](https://github.com/arcticicestudio/snowsaw#link) core plugin has been changed as a result to a bug also fixed in this version. +Example of the new format: +```json +[ + { + "link": { + "~/.gitconfig": { + "hosts": { + "archlinux-home": "gitconfig.home", + "archlinux-work": "gitconfig.work" + } + } + } + } +] +``` +Further information can be found in the bug fixes section below and in the associated issue #18 and PR #19. + +### Documentation +❯ Added a project [debugging guide](https://github.com/arcticicestudio/snowsaw#debugging) for [JetBrains PyCharm](https://www.jetbrains.com/pycharm). (@arcticicestudio, 9694b523) +![](https://raw.githubusercontent.com/arcticicestudio/snowsaw/develop/assets/scrot-readme-debugging-run-configuration.png) + +❯ Added a table of content for the [project README](https://github.com/arcticicestudio/snowsaw/blob/develop/README.md). (@arcticicestudio, 1bd1510c) + +## Bug Fixes +### Core Plugins +❯ Fixed a bug where only the last duplicate link item in a snowblock configuration has been processed when using the +host-specific option `hosts` although if the host doesn't match the current hostname. +In some cases when the order of the link items has been changed also valid items for the current host have been marked +as skippable instead of linking them. + +This bug was caused by an internal design conflict with the builtin Python type `dict` (dictionary) that only allows +unique keys which has been broken by defining multiple link items with the same destination path. +The new `hosts` option structure allows to define any amount of hosts with their associated target path. +(@arcticicestudio, #18 / PR #19, b921c489) + +### Documentation +❯ Fixed some Markdown formatting issues in the project README. (@arcticicestudio, 7d7c0104 / e318b8d7) + # 0.1.1 *2017-01-07* ## Bug Fixes diff --git a/README.md b/README.md index 21e2f65..5bf48ba 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ git submodule add https://github.com/arcticicestudio/snowsaw .snowsaw This command will add the snowsaw project at the main development branch `develop`, but it is recommened to use a stable release version by running ```sh cd .snowsaw -git checkout v0.1.1 +git checkout v0.2.0 cd .. ``` and commit the changes in your dotfile repository to lock it on the specified version tag. @@ -190,7 +190,7 @@ These dictionaries support the following options: | --- | --- | --- | --- | --- | | `create` | `true`, `false` | `false` | No | Specifies if the parent directory should be created if necessary. | | `force` | `true`, `false` | `false` | No | Specifies if the file or directory should be forcibly linked. **This can cause irreversible data loss! Use with caution!** | -| `host` | `string[]` | `[]` | No | Contains hostnames this link should be processed for. Links with an empty array will be processed irrespective of the host. | +| `hosts` | `dict` | `{}` | No | Contains key-value entries with hostnames and their associated target path this link should be processed for. Links with an empty dictionary will be processed irrespective of the host. | | `path` | `string`, `null` | `null` | No | The path to map the source path. If the path is omitted or `null`, snowsaw will use the basename of the destination, with a leading `.` stripped if present. | | `relink` | `true`, `false` | `false` | No | Specifies if incorrect symbolic links should be automatically overwritten. | | `relative` | `true`, `false` | `false` | No | Specifies if the symbolic link should have a relative path. | @@ -202,12 +202,17 @@ These dictionaries support the following options: "link": { "~/.gitconfig": { "create": true, - "host": ["archlinux-work"], - "path": "gitconfig-work" + "hosts": { + "archlinux-home": "gitconfig.home", + "archlinux-work": "gitconfig.work" + } + }, + "~/.gitconfig_auth": { + "path": "gitconfig_auth.local" }, "~/.gitignore": { "force": true, - "relink": true + "relink": true, }, "~/.git-commit-message": { "relative": true @@ -291,7 +296,7 @@ Defaults are specified as a dictionary mapping action names to settings, which a ``` ## Development -[![](https://img.shields.io/badge/Changelog-0.1.1-blue.svg)](https://github.com/arcticicestudio/snowsaw/blob/v0.1.1/CHANGELOG.md) [![](https://img.shields.io/badge/Workflow-gitflow--branching--model-blue.svg)](http://nvie.com/posts/a-successful-git-branching-model) [![](https://img.shields.io/badge/Versioning-ArcVer_0.8.0-blue.svg)](https://github.com/arcticicestudio/arcver) +[![](https://img.shields.io/badge/Changelog-0.2.0-blue.svg)](https://github.com/arcticicestudio/snowsaw/blob/v0.2.0/CHANGELOG.md) [![](https://img.shields.io/badge/Workflow-gitflow--branching--model-blue.svg)](http://nvie.com/posts/a-successful-git-branching-model) [![](https://img.shields.io/badge/Versioning-ArcVer_0.8.0-blue.svg)](https://github.com/arcticicestudio/arcver) ### Debugging #### JetBrains PyCharm diff --git a/snowsaw/setup.py b/snowsaw/setup.py index 3985730..e398409 100644 --- a/snowsaw/setup.py +++ b/snowsaw/setup.py @@ -2,7 +2,7 @@ setup( name='snowsaw', - version='0.1.1', + version='0.2.0', packages=['', 'util', 'logging'], package_dir={'': 'snowsaw'}, url='https://github.com/arcticicestudio/snowsaw',