Skip to content

Commit 65c9525

Browse files
committed
feat: add comprehensive tooling, documentation, and marketplace assets
- Add Husky + lint-staged + Prettier + CommitLint for code quality - Add Jest testing framework with unit tests - Add ESLint with TypeScript support - Add GitHub Actions workflows (PR validation, release, dependabot) - Optimize package size with .vscodeignore (98% reduction: 6.77MB → 135KB) - Fix signatures folder placement to project root instead of workspace root - Add extension icon (icon.png 128x128) - Add comprehensive README with features, usage, examples - Add CHANGELOG with full version history - Add SECURITY.md with vulnerability reporting process - Add CONTRIBUTING.md with development guidelines - Add issue templates (bug report, feature request) - Add PR template with checklist - Add CODEOWNERS file - Add .editorconfig for consistent formatting - Update package.json with correct repository URLs and categories - Generate package-lock.json for reproducible builds
1 parent 85cc6a8 commit 65c9525

37 files changed

Lines changed: 7606 additions & 2590 deletions

.editorconfig

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# EditorConfig helps maintain consistent coding styles
2+
# https://editorconfig.org
3+
4+
root = true
5+
6+
[*]
7+
charset = utf-8
8+
end_of_line = lf
9+
insert_final_newline = true
10+
trim_trailing_whitespace = true
11+
12+
[*.{js,ts,json,yml,yaml}]
13+
indent_style = space
14+
indent_size = 2
15+
16+
[*.md]
17+
trim_trailing_whitespace = false
18+
max_line_length = off
19+
20+
[*.sol]
21+
indent_style = space
22+
indent_size = 4
23+
24+
[Makefile]
25+
indent_style = tab

.eslintrc.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"root": true,
3+
"parser": "@typescript-eslint/parser",
4+
"parserOptions": {
5+
"ecmaVersion": 2022,
6+
"sourceType": "module",
7+
"project": "./tsconfig.json"
8+
},
9+
"plugins": [
10+
"@typescript-eslint"
11+
],
12+
"extends": [
13+
"eslint:recommended",
14+
"plugin:@typescript-eslint/recommended"
15+
],
16+
"rules": {
17+
"@typescript-eslint/semi": "warn",
18+
"curly": "warn",
19+
"eqeqeq": "warn",
20+
"no-throw-literal": "warn",
21+
"semi": "off",
22+
"@typescript-eslint/no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }]
23+
},
24+
"ignorePatterns": [
25+
"out",
26+
"dist",
27+
"**/*.d.ts",
28+
"node_modules",
29+
".vscode-test",
30+
"coverage",
31+
"*.config.js",
32+
"webpack.config.js"
33+
]
34+
}

.github/CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Maintainer's Guide
2+
* @DevJSter

.github/CONTRIBUTING.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Contributing to SigScan
2+
3+
First off, thank you for considering contributing to SigScan! 🎉
4+
5+
## Code of Conduct
6+
7+
By participating in this project, you agree to abide by our Code of Conduct. Please be respectful and constructive in all interactions.
8+
9+
## How Can I Contribute?
10+
11+
### Reporting Bugs
12+
13+
Before creating bug reports, please check existing issues. When creating a bug report, include:
14+
15+
- **Clear title and description**
16+
- **Steps to reproduce**
17+
- **Expected vs actual behavior**
18+
- **Screenshots** (if applicable)
19+
- **Environment details** (VS Code version, OS, Node version)
20+
21+
### Suggesting Enhancements
22+
23+
Enhancement suggestions are welcome! Please include:
24+
25+
- **Clear use case**
26+
- **Expected behavior**
27+
- **Why this would be useful**
28+
- **Examples** from other tools (if applicable)
29+
30+
### Pull Requests
31+
32+
1. Fork the repo and create your branch from `main`
33+
2. Follow the setup instructions in [BUILDING.md](BUILDING.md)
34+
3. Make your changes and add tests
35+
4. Ensure the test suite passes: `npm test`
36+
5. Run linting: `npm run lint:fix`
37+
6. Format code: `npm run format`
38+
7. Commit with conventional commits: `feat:`, `fix:`, `docs:`, etc.
39+
8. Push to your fork and submit a pull request
40+
41+
## Development Setup
42+
43+
```bash
44+
# Clone your fork
45+
git clone https://github.com/YOUR_USERNAME/sigScan.git
46+
cd sigScan
47+
48+
# Install dependencies
49+
npm install
50+
51+
# Run tests
52+
npm test
53+
54+
# Build extension
55+
npm run compile
56+
57+
# Package extension
58+
npm run package
59+
```
60+
61+
## Commit Message Guidelines
62+
63+
We follow [Conventional Commits](https://www.conventionalcommits.org/):
64+
65+
```
66+
<type>(<scope>): <subject>
67+
68+
<body>
69+
70+
<footer>
71+
```
72+
73+
### Types
74+
75+
- `feat`: New feature
76+
- `fix`: Bug fix
77+
- `docs`: Documentation only
78+
- `style`: Code style (formatting, etc.)
79+
- `refactor`: Code refactoring
80+
- `perf`: Performance improvement
81+
- `test`: Adding tests
82+
- `build`: Build system changes
83+
- `ci`: CI configuration
84+
- `chore`: Maintenance tasks
85+
86+
### Examples
87+
88+
```
89+
feat(scanner): add support for Solidity 0.8.20
90+
91+
fix(exporter): resolve duplicate signature issue
92+
93+
docs(readme): update installation instructions
94+
```
95+
96+
## Testing
97+
98+
- Write tests for new features
99+
- Ensure existing tests pass
100+
- Aim for good code coverage
101+
- Test on multiple platforms if possible
102+
103+
## Style Guide
104+
105+
- Use TypeScript
106+
- Follow ESLint rules
107+
- Use Prettier for formatting
108+
- Write clear, descriptive variable names
109+
- Add JSDoc comments for public APIs
110+
111+
## License
112+
113+
By contributing, you agree that your contributions will be licensed under the MIT License.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: Bug Report
3+
about: Create a report to help us improve
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Bug Description
10+
A clear and concise description of the bug.
11+
12+
## Steps To Reproduce
13+
1. Go to '...'
14+
2. Click on '....'
15+
3. Scroll down to '....'
16+
4. See error
17+
18+
## Expected Behavior
19+
What you expected to happen.
20+
21+
## Actual Behavior
22+
What actually happened.
23+
24+
## Screenshots
25+
If applicable, add screenshots to help explain your problem.
26+
27+
## Environment
28+
- **OS**: [e.g. Windows 11, macOS 14, Ubuntu 22.04]
29+
- **VS Code Version**: [e.g. 1.85.0]
30+
- **Extension Version**: [e.g. 0.3.0]
31+
- **Project Type**: [e.g. Foundry, Hardhat]
32+
- **Node Version**: [e.g. 18.17.0]
33+
34+
## Additional Context
35+
Add any other context about the problem here.
36+
37+
## Possible Solution
38+
If you have suggestions on how to fix this, please share.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea for this project
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Is your feature request related to a problem?
10+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
11+
12+
## Describe the solution you'd like
13+
A clear and concise description of what you want to happen.
14+
15+
## Describe alternatives you've considered
16+
A clear and concise description of any alternative solutions or features you've considered.
17+
18+
## Use Case
19+
Explain how this feature would be used and who would benefit from it.
20+
21+
## Example
22+
If applicable, provide examples or mockups of how this would work.
23+
24+
## Additional Context
25+
Add any other context, screenshots, or examples about the feature request here.
26+
27+
## Would you be willing to contribute?
28+
- [ ] Yes, I'd like to implement this feature
29+
- [ ] No, but I can help with testing
30+
- [ ] I can provide more details/feedback

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
## Description
2+
<!-- Describe your changes in detail -->
3+
4+
## Related Issue
5+
<!-- Link to the issue this PR addresses -->
6+
Fixes #(issue number)
7+
8+
## Type of Change
9+
<!-- Put an `x` in all boxes that apply -->
10+
- [ ] Bug fix (non-breaking change which fixes an issue)
11+
- [ ] New feature (non-breaking change which adds functionality)
12+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
13+
- [ ] Documentation update
14+
- [ ] Performance improvement
15+
- [ ] Code refactoring
16+
- [ ] Test addition/update
17+
18+
## How Has This Been Tested?
19+
<!-- Describe the tests you ran -->
20+
- [ ] Unit tests
21+
- [ ] Integration tests
22+
- [ ] Manual testing
23+
24+
**Test Configuration**:
25+
- OS:
26+
- VS Code Version:
27+
- Node Version:
28+
29+
## Checklist
30+
<!-- Put an `x` in all boxes that apply -->
31+
- [ ] My code follows the style guidelines of this project
32+
- [ ] I have performed a self-review of my own code
33+
- [ ] I have commented my code, particularly in hard-to-understand areas
34+
- [ ] I have made corresponding changes to the documentation
35+
- [ ] My changes generate no new warnings
36+
- [ ] I have added tests that prove my fix is effective or that my feature works
37+
- [ ] New and existing unit tests pass locally with my changes
38+
- [ ] Any dependent changes have been merged and published
39+
40+
## Screenshots (if appropriate)
41+
<!-- Add screenshots to help explain your changes -->
42+
43+
## Additional Notes
44+
<!-- Add any additional notes for reviewers -->

.github/dependabot.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
version: 2
2+
updates:
3+
# Enable version updates for npm
4+
- package-ecosystem: 'npm'
5+
directory: '/'
6+
schedule:
7+
interval: 'weekly'
8+
day: 'monday'
9+
open-pull-requests-limit: 10
10+
assignees:
11+
- 'DevJSter'
12+
labels:
13+
- 'dependencies'
14+
- 'automated'
15+
commit-message:
16+
prefix: 'chore'
17+
include: 'scope'
18+
# Group minor and patch updates together
19+
groups:
20+
dev-dependencies:
21+
patterns:
22+
- '@types/*'
23+
- '@typescript-eslint/*'
24+
- 'eslint*'
25+
- 'prettier'
26+
- 'jest'
27+
- 'ts-*'
28+
update-types:
29+
- 'minor'
30+
- 'patch'
31+
production-dependencies:
32+
patterns:
33+
- '*'
34+
exclude-patterns:
35+
- '@types/*'
36+
- '@typescript-eslint/*'
37+
- 'eslint*'
38+
- 'prettier'
39+
- 'jest'
40+
- 'ts-*'
41+
update-types:
42+
- 'minor'
43+
- 'patch'
44+
45+
# Enable version updates for GitHub Actions
46+
- package-ecosystem: 'github-actions'
47+
directory: '/'
48+
schedule:
49+
interval: 'weekly'
50+
day: 'monday'
51+
labels:
52+
- 'github-actions'
53+
- 'dependencies'
54+
- 'automated'
55+
commit-message:
56+
prefix: 'ci'

0 commit comments

Comments
 (0)