Skip to content

Commit e396f99

Browse files
committed
Merge 6.0 branch
2 parents ff7f807 + 2d4df1b commit e396f99

657 files changed

Lines changed: 7158 additions & 6128 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.azure-pipelines.yml

Lines changed: 107 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -7,129 +7,152 @@ trigger:
77
branches:
88
include:
99
- master
10+
- 6.0
1011
- 5.4
1112
- refs/tags/*
1213

14+
# Scheduled build
15+
schedules:
16+
- cron: "0 0 * * *"
17+
displayName: Scheduled daily build
18+
branches:
19+
include:
20+
- master
21+
- 6.0
22+
always: true
23+
- cron: "0 0 1 * *"
24+
displayName: Scheduled monthly build
25+
branches:
26+
include:
27+
- 5.4
28+
always: true
29+
1330
jobs:
1431

32+
# Linux - Compile only
33+
########################################################################################
34+
- job:
35+
displayName: 'Linux | Compile only'
36+
condition: ne(variables['Build.Reason'], 'Schedule')
37+
38+
pool:
39+
vmImage: 'ubuntu-16.04'
40+
41+
variables:
42+
BUILD_DOCS: false
43+
PACKAGE: false
44+
TEST: false
45+
46+
steps:
47+
- template: ci/azure-pipelines-linux.yml
48+
49+
# Linux - Build docs + Package
50+
########################################################################################
51+
- job:
52+
displayName: 'Linux | Build docs + Package'
53+
condition: eq(variables['Build.Reason'], 'Schedule')
54+
55+
pool:
56+
vmImage: 'ubuntu-16.04'
57+
58+
variables:
59+
BUILD_DOCS: true
60+
PACKAGE: true
61+
TEST: false
62+
63+
steps:
64+
- template: ci/azure-pipelines-linux.yml
65+
66+
# Linux - Test
67+
########################################################################################
68+
- job:
69+
displayName: 'Linux | Test'
70+
condition: eq(variables['Build.Reason'], 'Schedule')
71+
72+
pool:
73+
vmImage: 'ubuntu-16.04'
74+
75+
variables:
76+
BUILD_DOCS: false
77+
PACKAGE: false
78+
TEST: true
79+
80+
steps:
81+
- template: ci/azure-pipelines-linux.yml
82+
1583
# Mac - Compile only
1684
########################################################################################
1785
- job:
1886
displayName: 'Mac | Compile only'
1987
condition: ne(variables['Build.Reason'], 'Schedule')
2088

2189
pool:
22-
vmImage: 'macOS-10.13'
90+
vmImage: 'macOS-10.14'
2391

2492
variables:
2593
BUILD_DOCS: false
2694
PACKAGE: false
2795
TEST: false
2896

2997
steps:
30-
31-
# Setup and compile GMT
3298
- template: ci/azure-pipelines-mac.yml
3399

34-
- bash: |
35-
set -x -e
36-
gmt defaults -Vd
37-
gmt pscoast -R0/10/0/10 -JM6i -Ba -Ggray -P -Vd > test.ps
38-
gmt begin && gmt coast -R0/10/0/10 -JM6i -Ba -Ggray -Vd && gmt end
39-
displayName: Check a few simple commands
40-
41100
# Mac - Build docs + Package
42101
########################################################################################
43102
- job:
44103
displayName: 'Mac | Build docs + Package'
45104
condition: eq(variables['Build.Reason'], 'Schedule')
46105

47106
pool:
48-
vmImage: 'macOS-10.13'
107+
vmImage: 'macOS-10.14'
49108

50109
variables:
51110
BUILD_DOCS: true
52111
PACKAGE: true
53112
TEST: false
54113

55114
steps:
56-
57-
# Setup and compile GMT
58115
- template: ci/azure-pipelines-mac.yml
59116

60-
- bash: |
61-
set -x -e
62-
gmt defaults -Vd
63-
gmt pscoast -R0/10/0/10 -JM6i -Ba -Ggray -P -Vd > test.ps
64-
gmt begin && gmt coast -R0/10/0/10 -JM6i -Ba -Ggray -Vd && gmt end
65-
displayName: Check a few simple commands
66-
67-
- bash: |
68-
cd build
69-
cmake --build . --target docs_html_depends
70-
cmake --build . --target docs_man_depends
71-
cmake --build . --target docs_html
72-
cmake --build . --target docs_man
73-
displayName: Build documentations
74-
75-
- bash: |
76-
cd build
77-
cmake --build . --target gmt_release
78-
cmake --build . --target gmt_release_tar
79-
cpack -G Bundle
80-
md5sum gmt-*.tar gmt-*.tar.gz gmt-*.tar.xz GMT-*.dmg
81-
displayName: Package GMT
82-
83117
# Mac - Test
84118
########################################################################################
85119
- job:
86120
displayName: 'Mac | Test'
87121
condition: eq(variables['Build.Reason'], 'Schedule')
88122

89123
pool:
90-
vmImage: 'macOS-10.13'
124+
vmImage: 'macOS-10.14'
91125

92126
variables:
93127
BUILD_DOCS: false
94128
PACKAGE: false
95129
TEST: true
96130

97131
steps:
98-
99-
# Setup and compile GMT
100132
- template: ci/azure-pipelines-mac.yml
101133

102-
- bash: |
103-
set -x -e
104-
gmt defaults -Vd
105-
gmt pscoast -R0/10/0/10 -JM6i -Ba -Ggray -P -Vd > test.ps
106-
gmt begin && gmt coast -R0/10/0/10 -JM6i -Ba -Ggray -Vd && gmt end
107-
displayName: Check a few simple commands
108-
109-
# Run the full tests only if this is a scheduled build
110-
- bash: |
111-
set -x -e
112-
cd build
113-
# Download remote files before testing, see #939.
114-
curl http://www.soest.hawaii.edu/gmt/data/gmt_md5_server.txt | awk 'NF==3 && $1!~/earth/ {print "@"$1}' | xargs gmt which -Gc
115-
gmt which -Gu @earth_relief_02m @earth_relief_05m
116-
ctest --output-on-failure --force-new-ctest-process -j4
117-
displayName: Full tests
118-
119-
# Upload test coverage even if build fails. Keep separate to make sure this task fails
120-
# if the tests fail.
121-
- bash: |
122-
set -x -e
123-
bash <(curl -s https://codecov.io/bash)
124-
env:
125-
CODECOV_TOKEN: $(codecov.token)
126-
condition: succeededOrFailed()
127-
displayName: Upload test coverage
128-
129-
# Windows - Compile + Build Docs + Package
134+
# Windows - Compile only
135+
########################################################################################
136+
- job:
137+
displayName: 'Windows | Compile only'
138+
condition: ne(variables['Build.Reason'], 'Schedule')
139+
timeoutInMinutes: 120
140+
141+
pool:
142+
vmImage: 'vs2017-win2016'
143+
144+
variables:
145+
BUILD_DOCS: false
146+
PACKAGE: false
147+
TEST: false
148+
149+
steps:
150+
- template: ci/azure-pipelines-windows.yml
151+
152+
# Windows - Build Docs + Package
130153
########################################################################################
131154
- job:
132-
displayName: 'Windows | Compile + Build Docs + Package'
155+
displayName: 'Windows | Build Docs + Package'
133156
condition: eq(variables['Build.Reason'], 'Schedule')
134157
timeoutInMinutes: 120
135158

@@ -142,16 +165,22 @@ jobs:
142165
TEST: false
143166

144167
steps:
145-
146-
# Setup and compile GMT
147168
- template: ci/azure-pipelines-windows.yml
148169

149-
# Set HOME to avoid permission issue of azure-pipelines
150-
- bash: echo "##vso[task.setvariable variable=HOME]D:/a/1/s/"
151-
displayName: Set HOME
170+
# Windows - Test
171+
########################################################################################
172+
- job:
173+
displayName: 'Windows | Test'
174+
condition: eq(variables['Build.Reason'], 'Schedule')
175+
timeoutInMinutes: 360
176+
177+
pool:
178+
vmImage: 'vs2017-win2016'
179+
180+
variables:
181+
BUILD_DOCS: false
182+
PACKAGE: false
183+
TEST: true
152184

153-
- script: |
154-
gmt defaults -Vd
155-
gmt pscoast -R0/10/0/10 -JM6i -Ba -Ggray -P -Vd > test.ps
156-
gmt begin && gmt coast -R0/10/0/10 -JM6i -Ba -Ggray -Vd && gmt end
157-
displayName: Check a few simple commands
185+
steps:
186+
- template: ci/azure-pipelines-windows.yml
Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
---
22
name: Bug report
33
about: Report a problem/bug to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
47

58
---
69

7-
**Description of the problem**
8-
10+
<!--To help us understand and resolve your issue, please fill out the form to the best of your ability. Feel free to delete the sections that do not apply.-->
911

12+
**Description of the problem**
1013

1114
<!-- Please be as detailed as you can when describing an issue. The more information we have, the easier it will be for us to track this down. -->
1215

@@ -15,20 +18,26 @@ about: Report a problem/bug to help us improve
1518
<!-- It helps a lot if you share any data files required to run your script. You can drag-and-drop them here or paste a link to Dropbox/GoogleDrive/etc. -->
1619

1720
```
18-
PASTE CODE HERE
21+
# PASTE CODE HERE
1922
```
2023

21-
2224
**Full error message**
2325

2426
<!-- Tip: you'll get more detailed error messages if you add -Vd to your gmt commands. -->
2527

2628
```
27-
PASTE ERROR MESSAGE HERE
29+
# PASTE ERROR MESSAGE HERE
2830
```
2931

32+
**Actual outcome**
33+
34+
<!--The output produced by the above script, which may be a screenshot, console output, etc.-->
35+
36+
**Expected outcome**
37+
38+
<!--A description of the expected outcome from the above script.-->
3039

3140
**System information**
3241

3342
* Operating system:
34-
* Version of GMT:
43+
* GMT version (`gmt --version`):

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
---
22
name: Feature request
33
about: Request the addition of a new feature/functionality
4+
title: ''
5+
labels: ''
6+
assignees: ''
47

58
---
69

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
name: GMT release checklist
3+
about: Checklist for a new GMT release.
4+
title: 'Release GMT x.x.x'
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Version**: x.x.x
11+
12+
**Before release**:
13+
14+
- [ ] run `src/gmt_make_*.sh` to update some .c and .h files
15+
- [ ] check if all tests pass on macOS, Linux and Windows
16+
- [ ] update changelog
17+
- [ ] update INSTALL.md
18+
- [ ] build documentations and fix warnings if any
19+
- [ ] check/set values in `cmake/ConfigDefault.cmake`
20+
- [ ] `GMT_VERSION_YEAR` is current year
21+
- [ ] `GMT_PACKAGE_VERSION_*` is correctly set
22+
- [ ] `GMT_LIB_SOVERSION` is correctly set
23+
- [ ] set `GMT_PUBLIC_RELEASE` to `TRUE`
24+
- [ ] freeze codes and commit all changes to GitHub
25+
26+
**Release**:
27+
28+
- [ ] create source tarballs (tar.gz and tar.xz) (@PaulWessel)
29+
- [ ] create macOS bundle (@PaulWessel)
30+
- [ ] create Windows installers (win32 and win64) (@joa-quim)
31+
- [ ] make a tag and push it to github
32+
```
33+
git tag x.x.x
34+
git push --tags
35+
```
36+
- [ ] go to [GitHub Release](https://github.com/GenericMappingTools/gmt/releases) and make a release. Remember to attach the source tarballs, macOS bundle and Windows installers.
37+
- [ ] upload source tarballs, macOS bundle, Windows installers to the GMT FTP (@PaulWessel)
38+
- [ ] update README and VERSION files on the GMT FTP (@PaulWessel)
39+
- [ ] make announcements
40+
- [ ] update links on the main site (News, Download & Documentation)
41+
42+
**After release**:
43+
44+
- [ ] create branch 6.x for bug-fixes if this is a minor release (i.e. create branch 6.1 after 6.1.0 is released)
45+
- [ ] update `GMT_PACKAGE_VERSION_*` in `cmake/ConfigDefault.cmake`
46+
- [ ] comment the `set (GMT_PUBLIC_RELEASE TRUE)` line
47+
- [ ] commit changes to GitHub
48+
49+
**3rd-party update**
50+
51+
- [ ] update [conda-forge feedstock](https://github.com/conda-forge/gmt-feedstock) (@leouieda, @seisman)
52+
- [ ] update [homebrew formula](https://github.com/Homebrew/homebrew-core/blob/master/Formula/gmt.rb) (@claudiodsf, @seisman)
53+
- [ ] update [fink package](https://github.com/fink/fink-distributions/blob/master/10.9-libcxx/stable/main/finkinfo/sci/) (@remkos)
54+
- [ ] update [macports ports](https://github.com/macports/macports-ports/tree/master/science)
55+
56+
---
57+
58+
- [ ] Party :tada: (don't tick before all other checkboxes are ticked!)

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Fixes #
1010

1111
**Reminders**
1212

13+
- [ ] Correct base branch selected? `master` for new features, `6.0` for bug fixes
1314
- [ ] Make sure that your code follows our style. Use the other functions/files as a basis.
1415
- [ ] Add tests for new features or tests that would have caught the bug that you're fixing.
1516
- [ ] Describe changes to function behavior and arguments in a comment below the function declaration.

0 commit comments

Comments
 (0)