@grafana/create-plugin 4.2.4-canary.823.fa85409.0 → 4.2.4

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # v4.2.4 (Fri Mar 15 2024)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - Create Plugin: upgrade @grafana/eslint-config to 7.0.0 [#822](https://github.com/grafana/plugin-tools/pull/822) ([@oshirohugo](https://github.com/oshirohugo))
6
+
7
+ #### Authors: 1
8
+
9
+ - Hugo Kiyodi Oshiro ([@oshirohugo](https://github.com/oshirohugo))
10
+
11
+ ---
12
+
1
13
  # v4.2.3 (Thu Mar 14 2024)
2
14
 
3
15
  #### 🐛 Bug Fix
@@ -40,6 +40,7 @@ In case you want to proceed as is please use the ${chalk.bold('--force')} flag.)
40
40
  updatePackageJson({
41
41
  onlyOutdated: true,
42
42
  ignoreGrafanaDependencies: false,
43
+ devOnly: false,
43
44
  });
44
45
  printBlueBox({
45
46
  title: 'Update successful ✔',
@@ -50,6 +51,7 @@ ${chalk.bold.underline('Next steps:')}
50
51
  - 1. Run ${chalk.bold(`${packageManagerName} install`)} to install the package updates
51
52
  - 2. Check if you encounter any breaking changes
52
53
  (refer to our migration guide: https://grafana.com/developers/plugin-tools/migration-guides/update-from-grafana-versions/)
54
+
53
55
  ${chalk.bold('Do you have questions?')}
54
56
  Please don't hesitate to reach out in one of the following ways:
55
57
  - Open an issue in https://github.com/grafana/plugin-tools
@@ -194,6 +194,34 @@ describe('Utils / NPM', () => {
194
194
  const result = hasNpmDependenciesToUpdate();
195
195
  expect(result).toBe(true);
196
196
  });
197
+ test('It should return false when there are no dev dependencies to update in devOnly mode', () => {
198
+ const packageJson = {
199
+ dependencies: {
200
+ '@grafana/ui': '10.0.0',
201
+ react: '18.2.0',
202
+ },
203
+ devDependencies: {
204
+ '@testing-library/react': '12.0.0',
205
+ sass: '1.0.0',
206
+ },
207
+ scripts: {},
208
+ };
209
+ const latestPackageJson = {
210
+ dependencies: {
211
+ '@grafana/ui': '10.0.0',
212
+ react: '18.2.1',
213
+ },
214
+ devDependencies: {
215
+ '@testing-library/react': '12.0.0',
216
+ sass: '1.0.0',
217
+ },
218
+ scripts: {},
219
+ };
220
+ mocks.getPackageJson.mockReturnValue(packageJson);
221
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
222
+ const result = hasNpmDependenciesToUpdate({ devOnly: true });
223
+ expect(result).toBe(false);
224
+ });
197
225
  });
198
226
  describe('getPackageJsonUpdatesAsText', () => {
199
227
  test("It should return an empty text when there's nothing to update", () => {
@@ -242,6 +270,62 @@ describe('Utils / NPM', () => {
242
270
  expect(result).toContain('sass');
243
271
  expect(result).toContain('react');
244
272
  });
273
+ test('It should not return the related text when devOnly and only dependencies to update', () => {
274
+ const packageJson = {
275
+ dependencies: {
276
+ '@grafana/ui': '10.0.0',
277
+ react: '18.2.0',
278
+ },
279
+ devDependencies: {
280
+ '@testing-library/react': '12.0.0',
281
+ sass: '1.0.0',
282
+ },
283
+ scripts: {},
284
+ };
285
+ const latestPackageJson = {
286
+ dependencies: {
287
+ '@grafana/ui': '10.0.0',
288
+ react: '18.2.1',
289
+ },
290
+ devDependencies: {
291
+ '@testing-library/react': '12.0.0',
292
+ sass: '1.0.0',
293
+ },
294
+ scripts: {},
295
+ };
296
+ mocks.getPackageJson.mockReturnValue(packageJson);
297
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
298
+ const result = getPackageJsonUpdatesAsText({ devOnly: true });
299
+ expect(result).toBe('');
300
+ });
301
+ test('It should return the related text when devOnly and only dev dependencies to update', () => {
302
+ const packageJson = {
303
+ dependencies: {
304
+ '@grafana/ui': '10.0.0',
305
+ react: '18.2.0',
306
+ },
307
+ devDependencies: {
308
+ '@testing-library/react': '12.0.0',
309
+ sass: '1.0.0',
310
+ },
311
+ scripts: {},
312
+ };
313
+ const latestPackageJson = {
314
+ dependencies: {
315
+ '@grafana/ui': '10.0.0',
316
+ react: '18.2.0',
317
+ },
318
+ devDependencies: {
319
+ '@testing-library/react': '12.0.0',
320
+ sass: '1.0.1',
321
+ },
322
+ scripts: {},
323
+ };
324
+ mocks.getPackageJson.mockReturnValue(packageJson);
325
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
326
+ const result = getPackageJsonUpdatesAsText({ devOnly: true });
327
+ expect(result).toContain('sass');
328
+ });
245
329
  });
246
330
  describe('updatePackageJson()', () => {
247
331
  test('It should not change the package.json if nothing was updated', () => {
@@ -309,5 +393,81 @@ describe('Utils / NPM', () => {
309
393
  scripts: {},
310
394
  });
311
395
  });
396
+ test('It should not change the package.json when devOnly is true and only non dev dependencies changed', () => {
397
+ const packageJson = {
398
+ dependencies: {
399
+ '@grafana/ui': '10.0.0',
400
+ react: '18.2.0',
401
+ },
402
+ devDependencies: {
403
+ '@testing-library/react': '12.0.0',
404
+ sass: '1.0.0',
405
+ },
406
+ scripts: {},
407
+ };
408
+ const latestPackageJson = {
409
+ dependencies: {
410
+ '@grafana/ui': '10.0.0',
411
+ react: '18.2.1',
412
+ },
413
+ devDependencies: {
414
+ '@testing-library/react': '12.0.0',
415
+ sass: '1.0.0',
416
+ },
417
+ scripts: {},
418
+ };
419
+ mocks.getPackageJson.mockReturnValue(packageJson);
420
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
421
+ updatePackageJson({ devOnly: true });
422
+ expect(mocks.writePackageJson).toHaveBeenCalledWith({
423
+ dependencies: {
424
+ '@grafana/ui': '10.0.0',
425
+ react: '18.2.0',
426
+ },
427
+ devDependencies: {
428
+ '@testing-library/react': '12.0.0',
429
+ sass: '1.0.0',
430
+ },
431
+ scripts: {},
432
+ });
433
+ });
434
+ test('It should change the package.json when devOnly is true but only update dev dependencies', () => {
435
+ const packageJson = {
436
+ dependencies: {
437
+ '@grafana/ui': '10.0.0',
438
+ react: '18.2.0',
439
+ },
440
+ devDependencies: {
441
+ '@testing-library/react': '12.0.0',
442
+ sass: '1.0.0',
443
+ },
444
+ scripts: {},
445
+ };
446
+ const latestPackageJson = {
447
+ dependencies: {
448
+ '@grafana/ui': '10.0.0',
449
+ react: '18.2.1',
450
+ },
451
+ devDependencies: {
452
+ '@testing-library/react': '12.0.0',
453
+ sass: '1.0.1',
454
+ },
455
+ scripts: {},
456
+ };
457
+ mocks.getPackageJson.mockReturnValue(packageJson);
458
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
459
+ updatePackageJson({ devOnly: true });
460
+ expect(mocks.writePackageJson).toHaveBeenCalledWith({
461
+ dependencies: {
462
+ '@grafana/ui': '10.0.0',
463
+ react: '18.2.0',
464
+ },
465
+ devDependencies: {
466
+ '@testing-library/react': '12.0.0',
467
+ sass: '1.0.1',
468
+ },
469
+ scripts: {},
470
+ });
471
+ });
312
472
  });
313
473
  });
@@ -63,7 +63,7 @@ export function getPackageJsonUpdates(options = {}) {
63
63
  devDependencyUpdates = ignoreGrafanaDependencies(devDependencyUpdates, prevGrafanaDependencies);
64
64
  }
65
65
  return {
66
- dependencyUpdates,
66
+ dependencyUpdates: options.devOnly ? {} : dependencyUpdates,
67
67
  devDependencyUpdates,
68
68
  };
69
69
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grafana/create-plugin",
3
- "version": "4.2.4-canary.823.fa85409.0",
3
+ "version": "4.2.4",
4
4
  "repository": {
5
5
  "directory": "packages/create-plugin",
6
6
  "url": "https://github.com/grafana/plugin-tools"
@@ -87,5 +87,5 @@
87
87
  "engines": {
88
88
  "node": ">=20"
89
89
  },
90
- "gitHead": "fa854094ad6e1bfc9b77e440e9daa31d24ee8694"
90
+ "gitHead": "b8e8992b5515564b3c6aabd98696d1b32f9d7baa"
91
91
  }
@@ -53,6 +53,7 @@ In case you want to proceed as is please use the ${chalk.bold('--force')} flag.)
53
53
  updatePackageJson({
54
54
  onlyOutdated: true,
55
55
  ignoreGrafanaDependencies: false,
56
+ devOnly: false,
56
57
  });
57
58
 
58
59
  printBlueBox({
@@ -64,6 +65,7 @@ ${chalk.bold.underline('Next steps:')}
64
65
  - 1. Run ${chalk.bold(`${packageManagerName} install`)} to install the package updates
65
66
  - 2. Check if you encounter any breaking changes
66
67
  (refer to our migration guide: https://grafana.com/developers/plugin-tools/migration-guides/update-from-grafana-versions/)
68
+
67
69
  ${chalk.bold('Do you have questions?')}
68
70
  Please don't hesitate to reach out in one of the following ways:
69
71
  - Open an issue in https://github.com/grafana/plugin-tools
@@ -267,6 +267,39 @@ describe('Utils / NPM', () => {
267
267
  const result = hasNpmDependenciesToUpdate();
268
268
  expect(result).toBe(true);
269
269
  });
270
+
271
+ test('It should return false when there are no dev dependencies to update in devOnly mode', () => {
272
+ const packageJson = {
273
+ dependencies: {
274
+ '@grafana/ui': '10.0.0',
275
+ react: '18.2.0',
276
+ },
277
+ devDependencies: {
278
+ '@testing-library/react': '12.0.0',
279
+ sass: '1.0.0',
280
+ },
281
+ scripts: {},
282
+ };
283
+
284
+ const latestPackageJson = {
285
+ dependencies: {
286
+ '@grafana/ui': '10.0.0',
287
+ react: '18.2.1', // changed
288
+ },
289
+ // remains the same
290
+ devDependencies: {
291
+ '@testing-library/react': '12.0.0',
292
+ sass: '1.0.0',
293
+ },
294
+ scripts: {},
295
+ };
296
+
297
+ mocks.getPackageJson.mockReturnValue(packageJson);
298
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
299
+
300
+ const result = hasNpmDependenciesToUpdate({ devOnly: true });
301
+ expect(result).toBe(false);
302
+ });
270
303
  });
271
304
 
272
305
  describe('getPackageJsonUpdatesAsText', () => {
@@ -322,6 +355,70 @@ describe('Utils / NPM', () => {
322
355
  expect(result).toContain('sass');
323
356
  expect(result).toContain('react');
324
357
  });
358
+
359
+ test('It should not return the related text when devOnly and only dependencies to update', () => {
360
+ const packageJson = {
361
+ dependencies: {
362
+ '@grafana/ui': '10.0.0',
363
+ react: '18.2.0',
364
+ },
365
+ devDependencies: {
366
+ '@testing-library/react': '12.0.0',
367
+ sass: '1.0.0',
368
+ },
369
+ scripts: {},
370
+ };
371
+
372
+ const latestPackageJson = {
373
+ dependencies: {
374
+ '@grafana/ui': '10.0.0',
375
+ react: '18.2.1', // changed
376
+ },
377
+ devDependencies: {
378
+ '@testing-library/react': '12.0.0',
379
+ sass: '1.0.0',
380
+ },
381
+ scripts: {},
382
+ };
383
+
384
+ mocks.getPackageJson.mockReturnValue(packageJson);
385
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
386
+
387
+ const result = getPackageJsonUpdatesAsText({ devOnly: true });
388
+ expect(result).toBe('');
389
+ });
390
+
391
+ test('It should return the related text when devOnly and only dev dependencies to update', () => {
392
+ const packageJson = {
393
+ dependencies: {
394
+ '@grafana/ui': '10.0.0',
395
+ react: '18.2.0',
396
+ },
397
+ devDependencies: {
398
+ '@testing-library/react': '12.0.0',
399
+ sass: '1.0.0',
400
+ },
401
+ scripts: {},
402
+ };
403
+
404
+ const latestPackageJson = {
405
+ dependencies: {
406
+ '@grafana/ui': '10.0.0',
407
+ react: '18.2.0',
408
+ },
409
+ devDependencies: {
410
+ '@testing-library/react': '12.0.0',
411
+ sass: '1.0.1', //changed
412
+ },
413
+ scripts: {},
414
+ };
415
+
416
+ mocks.getPackageJson.mockReturnValue(packageJson);
417
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
418
+
419
+ const result = getPackageJsonUpdatesAsText({ devOnly: true });
420
+ expect(result).toContain('sass');
421
+ });
325
422
  });
326
423
 
327
424
  describe('updatePackageJson()', () => {
@@ -398,5 +495,91 @@ describe('Utils / NPM', () => {
398
495
  scripts: {},
399
496
  });
400
497
  });
498
+
499
+ test('It should not change the package.json when devOnly is true and only non dev dependencies changed', () => {
500
+ const packageJson = {
501
+ dependencies: {
502
+ '@grafana/ui': '10.0.0',
503
+ react: '18.2.0',
504
+ },
505
+ devDependencies: {
506
+ '@testing-library/react': '12.0.0',
507
+ sass: '1.0.0',
508
+ },
509
+ scripts: {},
510
+ };
511
+
512
+ const latestPackageJson = {
513
+ dependencies: {
514
+ '@grafana/ui': '10.0.0',
515
+ react: '18.2.1', //changed
516
+ },
517
+ devDependencies: {
518
+ '@testing-library/react': '12.0.0',
519
+ sass: '1.0.0',
520
+ },
521
+ scripts: {},
522
+ };
523
+
524
+ mocks.getPackageJson.mockReturnValue(packageJson);
525
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
526
+
527
+ updatePackageJson({ devOnly: true });
528
+ //should have the combined content
529
+ expect(mocks.writePackageJson).toHaveBeenCalledWith({
530
+ dependencies: {
531
+ '@grafana/ui': '10.0.0',
532
+ react: '18.2.0',
533
+ },
534
+ devDependencies: {
535
+ '@testing-library/react': '12.0.0',
536
+ sass: '1.0.0',
537
+ },
538
+ scripts: {},
539
+ });
540
+ });
541
+
542
+ test('It should change the package.json when devOnly is true but only update dev dependencies', () => {
543
+ const packageJson = {
544
+ dependencies: {
545
+ '@grafana/ui': '10.0.0',
546
+ react: '18.2.0',
547
+ },
548
+ devDependencies: {
549
+ '@testing-library/react': '12.0.0',
550
+ sass: '1.0.0',
551
+ },
552
+ scripts: {},
553
+ };
554
+
555
+ const latestPackageJson = {
556
+ dependencies: {
557
+ '@grafana/ui': '10.0.0',
558
+ react: '18.2.1', //changed
559
+ },
560
+ devDependencies: {
561
+ '@testing-library/react': '12.0.0',
562
+ sass: '1.0.1', //changed
563
+ },
564
+ scripts: {},
565
+ };
566
+
567
+ mocks.getPackageJson.mockReturnValue(packageJson);
568
+ mocks.getLatestPackageJson.mockReturnValue(latestPackageJson);
569
+
570
+ updatePackageJson({ devOnly: true });
571
+ //should have the combined content
572
+ expect(mocks.writePackageJson).toHaveBeenCalledWith({
573
+ dependencies: {
574
+ '@grafana/ui': '10.0.0',
575
+ react: '18.2.0', //changed but devOnly so should not be changed in the file
576
+ },
577
+ devDependencies: {
578
+ '@testing-library/react': '12.0.0',
579
+ sass: '1.0.1',
580
+ },
581
+ scripts: {},
582
+ });
583
+ });
401
584
  });
402
585
  });
@@ -8,6 +8,7 @@ type UpdateSummary = Record<string, { prev: string | null; next: string | null }
8
8
  type UpdateOptions = {
9
9
  onlyOutdated?: Boolean;
10
10
  ignoreGrafanaDependencies?: boolean;
11
+ devOnly?: boolean;
11
12
  };
12
13
 
13
14
  export function getNpmDependencyUpdatesAsText(dependencyUpdates: UpdateSummary) {
@@ -93,7 +94,7 @@ export function getPackageJsonUpdates(options: UpdateOptions = {}) {
93
94
  }
94
95
 
95
96
  return {
96
- dependencyUpdates,
97
+ dependencyUpdates: options.devOnly ? {} : dependencyUpdates,
97
98
  devDependencyUpdates,
98
99
  };
99
100
  }
@@ -21,7 +21,7 @@
21
21
  "@babel/core": "^7.21.4",
22
22
  "@grafana/e2e": "{{ grafanaVersion }}",
23
23
  "@grafana/e2e-selectors": "{{ grafanaVersion }}",
24
- "@grafana/eslint-config": "^6.0.0",
24
+ "@grafana/eslint-config": "^7.0.0",
25
25
  "@grafana/tsconfig": "^1.2.0-rc1",
26
26
  "@swc/core": "^1.3.90",
27
27
  "@swc/helpers": "^0.5.0",