1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Go to file
Roman 2c3b510997
Mobx-6 migration (#2718)
* mobx-6 migration -- part 1

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6 migration -- part 2 (npx mobx-undecorate --keepDecorators)

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6 migration -- part 3 (more fixes)

Signed-off-by: Roman <ixrock@gmail.com>

* unwrap possible observables from IPC-messaging

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6 migration -- remove @autobind as class-decorator

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6: replacing @autobind() as method-decorator to @boundMethod

Signed-off-by: Roman <ixrock@gmail.com>

* mobx-6: use toJS()-wrapper since monkey-patching require(mobx).toJS doesn't work

Signed-off-by: Roman <ixrock@gmail.com>

* removed `@observable static`

Signed-off-by: Roman <ixrock@gmail.com>

* use {useDefineForClassFields: true} in tsconfig.json

Signed-off-by: Roman <ixrock@gmail.com>

* remove ExtendedObservableMap

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

* fix: removed makeObservable(this) from "terminal-tab.tsx"

Signed-off-by: Roman <ixrock@gmail.com>

* storage-helper refactoring

Signed-off-by: Roman <ixrock@gmail.com>

* normalize usages of #observable-value.toJSON() / attempt to catch the wind

Signed-off-by: Roman <ixrock@gmail.com>

* refactoring, more possible branch fixes + lint

Signed-off-by: Roman <ixrock@gmail.com>

* debugging cluster-view error -- part 1

Signed-off-by: Roman <ixrock@gmail.com>

* fix: refreshing cluster-view on ready

Signed-off-by: Roman <ixrock@gmail.com>

* fix: various app-crashes related to KubeObject.spec.* access from "undefined"
fix: config-map-details crash

Signed-off-by: Roman <ixrock@gmail.com>

* fix: namespace-store refactoring / saving selected-namespaces to external json-file

Signed-off-by: Roman <ixrock@gmail.com>

* fix: don't cache mobx.when(() => this.someObservable) cause might not work as expected due later call of makeObservable(this) in constructor

Signed-off-by: Roman <ixrock@gmail.com>

* fix: app-crash on editing k8s resource

Signed-off-by: Roman <ixrock@gmail.com>

* fix: restore "all namespaces" on page reload

Signed-off-by: Roman <ixrock@gmail.com>

* - fix: persist table-sort params and cluster-view's sidebar state to lens-local-storage
- new-feature: auto-open main-window's devtools in development-mode (yes/no/ugly?)

Signed-off-by: Roman <ixrock@gmail.com>

* fix: crd definition details -> crashing with <AceEditor mode="json"> (added missing mode-file in ace-editor.tsx)

Signed-off-by: Roman <ixrock@gmail.com>

* fix: crd definitions -> groups selector couldn't deselect last selected option

Signed-off-by: Roman <ixrock@gmail.com>

* refactoring: extensions-api exports clarification for "@k8slens/extensions"

Signed-off-by: Roman <ixrock@gmail.com>

* fix: various app-crashes related to kube-events (events page, some details page, overview, etc.)

Signed-off-by: Roman <ixrock@gmail.com>

* Reverted "use {useDefineForClassFields: true} in tsconfig.json" (various app-crash fixes)
This flag seems to be not possible to use with class-inheritance in some cases.

Example / demo:
`KubeObject` class has initial type definitions for the fields like: "metadata", "kind", etc.
and constructor() has Object.assign(this, data);
Meanwhile child class, e.g. KubeEvent inherited from KubeObject and has it's own extra type definitions for underlying resource, e.g. "involvedObject", "source", etc.

So calling super(data) doesn't work as expected for child class as it's own type definitions overwrites data from parent's constructor with `undefined` at later point.

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge lint-fixes

Signed-off-by: Roman <ixrock@gmail.com>

* catalog.tsx / catalog-entities.store.ts refactoring & fixes

Signed-off-by: Roman <ixrock@gmail.com>

* fix: Catalog -> Browse all tab

Signed-off-by: Roman <ixrock@gmail.com>

* fix: CommandPalette doesn't appear from global menu by click/hotkey

Signed-off-by: Roman <ixrock@gmail.com>

* - Merging interfaces & classses to avoid overwriting fields from parent's super(data)-call with Object.assign(this, data). Otherwise use "declare" keyword at class field definition.

- Revamping {useDefineForClassFields: true} to avoid issues with non-observable class fields in some cases (from previous commit):

```
@observer
export class CommandContainer extends React.Component<CommandContainerProps> {
  // without some defined initial value "commandComponent" is non-observable for some reasons
  // when tsconfig.ts has {useDefineForClassFields:false}
  @observable.ref commandComponent: React.ReactNode = null;

  constructor(props: CommandContainerProps) {
    super(props);
    makeObservable(this);
  }
```

Signed-off-by: Roman <ixrock@gmail.com>

* update KubeObject class type definition

Signed-off-by: Roman <ixrock@gmail.com>

* clean up / responding to comments

Signed-off-by: Roman <ixrock@gmail.com>

* fix: app-crash when navigating to catalog from active cluster-view, refactoring `catalog-entity-store`

Signed-off-by: Roman <ixrock@gmail.com>

* catalog-pusher clean up, replaced .observe_() to external observe() helper from "mobx"

Signed-off-by: Roman <ixrock@gmail.com>

* fix: catalog's items stale/non-observable (after connection to the cluster status still "disconnected"), lint-fixes

Signed-off-by: Roman <ixrock@gmail.com>

* fix: Catalog is empty after closing main-window and re-opening app from Tray

Signed-off-by: Roman <ixrock@gmail.com>

* fix: HotBar's icon context menu items non-observable (no "disconnect cluster", etc.)

Signed-off-by: Roman <ixrock@gmail.com>

* lint-fix/license check

Signed-off-by: Roman <ixrock@gmail.com>

* fix: redirect to catalog when disconnecting active cluster

Signed-off-by: Roman <ixrock@gmail.com>

* fix: refresh visibility of active cluster-view on switching from hotbar/catalog

Signed-off-by: Roman <ixrock@gmail.com>

* updated package.json for built-in extensions to use "*" version for packages served from main app

Signed-off-by: Roman <ixrock@gmail.com>

* - added missing makeObservable(this) to metrics-settings.tsx
- updated package-lock.json for built-in extensions
- lint fixes

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge clean up fix, updated package-lock.json for built-in extensions after `make clean-extensions && make build-extensions`

Signed-off-by: Roman <ixrock@gmail.com>

* fix unit-tests

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge fixes

Signed-off-by: Roman <ixrock@gmail.com>

* make lint happy

Signed-off-by: Roman <ixrock@gmail.com>

* reverted some changes, removed auto-opening devtools in dev-mode

Signed-off-by: Roman <ixrock@gmail.com>

* merge fixes

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge conflict fixes:
- proper handling and navigating into catalog's active category via URL-builder

Signed-off-by: Roman <ixrock@gmail.com>

* reverting splitted params for catalog's page route to "/catalog/:group?/:kind?"

Signed-off-by: Roman <ixrock@gmail.com>

* clean-up: remove app's injecting dependencies from `extensions/kube-object-event-status/package.json`

Signed-off-by: Roman <ixrock@gmail.com>

* master-merge fix: added missing makeObservable(this) for extensions.tsx

Signed-off-by: Roman <ixrock@gmail.com>

* fix: catalog entity context menu stale/unobservable

Signed-off-by: Roman <ixrock@gmail.com>

Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2021-05-25 10:24:31 +03:00
__mocks__ Turn on noUnusedLocals, noImplicitReturns, importsNotUsedAsValues: error, and isolatedModules (#2777) 2021-05-19 12:11:54 -04:00
.dependabot add custom configuration for dependabot (#1973) 2021-02-04 13:16:06 -05:00
.github Check license header using eslint (#2780) 2021-05-17 09:43:53 -04:00
.vscode VSCode launch configurations for debugging (#2281) 2021-03-09 17:57:55 +02:00
build Check license header using eslint (#2780) 2021-05-17 09:43:53 -04:00
docs Mobx-6 migration (#2718) 2021-05-25 10:24:31 +03:00
extensions Mobx-6 migration (#2718) 2021-05-25 10:24:31 +03:00
integration Restyling extensions page with tailwindcss (#2796) 2021-05-23 15:15:42 +03:00
jsonnet/lens Update jsonnet folder structure to default bundler format (#536) 2021-03-23 08:12:40 -04:00
mkdocs Documentation (MKDOCS) (#1230) 2020-11-05 16:38:56 +02:00
scripts Add tag command, update guide, add PR templates (#2679) 2021-05-12 08:03:45 -04:00
src Mobx-6 migration (#2718) 2021-05-25 10:24:31 +03:00
static Extensible welcome page (#2637) 2021-04-27 11:24:39 +03:00
templates/create-resource YAML Templates in Create Resource dock tab (#2327) 2021-04-15 08:19:54 -04:00
test-data add cluster icon migration code (#673) 2020-08-25 16:42:30 +03:00
troubleshooting Update jsonnet folder structure to default bundler format (#536) 2021-03-23 08:12:40 -04:00
types Restyling extensions page with tailwindcss (#2796) 2021-05-23 15:15:42 +03:00
.azure-pipelines-k8s-matrix.yml Test different kube versions (#1806) 2020-12-18 12:41:17 +02:00
.azure-pipelines.yml Publish npm package via gh actions (#2695) 2021-05-04 09:47:52 -04:00
.bundled-extensions.json Don't bundle extension with eula on default build (#2542) 2021-04-20 09:35:37 -04:00
.eslintrc.js Adding eslint-plugin-react-hooks (#2811) 2021-05-20 12:01:01 -04:00
.gitignore VSCode launch configurations for debugging (#2281) 2021-03-09 17:57:55 +02:00
.npmrc Add engine to strict node version in package.json (#144) 2020-03-23 16:31:28 +02:00
.yarnrc Electron 9.4.4 (#2472) 2021-04-12 09:48:57 +03:00
CODE_OF_CONDUCT.md Add contributing/development pages (#1480) 2020-11-23 11:37:30 +02:00
CONTRIBUTING.md Add contributing/development pages (#1480) 2020-11-23 11:37:30 +02:00
LICENSE Don't bundle extension with eula on default build (#2542) 2021-04-20 09:35:37 -04:00
license-header Check license header using eslint (#2780) 2021-05-17 09:43:53 -04:00
Makefile Bundle in-tree extensions as npm/tgz (#2807) 2021-05-19 09:40:09 +03:00
mkdocs.yml Docs theme switch fix (#2810) 2021-05-19 16:47:58 +02:00
package.json Mobx-6 migration (#2718) 2021-05-25 10:24:31 +03:00
postcss.config.js Restyling extensions page with tailwindcss (#2796) 2021-05-23 15:15:42 +03:00
README.md Don't bundle extension with eula on default build (#2542) 2021-04-20 09:35:37 -04:00
RELEASE_GUIDE.md Add tag command, update guide, add PR templates (#2679) 2021-05-12 08:03:45 -04:00
SECURITY.md Add security policy (#2387) 2021-03-25 17:19:45 +02:00
tailwind.config.js Restyling extensions page with tailwindcss (#2796) 2021-05-23 15:15:42 +03:00
tsconfig.json Mobx-6 migration (#2718) 2021-05-25 10:24:31 +03:00
webpack.extensions.ts Turn on noUnusedLocals, noImplicitReturns, importsNotUsedAsValues: error, and isolatedModules (#2777) 2021-05-19 12:11:54 -04:00
webpack.main.ts Turn on noUnusedLocals, noImplicitReturns, importsNotUsedAsValues: error, and isolatedModules (#2777) 2021-05-19 12:11:54 -04:00
webpack.renderer.ts Restyling extensions page with tailwindcss (#2796) 2021-05-23 15:15:42 +03:00
yarn.lock Mobx-6 migration (#2718) 2021-05-25 10:24:31 +03:00

Lens Open Source Project (OpenLens)

Build Status Chat on Slack

The Repository

This repository ("OpenLens") is where Team Lens develops the Lens IDE product together with the community. It is backed by a number of Kubernetes and cloud native ecosystem pioneers. This source code is available to everyone under the MIT license.

Lens - The Kubernetes IDE

Lens - The Kubernetes IDE ("Lens IDE") is a distribution of the OpenLens repository with Team Lens specific customizations released under a traditional EULA.

Lens IDE provides the full situational awareness for everything that runs in Kubernetes. It's lowering the barrier of entry for people just getting started and radically improving productivity for people with more experience.

Lens IDE a standalone application for MacOS, Windows and Linux operating systems. You can download it free of charge for Windows, MacOS, and Linux from Lens IDE website.

Screenshot

Installation

See Getting Started page.

Development

See Development page.

Contributing

See Contributing page.