{"action":"created","issue":{"url":"https://api.github.com/repos/geany/geany/issues/450","labels_url":"https://api.github.com/repos/geany/geany/issues/450/labels{/name}","comments_url":"https://api.github.com/repos/geany/geany/issues/450/comments","events_url":"https://api.github.com/repos/geany/geany/issues/450/events","html_url":"https://github.com/geany/geany/pull/450","id":64994291,"number":450,"title":"Project open changes","user":{"login":"techee","id":713965,"avatar_url":"https://avatars.githubusercontent.com/u/713965?v=3","gravatar_id":"","url":"https://api.github.com/users/techee","html_url":"https://github.com/techee","followers_url":"https://api.github.com/users/techee/followers","following_url":"https://api.github.com/users/techee/following{/other_user}","gists_url":"https://api.github.com/users/techee/gists{/gist_id}","starred_url":"https://api.github.com/users/techee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/techee/subscriptions","organizations_url":"https://api.github.com/users/techee/orgs","repos_url":"https://api.github.com/users/techee/repos","events_url":"https://api.github.com/users/techee/events{/privacy}","received_events_url":"https://api.github.com/users/techee/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":23,"created_at":"2015-03-28T21:59:17Z","updated_at":"2015-03-30T10:15:21Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/geany/geany/pulls/450","html_url":"https://github.com/geany/geany/pull/450","diff_url":"https://github.com/geany/geany/pull/450.diff","patch_url":"https://github.com/geany/geany/pull/450.patch"},"body":"Beware, possibly controversial patch! (feature removal)\r\n\r\nI've been long dissatisfied with how painful project creation in Geany is. I often\r\ndownload some source I want to look at which is in Downloads (and want a project\r\nso I can use my ProjectOrganizer plugin to index it all for better navigation).\r\nThe steps I have to do:\r\n\r\n1. Project->New\r\n2. Type the name. At this point the project file and base directory paths are\r\nwrong because they point to the \"projects\" directory where I have my projects\r\n3. Browse for the folder in \"Filename\" and enter project name (note: unfortunately\r\nusers can give arbitrary extension to their project files which is then filtered-out when\r\nopening project)\r\n4. Copy/paste the path portion of \"Filename\" to \"Base Path\". (I remember I was\r\nreally confused as a newcomer to Geany about what \"base path\" is)\r\n5. Click Create.\r\n6. Customize project properties by going to Project->Properties\r\n\r\nI think I found a much simpler and less confusing way but it requires one thing:\r\neliminating the possibility to have base path somewhere else than the project\r\nfile. If the base path is equal to the path where the project file is stored\r\nand if the project file has always the same name, e.g. \"project.geany\", we can\r\nreduce project creation and opening to simple directory opening. If the project\r\nfile is found in the path, the existing project is opened; otherwise a new\r\nproject is created. Because users usually want to customize the project settings\r\nupon project creation, the project properties dialog can be poped up automatically\r\n(which is also a good feedback for users that a new project was created rather\r\nthan existing project opened).\r\n\r\nHere's the project creation procedure with this new approach:\r\n\r\n1. Project->Open as Project...\r\n2. Select a directory to open as project.\r\n3. Project Properties dialog shows. The project name is prefilled with the last\r\ndirectory component (which usually corresponds to the project name). It has focus\r\nso users can easily change the name immediately.\r\n\r\nNo copy/paste, no base directory definition, no project file name definition.\r\n\r\nRecent projects are displayed as directories (no need to have the \"project.geany\"\r\nsuffix).\r\n\r\nLast, having base path identical to project path makes it possible to finally\r\nfix the rather embarrassing bug where projects cannot be moved to other directory\r\nwithout breaking the paths because all the paths inside are absolute. Now we\r\ndon't have to fear that the base path is changed by the user and can use\r\nrelative paths for open tabs.\r\n\r\nBackward compatibility:\r\nIn principle, all has to be done with existing projects is they have to be renamed\r\nto project.geany and placed to the base directory. We can do this patially by\r\nourselves if when opening a project there's no project.geany and we find\r\nother *.geany in the directory. People who used base path different from project\r\npath have to do this manually though.\r\n\r\nForward compatibility:\r\nThe patch still saves base_path to the project file (even though it never reads it)\r\nso old Geany versions have the base_path information. Open tabs, however, will be\r\nlost because old Geany versions won't know how to interpret the relative paths.\r\n\r\nTODO:\r\ndocs - I think it would be best to just completely eliminate the phrase \"base path\" \r\nand use \"project path\" insted. And of course cover the rest of the changes.\r\n\r\nThe bad:\r\n- There may be people who liked having the possibility to have the project file\r\noutside the project tree. In my opinion this isn't a big issue in the times of\r\n.gitignore files and similar but I would expect some \"you screwed up Geany by\r\nremoving this feature\" feedback.\r\n- People might not read the release notes that they should rename the project\r\nfile to project.geany and move it to base path so there may be some confusion\r\naround this.\r\n\r\nSo @b4n @eht16 @ntrel @frlan @codebrainz @elextr @kugel-  what's your\r\nopinion? I'm aware feature removal is always problematic but in this case I\r\nthink it's worth it (I've already talked about this change with Enrico\r\nand Frank and they didn't seem to be completely against this idea).\r\n"},"comment":{"url":"https://api.github.com/repos/geany/geany/issues/comments/87622695","html_url":"https://github.com/geany/geany/pull/450#issuecomment-87622695","issue_url":"https://api.github.com/repos/geany/geany/issues/450","id":87622695,"user":{"login":"elextr","id":811085,"avatar_url":"https://avatars.githubusercontent.com/u/811085?v=3","gravatar_id":"","url":"https://api.github.com/users/elextr","html_url":"https://github.com/elextr","followers_url":"https://api.github.com/users/elextr/followers","following_url":"https://api.github.com/users/elextr/following{/other_user}","gists_url":"https://api.github.com/users/elextr/gists{/gist_id}","starred_url":"https://api.github.com/users/elextr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elextr/subscriptions","organizations_url":"https://api.github.com/users/elextr/orgs","repos_url":"https://api.github.com/users/elextr/repos","events_url":"https://api.github.com/users/elextr/events{/privacy}","received_events_url":"https://api.github.com/users/elextr/received_events","type":"User","site_admin":false},"created_at":"2015-03-30T10:15:21Z","updated_at":"2015-03-30T10:15:21Z","body":"On 30 March 2015 at 20:20, Matthew Brush <notifications@github.com> wrote:\n\n> On 15-03-30 02:11 AM, Jiří Techet wrote:\n> > [...]\n> > By the way I forgot to mention this possibility previously but the\n> project (and now session) files could be hidden (.project_geany.geany).\n> Users don't open the project files themselves, just the directory in which\n> they are stored so the project files can be invisible to users.\n> >\n>\n> If breaking/renaming the project file, I suggest we should make it a\n> directory (could even have same name), so we're not painted in a corner.\n> If a user isn't going to see or use the file directly it shouldn't\n> matter much whether it's a file or a file in a subdirectory.\n>\n\n​Yes, thats a good idea.  When/if additional settings are allowed to be\nstored in projects they can be in the same format as the user geany file\nwhich may be of benefit.  Even if its not used in the short term it won't\nhurt.\n\n\n\n>\n> Still holding my breath to keep my \"loose project files\" directory\n> separate from my project source trees though :)\n>\n>\n> —\n> Reply to this email directly or view it on GitHub\n> <https://github.com/geany/geany/pull/450#issuecomment-87607460>.\n>\n"}}