Skip to content

Commit 051d2ee

Browse files
authored
Modernize 2025 (#520)
This comprehensive update modernizes the Missing Maps website with improved security, performance, and maintainability. ## Major Changes ### Infrastructure Modernization - **Node.js**: Upgraded from 12.16.1 (EOL) to 20.18.0 LTS - **Ruby**: Updated to 3.3.5 with Jekyll 4.3.4 - **CI/CD**: Migrated from Travis CI to GitHub Actions with automated testing - **Dependencies**: Fixed 40+ security vulnerabilities, updated all packages ### Internationalization Overhaul - **Jekyll Polyglot**: Replaced manual language system with modern plugin - **Code Reduction**: Eliminated 65+ duplicate files, now 13 centralized templates - **Automatic generation**: Language directories created automatically - **Maintained compatibility**: All URLs and translations preserved ### Build System Improvements - **Modern JavaScript**: Converted to ES6+, updated ESLint configuration - **Gulp 5**: Updated build pipeline with dart-sass and modern dependencies - **GitHub Actions**: Comprehensive CI/CD with security scanning and automated deployments - **Performance**: Added incremental builds, SASS compression, parallel localization ### Content & Security Updates - **HTTPS enforcement**: Fixed mixed content issues - **OSMCal integration**: Modernized event management - **HOT Field Tasking Manager**: Replaced deprecated POSM references - **Asset updates**: Added new graphics and documentation ### Developer Experience - **Documentation**: Added comprehensive guides (INTERNATIONALIZATION.md, QUICK-REFERENCE.md) - **Testing**: Automated multilingual functionality tests - **Modern tooling**: Updated all development dependencies and workflows ## Benefits - ✅ Zero security vulnerabilities - ✅ Modern, maintainable codebase - ✅ Faster builds and deployments - ✅ Simplified language management - ✅ Comprehensive testing and documentation - ✅ Future-proof architecture
1 parent 92bfd30 commit 051d2ee

File tree

121 files changed

+9668
-8096
lines changed

Some content is hidden

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

121 files changed

+9668
-8096
lines changed

.build_scripts/deploy.sh

Lines changed: 0 additions & 16 deletions
This file was deleted.

.build_scripts/lint.sh

Lines changed: 0 additions & 8 deletions
This file was deleted.

.eslintrc

Lines changed: 0 additions & 189 deletions
This file was deleted.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Bug Report
2+
description: Report a bug or issue with the Missing Maps website
3+
title: "[Bug]: "
4+
labels: ["bug", "needs-triage"]
5+
assignees: []
6+
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
Thanks for taking the time to report a bug! Please fill out the form below to help us understand and reproduce the issue.
12+
13+
- type: input
14+
id: url
15+
attributes:
16+
label: Page URL
17+
description: What page were you on when you encountered the bug?
18+
placeholder: https://www.missingmaps.org/...
19+
validations:
20+
required: false
21+
22+
- type: textarea
23+
id: description
24+
attributes:
25+
label: Bug Description
26+
description: A clear and concise description of what the bug is
27+
placeholder: Describe what happened and what you expected to happen
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: steps
33+
attributes:
34+
label: Steps to Reproduce
35+
description: How can we reproduce this bug?
36+
placeholder: |
37+
1. Go to...
38+
2. Click on...
39+
3. Scroll down to...
40+
4. See error
41+
validations:
42+
required: true
43+
44+
- type: dropdown
45+
id: browsers
46+
attributes:
47+
label: Browser
48+
description: What browser are you using?
49+
options:
50+
- Chrome
51+
- Firefox
52+
- Safari
53+
- Edge
54+
- Mobile Safari
55+
- Mobile Chrome
56+
- Other
57+
validations:
58+
required: false
59+
60+
- type: dropdown
61+
id: device
62+
attributes:
63+
label: Device Type
64+
description: What type of device are you using?
65+
options:
66+
- Desktop
67+
- Mobile
68+
- Tablet
69+
validations:
70+
required: false
71+
72+
- type: textarea
73+
id: additional
74+
attributes:
75+
label: Additional Context
76+
description: Add any other context about the problem here, including screenshots if helpful
77+
validations:
78+
required: false

.github/README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# GitHub Actions Workflows
2+
3+
This directory contains the CI/CD workflows for the Missing Maps website.
4+
5+
## Workflows
6+
7+
### 📦 `deploy.yml` - CI/CD Pipeline
8+
- **Triggers**: Push to `main`, `master`, or `publish` branches; Pull requests
9+
- **Purpose**: Build and deploy the site to GitHub Pages
10+
- **Features**:
11+
- Ruby and Node.js environment setup
12+
- Dependency caching
13+
- JavaScript linting
14+
- Jekyll build with Gulp
15+
- Automated deployment to GitHub Pages (publish branch only)
16+
17+
### 🧪 `test.yml` - Pull Request Tests
18+
- **Triggers**: Pull requests to main branches
19+
- **Purpose**: Test builds and validate changes
20+
- **Features**:
21+
- Build verification
22+
- Asset generation checks
23+
- Lint validation
24+
25+
### 🔒 `security.yml` - Security and Dependency Checks
26+
- **Triggers**: Weekly schedule, dependency file changes, manual trigger
27+
- **Purpose**: Monitor security and dependency health
28+
- **Features**:
29+
- NPM security audit
30+
- Ruby security audit with bundler-audit
31+
- Outdated dependency checks
32+
- Code linting and formatting validation
33+
34+
## Dependabot Configuration
35+
36+
The `.github/dependabot.yml` file configures automated dependency updates:
37+
- **NPM packages**: Weekly updates on Sundays
38+
- **Ruby gems**: Weekly updates on Sundays
39+
- **GitHub Actions**: Weekly updates on Sundays
40+
- **Grouping**: Development vs production dependencies
41+
- **Auto-assignment**: PRs assigned to maintainers
42+
43+
## Migration from Travis CI
44+
45+
This setup replaces the previous Travis CI configuration with modern GitHub Actions:
46+
- ✅ Improved security with GitHub's built-in secrets management
47+
- ✅ Better integration with GitHub features
48+
- ✅ More granular control over workflows
49+
- ✅ Built-in GitHub Pages deployment
50+
- ✅ Automated dependency management
51+
52+
## Required Secrets
53+
54+
No additional secrets are required - GitHub Actions uses built-in `GITHUB_TOKEN` for deployment.
55+
56+
## Branch Strategy
57+
58+
- **`publish`**: Production deployment branch (auto-deploys to GitHub Pages)
59+
- **`main`/`master`**: Development branch (tests only)
60+
- **Feature branches**: Pull request testing only

0 commit comments

Comments
 (0)