1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Commit Graph

62 Commits

Author SHA1 Message Date
Sebastian Malton
423ffd44dc
Fix slackLink in catalog becoming out of date (#5108) 2022-04-08 11:12:06 -04:00
Panu Horsmalahti
1a29759bff
Enable consistent-type-imports eslint rule (#5205) 2022-04-06 10:34:16 -04:00
Iku-turso
a277cfcf02
Technical requirements for behavioural unit tests (#5084)
* Implement a lot of technical requirements for behavioural unit tests

Note: the crux of this was to make routing env-agnostic, and not based on URLs as magic strings, but instead something type-enforced.

Note: extension-based routes comply to same exact interface by "late-registering" their routes when installed. Routes are just injectables.

Note: another chunk of global shared state is no more.

Note: a lot of explicit side effects have been cornered to injectables.

Note: a lot of stuff has become reactive as part if this.

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Make a directory commonly available

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Require id for <Select /> to prevent non-deterministic renders

This was caused by global state in a 3rd party lib: "react-select".

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Specify id for all <Select /> to satisfy previous commit

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Prevent explicit side effect in component by using existing dependency instead

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Extract instantiation of "conf" as injectables for causing side effects

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Introduce a legacy-helper to make gradual refactoring of inheritors of Singleton easier

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Make legacy unit tests for hotbar green and more simple by using the new legacy helper

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Temporarily kludge all unit tests green with a disclaimer about allowing side-effects

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Remove kludge in previous commit by explicitly permitting specific side effects where old unit tests require it

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Prevent old unit test with side effects from accessing file system

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Migrate to actual typing for di.permitSideEffects

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Prevent unit tests from failing because of non-standard method of HTML-element not present in js-dom

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Adapt integration tests to recent changes

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Fix code style

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Fix artifact from bad rebase

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Add a deprecation from a review comment

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Remove change that is not required

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove redundant comment

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix code style

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove redundant file

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix bad merge

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Improve variable name

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Tweak logger interface to be more descriptive

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Make injecting legacy singleton always provide new instance

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove conditional typing when not needed

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Improve naming of variable

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove unnecessary code style changes

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove flag for causing side effects from too broad scope

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Override side-effects in unit test using injectable instead of monkey patching

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Flag some side-effects and add general overrides

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Fix unit tests in CI by removing explicit side-effect

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Remove explicit side-effect from getting default shell

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Introduce abstraction for getting absolute paths

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Switch to using abstraction for getting absolute path to control explicit side effect

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Introduce abstraction for joining paths

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Switch to using abstraction for joining paths to control explicit side effect

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix fake implementation for join paths

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix test after removing explicit side effect

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove explicit side effects from kubeconfig-syncs

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix arguments after removing explicit side effect

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Make registrators not async for not being needed anymore

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Make generalCatalogEntities non-observable, as there is no requirement

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Remove redundant code

Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>

* Simplify logic for registering general catalog entity sources

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Add TODO

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Replace function for getting application menu items with reactive solution

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Fix typo in interface name

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove global shared state usages of hot bar store

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Remove redundant enum

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
2022-03-31 16:57:05 +03:00
Sebastian Malton
8088d3b5c2
Remove ExtenedMap, ToggleSet, and observable versions (#3310)
- Switch to helper functions instead. They don't impact the prototype
  tree and it means that we don't need to introduce versions that are
  both observable and "normal"

- Tidy <ItemListLayout> and hiddenTableColumns to not need
  pre-initialization

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2022-02-16 18:20:22 -05:00
Sebastian Malton
600bd659f6
Enforce member-delimiter-style using eslint (#4870) 2022-02-16 14:43:03 -05:00
Sebastian Malton
8d8491a035
Ensure that CatalogEntity.getName() and CatalogEntity.getId() are always used (#4763) 2022-01-27 14:42:19 -05:00
Jari Kolehmainen
b7cb10521e
Drop old (< 3.0) cluster-store migrations (#4718) 2022-01-19 08:27:34 -05:00
Janne Savolainen
589472c2b5
Shorten license header to reduce amount of clutter in top of the files (#4709)
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-18 10:18:10 +02:00
Janne Savolainen
e1a6d4c4a9
Merge remote-tracking branch 'origin/master' into eliminate-gst-from-app-paths 2022-01-10 17:13:20 +02:00
Sebastian Malton
fa3708c879
Add eslint:recommended lint rule (#4577) 2022-01-07 08:38:21 -05:00
Janne Savolainen
ff9e9bd169
Re-implement some Extension API features using injectables
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-07 12:10:02 +02:00
Janne Savolainen
9d33fff906
Cascade different refactorings to eliminate global shared state from app paths
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-01-05 13:26:49 +02:00
Sebastian Malton
c0e0408c9b Remove all 'NonBreakingSpace' characters from the repo
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-12-10 13:06:33 -05:00
Sebastian Malton
c6dce043a7
Lint: comma-spacing (error) & comma-dangle (error) (#4200)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-11-02 17:38:20 -04:00
Sebastian Malton
41863e87ce
Lint: object-curly-spacing (error) (#4198) 2021-11-01 08:45:45 -04:00
Sebastian Malton
f297407156
Stop using @electron/remote to obtain app.getPath() (#4078)
* Stop using remote to obtain app.getPath()

- Initialize entire map in bootstrap()

- Updated unit tests

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Resolve PR comments

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix test

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix build

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Ensure that init can only be called once and catch errors

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Replace basically all uses of app.getPath() with AppPaths.get()

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix unit tests

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-10-27 21:07:41 -04:00
Sebastian Malton
cd14097668
Fix errors in HotbarStore migrations (#4105) 2021-10-22 09:03:35 -04:00
Sebastian Malton
5998b4ca84
Upgrade js-yaml to 4.X (#3623) 2021-10-18 10:03:10 -04:00
Sebastian Malton
0cd3931d67
Don't run store migrations on renderer (#3968) 2021-10-08 09:15:40 -04:00
Lauri Nevala
36b64f73bc
Ignore clusters without kubeconfigPath on kubeconfig sync migration (#3707)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2021-09-01 12:44:13 +03:00
Sebastian Malton
59933507e4
Upgrade to electron 12 and Node 14 (#3572)
Upgrade to electron 12 and Node 14

- Compute cluster ID for tests
- Switch to temporary appData path while testing

Signed-off-by: Sebastian Malton <sebastian@malton.name>

Co-authored-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-08-26 12:13:31 -04:00
Sebastian Malton
3fe8014f11
Move Hotbar types to seperate file (#3532) 2021-08-03 14:38:36 -04:00
Sebastian Malton
a6e91fc34a
Move cluster related types and function into seperate files (#3530) 2021-08-03 10:36:14 -04:00
Sebastian Malton
da53aa0d79
Treat default weblinks same as any other weblinks (#3385)
- Use seenWeblink and check for non-arrays

- Spread out link validation

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-22 20:28:01 -04:00
Sebastian Malton
0204eef848
Filter out undefined values in hotbar-store migration (#3489)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-22 14:13:32 -04:00
Sebastian Malton
b7a24f4520
Default to empty array for 500Beta13 migration (#3461)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-21 07:19:23 +03:00
Sebastian Malton
873a165a60
Fix clusters not being defined (#3392)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-15 12:59:43 -04:00
Sebastian Malton
9b2031159d
Ignore extensions' clusters when adding to kubeConfigSync (#3313) 2021-07-12 12:05:05 -04:00
Sebastian Malton
db968b8a5b
Fix user-store/5.0.3-beta.1.ts comment (#3311)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-08 16:13:29 +03:00
Sebastian Malton
497e47b277
Automatically sync all kubeConfigPaths (#3227) 2021-07-07 16:29:58 -04:00
Sebastian Malton
803c3a3d34
Unblock subsequent Singleton.createInstance() (#3225)
- Also fix clusters with unknown workspaces

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-06 17:16:04 +03:00
Sebastian Malton
05311c4b1b
Correctly migrate duplicate clusters in workspaces (#3211)
- Keep track of the set of all workspaces that each duplicated entry was
  a part of

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-07-02 14:21:04 +03:00
Sebastian Malton
45cafaa420
Fix cluster-store and hotbar-store migrations (#3208)
- kubeConfigPath was erroniously set to cluster.id
- Skip empty workspace hotbars
- Output a warn if updating or creating a cluster throws in
  cluster-store

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-29 09:42:32 -04:00
Alex Andreev
c0dbd5878d
Filtering out clusters by metadata.id (#3200)
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-06-28 18:28:54 +03:00
Sebastian Malton
2788025fea
Switch to deterministic cluster IDs (#3201) 2021-06-28 11:14:55 -04:00
Sebastian Malton
51655884c7
Fix hotbar migration of workspaces (#3178) 2021-06-25 09:55:25 -04:00
Jari Kolehmainen
4096b87f99
Release v5.0.0-beta.10 (#3141)
* release v5.0.0-rc.0

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix release-drafter.yml

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Add ability to force tag

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* release v5.0.0-rc.0

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix release-drafter.yml

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Add ability to force tag

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* v5.0.0-beta.10

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix migrations

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-06-22 11:09:51 +03:00
Sebastian Malton
9b04e611a4
Transition workspaces to hotbars (#3079) 2021-06-18 12:05:44 -04:00
Sebastian Malton
7f51e3addd
Make CatalogEntity labels clickable (#3075)
- Transition workspace's to be labels

- Fix migrations to support multiple migrations for the same version

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-18 08:44:28 -04:00
Sebastian Malton
eb45f45a7a
Add context menu entry for deleting local clusters (#2923) 2021-06-17 12:19:22 -04:00
Sebastian Malton
817c8e00db
Simplify add cluster view (#2716)
- Only shows editor, and will save all text to file

- Reports some validation errors, but doesn't block the add cluster
  button

- Cleanup kube helpers to facilitate clearer FS interactions

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-06-07 08:14:43 -04:00
Sebastian Malton
5ed4537979
Turn on noUnusedLocals, noImplicitReturns, importsNotUsedAsValues: error, and isolatedModules (#2777) 2021-05-19 12:11:54 -04:00
Sebastian Malton
623973add0
Add license header to more files (#2776)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-05-17 07:19:45 +03:00
Alex Andreev
a930d5f14f
Hotbar disabled items (#2710)
* Saving more entity data to HotbarItem

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Adding generic MaterialTooltip component

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Move HotbarCell to separate component

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Abstract out HotbarEntityIcon from HotbarIcon

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Styling disabled hotbar items

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Migration for adding extra data to hotbar items

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Testing migration

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Some cleaning up

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Bump migration version

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Bump app version in package.json

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
2021-05-13 10:24:58 +03:00
Jari Kolehmainen
8fff064e0c
Fix kubeconfig-sync issues (#2692)
- Removed `getFreePort` as its use is always a race condition. Change
  all uses of it to retrive the port after listening

- Added `getPortFrom` as a helper function to read a port from a stream

- Remove `Cluster.ownerRef` as it is outdated and no longer needed for 5.0

- Remove `Cluster.enabled`, no longer needed because of above

- Removed `Cluster.init`, moved its contents into `Cluster.constructor`
  as nothing in that function is asyncronous. Currently only being run
  on `main` as a stop gap until `renderer` gets its own version of
  `Cluster`

- Refactored `LensProxy` so as to prevent `pty.node` (a NodeJS
  extension) being included in `webpack.extension.ts`'s run

- Removed the passing around of the proxy port as that can now be
  accessed from an instance of `LensProxy`

- purge ContextHandler's cache on disconnect

Co-authored-by: Sebastian Malton <sebastian@malton.name>
2021-05-04 15:21:15 -04:00
Sebastian Malton
afa5379ba9
Flatten user preferences in user store (#2587)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-27 09:44:02 -04:00
Jari Kolehmainen
da8cc889c4
Hotbar command palette + switching (#2552)
* fix initial hotbar not showing

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* hotbar command palette + switching

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* lint fix

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* add clickable index to switcher

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fixes

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* cleanup

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* refactor

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix typo

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fixes

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* remote notifications

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix add to hotbar

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* don't show remove-from-hotbar on catalog context menu

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix bad merge

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix bad merge

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* fix bad merge

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-22 10:07:14 +03:00
Sebastian Malton
9563ead2e6
Fixing Singleton typing to correctly return child class (#1914)
- Add distinction between `getInstance` and `getInstanceOrCreate` since
  it is not always possible to create an instance (since you might not
  know the correct arguments)

- Remove all the `export const *Store = *Store.getInstance<*Store>();`
  calls as it defeats the purpose of `Singleton`. Plus with the typing
  changes the appropriate `*Store.getInstance()` is "short enough".

- Special case the two extension export facades to not need to use
  `getInstanceOrCreate`. Plus since they are just facades it is always
  possible to create them.

- Move some other types to be also `Singleton`'s: ExtensionLoader,
  ExtensionDiscovery, ThemeStore, LocalizationStore, ...

- Fixed dev-run always using the same port with electron inspect

- Update Store documentation with new recommendations about creating
  instances of singletons

- Fix all unit tests to create their dependent singletons

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2021-04-21 09:59:59 -04:00
Jari Kolehmainen
99a464c61d
Catalog & Hotbar - initial groundwork (#2418)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-04-09 09:11:58 +03:00
Sebastian Malton
0b99377feb
add user-store file name migration (#733)
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
2021-03-23 11:56:04 -04:00