Skip to content
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

Add projsync utility #1903

Merged
merged 1 commit into from Feb 4, 2020
Merged

Add projsync utility #1903

merged 1 commit into from Feb 4, 2020

Conversation

rouault
Copy link
Member

@rouault rouault commented Feb 3, 2020

Fixes #1750

@hobu
Copy link
Contributor

hobu commented Feb 3, 2020

Why do we have projinfo and then proj_download? What discriminates the underscore separation? GDAL's behavior on this topic is so arbitrary that it requires lookup just about every time you use the tools. Let's not repeat that with PROJ.

@hobu
Copy link
Contributor

hobu commented Feb 3, 2020

I wonder if this should be called some variant of sync. It isn't a generic download tool. We could expand it to also include fetching latest DBs too, which would provide a lot of convenience.

Copy link
Member

@kbevers kbevers left a comment

Looks good to me. This is a nice utility to add the package.

I wonder about the tests of the application, how resilient are they to changes in PROJ-data/the CDN? Do we need to update the tests everytime a change is made on the CDN or will this still work unchanged?

docs/source/apps/proj_download.rst Outdated Show resolved Hide resolved
docs/source/usage/network.rst Outdated Show resolved Hide resolved
@rouault
Copy link
Member Author

rouault commented Feb 3, 2020

@hobu I was indeed midly satisfied with the name. projdownload seemed a bit stodgy to me, but projsync would be good. I'll go for it, if you and @kbevers is happy with that

Regarding synchronizing proj.db, this is a hard topic as I discussed a number of times. PROJ is highly sensitive to the content of proj.db. So if we were to do it, we would likely to have proj_7.0.0.db files compatible of PROJ 7.0.0 binary.

@rouault
Copy link
Member Author

rouault commented Feb 3, 2020

how resilient are they to changes in PROJ-data/the CDN?

They should be pretty resilient, unless we remove some files / source agencies.

@hobu
Copy link
Contributor

hobu commented Feb 3, 2020

So if we were to do it, we would likely to have proj_7.0.0.db files compatible of PROJ 7.0.0 binary.

My thought was to update if a new version of EPSG came out. Maybe it isn't worth the trouble.

@kbevers
Copy link
Member

kbevers commented Feb 3, 2020

I'll go for it, if you and @kbevers is happy with that

Sounds good to me.

My thought was to update if a new version of EPSG came out. Maybe it isn't worth the trouble.

It seems that EPSG doesn't really follow semantic versioning, so an increase in the patch-number can add a new operation or some other thing that requires new code. #1869 is a good example of that. It would be great if we in the future could decouple the EPSG-registry from specific PROJ releases and update the database when new updates appear in the EPSG registry but we're not there yet.

@rouault rouault changed the title Add proj_download utility Add projsync utility Feb 3, 2020
hobu
hobu approved these changes Feb 4, 2020
docs/source/apps/projsync.rst Outdated Show resolved Hide resolved
docs/source/apps/projsync.rst Show resolved Hide resolved
docs/source/apps/projsync.rst Show resolved Hide resolved
src/CMakeLists.txt Outdated Show resolved Hide resolved
src/apps/projsync.cpp Show resolved Hide resolved
src/apps/projsync.cpp Outdated Show resolved Hide resolved
src/bin_projsync.cmake Show resolved Hide resolved
src/filemanager.cpp Show resolved Hide resolved
src/filemanager.hpp Show resolved Hide resolved
@rouault rouault merged commit afda506 into OSGeo:master Feb 4, 2020
@kbevers kbevers added this to the 7.0.0 milestone Feb 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add a projsync utility
3 participants