ruby / ruby/net-imap

RFC4466 (2006): Collected Extensions to IMAP4 ABNF

Open
#35 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

IMAP4rev2
Dominant language
Ruby
Stars
118
Forks
43
Avg merge
1d 23h
Merged PRs (30d)
26

Description

Supporting RFC4466 as well as the basic ABNF in RFC3501 will give significant forward compatibility, allowing us to partially parse some other extensions which we don't (yet?) otherwise support. Additionally, RFC4466 support is necessary for RFC9051.

  • Parse unknown or unsupported extensions using RFC4466 tagged-ext syntax
    • Parse tagged-ext-val (done as part of #225)
    • Add ExtensionData (done as part of #225)
    • #127
    • #128
    • #129
      (also usable for non-RFC4466 extension data)
  • RFC4466 2.1: Optional Parameters with the #select/#examine Commands
    • #124
    • Add kwargs to #select/#examine for existing select-param extensions
      • #122
      • #123
  • RFC4466 2.2: Extended #create Command
    • #126
    • Add kwargs to #create for existing create-param extensions
      • #125
  • RFC4466 2.3: Extended #rename Command
    • #130
  • RFC4466 2.4: Extensions to #fetch and #uid_fetch Commands
    • #133
    • Add kwargs to #fetch/#uid_fetch for existing fetch-modifier extensions
      • #132
      • #131
  • RFC4422 2.6: Extensions to #search Command
    • #115
      • Add arbitrary return opts to #search, using search-return-opts syntax (RFC4466 tagged-ext)
    • #121
      • #120
      • Parse all existing search-return-data extensions directly
  • RFC4422 2.7: Extensions to #append Command
    • #535
    • #537
    • #536

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing RFC4466, RFC3501, and RFC9051, then inspect the outstanding linked issues (#123, #124–#131, #133, and #536–#537) to identify the remaining implementation scope. Done means the unchecked RFC4466 parsing and command-extension items in this checklist are implemented and covered by the relevant project tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.