summaryrefslogtreecommitdiff
path: root/support/pkgcheck/CHANGES.md
blob: ade233c38d2a8f9ddcf76fa4b0d5260ef333bb91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# Changelog

- the x.y.z is the version of the source code which follows semantic versioning
- the combination of version and version date designates the version of the package as it is uploaded to CTAN


# Changes

## 2022-05-26 (3.0.0)
### Added
   - fatal messages Fnnnn go to stderr instead of stdout
   - add generation of shell completion support for various shells,
     which are bash, elvish, fish, powershell, zsh
   - now a config file can be specified
     - currently only exceptions can be specified when checking 
       the paths of files in the TDS archive
   - new messages F0008, F0009 and F0010 regarding reading config file
   - new message I0008 to tell which config file is used
   - new messages I0009, W0009 giving more information about config file
     usage (only if --verbose is given)
   - enhance documentation
### Changed
   - (devel) reformatting source code
   - (devel) using clap with derive feature instead of structopt-derive
   - reorganized this changelog
   - in w0002 output remove empty line at end
   - don't complain if filename contains `@` , `=`, or `:` characters. These
     characters are not recommended to be used but there could be a necessity.

## 2022-01-15 (2.4.0)
### Changed
   - for latex-lab and latex-lab-dev use the real directory name 'latex' resp.
     'latex-dev' when checking path names in the TDS zip archive

## 2022-01-02
### Added
   - add .xray to temporary file endings
   - (experimental) when URL checking decode some html entities if they appear in URLs
### Changed
   - switch to Rust edition 2021
   - switch from blake2 to blake3 library for checksumming
   - unzipping now done internally.  /usr/bin/unzip no longer required

## 2021-10-03 (2.3.0)
### Added
   - add temporary file endings .hd and tpt (pointed to by Karl Berry)
   - add option `--ignore-same-named` to ignore same named files
   - add `.lua` to file endings recognized as scripts
   - add latex-firstaid-dev to exceptions when checking paths in the TDS archive
### Changed
   - if a URL ends with '。', which is an ideographic full stop (U+3002), remove that character
   - ignore if generated files with ending .html or .css exist (merge request from Vít Novotný).
       Reason is that documentation could also exist as html.
   - some code simplifications most of them by clippy recommendations

## 2020-11-20 (2.2.0)
### Added
   - (Experimental) instead of latex-firstaid use latex/firstaid when checking path names
     in TDS zip archive
   - new error message e0039: no doc/ top level directory in tds zip archive
   - new error message e0040: too few top level directories in tds zip archive
   - new error message e0041: map file found in path not starting with `fonts/map/dvips`
   - add more test cases
### Changed
   - small code changes due to new release of blake2 library
   - replace deprecated tempdir crate by tempfile crate
   - revive e0020 which checks for unwanted directories in the top level directory of a TDS zip
       archive.
### Fixed
   - unpack TDS zip without -a flag which was introduced in 2.0.1. According to Petra this creates
       more problems than it solves

## 2020-04-12 (2.1.0)
### Added
   - add new test case e0033
### Changed
   - improvements regarding detection of generated files (error message e0019)
     - generated REAME files caused e0019 error message when they were specified with
       a relative path name in the `\generate` statement in the .dtx resp. .ins file
     - don't issue error message when a pdf file, generated by .dtx/.ins, exists
     - don't issue error message when an existing .ins file is generated by a .dtx file
     - improved text in error message e0019
### Fixed
   - don't issue error messages when a .bat file has 0755 permission
   - call pdfinfo and unzip without specifying an absolute path so that it gets found
     when it is outside of /usr/bin (reported by Arthur Reutenauer)

## 2020-02-07 (2.0.1)
### Changed
   - use the `-a` (convert text files) flag when temporarily unzipping the TDS archive
   - crates update

## 2020-01-17 (2.0.0)
### Added
   - more error checking in TDS zip archives
     - detecting if a .dtx or .ins file is not in a subdirectory of source/ or doc/ toplevel directories (E0036)
     - detecting empty directories (W0007)
     - detecting hidden directories (E0006)
     - detecting temporary files (E0008)
       - as a special case tex/latex/tools/.tex is allowed for package latex-tools. The
         same applies for latex-tools-dev package
### Changed
   - revamped handling of line ending checks
     - reporting if a file has CR line endings only (E0037)
     - reporting if a file has inconsistent line endings (E0038)
     - reporting if a Windows file does not have Windows (CRLF) line endings (W0008)
       - a file is regarded a Windows file if its name ends with one of .bat, .cmd, .nsh or .reg
     - files with CR, or CRLF line endings will be corrected to LF
     - but windows files will be corrected to CRLF line endings
     - when correcting line endings a line ending at the end of a file will be added if required
     - renamed command line switch
       - old: -L, --correct-crlf         Correct CRLF line endings
       - new: -L, --correct-le           Correct line endings
   - other changes
     - new message F0007 when tmp directory is not writable or the tmp directory is full
     - some code simplifications
     - crates update
     - when detecting an empty file also permissions will be checked and (if requested) corrected
     - (Experimental) for latex-base-dev, latex-tools-dev, latex-graphics-dev and latex-amsmath-dev
       check for latex-dev in the path names in the TDS zip archive
     - if a file in a generated file statement contains a directory part it was correctly
       recognized but not compared correctly to the contents of the TDS zip archive

## 2019-11-28 (1.10.0)
### Added
   - more checks for a TDS zip archive
     - check for temporary files or directories
### Changed
   - remove message E0020 to report unwanted top level directory in a TDS zip archive


## 2019-11-27 (1.9.1)
### Added
   - recognize .bat files as script type
   - add test case for .bat file recognition

### 2019-11-04 (1.9.0)
### Added
   - (Experimental) for latex-base, latex-tools, latex-graphics and latex-amsmath use the real
     directory name 'latex' when checking path names in the TDS zip archive
   - New error message e0035 if a TDS zip archive is found in the unpacked directory tree
   - add testcases for w0005, w0006 and e0035

## 2019-10-01 (1.8.3)
### Added
   - (Experimental) issue warning if a file in the package tree (W0005) or in the TDS zip archive (W0006) is
     larger than 40MiB
   - (Experimental) for babel-base.tds.zip use the real package name 'babel' (instead of 'babel-base') in order
     to check if the path name contains the package name

     Both features are regarded as experimental because both contain a hard coded check. If required
     things will be changed in the future.

## 2019-08-07 (1.8.2)
### Changed
   - updating crates, requiring slight code changes in integration.rs
   - ignore windows files .nsh and .reg when checking for LF line endings

### Added
   - new error message e0034 for unwanted files in top level directory of a TDS zip archive
   - e0020 now reporting only unwanted directory in top level directory of a TDS zip archive

## 2019-07-21 (1.8.1)
### Fixed
   - correct typo in e0008 message text

## 2019-07-20 (1.8.0)
### Added
   - add a check to detect temporary files in the TDS zip archive

## 2019-06-30 (1.7.0)
### Changed
   - compiled with rust edition 2018
   - if a found http(s) link ends with "`" then the trailing "`" will be discarded

### Fixed
   - improved error message e0025 now displaying the paths of the affected
       files/directories/symlinks
   - when symlinks occur in e0025 they are reported as files

## 2019-03-29 (1.6.0)
### Changed
   - new error message e0031 when a filename contains invalid UTF-8 characters

## 2019-03-14 (1.5.0)
### Changed
   - if a symlink points to a file object outside of the package directory tree error message
     e0030 will be issued

### Fixed
   - a README can be a symlink which will now be detected properly

## 2019-03-11 (1.4.0)
### Added
   - recognizing generated files in a .dtx file when they are included using a
     filecontents resp. filecontents* environment.

## 2019-03-09 (1.3.0)
### Changed
   - checking URLs
     - when checking URLs we try to get the headers first. If this fails we try to get the web page.
     - when checking URLs and a redirect has an invalid location containing 127.0.0.1
       then we regard the url as ok
   - ignoring .tfm files when checking for duplicates
   - now checking for UTF BOMs. If a README file contains a BOM we issue an error message,
     if other files contain BOMs we issue a warning message
   - recompile with newest http library

## 2019-01-02 (1.2.0)
### Added
   - add test cases for messages e0026, e0028
   - **New feature**: checks that path names in the TDS zip archive contain the package name
     (only exception is a man page path)

### Changed
   - some code simplification

## 2018-12-26 (1.1.0)
### Added
   - enhance check for generated files which now could reside in any
     subdirectory in the package tree. This changes the format of the
     e0019 message slightly where now the path of a generated file will be
     displayed in the e0019 message
   - add a short info to the PDF documention about how to install pkgcheck

### Changed
   - change ordering of the sections in the pkgcheck.pdf document. First come the
     informational messages, then warnings and error messages and finally fatal messages.

## 2018-12-16 (1.0.0)
### Added
   - quick_intro.txt: improve wording
   - build_ctan_zip.p6: add source files to be included into CTAN zip archive
   - devnotes.md: add documentation how to build your own binary

## 2018-12-09 (1.0.0)

   - 1.0.0   First stable release