Thank you for your interest in contributing to the Logseq-JIRA plugin! This document provides guidelines and instructions for development.
- Node.js (v16 or higher)
- pnpm (v8 or higher)
- Git
- Basic knowledge of TypeScript, React, and Logseq plugin development
-
Clone the repository:
git clone https://github.com/adyscorpius/logseq-jira.git cd logseq-jira -
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
-
Load the plugin in Logseq:
- Open Logseq
- Go to Settings > Advanced > Developer Mode (turn it on)
- Click the three dots menu (⋮) > "Plugins"
- Click "Load unpacked plugin"
- Select the
logseq-jirarepository folder
The plugin will be loaded in development mode, with hot-reloading enabled.
/src: Source codemain.tsx: Main entry point and orchestrationApp.tsx: React container componentdb.ts: IndexedDB database using Dexie.jsjiraTypes.ts: TypeScript interfaces for JIRA datamodels.ts: Plugin settings and data modelssettings.tsx: Plugin settings configuration/utils: Utility functionsjiraUtils.ts: JIRA API interactionutils.ts: Helper functions for UI and data processing
pnpm dev: Start development server with hot reloadingpnpm build: Build production version of the plugin- The output is saved to the
distdirectory
- Follow existing code patterns and consistent formatting
- Use TypeScript for type safety
- Use React functional components with hooks
- Follow Conventional Commits format
- Use meaningful commit messages that describe your changes
- Examples:
feat: Add support for custom JQL queriesfix: Resolve issue with API authenticationdocs: Update README with new features
- Create a feature branch for your work
- Keep PRs focused on a single feature or bug fix
- Include test steps in your PR description
- Update documentation if necessary
When testing changes:
-
Test basic functionality:
- Create a new block with a JIRA issue key
- Use the slash command to fetch issue data
- Verify the issue is formatted correctly
-
Test with various settings:
- Try both Markdown and Org Mode
- Test with different formatting options
- Test with and without block properties
-
Test error cases:
- Invalid credentials
- Network disconnection
- Invalid issue keys
The plugin uses semantic-release for automated releases:
- Update version in package.json
- Add all updates to master branch
- Tag the latest commit with the new version
When adding new features, please update:
- README.md with feature overview
- SETUP_GUIDE.md with detailed instructions
- Add appropriate inline code comments
If you need help with development:
- Create an issue on GitHub for questions or bug reports
- Check the Logseq Plugins documentation
Thank you for contributing to make this plugin better!