{"action":"created","issue":{"url":"https://api.github.com/repos/micropython/micropython-lib/issues/21","labels_url":"https://api.github.com/repos/micropython/micropython-lib/issues/21/labels{/name}","comments_url":"https://api.github.com/repos/micropython/micropython-lib/issues/21/comments","events_url":"https://api.github.com/repos/micropython/micropython-lib/issues/21/events","html_url":"https://github.com/micropython/micropython-lib/pull/21","id":56969557,"number":21,"title":"binascii.unhexlify, base64, hashlib.sha224/256/384/512 ","user":{"login":"slush0","id":565341,"avatar_url":"https://avatars.githubusercontent.com/u/565341?v=3","gravatar_id":"","url":"https://api.github.com/users/slush0","html_url":"https://github.com/slush0","followers_url":"https://api.github.com/users/slush0/followers","following_url":"https://api.github.com/users/slush0/following{/other_user}","gists_url":"https://api.github.com/users/slush0/gists{/gist_id}","starred_url":"https://api.github.com/users/slush0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slush0/subscriptions","organizations_url":"https://api.github.com/users/slush0/orgs","repos_url":"https://api.github.com/users/slush0/repos","events_url":"https://api.github.com/users/slush0/events{/privacy}","received_events_url":"https://api.github.com/users/slush0/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-02-08T21:53:11Z","updated_at":"2015-02-19T04:10:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/micropython/micropython-lib/pulls/21","html_url":"https://github.com/micropython/micropython-lib/pull/21","diff_url":"https://github.com/micropython/micropython-lib/pull/21.diff","patch_url":"https://github.com/micropython/micropython-lib/pull/21.patch"},"body":"My first contribution to micropython-lib.\r\nSHA-X ported from PyPy\r\nhmac ported from CPython 3.3\r\nbase64 ported from CPython 3.3\r\nunhexlify is custom as PyPy's version was even slower."},"comment":{"url":"https://api.github.com/repos/micropython/micropython-lib/issues/comments/74996551","html_url":"https://github.com/micropython/micropython-lib/pull/21#issuecomment-74996551","issue_url":"https://api.github.com/repos/micropython/micropython-lib/issues/21","id":74996551,"user":{"login":"pfalcon","id":500451,"avatar_url":"https://avatars.githubusercontent.com/u/500451?v=3","gravatar_id":"","url":"https://api.github.com/users/pfalcon","html_url":"https://github.com/pfalcon","followers_url":"https://api.github.com/users/pfalcon/followers","following_url":"https://api.github.com/users/pfalcon/following{/other_user}","gists_url":"https://api.github.com/users/pfalcon/gists{/gist_id}","starred_url":"https://api.github.com/users/pfalcon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pfalcon/subscriptions","organizations_url":"https://api.github.com/users/pfalcon/orgs","repos_url":"https://api.github.com/users/pfalcon/repos","events_url":"https://api.github.com/users/pfalcon/events{/privacy}","received_events_url":"https://api.github.com/users/pfalcon/received_events","type":"User","site_admin":false},"created_at":"2015-02-19T04:10:02Z","updated_at":"2015-02-19T04:10:02Z","body":"And can you please confirm the exact Python version you took it from. I used 3.3.3 as a source, so that's what I look at, and I for example don't see \"name\" property there.\r\n\r\nJust to clarify: I very much appreciate your contribution, without people contributing the project won't progress much. But it's a peculiar project, where most code comes from upstream projects, and it must be done very carefully, or otherwise it will turn into unmaintainable mess. For example, consider that you took module from 3.3.1. Then someone wants to upgrade to 3.3.3, or to 3.4. It's one thing to port 5 changed lines, and another - half of the file. The first is relatively easy to do, if those 5 lines are very visible (uPy changes go in a separate commit), but changing half of lines here and there is big trouble. So, the idea is to apply porting effort and scrutiny on the micropython-lib input, once per module, to get as trouble-free maintenance as possible later. Otherwise, you can just assume that any your work will be overwritten later, because nobody will re-do work (number of upgrades) x (number of modules) times. So, that's it, these points are now added to https://github.com/micropython/micropython-lib/wiki/ContributorGuidelines also.\r\n"}}