Skip to content

Plans to extract the API client lib (from pkg/client) into its own repository? #39

Description

@andygrunwald

Are there any plans to extract the Paperless Go Client lib (living in pkg/client) into its own repository?

This would have a couple of benefits:

  • Discovery: When someone (like me) is looking for a Go client lib for Paperless, right now, it is not easy to find that the paperhooks repository has it as a sub-package. While this being an own repository, It would be easier to find (primarily via Google)
  • Increased contribution/docs: Additional discovery may lead to increased contribution and its own documentation
  • Independent development and release cycles: While the API of paperless evolves, the client lib evolves. Such feature development may not touch the webhook functionality of paperless (what paperhooks is mostly covering) - A new client endpoint in the client lib would require a new release without having additional features for paperhooks itself
  • Dependency management: While other implementations (e.g. https://github.com/hansmi/prometheus-paperless-exporter) may require only the client lib and not the paperhooks functionality, a full dependency/download is required (with all its downsides of having dependencies and non used code)

Switching it would also have a couple of downsides:

  • Additional development step: While you (@hansmi) maintain paperhooks, the paperless exporter and the client lib, an additional development step and additional maintenance overhead
  • Breaking change: Folks who are importing pkg/client already may suffer from a breaking change -- This might be Okayish if you raise the major version for this change

Both lists may not be complete, just first thoughts from my side.

What do you think about this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions