Thank you for your interest in contributing to StackerFTP! This document provides guidelines and instructions for contributing.
- Node.js 18.x or higher
- npm 9.x or higher
- VS Code 1.74.0 or higher
- Fork and clone the repository:
git clone https://github.com/yasinkuyu/stackerftp.git
cd stackerftp- Install dependencies:
npm install- Open in VS Code:
code .- Press
F5to run the extension in a new Extension Development Host window.
stackerftp/
├── src/
│ ├── core/ # Core functionality
│ │ ├── config.ts # Configuration management
│ │ ├── connection.ts # Base connection interface
│ │ ├── connection-manager.ts
│ │ ├── ftp-connection.ts
│ │ ├── sftp-connection.ts
│ │ └── transfer-manager.ts
│ ├── providers/ # TreeView providers
│ │ ├── remote-explorer.ts
│ │ └── remote-file.ts
│ ├── commands/ # Command handlers
│ │ └── index.ts
│ ├── webmaster/ # Web master tools
│ │ └── tools.ts
│ ├── utils/ # Utilities
│ │ ├── helpers.ts
│ │ ├── logger.ts
│ │ └── index.ts
│ ├── types.ts # Type definitions
│ └── extension.ts # Extension entry point
├── resources/ # Icons and assets
├── package.json # Extension manifest
└── tsconfig.json # TypeScript configuration
npm run compilenpm run watchnpm run lintnpm run package- Use TypeScript strict mode
- Follow existing code formatting
- Use meaningful variable names
- Add JSDoc comments for public APIs
- Keep functions focused and small
- Run the extension with
F5 - Test all major features:
- Connection to different server types
- File transfers
- Sync operations
- Web master tools
- SFTP connection with password
- SFTP connection with private key
- FTP connection
- FTPS connection
- Upload file
- Download file
- Sync to remote
- Sync to local
- Delete remote file
- Create remote folder
- Rename remote file
- Chmod operation
- Checksum calculation
- File search
- Create a feature branch:
git checkout -b feature/my-new-feature- Make your changes and commit:
git add .
git commit -m "feat: add new feature"- Push to your fork:
git push origin feature/my-new-feature- Open a Pull Request on GitHub
Follow conventional commits:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting)refactor:Code refactoringtest:Test changeschore:Build/process changes
Examples:
feat: add drag and drop support
fix: resolve connection timeout issue
docs: update README with new features
- Code builds without errors
- Linting passes
- Manual testing completed
- Documentation updated
- CHANGELOG.md updated
- Commit messages follow convention
Include:
- VS Code version
- Extension version
- Operating system
- Server type (FTP/FTPS/SFTP)
- Steps to reproduce
- Expected behavior
- Actual behavior
- Error messages/logs
Include:
- Use case description
- Proposed solution
- Alternative solutions considered
- Additional context
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Respect different viewpoints
Feel free to:
- Open an issue for questions
- Join discussions in existing issues
- Contact maintainers
Thank you for contributing! 🎉