{"action":"created","issue":{"url":"https://api.github.com/repos/dlang/phobos/issues/4741","repository_url":"https://api.github.com/repos/dlang/phobos","labels_url":"https://api.github.com/repos/dlang/phobos/issues/4741/labels{/name}","comments_url":"https://api.github.com/repos/dlang/phobos/issues/4741/comments","events_url":"https://api.github.com/repos/dlang/phobos/issues/4741/events","html_url":"https://github.com/dlang/phobos/pull/4741","id":172428251,"number":4741,"title":"[GSoC] [new package] Add std.experimental.xml package","user":{"login":"lodo1995","id":13088092,"avatar_url":"https://avatars.githubusercontent.com/u/13088092?v=3","gravatar_id":"","url":"https://api.github.com/users/lodo1995","html_url":"https://github.com/lodo1995","followers_url":"https://api.github.com/users/lodo1995/followers","following_url":"https://api.github.com/users/lodo1995/following{/other_user}","gists_url":"https://api.github.com/users/lodo1995/gists{/gist_id}","starred_url":"https://api.github.com/users/lodo1995/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lodo1995/subscriptions","organizations_url":"https://api.github.com/users/lodo1995/orgs","repos_url":"https://api.github.com/users/lodo1995/repos","events_url":"https://api.github.com/users/lodo1995/events{/privacy}","received_events_url":"https://api.github.com/users/lodo1995/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dlang/phobos/labels/@andralex","name":"@andralex","color":"f7c6c7"},{"url":"https://api.github.com/repos/dlang/phobos/labels/needs%20review","name":"needs review","color":"5319e7"},{"url":"https://api.github.com/repos/dlang/phobos/labels/WIP","name":"WIP","color":"fbca04"}],"state":"open","locked":false,"assignee":{"login":"burner","id":13327,"avatar_url":"https://avatars.githubusercontent.com/u/13327?v=3","gravatar_id":"","url":"https://api.github.com/users/burner","html_url":"https://github.com/burner","followers_url":"https://api.github.com/users/burner/followers","following_url":"https://api.github.com/users/burner/following{/other_user}","gists_url":"https://api.github.com/users/burner/gists{/gist_id}","starred_url":"https://api.github.com/users/burner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/burner/subscriptions","organizations_url":"https://api.github.com/users/burner/orgs","repos_url":"https://api.github.com/users/burner/repos","events_url":"https://api.github.com/users/burner/events{/privacy}","received_events_url":"https://api.github.com/users/burner/received_events","type":"User","site_admin":false},"assignees":[{"login":"burner","id":13327,"avatar_url":"https://avatars.githubusercontent.com/u/13327?v=3","gravatar_id":"","url":"https://api.github.com/users/burner","html_url":"https://github.com/burner","followers_url":"https://api.github.com/users/burner/followers","following_url":"https://api.github.com/users/burner/following{/other_user}","gists_url":"https://api.github.com/users/burner/gists{/gist_id}","starred_url":"https://api.github.com/users/burner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/burner/subscriptions","organizations_url":"https://api.github.com/users/burner/orgs","repos_url":"https://api.github.com/users/burner/repos","events_url":"https://api.github.com/users/burner/events{/privacy}","received_events_url":"https://api.github.com/users/burner/received_events","type":"User","site_admin":false}],"milestone":null,"comments":32,"created_at":"2016-08-22T11:20:26Z","updated_at":"2016-08-28T18:31:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dlang/phobos/pulls/4741","html_url":"https://github.com/dlang/phobos/pull/4741","diff_url":"https://github.com/dlang/phobos/pull/4741.diff","patch_url":"https://github.com/dlang/phobos/pull/4741.patch"},"body":"Here is the result of these months of work.\r\nI want to thank my mentor Robert @burner Schadek for his great help, and everybody who already gave their feedback.\r\n\r\nThis is an (almost exact) copy of [my repository](https://github.com/lodo1995/experimental.xml) which is also available as a [dub package](https://code.dlang.org/packages/std-experimental-xml).\r\nThe documentation is available [here](https://lodo1995.github.io/experimental.xml/std/experimental/xml.html).\r\n\r\nI would really love if feedback could focus on design considerations first, then naming issues (I'm not that good at naming things) and then small nitpicks.\r\n\r\nI will try to keep low pressure on the testing environment by performing all further development based on your feedback on my repository (see above) and pushing here no more than twice a day.\r\n\r\nThings still to do (work in progress):\r\n- [ ] better DOM: the W3C specification is huge; by the way almost all functionality is there; only some small things are missing;\r\n- [ ] better docs: should check if the docs are pretty with the Phobos styling, and should add docs for some functions;\r\n- [ ] advanced DTD handling: this functionality is being worked on in my repo; can be added to this package in a second iteration\r\n- [x] ~~legacy API: in my repo I have a crude wrapper that exposes the old `std.xml`, to ease transition; should it be included?~~ probably not a good idea\r\n- [ ] check that integration is complete (makefiles, indexes and so on)\r\n- [ ] more unittests (especially for `domimpl.d`)\r\n\r\nWishlist:\r\n- [Issue 16410: attribute inference inside templated classes](http://forum.dlang.org/post/mailman.68.1471786940.3111.digitalmars-d-bugs@puremagic.com) (not a blocker, but would make `@nogc` DOM less impossible)\r\n- `std.container.AA` with custom allocators; again, not a blocker, but would help `@nogc`\r\n- an `Appender` with custom allocators, for the very same reason; currently this package uses a custom one.\r\n\r\nOpen questions:\r\n- currently the DOM implementation tries to follow the W3C spec; what about the WHATWG spec? Which one should we try to adhere to?\r\n- ~~to include or not to include the \"legacy layer\" to allow use of the old API backed by the new library, to ease transition?~~ probably not a good idea\r\n\r\n(EDIT: of course this needs @andralex approval)"},"comment":{"url":"https://api.github.com/repos/dlang/phobos/issues/comments/242991004","html_url":"https://github.com/dlang/phobos/pull/4741#issuecomment-242991004","issue_url":"https://api.github.com/repos/dlang/phobos/issues/4741","id":242991004,"user":{"login":"lodo1995","id":13088092,"avatar_url":"https://avatars.githubusercontent.com/u/13088092?v=3","gravatar_id":"","url":"https://api.github.com/users/lodo1995","html_url":"https://github.com/lodo1995","followers_url":"https://api.github.com/users/lodo1995/followers","following_url":"https://api.github.com/users/lodo1995/following{/other_user}","gists_url":"https://api.github.com/users/lodo1995/gists{/gist_id}","starred_url":"https://api.github.com/users/lodo1995/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lodo1995/subscriptions","organizations_url":"https://api.github.com/users/lodo1995/orgs","repos_url":"https://api.github.com/users/lodo1995/repos","events_url":"https://api.github.com/users/lodo1995/events{/privacy}","received_events_url":"https://api.github.com/users/lodo1995/received_events","type":"User","site_admin":false},"created_at":"2016-08-28T18:31:49Z","updated_at":"2016-08-28T18:31:49Z","body":"Names changed and default handlers switched from asserts to exceptions. Thank you for your feedback on these things."}}
{"actor":{"display_login":"lodo1995"}}