{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":746171339,"defaultBranch":"master","name":"gimp-managed-text-outline","ownerLogin":"ryanbaer","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-01-21T09:27:25.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11914327?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1712280872.0","currentOid":""},"activityList":{"items":[{"before":"a94c9df2c0aff4b17087ef0d9f152c32401fe7a5","after":null,"ref":"refs/heads/docs/more-context","pushedAt":"2024-01-22T10:22:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"}},{"before":"1d0043cb30e1b2276eeabe5f0f886a8ae91ac004","after":"d4f089a2ec5cc4b876912f86c1ca3adc32ac0548","ref":"refs/heads/master","pushedAt":"2024-01-22T10:21:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Update README with context about the plugin (#3)\n\n* Update README.md\r\n\r\nAdd a little more context to the README\r\n\r\n* Fix typo you -> your\r\n\r\n* Fix another typo from earlier commit, double \"managed\"","shortMessageHtmlLink":"Update README with context about the plugin (#3)"}},{"before":"9f1897d181c0c01fe67554fa6a9c14a138b6268f","after":"a94c9df2c0aff4b17087ef0d9f152c32401fe7a5","ref":"refs/heads/docs/more-context","pushedAt":"2024-01-22T10:21:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Fix another typo from earlier commit, double \"managed\"","shortMessageHtmlLink":"Fix another typo from earlier commit, double \"managed\""}},{"before":"0b4947b39890b87741ffd6fb4ce83f81ddb552b4","after":"9f1897d181c0c01fe67554fa6a9c14a138b6268f","ref":"refs/heads/docs/more-context","pushedAt":"2024-01-22T09:07:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Fix typo you -> your","shortMessageHtmlLink":"Fix typo you -> your"}},{"before":null,"after":"0b4947b39890b87741ffd6fb4ce83f81ddb552b4","ref":"refs/heads/docs/more-context","pushedAt":"2024-01-22T09:05:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Update README.md\n\nAdd a little more context to the README","shortMessageHtmlLink":"Update README.md"}},{"before":"b411517cc6fc0f0eb71c962454be009821d41f7a","after":null,"ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-22T08:58:28.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"}},{"before":"2d212264250358719a43759438757b724cf4ed46","after":null,"ref":"refs/heads/docs/plugin-demo-gif","pushedAt":"2024-01-22T08:58:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"}},{"before":"f15bd0524365845e095d6e2b83d73d33ef31762e","after":"1d0043cb30e1b2276eeabe5f0f886a8ae91ac004","ref":"refs/heads/master","pushedAt":"2024-01-22T08:58:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Add Plugin Demo GIF (#2)\n\n* add plugin demo gif\r\n\r\n* Add some more links to the README","shortMessageHtmlLink":"Add Plugin Demo GIF (#2)"}},{"before":"81ad561af63507fce9a453448884f31d98f92d0d","after":"2d212264250358719a43759438757b724cf4ed46","ref":"refs/heads/docs/plugin-demo-gif","pushedAt":"2024-01-22T08:56:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Add some more links to the README","shortMessageHtmlLink":"Add some more links to the README"}},{"before":null,"after":"81ad561af63507fce9a453448884f31d98f92d0d","ref":"refs/heads/docs/plugin-demo-gif","pushedAt":"2024-01-22T08:52:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"add plugin demo gif","shortMessageHtmlLink":"add plugin demo gif"}},{"before":"81bfa38c0080224c9e878767ca45f0249a77cae4","after":"f15bd0524365845e095d6e2b83d73d33ef31762e","ref":"refs/heads/master","pushedAt":"2024-01-22T08:24:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Add GIMP plugin (#1)\n\n* initial draft of plugin with README\r\n\r\n* Remove long description comment\r\n\r\n- Just reference the README instead.\r\n\r\n* Remove unused get_text_layer_content\r\n\r\n* Remove commented code\r\n- Adjust some other comments as well\r\n- Add a few function descriptions\r\n- Rename stroke_path_and_remove to outline_path for now\r\n- Rename second param of text_to_path from layer to text_layer\r\n- Rename param of get_rood_id_ref from managed_layer to root_layer\r\n\r\n* Rename CUtils to FFIUtils\r\n\r\n* Refactor get_root_id_ref method in ManagedLayerUtils\r\n\r\nThis commit refactors the `get_root_id_ref` method in the `ManagedLayerUtils` class. The method has been moved to the `ManagedLayerUtils` class as a static method.\r\n\r\n* Refactor from old naming convention\r\n- Get rid of cloned and group for return values\r\n- Switch to consistent root_layer, text_layer, and outline_layer\r\n\r\n* Rename run to run_plugin\r\n\r\n* Adjust some more docstrings\r\n\r\n* Refactor global PARASITE_ constants\r\n- Namespace them into an enum-like class called `ParasiteFields` and make the naming more consistent.\r\n\r\n* Add docstrings to ParasiteFields\r\n\r\n* Adjust README\r\n\r\n* Fix Markdown typo\r\n\r\n* Fix small bug from refactoring and adjust comments\r\n\r\n* Refactor to Result class + more\r\n- A bunch of refactoring\r\n- Rewrite some comments, reorganize and consolidate methods\r\n- Create a new Result class with static methods abstracting away the internal data structure\r\n- Refactor all code manually creating result dicts to use the Result methods instead\r\n- Make ParasiteSupport and embed Fields class enum inside of it\r\n- Create Errors class enum to manage known Error messages and convert all messages to a member of the Errors class\r\n- Remove ManagedLayerSupport and consolidate everything under LayerSupport\r\n- Convert some existing functions to use a Result type, such as text_to_path\r\n- Remove one-liner crop function and just call the pdb method directly\r\n- Update plugin description to be multiline.\r\n\r\n* Set active Layer + fix bug\r\n- Set the active Layer back to the Root Layer when finished outlining. This solves the issue where the Outline Layer was always the active Layer after running the operation because it is inserted last. We could insert differently, but it seems reasonable to always revert back to the Root Layer.\r\n- Fix a bug from refactoring does_group_match (now does_root_match) to the Result type. The Result type was being ignored.\r\n- Address TODO related to does_group_match/does_root_match and resolve it. We don't need to check the Outline Layer.\r\n\r\n* Adjust comment and error raise\r\n\r\n* Restructure README.md + tweak a bit.\r\n\r\n* Reorganize code + add user-facing errors\r\n- Move several functions into LayerSupport\r\n- Deduplicate the Outline Layer creation into a single method in LayerSupport, append_outline_method\r\n- Add user-facing error messages\r\n- Remove the `raise` approach for errors in the entrypoint. Instead just bubble a Result all the way to the run_plugin function and handle it there.\r\n\r\n* Fix tiny edge case bug with existing\r\n- If another unrelated layer was in the group and sat above the existing text and outline layers, the new outline would get placed at a static position of 1, placing it above the outline and resulting in a weird visual effect\r\n- It also exposes that we had the position and weren't using it, so this fixes that.","shortMessageHtmlLink":"Add GIMP plugin (#1)"}},{"before":"ea46eefcf1b8ec4ce6d408d3545f80ef0da9d45c","after":"b411517cc6fc0f0eb71c962454be009821d41f7a","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-22T08:05:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Fix tiny edge case bug with existing\n- If another unrelated layer was in the group and sat above the existing text and outline layers, the new outline would get placed at a static position of 1, placing it above the outline and resulting in a weird visual effect\n- It also exposes that we had the position and weren't using it, so this fixes that.","shortMessageHtmlLink":"Fix tiny edge case bug with existing"}},{"before":"998ae53df06a1cbdbde9bdb554975fd224ea68b5","after":"ea46eefcf1b8ec4ce6d408d3545f80ef0da9d45c","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-22T05:43:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Restructure README.md + tweak a bit.","shortMessageHtmlLink":"Restructure README.md + tweak a bit."}},{"before":"0160b07bea35af6fa879fed1fe4bced5817c8b65","after":"998ae53df06a1cbdbde9bdb554975fd224ea68b5","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-22T03:32:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Adjust comment and error raise","shortMessageHtmlLink":"Adjust comment and error raise"}},{"before":"37e166ef1fc0f352c72afc1c3358f6adbb8dca7a","after":"0160b07bea35af6fa879fed1fe4bced5817c8b65","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-22T03:25:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Set active Layer + fix bug\n- Set the active Layer back to the Root Layer when finished outlining. This solves the issue where the Outline Layer was always the active Layer after running the operation because it is inserted last. We could insert differently, but it seems reasonable to always revert back to the Root Layer.\n- Fix a bug from refactoring does_group_match (now does_root_match) to the Result type. The Result type was being ignored.\n- Address TODO related to does_group_match/does_root_match and resolve it. We don't need to check the Outline Layer.","shortMessageHtmlLink":"Set active Layer + fix bug"}},{"before":"3b06cbf94a0f928f62a89f3240246c1eb091cbb5","after":"37e166ef1fc0f352c72afc1c3358f6adbb8dca7a","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-22T02:35:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Refactor to Result class + more\n- A bunch of refactoring\n- Rewrite some comments, reorganize and consolidate methods\n- Create a new Result class with static methods abstracting away the internal data structure\n- Refactor all code manually creating result dicts to use the Result methods instead\n- Make ParasiteSupport and embed Fields class enum inside of it\n- Create Errors class enum to manage known Error messages and convert all messages to a member of the Errors class\n- Remove ManagedLayerSupport and consolidate everything under LayerSupport\n- Convert some existing functions to use a Result type, such as text_to_path\n- Remove one-liner crop function and just call the pdb method directly\n- Update plugin description to be multiline.","shortMessageHtmlLink":"Refactor to Result class + more"}},{"before":"7daaf57869b823b40a0ba45cb42a66bc128354f1","after":"3b06cbf94a0f928f62a89f3240246c1eb091cbb5","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-21T23:42:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Fix small bug from refactoring and adjust comments","shortMessageHtmlLink":"Fix small bug from refactoring and adjust comments"}},{"before":"8c63adf97af9b70bade595896c8c8a36199e57f7","after":"7daaf57869b823b40a0ba45cb42a66bc128354f1","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-21T10:58:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Fix Markdown typo","shortMessageHtmlLink":"Fix Markdown typo"}},{"before":"ecff9d05ffbf87cbe8ad782604a947357fca47d2","after":"8c63adf97af9b70bade595896c8c8a36199e57f7","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-21T10:58:10.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Adjust README","shortMessageHtmlLink":"Adjust README"}},{"before":"daa94dad6bdb3573ea1bdcbdaa07b62d5df9c1f9","after":"ecff9d05ffbf87cbe8ad782604a947357fca47d2","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-21T10:39:11.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"Refactor global PARASITE_ constants\n- Namespace them into an enum-like class called `ParasiteFields` and make the naming more consistent.","shortMessageHtmlLink":"Refactor global PARASITE_ constants"}},{"before":null,"after":"daa94dad6bdb3573ea1bdcbdaa07b62d5df9c1f9","ref":"refs/heads/feat/add-plugin","pushedAt":"2024-01-21T09:40:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"initial draft of plugin with README","shortMessageHtmlLink":"initial draft of plugin with README"}},{"before":"654c8a8510f214e10dec98344d7057ff7c39a45d","after":"81bfa38c0080224c9e878767ca45f0249a77cae4","ref":"refs/heads/master","pushedAt":"2024-01-21T09:38:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"initial commit: setup git","shortMessageHtmlLink":"initial commit: setup git"}},{"before":null,"after":"654c8a8510f214e10dec98344d7057ff7c39a45d","ref":"refs/heads/master","pushedAt":"2024-01-21T09:33:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanbaer","name":"Ryan","path":"/ryanbaer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11914327?s=80&v=4"},"commit":{"message":"initial commit: configure git","shortMessageHtmlLink":"initial commit: configure git"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD5bNCEQA","startCursor":null,"endCursor":null}},"title":"Activity ยท ryanbaer/gimp-managed-text-outline"}