v9 roadmap
kanadgupta opened this issue · 7 comments
- Add deprecation notice to
docs
commands - Remove
workingDirectory
argument fromopenapi
family of commands (RM-7754, #904) - #645
- #962
- Auto-publish GitHub releases (e.g., remove
gh
CLI usage) - Remove
lastUpdatedHash
insertion (internal ticket) - Make sure JSON import assertions are future-proof (or aren't used at all) #993
- #889
- Migrate to ESM (#856)
- Do some QA to ensure no Node
ExperimentalWarning
s show up #901
- Do some QA to ensure no Node
- Drop support for Node 14 + 16 (release schedule) #900
- Bump lockfile to v3
- Remove
docs:edit
command #902 - Remove
oas
command #902 - Remove
swagger
command #902 - (Probably separate from the ESM migration) look into any clean-up/modernizations we can do in the
tsconfig
#905 - flip the
isPublic
flag in theversions:create
andversions:update
commands to behidden
so it's consistent with the other flags and with our API endpoints #906 - #895
- #857
- Use native Node 18
fetch
andFormData
andin favor ofmsw
node-fetch
andandnock
formdata-node
, convert everything over accordingly #1000
lower priority
- Volta guidance?
- Remove logic for triple tagging (i.e.
v9
,v9.0.0
,)9.0.0
- Optimize GHA build process
Maybe we also migrate to ESM? 😬
fwiw, iirc last time i looked into that you still needed to pass the --experimental
flag to Node for ESM in order to run bin/rdme
. That was like a year and a half ago though, and before we migrated to TS, so maybe things are different now.
maybe we also drop Node 16 support also when that is EOL in a few weeks. we'll want to bump the version here (in addition to everywhere else):
Line 1 in 9756d95
Now that we've got rdme guides
and rdme guides:prune
aliased to rdme docs:<cmd>
can we deprecate and remove rdme docs
?
@erunion ah yeah good callout — definitely down to add a deprecation notice but i don't think we should remove those until we're using the new /guides
routes
For dumping node-fetch
and formdata-node
for native fetch
the place where you're using formdata-node
in #856 can be replaced with this diff:
diff --git a/src/lib/streamSpecToRegistry.ts b/src/lib/streamSpecToRegistry.ts
index a73445f..9d4f68a 100644
--- a/src/lib/streamSpecToRegistry.ts
+++ b/src/lib/streamSpecToRegistry.ts
@@ -1,8 +1,4 @@
-import fs from 'node:fs';
-
-import { FormData } from 'formdata-node';
import ora from 'ora';
-import { file as tmpFile } from 'tmp-promise';
import { debug, oraOptions } from './logger.js';
import readmeAPIFetch, { handleRes } from './readmeAPIFetch.js';
@@ -15,23 +11,15 @@ import readmeAPIFetch, { handleRes } from './readmeAPIFetch.js';
*/
export default async function streamSpecToRegistry(spec: string) {
const spinner = ora({ text: 'Staging your API definition for upload...', ...oraOptions() }).start();
- // Create a temporary file to write the bundled spec to,
- // which we will then stream into the form data body
- const { path } = await tmpFile({ prefix: 'rdme-openapi-', postfix: '.json' });
- debug(`creating temporary file at ${path}`);
- await fs.writeFileSync(path, spec);
- const stream = fs.createReadStream(path);
-
- debug('file and stream created, streaming into form data payload');
+ debug('preparing spec into form data payload');
const formData = new FormData();
- formData.append('spec', {
- type: 'application/json',
- name: 'openapi.json',
- [Symbol.toStringTag]: 'File',
- stream() {
- return stream;
- },
- });
+ formData.append(
+ spec,
+ new Blob([spec], {
+ type: 'application/json',
+ }),
+ 'openapi.json',
+ );
const options = {
body: formData,