Skip to content

Commit

Permalink
Merge pull request #5185 from nteract/release/20200629
Browse files Browse the repository at this point in the history
nteract June 2020 Release
  • Loading branch information
captainsafia committed Jun 29, 2020
2 parents 9362469 + 6ce8225 commit bc53ea0
Show file tree
Hide file tree
Showing 31 changed files with 236 additions and 112 deletions.
2 changes: 1 addition & 1 deletion applications/desktop/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion applications/desktop/package.json
@@ -1,6 +1,6 @@
{
"name": "nteract",
"version": "0.23.2",
"version": "0.24.0",
"description": "Interactive literate coding notebook!",
"main": "./lib/webpacked-main.js",
"repository": "nteract/nteract",
Expand Down
24 changes: 12 additions & 12 deletions applications/jupyter-extension/nteract_on_jupyter/package.json
@@ -1,6 +1,6 @@
{
"name": "nteract-on-jupyter",
"version": "2.9.2",
"version": "2.10.0",
"description": "nteract on jupyter, as an extension",
"main": "app/index.js",
"scripts": {
Expand All @@ -18,27 +18,27 @@
"author": "Kyle Kelley <rgbkrk@gmail.com>",
"license": "BSD-3-Clause",
"dependencies": {
"@nteract/commutable": "^7.2.12",
"@nteract/connected-components": "^6.7.15",
"@nteract/core": "^14.0.0",
"@nteract/commutable": "^7.3.0",
"@nteract/connected-components": "^6.8.0",
"@nteract/core": "^15.0.0",
"@nteract/data-explorer": "^8.0.0",
"@nteract/directory-listing": "^2.1.0",
"@nteract/editor": "^10.0.2",
"@nteract/editor": "^10.1.0",
"@nteract/jupyter-widgets": "^4.4.12",
"@nteract/logos": "^1.0.0",
"@nteract/monaco-editor": "^3.1.7",
"@nteract/notebook-app-component": "^7.5.1",
"@nteract/monaco-editor": "^3.1.8",
"@nteract/notebook-app-component": "^7.6.0",
"@nteract/octicons": "^2.0.0",
"@nteract/outputs": "^3.0.9",
"@nteract/presentational-components": "^3.3.14",
"@nteract/styles": "^2.1.12",
"@nteract/presentational-components": "^3.4.0",
"@nteract/styles": "^2.2.0",
"@nteract/transform-geojson": "^5.1.13",
"@nteract/transform-model-debug": "^5.0.1",
"@nteract/transform-plotly": "^6.1.10",
"@nteract/transform-vdom": "^4.0.15",
"@nteract/transform-vega": "^7.0.10",
"@nteract/types": "^6.0.7",
"@nteract/webpack-configurator": "^3.1.14",
"@nteract/types": "^7.0.0",
"@nteract/webpack-configurator": "^3.1.15",
"jquery": "^3.2.1",
"monaco-editor-webpack-plugin": "^1.8.0",
"react": "^16.3.2",
Expand All @@ -49,7 +49,7 @@
"react-router-dom": "^5.0.0",
"redux": "^4.0.0",
"redux-observable": "^2.0.0-alpha.0",
"rx-jupyter": "^5.5.9",
"rx-jupyter": "^5.5.10",
"rxjs": "^6.3.3",
"url-join": "^4.0.0",
"webfontloader": "^1.6.28",
Expand Down
2 changes: 1 addition & 1 deletion applications/jupyter-extension/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion applications/jupyter-extension/package.json
@@ -1,6 +1,6 @@
{
"name": "@nteract/nbextension",
"version": "1.9.2",
"version": "1.10.0",
"description": "nteract on jupyter, as an extension",
"scripts": {
"build:python": "python setup.py sdist && python setup.py bdist_wheel",
Expand Down
14 changes: 7 additions & 7 deletions applications/web/package.json
@@ -1,17 +1,17 @@
{
"name": "@nteract/web",
"version": "1.1.2",
"version": "1.1.3-alpha.0",
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start"
},
"dependencies": {
"@mybinder/host-cache": "^2.1.24",
"@nteract/core": "^14.0.0",
"@nteract/notebook-app-component": "^7.5.1",
"@mybinder/host-cache": "^2.1.25",
"@nteract/core": "^15.0.0",
"@nteract/notebook-app-component": "^7.6.0",
"@nteract/outputs": "^3.0.9",
"@nteract/styles": "^2.1.12",
"@nteract/styles": "^2.2.0",
"@octokit/rest": "^17.1.1",
"codemirror": "^5.51.0",
"next": "^9.2.1",
Expand All @@ -21,15 +21,15 @@
"react-redux": "^6.0.0",
"redux": "^4.0.0",
"redux-observable": "^2.0.0-alpha.0",
"rx-jupyter": "^5.5.9",
"rx-jupyter": "^5.5.10",
"rxjs": "^6.3.3",
"shortid": "^2.2.15"
},
"description": "An nteract-based web application with kernels provided by Binder",
"author": "nteract Contributors",
"license": "BSD-3-Clause",
"devDependencies": {
"@nteract/webpack-configurator": "^3.1.14",
"@nteract/webpack-configurator": "^3.1.15",
"@types/node": "^13.7.1",
"@types/react": "^16.9.19",
"@types/react-dom": "^16.9.5",
Expand Down
128 changes: 128 additions & 0 deletions changelogs/06-2020.md
@@ -0,0 +1,128 @@
# June 2020 nteract Release

## nteract Desktop App

This month's release of the nteract desktop app contains a brand-new UI featuring:
* an app-level toolbar
* a file sidebar
* a new cell UX
* a new command prompt (activated by pressing <kbd>Cmd+Shift+P</kbd> on macOS or <kbd>Ctrl+Shift+P</p>)

Over the comings months, we will be building on top of this new UX with:
- support for opening multiple notebooks in the same menu
- support for configuring keyboard shortcuts
- and more!

In addition to the new UI, the following changes have been shipped:
- Support for automatically loading syntax highlighting for programming languages
- Bug fix for issue where config changes were not persisted beyond a single sessions

## nteract Core SDK

The following changes have been shipped to the Core SDK. If you are using one of the packages listed below as a transitive
dependency, you will need to update its parent package.

### @nteract/commutable (v7.3.0)
- Skip reformatting output bundle when serializing notebook document (https://github.com/nteract/nteract/pull/5146)

### @nteract/core (v15.0.0)
- **(Breaking Change)** Move `comms` entities list into `core.entities`
- If you are referring to the `comms` state using nteract's selectors and epics, you will not need to migrate any code.
- if you have hard-coded references to `state.comms`, these will need to be updated to `state.core.entities.comms`.
- **(Breaking Change)** Deprecate `config` state in favor of `mythic-configurations` package
- To use the package, either:
* use the `makeConfigureStore` function from `@nteract/myths`:
```typescript
import {configuration} from "@nteract/mythic-configuration";
import {makeConfigureStore} from "@nteract/myths";

type NonPrivateState = { foo: string };
const configureStore = makeConfigureStore<NonPrivateState>()({
packages: [
configuration,
],
// reducers, epics, etc.
});
export const store = configureStore({ foo: "bar" });
```
* or call `configuration.rootReducer(state, action)` in your reducer and add the return value of `configuration.makeRootEpic()` to your epics.
- Dispatch the return value of `setConfigFile(<path>)` to make it load/write/watch a config file instead.
- To define configuration options, use `defineConfigOption(...)`:
```typescript
import {defineConfigOption} from "@nteract/mythic-configuration";

export const {
selector: tabSize,
action: setTabSize,
} = defineConfigOption({
label: "Tab Size",
key: "codeMirror.tabSize",
values: [
{label: "2 Spaces", value: 2},
{label: "3 Spaces", value: 3},
{label: "4 Spaces", value: 4},
],
defaultValue: 4,
});
```
- You can then use the selector (e.g. `tabSize` above) to get the value from a store (e.g. `tabSize(store.getState())`).
- You can then alter the state by dispatching the result of the action function (e.g. `setTabSize` above, `store.dispatch(setTabSize(4))`).
- If you have a group of config options with a common prefix (e.g. `codemirror.<...>`), you can get a selector for the whole group with `createConfigCollection(...)`:
```typescript
import {createConfigCollection} from "@nteract/mythic-configuration";

const codeMirrorConfig = createConfigCollection({
key: "codeMirror",
});
```
You can then do something like `codeMirrorConfig(store.getState())` to get something like
```javascript
{
tabSize: 4,
// ... other options starting with `codemirror.`, potentially nested if more than one dot
}
```
- The state is stored under `__private__.configuration` in the store, but it shouldn't be neccessary to directly access it.
- To type the state/store you can use `HasPrivateConfigurationState`.
- If you need a different way of persisting the config, you can set your own backend, e.g.:
```typescript
// Since the cats are typically lazing about the computer, let's utilize them to store our
// config...
const catConfigurationBackend = (whichCats: Cat[]) => ({
setup: () =>
// Is called when the config system initialises, should return an Observable<Action>,
// generally using the loadConfig myth to specify when the config should be loaded.
concat(
of("immediately"),
interval(10 * 60 * 1000),
).pipe(
tap(_ => wakeUpCats(whichCats)),
mapTo(loadConfig.create()),
),

load: () =>
// Is called to load config, should return an Observable<Action>, generally using
// the setConfig and/or setConfigAtKey myths to determine the config.
askTheCatsAboutTheirConfigOptions(whichCats).pipe(
mapErrorTo(undefined, error => error?.complaint === "HUNGRY"),
skipWhile(data => data === undefined),
map(setConfig.create),
),

save: (current: Map<string, any>) =>
// Is called with the current config object to save it after it changed, should return an
// Observable<Action>, which should be empty unless you need to dispatch actions on save.
tellTheCatsToRememberConfigOptions(current.toJSON(), whichCats).pipe(
ignoreElements(),
),
} as ConfigurationBackend);

export const setConfigCats = (whichCats: Cat[]) =>
setConfigBackend.create(catConfigurationBackend(whichCats));

// Now just do store.dispatch(setConfigCats(...)) to start using it and hope the cats have good
// memory and feel like cooperating...
```

### @nteract/editor (v10.1.0)
- Add support for automatically loadign CodeMirror modes for languages (https://github.com/nteract/nteract/pull/5123)
10 changes: 5 additions & 5 deletions packages/actions/package.json
@@ -1,6 +1,6 @@
{
"name": "@nteract/actions",
"version": "6.0.0",
"version": "7.0.0",
"description": "A collection of actions",
"main": "lib/index.js",
"types": "lib/index.d.ts",
Expand All @@ -13,11 +13,11 @@
"access": "public"
},
"dependencies": {
"@nteract/commutable": "^7.2.12",
"@nteract/messaging": "^7.0.7",
"@nteract/types": "^6.0.7",
"@nteract/commutable": "^7.3.0",
"@nteract/messaging": "^7.0.8",
"@nteract/types": "^7.0.0",
"immutable": "^4.0.0-rc.12",
"rx-jupyter": "^5.5.9"
"rx-jupyter": "^5.5.10"
},
"devDependencies": {
"utility-types": "^3.10.0"
Expand Down
2 changes: 1 addition & 1 deletion packages/commutable/package.json
@@ -1,6 +1,6 @@
{
"name": "@nteract/commutable",
"version": "7.2.12",
"version": "7.3.0",
"description": "library for immutable notebook operations",
"main": "lib/index.js",
"types": "lib/index.d.ts",
Expand Down
10 changes: 5 additions & 5 deletions packages/connected-components/package.json
@@ -1,6 +1,6 @@
{
"name": "@nteract/connected-components",
"version": "6.7.15",
"version": "6.8.0",
"description": "Connected components exported from @nteract/core",
"main": "lib/index.js",
"types": "lib/index.d.ts",
Expand All @@ -12,9 +12,9 @@
},
"dependencies": {
"@blueprintjs/core": "^3.7.0",
"@nteract/commutable": "^7.2.12",
"@nteract/core": "^14.0.0",
"@nteract/types": "^6.0.7",
"@nteract/commutable": "^7.3.0",
"@nteract/core": "^15.0.0",
"@nteract/types": "^7.0.0",
"react-redux": "^6.0.0",
"redux": "^4.0.0"
},
Expand All @@ -26,7 +26,7 @@
"author": "Kyle Kelley <rgbkrk@gmail.com>",
"license": "BSD-3-Clause",
"devDependencies": {
"@nteract/fixtures": "^2.3.7",
"@nteract/fixtures": "^2.3.8",
"styled-components": "^4.4.1"
}
}
14 changes: 7 additions & 7 deletions packages/core/package.json
@@ -1,18 +1,18 @@
{
"name": "@nteract/core",
"version": "14.0.0",
"version": "15.0.0",
"description": "core modules and components for nteract apps",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"nteractDesktop": "src/index.ts",
"scripts": {},
"dependencies": {
"@nteract/actions": "^6.0.0",
"@nteract/commutable": "^7.2.12",
"@nteract/epics": "^4.0.9",
"@nteract/reducers": "^4.0.0",
"@nteract/selectors": "^2.8.10",
"@nteract/types": "^6.0.7",
"@nteract/actions": "^7.0.0",
"@nteract/commutable": "^7.3.0",
"@nteract/epics": "^5.0.0",
"@nteract/reducers": "^5.0.0",
"@nteract/selectors": "^3.0.0",
"@nteract/types": "^7.0.0",
"redux-logger": "^3.0.6"
},
"peerDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/editor/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions packages/editor/package.json
@@ -1,6 +1,6 @@
{
"name": "@nteract/editor",
"version": "10.0.2",
"version": "10.1.0",
"description": "The editor that lives inside cells in nteract",
"main": "lib/index.js",
"types": "lib/index.d.ts",
Expand All @@ -17,7 +17,7 @@
"access": "public"
},
"dependencies": {
"@nteract/messaging": "^7.0.7",
"@nteract/messaging": "^7.0.8",
"@nteract/outputs": "^3.0.9",
"codemirror": "5.55.0",
"rxjs": "^6.3.3"
Expand Down

0 comments on commit bc53ea0

Please sign in to comment.