diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 4716e47..9c78762 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -4,38 +4,41 @@ This is a monorepo for development of applications and extensions. It currently contains: -- **BearBuddy**: A VSCode extension project with Free (MIT) and Pro (Proprietary) editions +- **BearBuddy Free**: A VSCode extension - Free (MIT) edition +- **BearBuddy Pro**: A VSCode extension - Pro (Proprietary) edition ## Repository Structure ``` / -├── BearBuddy/ # VSCode extension monorepo -│ ├── BearBuddy-Free/ # Free edition (MIT License) -│ │ ├── src/ # TypeScript source files -│ │ │ └── extension.ts # Main extension entry point -│ │ ├── package.json # Extension manifest & dependencies -│ │ ├── tsconfig.json # TypeScript configuration -│ │ └── esbuild.js # Build configuration -│ ├── BearBuddy-Pro/ # Pro edition (Proprietary License) -│ │ ├── src/ # TypeScript source files -│ │ │ └── extension.ts # Main extension entry point -│ │ ├── package.json # Extension manifest & dependencies -│ │ ├── tsconfig.json # TypeScript configuration -│ │ └── esbuild.js # Build configuration -│ ├── docs/ # GitHub Pages documentation -│ └── package.json # Monorepo root configuration -├── .github/ # GitHub configuration -│ ├── workflows/ # GitHub Actions workflows -│ ├── ISSUE_TEMPLATE/ # Issue templates -│ └── pull_request_template.md # PR template -└── README.md # Repository documentation +├── extensions/ # VSCode extensions workspace +│ ├── bearbuddy-free/ # BearBuddy Free edition (MIT License) +│ │ ├── src/ # TypeScript source files +│ │ │ └── extension.ts # Main extension entry point +│ │ ├── package.json # Extension manifest & dependencies +│ │ ├── tsconfig.json # TypeScript configuration +│ │ └── esbuild.js # Build configuration +│ ├── bearbuddy-pro/ # BearBuddy Pro edition (Proprietary License) +│ │ ├── src/ # TypeScript source files +│ │ │ └── extension.ts # Main extension entry point +│ │ ├── package.json # Extension manifest & dependencies +│ │ ├── tsconfig.json # TypeScript configuration +│ │ └── esbuild.js # Build configuration +│ ├── core-extension/ # Core extension package +│ └── pro-extension/ # Pro extension package +├── docs/ +│ └── bearbuddy/ # BearBuddy GitHub Pages documentation +├── .github/ # GitHub configuration +│ ├── workflows/ # GitHub Actions workflows +│ ├── ISSUE_TEMPLATE/ # Issue templates +│ └── pull_request_template.md # PR template +└── README.md # Repository documentation ``` ## Technologies & Tools - **Language**: TypeScript -- **Package Manager**: npm with workspaces +- **Package Manager**: npm (per extension), pnpm (monorepo root) - **Build Tool**: esbuild for fast bundling - **Platform**: VSCode Extension API (^1.80.0) - **Node Version**: >= 18.0.0 @@ -46,42 +49,49 @@ This is a monorepo for development of applications and extensions. It currently ### Setup & Installation ```bash -# Install dependencies for all projects -cd BearBuddy +# Install dependencies for BearBuddy Free +cd extensions/bearbuddy-free +npm install + +# Install dependencies for BearBuddy Pro +cd extensions/bearbuddy-pro npm install ``` ### Building ```bash -# Build all projects from BearBuddy directory +# Build BearBuddy Free +cd extensions/bearbuddy-free npm run build -# Build specific edition -npm run build:free -npm run build:pro +# Build BearBuddy Pro +cd extensions/bearbuddy-pro +npm run build ``` ### Development (Watch Mode) ```bash -# Watch all projects +# Watch BearBuddy Free +cd extensions/bearbuddy-free npm run watch -# Watch specific edition -npm run watch:free -npm run watch:pro +# Watch BearBuddy Pro +cd extensions/bearbuddy-pro +npm run watch ``` ### Packaging ```bash -# Package all extensions +# Package BearBuddy Free +cd extensions/bearbuddy-free npm run package -# Package specific edition -npm run package:free -npm run package:pro +# Package BearBuddy Pro +cd extensions/bearbuddy-pro +npm run package ``` ### Testing @@ -127,23 +137,23 @@ chore: maintenance tasks ### BearBuddy Free - **License**: MIT (Open Source) -- **Location**: `BearBuddy/BearBuddy-Free/` +- **Location**: `extensions/bearbuddy-free/` - **Contributions**: Accepted for core features ### BearBuddy Pro - **License**: Proprietary -- **Location**: `BearBuddy/BearBuddy-Pro/` +- **Location**: `extensions/bearbuddy-pro/` - **Contributions**: Limited to bug fixes and optimizations **Important**: When making changes, be mindful of which edition you're working in and respect the license boundaries. -## Working with the Monorepo +## Working with the Extensions -- This repository uses npm workspaces for managing multiple packages -- Always run commands from the appropriate directory: - - Monorepo-level commands: from `BearBuddy/` directory - - Edition-specific work: from `BearBuddy/BearBuddy-Free/` or `BearBuddy/BearBuddy-Pro/` +- Each BearBuddy edition is an independent package in the `extensions/` workspace directory +- Always run commands from the appropriate extension directory: + - BearBuddy Free: `extensions/bearbuddy-free/` + - BearBuddy Pro: `extensions/bearbuddy-pro/` - Changes to one edition should not affect the other unless explicitly intended ## Testing VSCode Extensions @@ -163,7 +173,7 @@ chore: maintenance tasks ## Documentation -- Main docs are in the `BearBuddy/docs/` directory +- BearBuddy docs are in the `docs/bearbuddy/` directory - Documentation is published to GitHub Pages - Keep README files up to date when making significant changes diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 98beb80..3f34f65 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,11 +4,13 @@ on: push: branches: [ main ] paths: - - 'BearBuddy/**' + - 'extensions/bearbuddy-free/**' + - 'extensions/bearbuddy-pro/**' pull_request: branches: [ main ] paths: - - 'BearBuddy/**' + - 'extensions/bearbuddy-free/**' + - 'extensions/bearbuddy-pro/**' permissions: contents: read @@ -29,26 +31,40 @@ jobs: with: node-version: ${{ matrix.node-version }} cache: 'npm' - cache-dependency-path: './BearBuddy/package-lock.json' + cache-dependency-path: | + ./extensions/bearbuddy-free/package-lock.json + ./extensions/bearbuddy-pro/package-lock.json - - name: Install dependencies - working-directory: ./BearBuddy - run: npm ci + - name: Install dependencies (Free) + working-directory: ./extensions/bearbuddy-free + run: npm install + + - name: Install dependencies (Pro) + working-directory: ./extensions/bearbuddy-pro + run: npm install - name: Build BearBuddy Free - working-directory: ./BearBuddy - run: npm run build:free + working-directory: ./extensions/bearbuddy-free + run: npm run build - name: Build BearBuddy Pro - working-directory: ./BearBuddy - run: npm run build:pro + working-directory: ./extensions/bearbuddy-pro + run: npm run build + + - name: Run tests (Free) + working-directory: ./extensions/bearbuddy-free + run: npm test - - name: Run tests - working-directory: ./BearBuddy + - name: Run tests (Pro) + working-directory: ./extensions/bearbuddy-pro run: npm test - - name: Package extensions - working-directory: ./BearBuddy + - name: Package BearBuddy Free + working-directory: ./extensions/bearbuddy-free + run: npm run package + + - name: Package BearBuddy Pro + working-directory: ./extensions/bearbuddy-pro run: npm run package - name: Upload BearBuddy Free artifact @@ -56,11 +72,11 @@ jobs: if: matrix.os == 'ubuntu-latest' && matrix.node-version == '20.x' with: name: bearbuddy-free-vsix - path: BearBuddy/BearBuddy-Free/*.vsix + path: extensions/bearbuddy-free/*.vsix - name: Upload BearBuddy Pro artifact uses: actions/upload-artifact@v4 if: matrix.os == 'ubuntu-latest' && matrix.node-version == '20.x' with: name: bearbuddy-pro-vsix - path: BearBuddy/BearBuddy-Pro/*.vsix + path: extensions/bearbuddy-pro/*.vsix diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 2960e26..ffbee44 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -4,7 +4,7 @@ on: push: branches: [ main ] paths: - - 'BearBuddy/docs/**' + - 'docs/bearbuddy/**' workflow_dispatch: permissions: @@ -32,7 +32,7 @@ jobs: - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: - path: 'BearBuddy/docs' + path: 'docs/bearbuddy' - name: Deploy to GitHub Pages id: deployment diff --git a/BearBuddy/CONTRIBUTING.md b/BearBuddy/CONTRIBUTING.md deleted file mode 100644 index 3a26ece..0000000 --- a/BearBuddy/CONTRIBUTING.md +++ /dev/null @@ -1,164 +0,0 @@ -# Contributing to BearBuddy - -Thank you for your interest in contributing to BearBuddy! 🐻 - -## Code of Conduct - -Please be respectful and constructive in all interactions. - -## How Can I Contribute? - -### Reporting Bugs - -Before creating bug reports, please check existing issues. When creating a bug report, include: - -- **Clear title and description** -- **Steps to reproduce** -- **Expected behavior** -- **Actual behavior** -- **Screenshots** (if applicable) -- **Environment details** (VSCode version, OS, etc.) - -### Suggesting Enhancements - -Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include: - -- **Clear title and description** -- **Use case** for the feature -- **Proposed solution** (if you have one) -- **Alternative solutions** considered - -### Pull Requests - -1. Fork the repository -2. Create a new branch (`git checkout -b feature/amazing-feature`) -3. Make your changes -4. Test your changes thoroughly -5. Commit your changes (`git commit -m 'Add some amazing feature'`) -6. Push to the branch (`git push origin feature/amazing-feature`) -7. Open a Pull Request - -#### Pull Request Guidelines - -- Follow the existing code style -- Include tests for new functionality -- Update documentation as needed -- Keep commits focused and atomic -- Write clear commit messages - -## Development Setup - -### Prerequisites - -```bash -# Node.js >= 18.0.0 -node --version - -# npm >= 9.0.0 -npm --version -``` - -### Setup - -```bash -# Clone the repository -git clone https://github.com/PCWProps/extensions-dev.git -cd extensions-dev/BearBuddy - -# Install dependencies -npm install - -# Build all projects -npm run build -``` - -### Development Workflow - -```bash -# Watch mode for development -npm run watch:free # For BearBuddy Free -npm run watch:pro # For BearBuddy Pro - -# Build for production -npm run build:free -npm run build:pro - -# Package extension -npm run package:free -npm run package:pro -``` - -### Testing Your Changes - -1. Open the project in VSCode -2. Press F5 to launch Extension Development Host -3. Test your changes in the new VSCode window -4. Check the Debug Console for logs - -## Project Structure - -``` -BearBuddy/ -├── BearBuddy-Free/ # Free edition (MIT License) -│ ├── src/ -│ │ └── extension.ts # Main extension file -│ ├── package.json -│ ├── tsconfig.json -│ └── esbuild.js -├── BearBuddy-Pro/ # Pro edition (Proprietary) -│ ├── src/ -│ │ └── extension.ts # Main extension file -│ ├── package.json -│ ├── tsconfig.json -│ └── esbuild.js -├── docs/ # Documentation for GitHub Pages -└── package.json # Monorepo root -``` - -## Style Guide - -### TypeScript - -- Use TypeScript for all source files -- Enable strict type checking -- Use meaningful variable and function names -- Add JSDoc comments for public APIs - -### Git Commits - -Follow conventional commits: - -``` -feat: add new feature -fix: fix bug -docs: update documentation -style: formatting changes -refactor: code refactoring -test: add tests -chore: maintenance tasks -``` - -## BearBuddy Free vs Pro - -### BearBuddy Free -- **License**: MIT (Open Source) -- **Contributions**: Accepted for core features -- **Location**: `BearBuddy-Free/` - -### BearBuddy Pro -- **License**: Proprietary -- **Contributions**: Limited to bug fixes and optimizations -- **Location**: `BearBuddy-Pro/` - -## Questions? - -- 💬 [Start a discussion](https://github.com/PCWProps/extensions-dev/discussions) -- 📧 Contact the maintainers - -## Recognition - -Contributors will be recognized in our [CONTRIBUTORS.md](./CONTRIBUTORS.md) file. - ---- - -Thank you for contributing! 🙏 diff --git a/BearBuddy/README.md b/BearBuddy/README.md deleted file mode 100644 index 64c8669..0000000 --- a/BearBuddy/README.md +++ /dev/null @@ -1,106 +0,0 @@ -# 🐻 BearBuddy - VSCode Extension Monorepo - -Welcome to the BearBuddy monorepo! This repository contains both the free and pro versions of the BearBuddy VSCode extension. - -## 📦 Projects - -This monorepo contains two VSCode extensions: - -### BearBuddy Free (MIT License) -- **Location**: `BearBuddy-Free/` -- **License**: MIT (Open Source) -- **Description**: The free, open-source version of BearBuddy with core features -- **Marketplace**: Coming soon - -### BearBuddy Pro (Proprietary License) -- **Location**: `BearBuddy-Pro/` -- **License**: Proprietary -- **Description**: The professional version with advanced features and premium support -- **Marketplace**: Coming soon - -## 🚀 Getting Started - -### Prerequisites - -- Node.js >= 18.0.0 -- npm >= 9.0.0 -- VSCode >= 1.80.0 - -### Installation - -```bash -# Install dependencies for all projects -npm install -``` - -### Building - -```bash -# Build all projects -npm run build - -# Build specific project -npm run build:free -npm run build:pro -``` - -### Development - -```bash -# Watch mode for all projects -npm run watch - -# Watch specific project -npm run watch:free -npm run watch:pro -``` - -### Packaging - -```bash -# Package all extensions -npm run package - -# Package specific extension -npm run package:free -npm run package:pro -``` - -## 🏗️ Architecture - -This monorepo uses: -- **npm workspaces** for dependency management -- **esbuild** for fast bundling and compilation -- **TypeScript** for type-safe development -- **VSCode Extension API** for extension functionality - -## 📚 Documentation - -Full documentation is available on our [GitHub Pages](https://pcwprops.github.io/extensions-dev/BearBuddy). - -## 🤝 Contributing - -We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for details. - -## 💬 Community - -- **Issues**: [Report bugs or request features](https://github.com/PCWProps/extensions-dev/issues) -- **Discussions**: [Join the conversation](https://github.com/PCWProps/extensions-dev/discussions) -- **Sponsorship**: [Support the project](https://github.com/sponsors/PCWProps) - -## 📋 Project Management - -Track our progress on the [Project Board](https://github.com/PCWProps/extensions-dev/projects). - -## 📄 License - -- **BearBuddy Free**: MIT License - see [BearBuddy-Free/LICENSE](./BearBuddy-Free/LICENSE) -- **BearBuddy Pro**: Proprietary License - see [BearBuddy-Pro/LICENSE](./BearBuddy-Pro/LICENSE) - -## 👥 Authors - -- **PCW|Props** - [GitHub](https://github.com/PCWProps) - ---- - -Made with ❤️ by PCW|Props diff --git a/BearBuddy/package.json b/BearBuddy/package.json deleted file mode 100644 index 4a24133..0000000 --- a/BearBuddy/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "bearbuddy-monorepo", - "version": "1.0.0", - "description": "BearBuddy VSCode Extension Monorepo - Free and Pro versions", - "private": true, - "workspaces": [ - "BearBuddy-Free", - "BearBuddy-Pro" - ], - "scripts": { - "install:all": "npm install", - "build": "npm run build --workspaces", - "build:free": "npm run build --workspace=BearBuddy-Free", - "build:pro": "npm run build --workspace=BearBuddy-Pro", - "watch": "npm run watch --workspaces", - "watch:free": "npm run watch --workspace=BearBuddy-Free", - "watch:pro": "npm run watch --workspace=BearBuddy-Pro", - "package": "npm run package --workspaces", - "package:free": "npm run package --workspace=BearBuddy-Free", - "package:pro": "npm run package --workspace=BearBuddy-Pro", - "test": "npm run test --workspaces", - "lint": "npm run lint --workspaces" - }, - "devDependencies": { - "esbuild": "^0.27.0" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=9.0.0" - }, - "repository": { - "type": "git", - "url": "https://github.com/PCWProps/extensions-dev.git", - "directory": "BearBuddy" - }, - "author": "PCW|Props", - "license": "SEE LICENSE IN BearBuddy-Free AND BearBuddy-Pro" -} diff --git a/BearBuddy/docs/index.html b/docs/bearbuddy/index.html similarity index 93% rename from BearBuddy/docs/index.html rename to docs/bearbuddy/index.html index 3f3dff8..883ad0c 100644 --- a/BearBuddy/docs/index.html +++ b/docs/bearbuddy/index.html @@ -189,7 +189,7 @@
Install BearBuddy from the VSCode Marketplace (coming soon) or build from source:
# Clone the repository
git clone https://github.com/PCWProps/extensions-dev.git
-cd extensions-dev/BearBuddy
-# Install dependencies
+# Build BearBuddy Free
+cd extensions-dev/extensions/bearbuddy-free
npm install
+npm run build
+npm run package
-# Build the extension
-npm run build:free # For Free edition
-npm run build:pro # For Pro edition
-
-# Package for installation
-npm run package:free
-npm run package:pro
+# Build BearBuddy Pro
+cd ../bearbuddy-pro
+npm install
+npm run build
+npm run package
@@ -246,7 +246,7 @@