Skip to content

Commit

Permalink
feat: Initial release of the 'mapify-cli' package
Browse files Browse the repository at this point in the history
BREAKING CHANGE: This release introduces the initial version of 'mapify-cli' (v1.0.0). It includes workflow setup and semantic release integration, making it ready for sharing.
  • Loading branch information
shiv-source committed Aug 21, 2024
0 parents commit 336df54
Show file tree
Hide file tree
Showing 29 changed files with 3,666 additions and 0 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: CI Workflow

on:
push:
branches: [master]
paths:
- 'src/**' # Monitor changes in the 'src' directory
- 'package.json' # Monitor changes in 'package.json'
- 'tsconfig.*.json' # Monitor changes in any 'tsconfig' JSON file

jobs:
release:
name: "Building and Releasing Source Code"
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]

permissions:
contents: write
issues: write
pull-requests: write
id-token: write

steps:
# Checks out the repository's code to the runner
- name: Checkout Code
uses: actions/checkout@v4

# Sets up pnpm with the specified version
- name: Set Up pnpm
uses: pnpm/action-setup@v4
with:
version: 9

# Sets up Node.js with the version defined in the matrix and enables caching for pnpm
- name: Set Up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"

# Installs project dependencies using pnpm
- name: Install Dependencies
run: pnpm install

# Builds the project using pnpm
- name: Build Project
run: pnpm build

# Releases the project to GitHub and NPM using semantic-release
- name: Release to GitHub and NPM
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # GitHub token for authentication
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} # NPM token for publishing the package
run: npx [email protected]
130 changes: 130 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp
.cache

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
2 changes: 2 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
**
!dist/**
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20.15.0
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Ignore everything
/*

# Include only the src directory
!/src
!/test
13 changes: 13 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"semi": false,
"singleQuote": true,
"printWidth": 130,
"tabWidth": 4,
"trailingComma": "none",
"bracketSpacing": true,
"arrowParens": "avoid",
"endOfLine": "lf",
"plugins": [
"prettier-plugin-organize-imports"
]
}
11 changes: 11 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"cSpell.words": [
"changefreq",
"Kumar",
"lastmod",
"mapify",
"opensource",
"pino",
"urlset"
]
}
44 changes: 44 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Code of Conduct

## Our Pledge

We, the contributors of `mapify-cli`, pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

We are committed to providing a welcoming and inclusive environment for all contributors.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

- Being respectful of differing viewpoints and experiences.
- Gracefully accepting constructive criticism.
- Focusing on what is best for the community.
- Showing empathy towards other community members.

Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual attention or advances.
- Trolling, insulting/derogatory comments, and personal or political attacks.
- Public or private harassment.
- Publishing others’ private information, such as a physical or electronic address, without explicit permission.
- Other conduct which could reasonably be considered inappropriate in a professional setting.

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that do not align with this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [[email protected]]. All complaints will be reviewed and investigated promptly and fairly.

The project team is obligated to maintain confidentiality with regard to the reporter of any incident. Further details of specific enforcement policies may be posted separately.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available at https://www.contributor-covenant.org/version/1/4/.
79 changes: 79 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Contributing to mapify-cli

Thank you for your interest in contributing to `mapify-cli`! We welcome contributions of all kinds, including code improvements, bug fixes, documentation updates, and more.

## How to Contribute

### Reporting Issues

If you encounter any bugs or have feature requests, please open an issue on the [GitHub repository](https://github.com/shiv-source/mapify-cli/issues). When reporting issues, please provide as much detail as possible, including steps to reproduce the issue and any relevant screenshots.

### Submitting Code

1. **Fork the Repository**: Start by forking the repository to your own GitHub account.

2. **Clone Your Fork**: Clone the forked repository to your local machine.
```bash
git clone https://github.com/your-username/mapify-cli.git
```

3. **Create a Branch**: Create a new branch for your changes.
```bash
git checkout -b my-feature-branch
```

4. **Make Changes**: Make your changes and ensure that they follow the project's coding style and conventions.

5. **Write Tests**: If you are adding new features or fixing bugs, please include appropriate tests to verify your changes.

6. **Update Documentation**: Update the documentation if your changes affect how the package is used or configured.

7. **Commit Changes**: Commit your changes with a descriptive commit message.
```bash
git add .
git commit -m "Add feature X or fix bug Y"
```

8. **Push Changes**: Push your changes to your forked repository.
```bash
git push origin my-feature-branch
```

9. **Create a Pull Request**: Open a pull request (PR) from your branch to the main repository. In your PR description, provide a clear explanation of the changes and why they are being made.

### Code of Conduct

Please adhere to our [Code of Conduct](CODE_OF_CONDUCT.md) while interacting with the community and contributing to the project. Be respectful and considerate in all communications.

### Development Environment

To set up a development environment, follow these steps:

1. **Install Dependencies**:
```bash
npm install
```

2. **Run Tests**:
```bash
npm test
```

3. **Build the Project**:
```bash
npm run build
```

### Style Guide

- Use [Prettier](https://prettier.io/) for code formatting.
- Follow [ESLint](https://eslint.org/) rules for JavaScript/TypeScript code quality.

### Additional Resources

- [GitHub Flow](https://guides.github.com/introduction/flow/)
- [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/)

## Thank You!

Your contributions help make `mapify-cli` better for everyone. We appreciate your time and effort in helping us improve the project!
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Shiv Kumar

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading

0 comments on commit 336df54

Please sign in to comment.