Skip to content

Releases: anegg0/linear-emacs

v1.2.0

Choose a tag to compare

@anegg0 anegg0 released this 15 Oct 18:35
70baf38

Summary

This release introduces a major architectural improvement with async-first API operations, along with bug fixes for org-mode integration and configurable issue states.

Major Changes

Async-First Architecture

  • Refactored API layer to use non-blocking async operations by default
  • Added linear-emacs--graphql-request-async as the primary API method
  • Implemented progress reporting for long-running operations with linear-emacs--progress
  • Added request tracking system with linear-emacs--active-requests counter
  • Refactored core functions to async: get-teams, get-issues, get-states
  • Implemented recursive pagination with callbacks for efficient issue fetching
  • Maintained backward compatibility with synchronous wrapper functions
  • Added customization variables: linear-emacs-async-default, linear-emacs-progress-messages

This resolves UI blocking issues, preventing Emacs from freezing during network operations.

Bug Fixes

  • Fixed issues with org-todo-list integration
  • Fixed configurable issue states handling

Documentation

  • Updated README to document async-first architecture
  • Added comprehensive async development guidelines
  • Added testing checklist for async functionality

Configuration

New customization variables available:

;; Enable async operations by default (default: t)
(setq linear-emacs-async-default t)

;; Show progress messages during operations (default: t)
(setq linear-emacs-progress-messages t)

Credits

Thanks to @loispostula for contributions to this release.

v1.1.0 - Project Management Support

Choose a tag to compare

@anegg0 anegg0 released this 18 Aug 15:54

Release v1.1.0 - Project Management Support

New Features

Project Management Integration

  • Full Linear Project Support: View, create, and manage Linear projects directly from Emacs
  • Project-Issue Association: Link issues to projects and navigate between them
  • Org-mode Integration: Projects are displayed with proper org-mode formatting for better readability
  • Interactive Project Selection: When creating issues, you can now select from available projects in your workspace

Bug Fixes

  • Fixed remaining Elisp compilation warnings for cleaner package installation
  • Resolved function naming inconsistencies

Other Changes

  • Added Codeberg as an alternative repository mirror
  • Minor code cleanup and improvements

Installation

For new users:

(use-package linear-emacs
  :straight (:host github :repo "anegg0/linear-emacs")
  :config
  (setq linear-api-key "your-api-key-here"))

Full Changelog: v1.0.1...v1.1.0

Version 1.0.1

Choose a tag to compare

@anegg0 anegg0 released this 20 Jul 21:16
d6aa40d

Changelog for linear-emacs v1.0.1

[1.0.1] - 2025-01-20

Changed

  • Renamed package from linear.el to linear-emacs.el to follow Emacs package naming conventions
  • Updated all function and variable prefixes from linear- to linear-emacs- for package consistency
  • Changed package summary to remove redundant "Emacs" reference
  • Fixed lambda variable naming to avoid reserved symbol t

Fixed

  • Resolved all package-lint errors and warnings
  • Corrected license references in README.md from MIT to GPL-3.0
  • Fixed LICENSE file reference in README.md (was incorrectly referencing LICENSE.txt)
  • Updated defgroup prefix to match package name

Documentation

  • Updated all function names in README.md to use new linear-emacs- prefix
  • Updated all function names in CLAUDE.md to use new linear-emacs- prefix
  • Synchronized version number across all files (1.0.0 → 1.0.1)

MELPA Preparation

  • Created MELPA-compatible recipe file
  • Ensured all dependencies (request, dash, s) are available in MELPA
  • Package now meets all MELPA submission requirements

Version 1.0.0

Choose a tag to compare

@anegg0 anegg0 released this 20 Jul 17:55
2e8ba7b

Changelog

All notable changes to linear-emacs will be documented in this file.

[1.0.0] - 2025-01-20

Initial Release

Linear-emacs is an Emacs/Linear.app integration package to manage Linear issues without leaving Emacs (or close).

Features

Core Functionality

  • Full Linear API Integration: Interact with Linear's GraphQL API directly from Emacs
  • Issue Management: List, view, and create Linear issues without leaving Emacs
  • Team Support: Select teams, view team members, and manage team-specific workflows
  • Rich Issue Creation: Create issues with titles, descriptions, priorities, assignees, estimates, and labels
  • Workflow State Management: Support for all Linear workflow states (Todo, In Progress, In Review, Backlog, Blocked, Done)

Org-Mode Integration

  • Bidirectional Synchronization: Sync between Linear.app and org-mode
  • TODO State Mapping: Automatic mapping between Linear workflow states and org-mode TODO states
  • Live Updates: Changes in org-mode automatically propagate to Linear (and vice versa)
  • Filtering: Only syncs active issues (excludes completed issues for better focus)
  • Asynchronous Updates: Background synchronization for improved performance

User Experience

  • Secure API Key Management: Support for environment variables and auth-source integration
  • Customizable Output: Configure where Linear issues are stored in your org directory
  • Debug Mode: Built-in debugging for troubleshooting API interactions
  • Pagination Support: Handles large numbers of issues
  • Priority Mapping: Maps Linear priorities to org-mode priorities (Urgent→A, High→B, Medium→C, Low→D)

Technical Details

Commands

  • linear-list-issues - Fetch and display assigned issues in org format
  • linear-new-issue - Create new issues with full attribute support
  • linear-test-connection - Verify API connectivity
  • linear-toggle-debug - Enable/disable debug logging
  • linear-check-setup - Validate configuration
  • linear-enable-org-sync - Enable automatic synchronization
  • linear-disable-org-sync - Disable automatic synchronization
  • linear-load-api-key-from-env - Load API key from environment

Dependencies

  • Emacs 27.1+
  • request.el 0.3.0+
  • dash.el 2.17.0+
  • s.el 1.12.0+

📝 Configuration

Basic setup:

(require 'linear)
(setq linear-api-key "your-api-key")  ; Or use auth-source/env variable
(setq linear-org-file-path (expand-file-name "gtd/linear.org" org-directory))

Getting Started

  1. Install the package and its dependencies
  2. Set up your Linear API key (via customization, environment variable, or auth-source)
  3. Run M-x linear-test-connection to verify setup
  4. Use M-x linear-list-issues to fetch your assigned issues
  5. Enable linear-enable-org-sync in your linear.org buffer for bidirectional sync

Acknowledgments

Created by Gael Blanchemain who'd rather stay in Emacs than deal with other sleazy-corporate "Apps".

📄 License

Released under the GNU General Public License v3.0 or later.


For more information, bug reports, and contributions, visit: