{"action":"opened","issue":{"url":"https://api.github.com/repos/fedora-infra/anitya/issues/364","repository_url":"https://api.github.com/repos/fedora-infra/anitya","labels_url":"https://api.github.com/repos/fedora-infra/anitya/issues/364/labels{/name}","comments_url":"https://api.github.com/repos/fedora-infra/anitya/issues/364/comments","events_url":"https://api.github.com/repos/fedora-infra/anitya/issues/364/events","html_url":"https://github.com/fedora-infra/anitya/issues/364","id":185897762,"number":364,"title":"Project naming guidelines","user":{"login":"akien-mga","id":4701338,"avatar_url":"https://avatars.githubusercontent.com/u/4701338?v=3","gravatar_id":"","url":"https://api.github.com/users/akien-mga","html_url":"https://github.com/akien-mga","followers_url":"https://api.github.com/users/akien-mga/followers","following_url":"https://api.github.com/users/akien-mga/following{/other_user}","gists_url":"https://api.github.com/users/akien-mga/gists{/gist_id}","starred_url":"https://api.github.com/users/akien-mga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akien-mga/subscriptions","organizations_url":"https://api.github.com/users/akien-mga/orgs","repos_url":"https://api.github.com/users/akien-mga/repos","events_url":"https://api.github.com/users/akien-mga/events{/privacy}","received_events_url":"https://api.github.com/users/akien-mga/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-10-28T11:12:35Z","updated_at":"2016-10-28T11:12:35Z","closed_at":null,"body":"As discussed in #356, we need to define some guidelines for naming projects on Anitya.\r\n\r\nThere is a consensus that it should be the *upstream name*, and that distro-specific naming variations are meant to be handled via mappings. It however brings up some important questions for which we'll need some pointers in the guidelines:\r\n\r\n## How to determine the *upstream name*?\r\n\r\n* The first point is what the scope of the upstream name is. Should it only serve to identify a given project (both to users via the search engine and to the database as unique (project name, homepage) tuples), or is it also used by Anitya in some situations?\r\n\r\n* Then I guess the upstream name we choose should answer the question \"How does upstream name their own project?\", with some practical nuances, especially regarding the capitalization and use of spaces:\r\n- Should we enforce lowercase names (taken e.g. from the upstream URL, version control repo or main binary), or accept capitalized names if used by upstream (e.g. `supertuxkart` vs `SuperTuxKart`).\r\n- Same question for spaces (e.g. `extremetuxracer` vs `Extreme Tux Racer`).\r\n\r\n* Whatever we choose for the above, I think we should enforce it, so that we can't have both `extremetuxracer` and `Extreme Tux Racer` in the database). My preference would go to enforcing lowercase \"URL-like\" names, but this is open to discussion.\r\n\r\nIdeally we should try to review various projects and see how we would parse the information they give (I mean \"parse\" mentally, not automatically) to decide what upstream name is the right one, and thus what naming guidelines we should enforce.\r\n\r\n## How to differentiate different upstream projects with the same *upstream name*?\r\n\r\nAnitya allows setting the same upstream name for two different projects if the homepage differs, so that should cover most use cases.\r\n\r\nIt however implies that the homepage should be careful chosen to specifically identify the upstream project whose version we want to track, which might not always be straightforward.\r\n\r\nIn particular, for bindings we can end up in tricky situations, such as for msgpack: the cpp, java, php and ruby bindings of the official upstream msgpack projects are all maintained in the [same GitHub repo](https://github.com/msgpack/msgpack), and their respective releases are versioned separately are differentiated by their tag: https://github.com/msgpack/msgpack/releases\r\nThe homepage for all of them would *a priori* be http://msgpack.org, so if we define the *upstream name* as `msgpack` according to both the homepage and GitHub repository name, we're stuck.\r\n\r\n\r\nNote that the above is just some food for thought, I'd be glad to get input from various developers and users before we can write down proper guidelines."}}
{"actor":{"display_login":"akien-mga"}}