mime-types-data 3.2024.1105 → 3.2026.0127

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,166 @@
1
+ # Contributor Covenant 3.0 Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We pledge to make our community welcoming, safe, and equitable for all.
6
+
7
+ We are committed to fostering an environment that respects and promotes the
8
+ dignity, rights, and contributions of all individuals, regardless of
9
+ characteristics including race, ethnicity, caste, color, age, physical
10
+ characteristics, neurodiversity, disability, sex or gender, gender identity or
11
+ expression, sexual orientation, language, philosophy or religion, national or
12
+ social origin, socio-economic position, level of education, or other status. The
13
+ same privileges of participation are extended to everyone who participates in
14
+ good faith and in accordance with this Covenant.
15
+
16
+ ## Encouraged Behaviors
17
+
18
+ While acknowledging differences in social norms, we all strive to meet our
19
+ community's expectations for positive behavior. We also understand that our
20
+ words and actions may be interpreted differently than we intend based on
21
+ culture, background, or native language.
22
+
23
+ With these considerations in mind, we agree to behave mindfully toward each
24
+ other and act in ways that center our shared values, including:
25
+
26
+ 1. Respecting the **purpose of our community**, our activities, and our ways of
27
+ gathering.
28
+ 2. Engaging **kindly and honestly** with others.
29
+ 3. Respecting **different viewpoints** and experiences.
30
+ 4. **Taking responsibility** for our actions and contributions.
31
+ 5. Gracefully giving and accepting **constructive feedback**.
32
+ 6. Committing to **repairing harm** when it occurs.
33
+ 7. Behaving in other ways that promote and sustain the **well-being of our
34
+ community**.
35
+
36
+ ## Restricted Behaviors
37
+
38
+ We agree to restrict the following behaviors in our community. Instances,
39
+ threats, and promotion of these behaviors are violations of this Code of
40
+ Conduct.
41
+
42
+ 1. **Harassment.** Violating explicitly expressed boundaries or engaging in
43
+ unnecessary personal attention after any clear request to stop.
44
+ 2. **Character attacks.** Making insulting, demeaning, or pejorative comments
45
+ directed at a community member or group of people.
46
+ 3. **Stereotyping or discrimination.** Characterizing anyone’s personality or
47
+ behavior on the basis of immutable identities or traits.
48
+ 4. **Sexualization.** Behaving in a way that would generally be considered
49
+ inappropriately intimate in the context or purpose of the community.
50
+ 5. **Violating confidentiality**. Sharing or acting on someone's personal or
51
+ private information without their permission.
52
+ 6. **Endangerment.** Causing, encouraging, or threatening violence or other harm
53
+ toward any person or group.
54
+ 7. Behaving in other ways that **threaten the well-being** of our community.
55
+
56
+ ### Other Restrictions
57
+
58
+ 1. **Misleading identity.** Impersonating someone else for any reason, or
59
+ pretending to be someone else to evade enforcement actions.
60
+ 2. **Failing to credit sources.** Not properly crediting the sources of content
61
+ you contribute.
62
+ 3. **Promotional materials**. Sharing marketing or other commercial content in a
63
+ way that is outside the norms of the community.
64
+ 4. **Irresponsible communication.** Failing to responsibly present content which
65
+ includes, links or describes any other restricted behaviors.
66
+
67
+ ## Reporting an Issue
68
+
69
+ Tensions can occur between community members even when they are trying their
70
+ best to collaborate. Not every conflict represents a code of conduct violation,
71
+ and this Code of Conduct reinforces encouraged behaviors and norms that can help
72
+ avoid conflicts and minimize harm.
73
+
74
+ When an incident does occur, it is important to report it promptly. To report a
75
+ possible violation, create a [private security advisory][advisory] — violations
76
+ of this code of conduct are considered security vulnerabilities.
77
+
78
+ Community Moderators take reports of violations seriously and will make every
79
+ effort to respond in a timely manner. They will investigate all reports of code
80
+ of conduct violations, reviewing messages, logs, and recordings, or interviewing
81
+ witnesses and other participants. Community Moderators will keep investigation
82
+ and enforcement actions as transparent as possible while prioritizing safety and
83
+ confidentiality. In order to honor these values, enforcement actions are carried
84
+ out in private with the involved parties, but communicating to the whole
85
+ community may be part of a mutually agreed upon resolution.
86
+
87
+ ## Addressing and Repairing Harm
88
+
89
+ If an investigation by the Community Moderators finds that this Code of Conduct
90
+ has been violated, the following enforcement ladder may be used to determine how
91
+ best to repair harm, based on the incident's impact on the individuals involved
92
+ and the community as a whole. Depending on the severity of a violation, lower
93
+ rungs on the ladder may be skipped.
94
+
95
+ 1. Warning
96
+ 1. Event: A violation involving a single incident or series of incidents.
97
+ 2. Consequence: A private, written warning from the Community Moderators.
98
+ 3. Repair: Examples of repair include a private written apology,
99
+ acknowledgement of responsibility, and seeking clarification on
100
+ expectations.
101
+
102
+ 2. Temporarily Limited Activities
103
+ 1. Event: A repeated incidence of a violation that previously resulted in a
104
+ warning, or the first incidence of a more serious violation.
105
+ 2. Consequence: A private, written warning with a time-limited cooldown
106
+ period designed to underscore the seriousness of the situation and give
107
+ the community members involved time to process the incident. The cooldown
108
+ period may be limited to particular communication channels or interactions
109
+ with particular community members.
110
+ 3. Repair: Examples of repair may include making an apology, using the
111
+ cooldown period to reflect on actions and impact, and being thoughtful
112
+ about re-entering community spaces after the period is over.
113
+
114
+ 3. Temporary Suspension
115
+ 1. Event: A pattern of repeated violation which the Community Moderators have
116
+ tried to address with warnings, or a single serious violation.
117
+ 2. Consequence: A private written warning with conditions for return from
118
+ suspension. In general, temporary suspensions give the person being
119
+ suspended time to reflect upon their behavior and possible corrective
120
+ actions.
121
+ 3. Repair: Examples of repair include respecting the spirit of the
122
+ suspension, meeting the specified conditions for return, and being
123
+ thoughtful about how to reintegrate with the community when the suspension
124
+ is lifted.
125
+
126
+ 4. Permanent Ban
127
+ 1. Event: A pattern of repeated code of conduct violations that other steps
128
+ on the ladder have failed to resolve, or a violation so serious that the
129
+ Community Moderators determine there is no way to keep the community safe
130
+ with this person as a member.
131
+ 2. Consequence: Access to all community spaces, tools, and communication
132
+ channels is removed. In general, permanent bans should be rarely used,
133
+ should have strong reasoning behind them, and should only be resorted to
134
+ if working through other remedies has failed to change the behavior.
135
+ 3. Repair: There is no possible repair in cases of this severity.
136
+
137
+ This enforcement ladder is intended as a guideline. It does not limit the
138
+ ability of Community Managers to use their discretion and judgment, in keeping
139
+ with the best interests of our community.
140
+
141
+ ## Scope
142
+
143
+ This Code of Conduct applies within all community spaces, and also applies when
144
+ an individual is officially representing the community in public or other
145
+ spaces. Examples of representing our community include using an official email
146
+ address, posting via an official social media account, or acting as an appointed
147
+ representative at an online or offline event.
148
+
149
+ ## Attribution
150
+
151
+ This Code of Conduct is adapted from the Contributor Covenant, version 3.0,
152
+ permanently available at <https://www.contributor-covenant.org/version/3/0/>.
153
+
154
+ Contributor Covenant is stewarded by the Organization for Ethical Source and
155
+ licensed under CC BY-SA 4.0. To view a copy of this license, visit
156
+ <https://creativecommons.org/licenses/by-sa/4.0/>.
157
+
158
+ For answers to common questions about Contributor Covenant, see the FAQ at
159
+ <https://www.contributor-covenant.org/faq>. Translations are provided at
160
+ <https://www.contributor-covenant.org/translations>. Additional enforcement and
161
+ community guideline resources can be found at
162
+ <https://www.contributor-covenant.org/resources>. The enforcement ladder was
163
+ inspired by the work of [Mozilla’s code of conduct team][inclusion].
164
+
165
+ [advisory]: https://github.com/mime-types/ruby-mime-types/security/advisories/new
166
+ [inclusion]: https://github.com/mozilla/inclusion
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,213 @@
1
+ # Contributing
2
+
3
+ Contribution to mime-types-data is encouraged in any form: a bug report, new
4
+ MIME type definitions, or additional code to help manage the MIME types. New
5
+ features should be proposed and discussed in an [issue][issues].
6
+
7
+ Before contributing patches, please read the [Licence](./LICENCE.md).
8
+
9
+ MIME::Types data is governed under the
10
+ [Contributor Covenant Code of Conduct][cccoc].
11
+
12
+ ## Code Guidelines
13
+
14
+ I have several guidelines to contributing code through pull requests:
15
+
16
+ - I use code formatters, static analysis tools, and linting to ensure consistent
17
+ styles and formatting. There should be no warning output from test run
18
+ processes. I use [Standard Ruby][standardrb].
19
+
20
+ - Proposed changes should be on a thoughtfully-named topic branch and organized
21
+ into logical commit chunks as appropriate.
22
+
23
+ - Use [Conventional Commits][conventional] with my
24
+ [conventions](#commit-conventions).
25
+
26
+ - Versions must not be updated in pull requests unless otherwise directed. This
27
+ means that you must not:
28
+
29
+ - Modify `VERSION` in `lib/mime/types/data.rb`. When your patch is accepted
30
+ and a release is made, the version will be updated at that point.
31
+
32
+ - Modify `mime-types-data.gemspec`; it is a generated file. (You _may_ use
33
+ `rake gemspec` to regenerate it if your change involves metadata related to
34
+ gem itself).
35
+
36
+ - Modify the `Gemfile`.
37
+
38
+ - Type updates may only be performed on the YAML files in `types/`. This means
39
+ that no files may be modified in `data/`. Any changes to be captured here will
40
+ be automatically updated on the next release.
41
+
42
+ - Documentation should be added or updated as appropriate for new or updated
43
+ functionality. The documentation is RDoc; mime-types-data does not use
44
+ extensions that may be present in alternative documentation generators.
45
+
46
+ - All GitHub Actions checks marked as required must pass before a pull request
47
+ may be accepted and merged.
48
+
49
+ - Add your name or GitHub handle to `CONTRIBUTORS.md` and a record in the
50
+ `CHANGELOG.md` as a separate commit from your main change. (Follow the style
51
+ in the `CHANGELOG.md` and provide a link to your PR.)
52
+
53
+ - Include your DCO sign-off in each commit message (see [LICENCE](LICENCE.md)).
54
+
55
+ Although mime-types-data was extracted from the [Ruby mime-types][rmt] gem and
56
+ the support files are written in Ruby, the _target_ of mime-types-data is any
57
+ implementation that wishes to use the data as a MIME types registry, so I am
58
+ particularly interested in tools that will create a mime-types-data package for
59
+ other languages.
60
+
61
+ ## Adding or Modifying MIME Types
62
+
63
+ The Ruby mime-types gem loads its data from files encoded in the `data`
64
+ directory in this gem by loading `mime-types-data` and reading
65
+ MIME::Types::Data::PATH. These files are compiled files from the collection of
66
+ data in the `types` directory.
67
+
68
+ > [!WARNING]
69
+ >
70
+ > Pull requests that include changes to files in `data/` will require amendment
71
+ > to revert these files.
72
+
73
+ New or modified MIME types should be edited in the appropriate YAML file under
74
+ `types`. The format is as shown below for the `application/xml` MIME type in
75
+ `types/application.yml`.
76
+
77
+ ```yaml
78
+ - !ruby/object:MIME::Type
79
+ content-type: application/xml
80
+ encoding: 8bit
81
+ extensions:
82
+ - xml
83
+ - xsl
84
+ references:
85
+ - IANA
86
+ - RFC3023
87
+ xrefs:
88
+ rfc:
89
+ - rfc3023
90
+ registered: true
91
+ ```
92
+
93
+ There are other fields that can be added, matching the fields discussed in the
94
+ documentation for MIME::Type. Pull requests for MIME types should just contain
95
+ the changes to the YAML files for the new or modified MIME types; I will convert
96
+ the YAML files to JSON prior to a new release. I would rather not have to verify
97
+ that the JSON matches the YAML changes, which is why it is not necessary to run
98
+ conversion for the pull request.
99
+
100
+ If you are making a change for a private fork, use `rake convert:yaml:json` to
101
+ convert the YAML to JSON and `rake convert:yaml:columnar` to convert it to the
102
+ default columnar format.
103
+
104
+ ### Updating Types from the IANA or Apache Lists
105
+
106
+ If you are maintaining a private fork and wish to update your copy of the MIME
107
+ types registry used by this gem, you can do this with the rake tasks:
108
+
109
+ ```sh
110
+ $ rake mime:iana
111
+ $ rake mime:apache
112
+ ```
113
+
114
+ #### A Note on Provisional Types
115
+
116
+ Provisionally registered types from IANA are contained in the `types/*.yaml`
117
+ files. Per IANA,
118
+
119
+ > This registry, unlike some other provisional IANA registries, is only for
120
+ > temporary use. Entries in this registry are either finalized and moved to the
121
+ > main media types registry or are abandoned and deleted. Entries in this
122
+ > registry are suitable for use for development and test purposes only.
123
+
124
+ Provisional types are rewritten when updated, so pull requests to manually
125
+ customize provisional types (such as with extensions) are considered lower
126
+ priority. It is recommended that any updates required to the data be performed
127
+ in your application if you require provisional types.
128
+
129
+ ## Commit Conventions
130
+
131
+ MIMe::Types has adopted a variation of the Conventional Commits format for
132
+ commit messages. The following types are permitted:
133
+
134
+ | Type | Purpose |
135
+ | ------- | ----------------------------------------------------- |
136
+ | `feat` | A new feature |
137
+ | `fix` | A bug fix |
138
+ | `chore` | A code change that is neither a bug fix nor a feature |
139
+ | `docs` | Documentation updates |
140
+ | `deps` | Dependency updates, including GitHub Actions. |
141
+ | `types` | Manually contributed MIME::Types |
142
+
143
+ I encourage the use of [Tim Pope's][tpope-qcm] or [Chris Beam's][cbeams]
144
+ guidelines on the writing of commit messages
145
+
146
+ I require the use of [git][trailers1] [trailers][trailers2] for specific
147
+ additional metadata and strongly encourage it for others. The conditionally
148
+ required metadata trailers are:
149
+
150
+ - `Breaking-Change`: if the change is a breaking change. **Do not** use the
151
+ shorthand form (`feat!(scope)`) or `BREAKING CHANGE`.
152
+
153
+ - `Signed-off-by`: this is required for all developers except me, as outlined in
154
+ the [Licence](./LICENCE.md#developer-certificate-of-origin).
155
+
156
+ - `Fixes` or `Resolves`: If a change fixes one or more open [issues][issues],
157
+ that issue must be included in the `Fixes` or `Resolves` trailer. Multiple
158
+ issues should be listed comma separated in the same trailer:
159
+ `Fixes: #1, #5, #7`, but _may_ appear in separate trailers. While both `Fixes`
160
+ and `Resolves` are synonyms, only _one_ should be used in a given commit or
161
+ pull request.
162
+
163
+ - `Related to`: If a change does not fix an issue, those issue references should
164
+ be included in this trailer.
165
+
166
+ ## The Release Process
167
+
168
+ The release process is completely automated, where upstream MIME types will be
169
+ updated weekly (on Tuesdays) and be presented in a reviewable pull request. Once
170
+ merged, the release will be automatically published to RubyGems.
171
+
172
+ With the addition of [trusted publishing][tp], there should no longer be a need
173
+ for manual releases outside of the update cycle. Pull requests merged between
174
+ cycles will be released on the next cycle.
175
+
176
+ If it becomes necessary to perform a manual release, IANA updates should be
177
+ performed manually.
178
+
179
+ 1. Review any outstanding issues or pull requests to see if anything needs to be
180
+ addressed. This is necessary because there is no automated source for
181
+ extensions for the thousands of MIME entries. (Suggestions and/or pull
182
+ requests for same would be deeply appreciated.)
183
+ 2. `bundle install`
184
+ 3. Review the changes to make sure that the changes are sane. The IANA data
185
+ source changes from time to time, resulting in big changes or even a broken
186
+ step 4. (The most recent change was the addition of the `font/*` top-level
187
+ category.)
188
+ 4. Write up the changes in `CHANGELOG.md`. If any PRs have been merged, these
189
+ should be noted specifically and contributions should be added in
190
+ `Contributing.md`.
191
+ 5. Ensure that the `VERSION` in `lib/mime/types/data.rb` is updated with the
192
+ current date UTC.
193
+ 6. Run `rake gemspec` to ensure that `mime-types.gemspec` has been updated.
194
+ 7. Commit the changes and push to GitHub. The automated trusted publishing
195
+ workflow will pick up the changes.
196
+
197
+ This list is based on issue [#18][issue-18].
198
+
199
+ [cbeams]: https://cbea.ms/git-commit/
200
+ [cccoc]: ./CODE_OF_CONDUCT.md
201
+ [conventional]: https://www.conventionalcommits.org/en/v1.0.0/
202
+ [dco]: licences/dco.txt
203
+ [hoe]: https://github.com/seattlerb/hoe
204
+ [issue-18]: https://github.com/mime-types/mime-types-data/issues/18
205
+ [issues]: https://github.com/mime-types/mime-types-data/issues
206
+ [minitest]: https://github.com/seattlerb/minitest
207
+ [release-gem]: https://github.com/rubygems/release-gem
208
+ [rmt]: https://github.com/mime-types/ruby-mime-types/
209
+ [standardrb]: https://github.com/standardrb/standard
210
+ [tp]: https://guides.rubygems.org/trusted-publishing/
211
+ [tpope-qcm]: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
212
+ [trailers1]: https://git-scm.com/docs/git-interpret-trailers
213
+ [trailers2]: https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---trailerlttokengtltvaluegt
data/CONTRIBUTORS.md ADDED
@@ -0,0 +1,54 @@
1
+ # Contributors
2
+
3
+ - Austin Ziegler created mime-types.
4
+
5
+ Thanks to everyone else who has contributed to mime-types:
6
+
7
+ - Aaron Patterson
8
+ - Aggelos Avgerinos
9
+ - Alessio Parma
10
+ - Alex Balhatchet
11
+ - Andre Pankratz
12
+ - Andrey Eremin
13
+ - Andy Brody
14
+ - Arnaud Meuret
15
+ - Bradley Meck
16
+ - Brandon Galbraith
17
+ - Chris Gat
18
+ - Chris Salzberg
19
+ - David Genord
20
+ - Eric Marden
21
+ - Garret Alfert
22
+ - Godfrey Chan
23
+ - Greg Brockman
24
+ - Hans de Graaff
25
+ - Henrik Hodne
26
+ - Jeremy Evans
27
+ - John Gardner
28
+ - Jon Sneyers
29
+ - Jonas Petersen
30
+ - Juanito Fatas
31
+ - Keerthi Siva
32
+ - Ken Ip
33
+ - Łukasz Śliwa
34
+ - Lucia
35
+ - Mark Young
36
+ - Martin d'Allens
37
+ - Mauricio Linhares
38
+ - Mohammed Gad
39
+ - Myk Klemme
40
+ - nycvotes-dev
41
+ - Postmodern
42
+ - Richard Hirner
43
+ - Richard Hurt
44
+ - Richard Schneeman
45
+ - Robert Buchberger
46
+ - Samuel Giddins
47
+ - Samuel Williams
48
+ - Sergio Baptista
49
+ - Shane Eskritt
50
+ - Tao Guo
51
+ - Thomas Leese
52
+ - Tibor Szolár
53
+ - Todd Carrico
54
+ - Yoran Brondsema
@@ -1,6 +1,6 @@
1
1
  ## Licence
2
2
 
3
- - Copyright 2003–2024 Austin Ziegler and other contributors.
3
+ - Copyright 2003–2025 Austin Ziegler and other contributors.
4
4
 
5
5
  The software in this repository is made available under the MIT license.
6
6
 
data/Manifest.txt CHANGED
@@ -1,7 +1,8 @@
1
- Code-of-Conduct.md
2
- Contributing.md
3
- History.md
4
- Licence.md
1
+ CHANGELOG.md
2
+ CODE_OF_CONDUCT.md
3
+ CONTRIBUTING.md
4
+ CONTRIBUTORS.md
5
+ LICENCE.md
5
6
  Manifest.txt
6
7
  README.md
7
8
  Rakefile
@@ -15,22 +16,9 @@ data/mime.encoding.column
15
16
  data/mime.flags.column
16
17
  data/mime.friendly.column
17
18
  data/mime.pext.column
19
+ data/mime.spri.column
18
20
  data/mime.use_instead.column
19
21
  data/mime.xrefs.column
20
22
  lib/mime-types-data.rb
21
23
  lib/mime/types/data.rb
22
- types/application.yaml
23
- types/audio.yaml
24
- types/chemical.yaml
25
- types/conference.yaml
26
- types/drawing.yaml
27
- types/example.yaml
28
- types/font.yaml
29
- types/haptics.yaml
30
- types/image.yaml
31
- types/message.yaml
32
- types/model.yaml
33
- types/multipart.yaml
34
- types/text.yaml
35
- types/video.yaml
36
- types/world.yaml
24
+ licences/dco.txt
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # mime-types-data
2
2
 
3
3
  - home :: https://github.com/mime-types/mime-types-data/
4
- - code :: https://github.com/mime-types/mime-types-data/
5
4
  - issues :: https://github.com/mime-types/mime-types-data/issues
5
+ - code :: https://github.com/mime-types/mime-types-data/
6
+ - changelog ::
7
+ https://github.com/mime-types/mime-types-data/blob/main/CHANGELOG.md
6
8
 
7
9
  ## Description
8
10
 
@@ -13,33 +15,34 @@ extensions to look up the likely MIME type definitions.
13
15
 
14
16
  ### About MIME Media Types
15
17
 
16
- MIME media types are used in MIME-compliant communications, as in e-mail or
17
- HTTP traffic, to indicate the type of content which is transmitted. The
18
- registry provided in mime-types-data contains detailed information about MIME
19
- entities. There are many types defined by RFCs and vendors, so the list is long
20
- but invariably; don't hesitate to offer additional type definitions for
18
+ MIME media types are used in MIME-compliant communications, as in e-mail or HTTP
19
+ traffic, to indicate the type of content which is transmitted. The registry
20
+ provided in mime-types-data contains detailed information about MIME entities.
21
+ There are many types defined by RFCs and vendors, so the list is long but
22
+ invariably; don't hesitate to offer additional type definitions for
21
23
  consideration. MIME type definitions found in mime-types are from RFCs, W3C
22
- recommendations, the [IANA Media Types registry][registry], and user
24
+ recommendations, the [IANA Media Types registry][registry], the
25
+ [Apache httpd registry][httpd], the [Apache Tika media registry][tika] and user
23
26
  contributions. It conforms to RFCs 2045 and 2231.
24
27
 
25
28
  ### Data Formats Supported in this Registry
26
29
 
27
30
  This registry contains the MIME media types in four formats:
28
31
 
29
- - A YAML format matching the Ruby mime-types library objects (MIME::Type).
30
- This is the primary user-editable format for developers. It is _not_
31
- shipped with the gem due to size considerations.
32
+ - A YAML format matching the Ruby mime-types library objects (MIME::Type). This
33
+ is the primary user-editable format for developers. It is _not_ shipped with
34
+ the gem due to size considerations.
32
35
  - A JSON format converted from the YAML format. Prior to Ruby mime-types 3.0,
33
36
  this was the main consumption format and is still recommended for any
34
- implementation that does not wish to implement the columnar format, which
35
- has a significant implementation effort cost.
36
- - An encoded text format splitting the data for each MIME type across
37
- multiple files. This columnar data format reduces the minimal data load
38
- substantially, resulting in a performance improvement at the cost of more
39
- complex code for loading the data on-demand. This is the default format for
40
- Ruby mime-types 3.0.
41
- - An encoded text format for use with [`mini_mime`][] (as of 3.2021.1108). This
42
- can be enabled with:
37
+ implementation that does not wish to implement the columnar format, which has
38
+ a significant implementation effort cost.
39
+ - An encoded text format splitting the data for each MIME type across multiple
40
+ files. This columnar data format reduces the minimal data load substantially,
41
+ resulting in a performance improvement at the cost of more complex code for
42
+ loading the data on-demand. This is the default format for Ruby mime-types
43
+ 3.0.
44
+ - An encoded text format for use with [`mini_mime`][minimime]. This can be
45
+ enabled with:
43
46
 
44
47
  ```ruby
45
48
  MiniMime::Configuration.ext_db_path =
@@ -50,24 +53,29 @@ This registry contains the MIME media types in four formats:
50
53
 
51
54
  ## mime-types-data Modified Semantic Versioning
52
55
 
53
- mime-types-data uses a heavily modified [Semantic Versioning][] scheme to
54
- indicate that the data formats compatibility based on a `SCHEMA` version and
55
- the date of the data update: `SCHEMA.YEAR.MONTHDAY`.
56
+ mime-types-data uses a [Semantic Versioning][semver] scheme heavily modified
57
+ with [Calendar Versioning][calver] aspects to indicate that the data formats
58
+ compatibility based on a `SCHEMA` version and the date of the data update:
59
+ `SCHEMA.YEAR.MONTHDAY`.
56
60
 
57
61
  1. If an incompatible data format change is made to any of the supported
58
- formts, `SCHEMA` will be incremented. The current `SCHEMA` is 3, supporting
59
- the YAML, JSON, and columnar formats required for Ruby mime-types 3.0.
62
+ formats, `SCHEMA` will be incremented. The current `SCHEMA` is 3, supporting
63
+ the YAML, JSON, columnar, and mini-mime formats required for Ruby mime-types
64
+ 3.0.
60
65
 
61
- 2. When the data is updated, the `YEAR.MONTHDAY` combination will be updated.
62
- An update on the last day of October 2015 would be written as `2015.1031`,
63
- resulting in the full version of `3.2015.1031`.
66
+ 2. When the data is updated, the `YEAR.MONTHDAY` combination will be updated. An
67
+ update on the last day of October 2025 would be written as `2025.1031`,
68
+ resulting in the full version of `3.2025.1031`.
64
69
 
65
70
  3. If multiple versions of the data need to be released on the same day due to
66
- error, there will be an additional `REVISION` field incremented on the end
67
- of the version. Thus, if three revisions need to be published on October
68
- 31st, 2015, the last release would be `3.2015.1031.2` (remember that the
69
- first release has an implied `0`.)
71
+ error, there will be an additional `REVISION` field incremented on the end of
72
+ the version. Thus, if three revisions need to be published on October 31st,
73
+ 2015, the last release would be `3.2015.1031.2` (remember that the first
74
+ release has an implied `0`.)
70
75
 
71
- [registry]: https://www.iana.org/assignments/media-types/media-types.xhtml
72
- [semantic versioning]: http://semver.org/
73
- [`mini_mime`]: https://github.com/discourse/mini_mime
76
+ [registry]: https://www.iana.org/assignments/media-types/media-types.xml
77
+ [semver]: http://semver.org/
78
+ [minimime]: https://github.com/discourse/mini_mime
79
+ [httpd]: https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
80
+ [tika]: https://github.com/apache/tika/blob/main/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
81
+ [calver]: https://calver.org