For releasing a new Geo-Browser and Datasheet version, please have a look at the [DARIAH-DE Release Management Page](https://wiki.de.dariah.eu/display/DARIAH3/DARIAH-DE+Release+Management).
## Deployment Workflow
The deployment workflows for SNAPSHOT and RELEASE deployments are covered by the Jenkinsfile of each branch, please see [Jenkinsfile](./Jenkinsfile), and of course the [DARIAH-DE Jenkins](https://ci.de.dariah.eu/jenkins/job/DARIAH-DE-Geo-Browser/) installation.
## Specials in Geo-Browser and Datasheet releases are the following
### Release PLATIN first (if changed)
You must first release the [DARIAH-DE PLATIN Library](https://github.com/DARIAH-DE/PLATIN)(only if changed at all!)
To do this, merge the updated `develop` branch into the `master` branch. During Geo-Browser release, only PLATIN's `master` branch will be checked out (for both BETA and release version). The URL to the storage will be determined automatically depending on the URL of the application.
git checkout develop
git flow release start 3.6.9
Edit the file `./PLATIN/js/GeoTemConfig.js` and maybe adapt all references and links from BETA versions and DEVELOPMENT services to RELEASE and PRODUCTIVE (such as DARIAH-DE OwnStorage):
* dariahOwnStorageURL
* dataSheetEditor
git commit -am "New RELEASE version 3.6.9"
git flow release finish 3.6.9
Edit `./PLATIN/js/GeoTemConfig.js` again and change back the
### Release Geo-Browser
* dariahOwnStorageURL
* dataSheetEditor
* Update the [CHANGELOG.md](./CHANGELOG.md) to the new RELEASE version
Afterwards:
git commit -m "Update changelog for new RELEASE version 3.6.9"
git push origin develop
git commit -am "New SNAPSHOT version 3.6.10-BETA"
git push origin develop master --tag
* Update the version number in **package.json** by typing **one** of these commands, depending on the type of change:
### Release Geo-Browser
npm version patch # e.g. 3.6.8 --> 3.6.9
npm version minor # e.g. 3.6.8 --> 3.7.0
npm version major # e.g. 3.6.8 --> 4.0.0
git checkout develop
git pull
git flow release start 3.6.9
* Please adapt the [Jenkinsfile](./Jenkinsfile) for the release version, please see comments there.
- Use `package_version = '3.6.9-BETA` for BETA deployment at [geobrowser.de.dariah.eu/beta](https://geobrowser.de.dariah.eu/beta), and
- use `package_version = '3.6.9'` for RELEASE deployment at [geobrowser.de.dariah.eu](https://geobrowser.de.dariah.eu).
- See FIXME: Remove develop checkout if releasing!!!
* Adapt the version strings in the following files:
* Update the [CHANGELOG.md](./CHANGELOG.md) to the new RELEASE version
This will increase the version automatically and create a version commit and tag. Afterwards, just do:
git commit -am "String changes for new RELEASE version 3.6.9"
git flow release finish 3.6.9
git push --follow-tags
* Increase version in Jenkinsfile (such as `3.6.10-BETA`) and change back Jenkinsfile release adaptations.
* Increase version and add “-BETA“ in all above mentioned files.
The tag will trigger the `develop` (BETA) pipeline on Gitlab CI and deploy this version on the BETA server.
git commit -am "New SNAPSHOT version 3.6.10-BETA"
git push origin develop master --tags
Once this has been finished successfully, you can RELEASE the same version on the live server. All URL updates / version names will be handled automatically. You just need to trigger the `master` (RELEASE) pipeline by merging `develop` into `master`.
<aid="loggedin"title="Login or logout here – as you wish! You need to be logged in for reading, writing, and sharing/unsharing non-public data from DARIAH-DE Storage that you are owner of."></a>
<aid="loggedin"href=""title="Login or logout here – as you wish! You need to be logged in for reading, writing, and sharing/unsharing non-public data from DARIAH-DE Storage that you are owner of."></a>
<buttonid="howtoButton"class="btn btn-small pull-right"onclick="toggleHowto();"title="Read a small howto to get help filling in the table data.">How to fill the table</button>
<buttonid="clearSelectionButton"class="btn btn-small pull-right"style="margin-right: 5px"onclick="clearTableSelection();"title="Clear selection of table cells.">Clear selection</button>
<buttonid="howtoButton"class="btn btn-small pull-right"title="Read a small howto to get help filling in the table data.">How to fill the table</button>
<buttonid="clearSelectionButton"class="btn btn-small pull-right"style="margin-right: 5px"title="Clear selection of table cells.">Clear selection</button>
<labelfor="geolocationSource">Geolocation can be based either on the <i>Getty Thesaurus of Geographic Names (TGN)</i>, <i>OpenStreetMap (OSM)</i>, or <i>GeoNames</i>. Choose which geolocator to use: </label>
<inputid="osmPlaceName"style="width:77%;"type="text"class="input-large"placeholder="Enter exact place name as in “Address“ field..."/>
<buttonid="setAllPlacesOSMButton"class="btn"style="width:18%;"onClick="setAllPlacesOSM()"title="Sets all places with this name to the chosen coordinates."><iid='setAllPlacesIcon'class="icon-pencil"></i> Set</button>
<buttonid="setAllPlacesOSMButton"class="btn"style="width:18%;"title="Sets all places with this name to the chosen coordinates."><iid='setAllPlacesIcon'class="icon-pencil"></i> Set</button>
</div>
<div>
<i>Note: 'Set' will overwrite coordinates for <b>all</b> table rows matching this place unless you only select specific rows or cells first.</i>
<i>Note: 'Set' will overwrite coordinates for <b>all</b> table rows matching this address unless you only select specific rows or cells first.</i>
<p></p>
</div>
<divid="editMap"class="osmMap"></div>
...
...
@@ -184,9 +178,9 @@
<div>
<inputtype="text"placeholder="Enter your TGN/OSM/GeoNames search term here..."class="input-xlarge"style="width:94%;"id="search"/>
<br/>
<buttontitle="Search the Getty Thesaurus of Geographical Names for the name in the above input field."style="width:32%;"class="btn"onclick="tgnSearch();"><iclass="icon-search"></i> TGN</button>
<buttontitle="Search OpenStreetMap for the name in the above input field."style="width:32%;"class="btn"onclick="osmSearch();"><iclass="icon-search"></i> OSM</button>
<buttontitle="Search GeoNames for the name in the above input field."style="width:32%;"class="btn"onclick="ognSearch();"><iclass="icon-search"></i> GeoNames</button>
<buttonid="tgnButton"title="Search the Getty Thesaurus of Geographical Names for the name in the above input field."style="width:32%;"class="btn"><iclass="icon-search"></i> TGN</button>
<buttonid="osmButton"title="Search OpenStreetMap for the name in the above input field."style="width:32%;"class="btn"><iclass="icon-search"></i> OSM</button>
<buttonid="geonamesButton"title="Search GeoNames for the name in the above input field."style="width:32%;"class="btn"><iclass="icon-search"></i> GeoNames</button>
</div>
<divid="tgnOsmList"></div>
</div>
...
...
@@ -196,11 +190,11 @@
<divclass="span3">
<divclass="primary-area main-content-wrapper">
<h3>Manage your data</h3>
<buttonid="newButton"class="btn btn-primary"style="width:100%;"onclick="createNew();"title="Create a new datasheet and store it to the DARIAH-DE OwnStorage.">
<buttonid="newButton"class="btn btn-primary"style="width:100%;"title="Create a new datasheet and store it to the DARIAH-DE OwnStorage.">
<iclass="icon-plus-sign"></i> Create new datasheet
</button>
<p></p>
<buttonid="importButton"class="btn btn-primary"style="width:100%;"onclick="toggleUploadButton()"title="Create a new datasheet by importing a local CSV file.">
<buttonid="importButton"class="btn btn-primary"style="width:100%;"title="Create a new datasheet by importing a local CSV file.">
<iclass="icon-upload"></i> Import local CSV or KML file</button>
<buttonid="gbShareThisDatasetButton"class="btn"style="width:100%;"onclick="shareGeobrowserDataset();"title="Wonderful! You now can share this dataset with others! It can be viewed and downloaded via the given URL from everyone (read-only). You can unshare your dataset any time you like."disabled>
<buttonid="gbShareThisDatasetButton"class="btn"style="width:100%;"title="Wonderful! You now can share this dataset with others! It can be viewed and downloaded via the given URL from everyone (read-only). You can unshare your dataset any time you like."disabled>
<iclass="icon-globe"></i> Share dataset
</button>
<buttonid="gbUnshareThisDatasetButton"class="btn hide disabled"style="width:100%;"onclick="unshareGeobrowserDataset();"title="You can unshare this dataset again. You will then be the only one that has read and write access. You can share your dataset again any time you like!"disabled>
<buttonid="gbUnshareThisDatasetButton"class="btn hide disabled"style="width:100%;"title="You can unshare this dataset again. You will then be the only one that has read and write access. You can share your dataset again any time you like!"disabled>
<iclass="icon-lock"></i> Unshare dataset
</button>
<p></p>
<buttonid="downloadButton"class="btn disabled"onclick="download();"title="Download your dataset as a CSV (Comma Separated Value) file."style="width:100%;"disabled>
<buttonid="downloadButton"class="btn disabled"title="Download your dataset as a CSV (Comma Separated Value) file."style="width:100%;"disabled>
<buttonid="deleteButton"class="btn disabled"style="width:100%;"onclick="deleteDataset();"title="Delete your dataset! You will not be able to get it back!"disabled>
<buttonid="deleteButton"class="btn disabled"style="width:100%;"title="Delete your dataset! You will not be able to get it back!"disabled>
<iclass="icon-trash"></i> Delete dataset
</button>
</div>
...
...
@@ -234,7 +228,7 @@
<divclass="primary-area main-content-wrapper">
<h3>Add geocoordinates</h3>
<p>Geocoordinates for places from the <strong>Address</strong> field can be added with the Getty Thesaurus Service.</p>
<buttonid="geolocationCompletionButton"class="btn"style="width:100%;"onClick="startGeocoding();"title="Have a look at the places the Address fields of your dataset do match. Please choose the ones that fit for your places.">
<buttonid="geolocationCompletionButton"class="btn"style="width:100%;"title="Have a look at the places the Address fields of your dataset do match. Please choose the ones that fit for your places.">
<iclass="icon-globe"></i>
Geolocation completion
</button>
...
...
@@ -243,7 +237,7 @@
<divclass="primary-area main-content-wrapper">
<h3>Open with Geo-Browser</h3>
<p>Your dataset will be validated and sent to the <strong>Geo-Browser</strong>.</p>
<buttonid="openWithGeoBrowserButton"class="btn"style="width:100%;"onclick="openGeoBrowser(true,true);"title="The Geo-Browser will be opened in a new window and your dataset is shown in map and table view.">
<buttonid="openWithGeoBrowserButton"class="btn"style="width:100%;"title="The Geo-Browser will be opened in a new window and your dataset is shown in map and table view.">
<p>If you do so, this dataset can be read by anyone and also be publicly viewed in the DARIAH-DE Geo-Browser. Editing and deleting will still be possible only by you. Do you really want to share this dataset? You can unshare it any time you want.</p>
<p>If you do so, this dataset can only be accessed (read, edited, and deleted) by you again and can not be publicly viewed in the DARIAH-DE Geo-Browser. Do you really want to unshare this dataset? You can share it again any time you want.</p>
<p>You are about to create a new dataset by importing data from local storage though your current one is still on display! Do you really want to create a new one?</p>
@@ -85,7 +113,7 @@ function loadFromDariahStorage(id) {
varmessage='<p>The dataset with ID <i>'+id+'</i> (mimetype '+responseMimetype+') can not be loaded into the Datasheet Editor: The mimetype must be one of the following: <strong>'+allowedMimeTypes+'</strong></p>';
newAlert('error',title,message);
// Re-set storage ID.
dsid="";
setDSID("")
doThingsOnIDExistingCheck();
showFirstStartWizard();
}
...
...
@@ -94,7 +122,7 @@ function loadFromDariahStorage(id) {
varmessage='<p>The dataset with ID <i>'+id+' (mimetype '+responseMimetype+') can not be loaded into the Datasheet Editor: The first line must at least contain one of the following titles: <strong>'+defaultColumnHeaders+'</strong>.</p><p>First line seems to be instead: <strong>'+firstLineOfData+'</strong></p>';
newAlert('error',title,message);
// Re-set storage ID.
dsid="";
setDSID("");
doThingsOnIDExistingCheck();
showFirstStartWizard();
}
...
...
@@ -106,6 +134,7 @@ function loadFromDariahStorage(id) {
error:function(xhr,textStatus,errorThrown){
// Have we got a token already? If not, just do authenticate first!
if(readToken()===null){
console.error("No token! Re-authenticate...");
authenticate('id='+id);
}
// If a token does exist and no read access is granted, just give the correct error.
...
...
@@ -114,7 +143,7 @@ function loadFromDariahStorage(id) {
varmessage='<p>The dataset with ID <i>'+id+'</i> is not existing or private.</p>';