{"action":"created","issue":{"url":"https://api.github.com/repos/BigWigsMods/packager/issues/17","repository_url":"https://api.github.com/repos/BigWigsMods/packager","labels_url":"https://api.github.com/repos/BigWigsMods/packager/issues/17/labels{/name}","comments_url":"https://api.github.com/repos/BigWigsMods/packager/issues/17/comments","events_url":"https://api.github.com/repos/BigWigsMods/packager/issues/17/events","html_url":"https://github.com/BigWigsMods/packager/pull/17","id":337268696,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk4NTEwNDQ4","number":17,"title":"Make the packager apply top-level ignore directives to externals","user":{"login":"KyrosKrane","id":458727,"node_id":"MDQ6VXNlcjQ1ODcyNw==","avatar_url":"https://avatars2.githubusercontent.com/u/458727?v=4","gravatar_id":"","url":"https://api.github.com/users/KyrosKrane","html_url":"https://github.com/KyrosKrane","followers_url":"https://api.github.com/users/KyrosKrane/followers","following_url":"https://api.github.com/users/KyrosKrane/following{/other_user}","gists_url":"https://api.github.com/users/KyrosKrane/gists{/gist_id}","starred_url":"https://api.github.com/users/KyrosKrane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KyrosKrane/subscriptions","organizations_url":"https://api.github.com/users/KyrosKrane/orgs","repos_url":"https://api.github.com/users/KyrosKrane/repos","events_url":"https://api.github.com/users/KyrosKrane/events{/privacy}","received_events_url":"https://api.github.com/users/KyrosKrane/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-07-01T06:52:05Z","updated_at":"2018-07-01T17:13:40Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/BigWigsMods/packager/pulls/17","html_url":"https://github.com/BigWigsMods/packager/pull/17","diff_url":"https://github.com/BigWigsMods/packager/pull/17.diff","patch_url":"https://github.com/BigWigsMods/packager/pull/17.patch"},"body":"This pull request is to allow the user more control over which files are ignored. Specifically, it allows the ignore directives in the user's .pkgmeta file to be applied to files downloaded via externals.\r\n\r\nSample test case: Create a basic addon with [this .pkgmeta file](https://github.com/BigWigsMods/packager/files/2152574/pkgmeta.txt), renamed appropriately.\r\n\r\nWith the packager as it currently works, you would get the following files in your Libs/Libstub folder:\r\n\r\n- LibStub.lua\r\n- LibStub.toc\r\n- tests\\test.lua\r\n- tests\\test2.lua\r\n- tests\\test3.lua\r\n- tests\\test4.lua\r\n\r\nNote that both the tests directory and the .toc file for LibStub are packaged. This is because the packager resets the ignore list before getting each external.\r\n\r\nThe pull request modifies this behavior. Instead of resetting the ignore list for each external, it instead combines the ignore list for the external and the ignore list for the main addon. Thus, the end user can specify ignored files and directories in what would be downloaded from the external.\r\n\r\nGoing back to our test case, after applying this pull request, the Libs/LibStub folder only contains:\r\n\r\n- LibStub.lua\r\n"},"comment":{"url":"https://api.github.com/repos/BigWigsMods/packager/issues/comments/401619964","html_url":"https://github.com/BigWigsMods/packager/pull/17#issuecomment-401619964","issue_url":"https://api.github.com/repos/BigWigsMods/packager/issues/17","id":401619964,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMTYxOTk2NA==","user":{"login":"KyrosKrane","id":458727,"node_id":"MDQ6VXNlcjQ1ODcyNw==","avatar_url":"https://avatars2.githubusercontent.com/u/458727?v=4","gravatar_id":"","url":"https://api.github.com/users/KyrosKrane","html_url":"https://github.com/KyrosKrane","followers_url":"https://api.github.com/users/KyrosKrane/followers","following_url":"https://api.github.com/users/KyrosKrane/following{/other_user}","gists_url":"https://api.github.com/users/KyrosKrane/gists{/gist_id}","starred_url":"https://api.github.com/users/KyrosKrane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KyrosKrane/subscriptions","organizations_url":"https://api.github.com/users/KyrosKrane/orgs","repos_url":"https://api.github.com/users/KyrosKrane/repos","events_url":"https://api.github.com/users/KyrosKrane/events{/privacy}","received_events_url":"https://api.github.com/users/KyrosKrane/received_events","type":"User","site_admin":false},"created_at":"2018-07-01T17:13:40Z","updated_at":"2018-07-01T17:13:40Z","author_association":"NONE","body":"I think you might have misunderstood my example. My sample addon has the following files:\r\n\r\nTestAddon\\TestAddon.lua\r\nTestAddon\\TestAddon.toc\r\nTestAddon\\Libs\\LibStub\\LibStub.lua\r\nTestAddon\\Libs\\LibStub\\LibStub.toc\r\nTestAddon\\Libs\\LibStub\\tests\\test.lua\r\nTestAddon\\Libs\\LibStub\\tests\\test2.lua\r\nTestAddon\\Libs\\LibStub\\tests\\test3.lua\r\nTestAddon\\Libs\\LibStub\\tests\\test4.lua\r\n\r\nAfter applying my pull request, it looks like this:\r\n\r\nTestAddon\\TestAddon.lua\r\nTestAddon\\TestAddon.toc\r\nTestAddon\\Libs\\LibStub\\LibStub.lua\r\n\r\nThe only reason I used LibStub in my example is that it's a commonly used library that has superfluous files in it when embedded. The ignore directive can be used for other things. For example, I tried embedding the full Ace libraries in one of my projects, and I ended up with massive duplication of libraries. A more complex addon that has multiple dependencies can also use the ignore directive to ensure that only one copy of common libraries like CallbackHandler is embedded in the final zip file."}}
{"actor":{"display_login":"KyrosKrane"}}