-
-
Notifications
You must be signed in to change notification settings - Fork 332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rename location to project #3121
Comments
Is it that way? |
That would certainly be an interesting turn. Phase 2 description fixed. |
Here are a couple of roadmap ideas.
|
Version 9 is still a bit far, while I think we are ready to proceed with this now. I wouldn't consider it drastic either, there is no change in behavior. Changing naming in backwards compatible way for 8.4 doesn't break any semantic versioning rules. |
Note that I am in favor of this plan and think the phases proposed are a good plan. It is also good that there are ways to do this that will ensure backward compatibility from a software engineering perspective. But it will not be backward compatible from a semantic perspective (in the original usage of the term). It won't be backward compatible with 40 years of manuals, documentation. papers, presentations, tutorials, etc. This is not a reason to not move ahead with renaming and rethinking the GRASS file structure. But it is a reason to make this a new version. Developers and users need to be informed of this before it is done in order to plan accordingly. While there have periodically been discussions, this new plan has not yet been announced to the dev community nor to the user community. It should not be 'talked to death' of course. So it is good that there is now a concrete plan to consider, and modify if needed. Giving it a set timeline could help keep it from dragging out. But IMHO, it is still a significant enough change that it requires a new version. |
Good point. |
As for having this in version 8.4 or 9, I don't think v9 should be done for the PRs which are currently open. The concept is not changing, only the name is changing and the phased approach introduces the word project without removing the word location. The phases 1 and 2 are introducing things in a backwards compatible way and the word location is mentioned alongside project at crucial places. Phase 4 will remove all visible occurrences of the word location so that the rename to project is completed for the 9.0.0 release. |
Is grass-dev and grass-user what you have in mind? I will be working on a post to a mailing list, just not sure if one or both. |
This all implies that terms employed by users are not important and only the terms used within software. I've always believed otherwise--that the user experience is as important as the software architecture. If you use the term "project" as an argument in a command that only 'understands' the term "location". The software will raise an error. This, of course, is the reason for some of the proposed software changes in the plan: to ensure that the term "project" when used in GRASS modules (including those underlying the GUI) are 'understood' by the software as referring to the data structures previously called a "location". If you could not reasonably ensure that this can be done, we can only make the change with a new version. This happened at the GRASS 6/7 version change for the arguments used in r. watershed. It involved important improvements to that module, but it had significant impacts for complex modeling code that my team was developing and deploying. We had to rewrite some of the code and then go back and change the information documenting both older and updated code to clearly indicate which GRASS version could be used. But it was clear that this happened at a version update. All the usage in all the information and knowledge base of GRASS users for 40 years has used the terms GISDatabase, location, and mapset to refer to GRASS data structures. There is no way to update nearly any of that information. This is why I am saying it is not backward compatible. In this case, it is not only the software that has to be changed, but how people understand and refer to GRASS operation. This all should have been done a long time ago. The version 5/6 or 6/7 updates would have been good places, but didn't happen. So I'm glad that you are working on this now. I just believe that it requires a version change. That also gives us the option of considering additional components of a more comprehensive review of the file structure that is also implied in the proposal. I may be the only one that feels that way. If so, that's OK. But it should be seriously considered. |
@cmbarton I feel the same way. Even though it'll be only the label that changes until phase 4, it can be confusing to new and existing users as well until v9 because
|
I am not sure whether you don't assign version 9 some magic powers :) Waiting for v9 is going to delay the somewhat inevitable confusion, but I don't think it's going to prevent it. What I don't understand is, do you suggest to delay this until we are ready for v9 (with other changes that may require breaking backwards compatibility), which can be couple years, or are you suggesting to release v9 soon, like next year? How would the transitional period look like? Or no transitional period needed, since it's a major version? My main problem with waiting for v9 is that just renaming location is not in my opinion substantial enough to warrant new major version. If we decide this absolutely needs to be changed only in v9, than with the current speed of releases it will take 5 years. We need to have more substantial changes to make the new major release and we need time to develop them. That obviously brings some practical development issues like these PRs will be open forever since we can't merge them to main branch which is used for minor releases. Moreover, since the rename is trying to make GRASS more user-friendly and easier to teach to new users, delaying this is problematic. Starting the backwards compatible changes now would give us time to think, experiment and develop the idea further, e.g., what to do with workspaces and down the line we may find the need to introduce larger changes and at that point v9 would be appropriate. Lastly, current software is being changed increasingly often. Users are getting used to it. |
Reading back Phase 2, so we'll support both (missed it previously)
My confusion was from this "just renaming location". If it was just the label without |
I just thought about a potential confusion between the verb grep -i '_project[^a-z]' include/grass/*.h include/grass/*/*.h g.proj currently has Another source of confusion might be module names |
The warning is there, see #3130. GRASS GIS generates that warning automatically when the item is in
|
I think they are just using proj, but there is also re-project, transform and warp as alternatives if we ever run into some issues.
I guess
If we do, a verb may provide enough context, e.g., g.switch.project. Context should be enough to distinguish between a project and (re-)project. These overlaps exists even now - db.databases has:
|
@petrasovaa and others. The version issue I raised boils down to whether a naming change like this warrants a major or minor version number. Looking at GitHub semantic versioning rules, which seem pretty standard, a minor version is for "when you add functionality in a backward compatible manner" and a major version is called for "when you make incompatible API changes". My read on this is that it is an API change that is incompatible with prior GRASS data organization usage. Some of this can be dealt with through software, but not all of it. So I do not advocate waiting on this change for some other incompatibility to be proposed that would also require a major version change. But that this change itself requires a change, and moving to v.9 sooner rather than later. Like other potentially incompatible changes, software changes could be instituted in v.8.x to prepare for this--for example going through with the PRs for allowing the argument 'project=' to be accepted as an alternative where 'location=' is now used. But changing the GUI to only show "project" and whatever other changes are decided on, instead of what is presented to users now, should be accompanied by a version change. |
The GUI is not changing to show only "project", "location" is also presented to provide consistency with what users see now. Specifically, the PR #2993 is keeping (adding) "location" at critical places in GUI, see, e.g., datacatalog/tree.py, line 2220: - Create new location
+ Create new project (location) Similarly, PR #3130 does the same for the parameter documentation (lib/gis/parser_standard_options.c): - Location name
+ Project (location) name If you identify other places where this should done besides the ones where it is already done in the PRs, please comment on the specific lines in the individual PRs. |
More stories for the history junkies: r.info documentation says (v8.3):
Is the missing comma between "data base" and "location" a mistake? Maybe it isn't! Given the "and" between words "location" and "mapset" and the items which follow them, the words "data base location and mapset" seem to be one item in the list which starts with "the map's boundaries" and ends with "history". The words "data base location and mapset" are then two subitems, "data base location" and "mapset" (or "data base mapset"). If this is correct, the words "data base location" refer to one thing, a location where a data base is, not two separate things. In other words, "data base location" refers to a directory where database is. This would fit with the other relicts where location is called database (see #2993 (comment)). We can theorize that the original v0, v1, or v2 text said:
Addition of mapset to the hierarchy then required adding "and mapset", but the split to "gisbase" and "location" seemed already taken care of by the "data base location" except that an important missing comma was overlooked here. A strange thing is that it looks like that the word location could have been derived from "data base location" rather than from a reference to an area of interest because simply by splitting the words into "data base location" into "data base" and "location", we get two out of our three current hierarchy levels. What speaks against this theory is that the old documents seems to use exclusively GISDBASE or gisdbase for the top level of the hierarchy while using "database structure" for the whole hierarchy (but not the top level) and (sometimes) "individual database" or "database" for the location. While this does not go directly against the notion that the word "location" is simply a directory as opposed to a geographical area, it goes against the splitting theory because the "data base" from "data base location" is not the name for the top level of the hierarchy. |
This would indeed be helpful in the transition. |
While thinking about renaming, another legacy term that many users find very confusion is "layer" for vectors. This might go into a different issue. But starting with the file structure names might be a good way to start looking at other confusing legacy terms. Happily, I don't think there are many. |
Renaming Location to Projectby Vaclav Petras With earliest records going back to 2015, we were discussing how to better name or represent the GRASS location concept. The discussions intensified with redesign of the new startup and data management panel in GUI between 2018 and 2020. A stronger will to rename emerged at the OSGeo Community Sprint in 2022 with renewed discussion and interest at the Prague Community Meeting in June 2023. Most recently, the topic was discussed again at the 2023 Birthday Call and the PSC meeting in August 2023 resulted in the decision to move forward with renaming the location to project. Need to RenameWhile not without controversies and alternative proposals, we are renaming location because:
New NameWe are choosing project as the new name because:
FAQs
ExampleTo demonstrate need for renaming and that the rename is already happening outside of the source code, here is a wording from a 2023 paper by Karlovska, Petrasova, Petras, Landa (emphasis added; besides project, it additionally uses subprojects for mapsets which is not currently planned):
Next StepsFollow the two (out of four) implementation phases described in #3121 (this issue) to finish rename for 8.4. Several PRs are already open covering all crucial areas (tracked in a GitHub project). First next step is merging these PR. Please review or give thumbs up the PRs. |
This renames location to project in user messages in wxGUI. This does not change any documentation or variable names. It does not change names outside of wxGUI. This changes only location to project. It leaves mapset as is because there seems to be much higher consensus about renaming location to project than about renaming mapset in general. See also #3121 Co-authored-by: Caitlin Haedrich Co-authored-by: Veronica Andreo <[email protected]> Co-authored-by: Anna Petrasova <[email protected]> Co-authored-by: Markus Neteler <[email protected]>
Does anyone have input on translations? The plan for 8.4.0 (Phase 2) says:
|
We need to update the .po/t files for Weblate. Ideally, with a new cronjob. |
Wasn't it supposed to be synced by weblate? If not, what does weblate sync? |
I remember that @HuidaeCho was doing some manual updates recently (update of message catalog). |
Weblate only syncs generated PO files and it doesn't generate them as far as I know. Are we ready to generate new PO files for this renaming? |
We are renaming location to project. The goal is to replace the term location by the term project in user-facing strings, texts, and APIs. The rename was decided by community consensus which is a result of more than 5 years of discussion.
Phase 1
Minimal changes needed to allow all people to contribute changes and start making changes in their own materials.
Phase 2
Things which need to happen to rename location to project. This needs to happen before 8.4.0. This issue will be closed as completed when this phase is finished.
r.proj location=name
will becomer.proj project=name
butr.proj location=name
will continue to work.grep -IrnE location jupyter/ pygrass/ script/ temporal/
gives a lot of results, but places where it actually matters seem to be much more scarce.init(".../path/...")
orinit(".../path", "name", "name")
, so the rename might not be even noticeable and no change to user code would be needed in this case.Phase 3
Things to consider, but are not necessary for 8.4.0, for completing this issue, or in general. This is included only for context.
G_database_*
toG_project_*
(and only partially from location), so it does not seem to be time-sensitive. See also wxGUI: Minimal changes to rename location to project #2993 (comment) and wxGUI: Minimal changes to rename location to project #2993 (comment).init(path)
, the path it is used as path to mapset, but you writeinit(database, location, mapset)
, the path becomes the database directory and the other two are location (project) and mapset. More places could support this logic, e.g., GUI can have a new ability to open mapsets (there is not File > Open mapset now), r.proj and g.mapset can have the same "path or path+name+name" behavior as grass.script.setup.init.Phase 4
Things which can be done only for or after the 9.0 release. This is included only for context.
LOCATION_NAME
variable in the session file (rcfile) managed by g.gisenv and directly. The session file is somewhat backend-ish, but it was used as a frontend for a long time, so this can be done only with a major release. Ideally, we would add features to replace all direct use cases of the session file before 9.0 so that this change would not effect anyone. Alternatively, we do the renames of these variable in a backwards compatible way, e.g., we usePROJECT_NAME
but continue to supportLOCATION_NAME
.Here are some pointers to the discussions which lead to this decision:
The text was updated successfully, but these errors were encountered: