mirror of
https://github.com/wavetermdev/backup.git
synced 2026-04-22 15:26:58 -07:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a221655027 | |||
| b0025e4b1f | |||
| ab200d624d |
@@ -71,7 +71,7 @@ jobs:
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_PWD }}
|
||||
APPLE_TEAM_ID: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
|
||||
- name: Upload to S3 staging
|
||||
run: aws s3 cp make/ s3://waveterm-github-artifacts/staging-legacy/${{ steps.set-version.outputs.WAVETERM_VERSION }}/ --recursive --exclude "*/*" --exclude "builder-*.yml"
|
||||
run: aws s3 cp make/ s3://waveterm-github-artifacts/staging/${{ steps.set-version.outputs.WAVETERM_VERSION }}/ --recursive --exclude "*/*" --exclude "builder-*.yml"
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: "${{ secrets.S3_USERID }}"
|
||||
AWS_SECRET_ACCESS_KEY: "${{ secrets.S3_SECRETKEY }}"
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
# Workflow to manage bumping the package version and pushing it to the target branch with a new tag.
|
||||
# This workflow uses a GitHub App to bypass branch protection and uses the GitHub API directly to ensure commits and tags are signed.
|
||||
# For more information, see this doc: https://github.com/Nautilus-Cyberneering/pygithub/blob/main/docs/how_to_sign_automatic_commits_in_github_actions.md
|
||||
|
||||
name: Bump Version
|
||||
run-name: "branch: ${{ github.ref_name }}; semver-bump: ${{ inputs.bump }}; prerelease: ${{ inputs.is-prerelease }}"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
bump:
|
||||
description: SemVer Bump
|
||||
required: true
|
||||
type: choice
|
||||
default: none
|
||||
options:
|
||||
- none
|
||||
- patch
|
||||
- minor
|
||||
- major
|
||||
is-prerelease:
|
||||
description: Is Prerelease
|
||||
required: true
|
||||
type: boolean
|
||||
default: true
|
||||
env:
|
||||
NODE_VERSION: "22.5.1"
|
||||
jobs:
|
||||
bump-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get App Token
|
||||
uses: actions/create-github-app-token@v1
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ vars.WAVE_BUILDER_APPID }}
|
||||
private-key: ${{ secrets.WAVE_BUILDER_KEY }}
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
|
||||
# General build dependencies
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{env.NODE_VERSION}}
|
||||
- name: Install Yarn
|
||||
run: |
|
||||
corepack enable
|
||||
yarn install
|
||||
- name: Install Task
|
||||
uses: arduino/setup-task@v2
|
||||
with:
|
||||
version: 3.x
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: "Bump Version: ${{ inputs.bump }}"
|
||||
id: bump-version
|
||||
run: echo "WAVETERM_VERSION=$( task version -- ${{ inputs.bump }} ${{inputs.is-prerelease}} )" >> "$GITHUB_OUTPUT"
|
||||
shell: bash
|
||||
|
||||
- name: "Push version bump: ${{ steps.bump-version.outputs.WAVETERM_VERSION }}"
|
||||
run: |
|
||||
# Create a new commit for the package version bump in package.json
|
||||
export VERSION=${{ steps.bump-version.outputs.WAVETERM_VERSION }}
|
||||
export MESSAGE="chore: bump package version to $VERSION"
|
||||
export FILE=package.json
|
||||
export BRANCH=${{github.ref_name}}
|
||||
export SHA=$( git rev-parse $BRANCH:$FILE )
|
||||
export CONTENT=$( base64 -i $FILE )
|
||||
gh api --method PUT /repos/:owner/:repo/contents/$FILE \
|
||||
--field branch="$BRANCH" \
|
||||
--field message="$MESSAGE" \
|
||||
--field content="$CONTENT" \
|
||||
--field sha="$SHA"
|
||||
|
||||
# Fetch the new commit and create a tag referencing it
|
||||
git fetch
|
||||
export TAG_SHA=$( git rev-parse origin/$BRANCH )
|
||||
gh api --method POST /repos/:owner/:repo/git/refs \
|
||||
--field ref="refs/tags/v$VERSION" \
|
||||
--field sha="$TAG_SHA"
|
||||
shell: bash
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
||||
@@ -7,10 +7,6 @@
|
||||
<br/>
|
||||
</p>
|
||||
|
||||
# Wave Legacy
|
||||
|
||||
This branch is for the legacy v0.7.7 version of Wave. For the new Wave v8+ code, please use the main branch.
|
||||
|
||||
# Wave Terminal
|
||||
|
||||
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fwavetermdev%2Fwaveterm?ref=badge_shield)
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ is [`electron-builder.config.js`](../electron-builder.config.js).
|
||||
|
||||
This will also sign and notarize the macOS app package.
|
||||
|
||||
Once a build is complete, it will be placed in `s3://waveterm-github-artifacts/staging-legacy/<version>`.
|
||||
Once a build is complete, it will be placed in `s3://waveterm-github-artifacts/staging/<version>`.
|
||||
It can be downloaded for testing using the [`download-staged-artifact.sh`](./download-staged-artifact.sh)
|
||||
script. When you are ready to publish the artifacts to the public release feed, use the
|
||||
[`publish-from-staging.sh`](./publish-from-staging.sh) script to directly copy the artifacts from
|
||||
|
||||
@@ -7,7 +7,7 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
BUILDS_DIR=$SCRIPT_DIR/builds
|
||||
TEMP2_DIR=$SCRIPT_DIR/temp2
|
||||
|
||||
AUTOUPDATE_RELEASE_PATH="dl.waveterm.dev/releases-legacy"
|
||||
AUTOUPDATE_RELEASE_PATH="dl.waveterm.dev/releases"
|
||||
|
||||
# Copy the builds to the temp2 directory
|
||||
echo "Copying builds to temp2"
|
||||
|
||||
@@ -13,4 +13,4 @@ fi
|
||||
DOWNLOAD_DIR=$VERSION-staged
|
||||
rm -rf $DOWNLOAD_DIR
|
||||
mkdir -p $DOWNLOAD_DIR
|
||||
aws s3 cp s3://waveterm-github-artifacts/staging-legacy/$VERSION/ $DOWNLOAD_DIR/ --recursive --profile $AWS_PROFILE
|
||||
aws s3 cp s3://waveterm-github-artifacts/staging/$VERSION/ $DOWNLOAD_DIR/ --recursive --profile $AWS_PROFILE
|
||||
|
||||
@@ -9,8 +9,8 @@ if [ -z "$VERSION" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
ORIGIN="waveterm-github-artifacts/staging-legacy/$VERSION/"
|
||||
DESTINATION="dl.waveterm.dev/releases-legacy/"
|
||||
ORIGIN="waveterm-github-artifacts/staging/$VERSION/"
|
||||
DESTINATION="dl.waveterm.dev/releases/"
|
||||
|
||||
OUTPUT=$(aws s3 cp s3://$ORIGIN s3://$DESTINATION --recursive --profile $AWS_PROFILE)
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ const config = {
|
||||
},
|
||||
publish: {
|
||||
provider: "generic",
|
||||
url: "https://dl.waveterm.dev/releases-legacy",
|
||||
url: "https://dl.waveterm.dev/releases",
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
+5
-5
@@ -1,21 +1,21 @@
|
||||
{
|
||||
"name": "wavelegacy",
|
||||
"name": "waveterm",
|
||||
"author": {
|
||||
"name": "Command Line Inc",
|
||||
"email": "info@commandline.dev"
|
||||
},
|
||||
"productName": "WaveLegacy",
|
||||
"productName": "Wave",
|
||||
"description": "An Open-Source, AI-Native, Terminal Built for Seamless Workflows",
|
||||
"version": "0.7.7",
|
||||
"version": "0.7.6",
|
||||
"main": "dist/emain.js",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/wavetermdev/waveterm"
|
||||
},
|
||||
"homepage": "https://www.waveterm.dev",
|
||||
"homepage": "https://waveterm.dev",
|
||||
"build": {
|
||||
"appId": "dev.commandline.wavelegacy"
|
||||
"appId": "dev.commandline.waveterm"
|
||||
},
|
||||
"dependencies": {
|
||||
"@lexical/react": "^0.17.0",
|
||||
|
||||
Binary file not shown.
@@ -9,6 +9,7 @@ export const LINE_SETTINGS = "lineSettings";
|
||||
export const CLIENT_SETTINGS = "clientSettings";
|
||||
export const TAB_SWITCHER = "tabSwitcher";
|
||||
export const USER_INPUT = "userInput";
|
||||
export const NEW_WAVE = "newWave";
|
||||
|
||||
export const LineContainer_Main = "main";
|
||||
export const LineContainer_History = "history";
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 13 MiB |
@@ -68,7 +68,7 @@ class AboutModal extends React.Component<{}, {}> {
|
||||
<img src={logo} alt="logo" />
|
||||
</div>
|
||||
<div className="text-wrapper">
|
||||
<div>Wave Terminal (Legacy)</div>
|
||||
<div>Wave Terminal</div>
|
||||
<div className="text-standard">
|
||||
Open-Source AI-Native Terminal
|
||||
<br />
|
||||
|
||||
@@ -269,7 +269,7 @@ class EditRemoteConnModal extends React.Component<{}, {}> {
|
||||
Most options for connections imported from an ssh config file cannot be edited. For these
|
||||
changes, you must edit the config file and import it again. The shell preference can be
|
||||
edited, but will return to the default if you import again. It will stay changed if you
|
||||
follow <a href="https://legacydocs.waveterm.dev/features/sshconfig-imports">this procedure</a>.
|
||||
follow <a href="https://docs.waveterm.dev/features/sshconfig-imports">this procedure</a>.
|
||||
</span>
|
||||
}
|
||||
icon={<i className="fa-sharp fa-regular fa-fw fa-triangle-exclamation" />}
|
||||
|
||||
@@ -10,3 +10,4 @@ export { SessionSettingsModal } from "./sessionsettings";
|
||||
export { ScreenSettingsModal } from "./screensettings";
|
||||
export { LineSettingsModal } from "./linesettings";
|
||||
export { UserInputModal } from "./userinput";
|
||||
export { NewWaveModal } from "./newwave";
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
.newwave-modal {
|
||||
width: 640px;
|
||||
border-radius: 8px;
|
||||
border: 0.5px solid rgba(255, 255, 255, 0.12);
|
||||
background: #232323;
|
||||
box-shadow: 0px 8px 32px 0px rgba(0, 0, 0, 0.25);
|
||||
|
||||
.wave-modal-content .wave-modal-body {
|
||||
padding: 0;
|
||||
gap: 8px;
|
||||
|
||||
.wave-modal-body-inner {
|
||||
gap: 24px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
header.newwave-header {
|
||||
padding: 24px 32px 0;
|
||||
position: relative;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
border-bottom: none;
|
||||
|
||||
.modal-title {
|
||||
text-align: left;
|
||||
font-size: 20px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.close {
|
||||
position: absolute;
|
||||
right: 32px;
|
||||
top: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
.content.newwave-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
width: 100%;
|
||||
margin-bottom: 0;
|
||||
gap: 10px;
|
||||
|
||||
.item {
|
||||
width: 100%;
|
||||
line-height: 19px;
|
||||
font-weight: 400;
|
||||
padding-left: 32px;
|
||||
padding-right: 32px;
|
||||
|
||||
&.image-item {
|
||||
padding: 0 0;
|
||||
height: 360px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
margin-bottom: -45px;
|
||||
}
|
||||
|
||||
span {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
padding: 0 32px 24px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
|
||||
.button-wrapper {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
button {
|
||||
font-size: 15px;
|
||||
margin-top: 16px;
|
||||
|
||||
&:last-child {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
button.disabled-button {
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
// Copyright 2023, Command Line Inc.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import * as React from "react";
|
||||
import * as mobxReact from "mobx-react";
|
||||
import { boundMethod } from "autobind-decorator";
|
||||
import { Modal, Button } from "@/elements";
|
||||
import { getApi } from "@/models";
|
||||
|
||||
import newwave from "@/assets/new-wave-screenshot.svg";
|
||||
|
||||
import "./newwave.less";
|
||||
|
||||
@mobxReact.observer
|
||||
class NewWaveModal extends React.Component<{ onClose: () => void }, {}> {
|
||||
@boundMethod
|
||||
handleDownloadOldWave(): void {
|
||||
getApi().openExternalLink("https://www.waveterm.dev/download-legacy");
|
||||
}
|
||||
|
||||
@boundMethod
|
||||
handleDownloadNewWave(): void {
|
||||
getApi().openExternalLink("https://www.waveterm.dev/download");
|
||||
}
|
||||
|
||||
@boundMethod
|
||||
handleClose(): void {
|
||||
this.props.onClose();
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Modal className="newwave-modal">
|
||||
<div className="wave-modal-body">
|
||||
<div className="wave-modal-body-inner">
|
||||
<header className="newwave-header unselectable">
|
||||
<div className="modal-title">A New Wave is Coming!</div>
|
||||
<i className="fa-regular fa-xmark-large close" onClick={this.handleClose}></i>
|
||||
</header>
|
||||
<div className="content newwave-content unselectable">
|
||||
<div className="item">
|
||||
We are excited to share that after 3-months of work, and almost 1000 new commits, Wave
|
||||
v0.8 is now available. It features a new layout engine for screen splitting, improved
|
||||
remote file browsing and previewing, improved performance, and a new design. We've also
|
||||
removed some of the more controversial features that took over the shell experience and
|
||||
overrode things like completions, history, and prompts.
|
||||
</div>
|
||||
<div className="item">
|
||||
The new build is a fresh start, and a clean break from the current version. As such,
|
||||
your history, settings, and configuration will <i>not</i> be carried over. If you'd like
|
||||
to continue to run the legacy version, you will need to download it separately.
|
||||
</div>
|
||||
<div className="item image-item">
|
||||
<img src={newwave} height="400px" />
|
||||
</div>
|
||||
<div className="item">
|
||||
You can download Wave v0.8 now or wait for an auto-update next week. The legacy version
|
||||
will be available via separate download page.
|
||||
</div>
|
||||
</div>
|
||||
<footer className="unselectable">
|
||||
<div className="button-wrapper">
|
||||
<Button className="secondary" onClick={this.handleDownloadOldWave}>
|
||||
Legacy Download
|
||||
</Button>
|
||||
</div>
|
||||
<div className="button-wrapper">
|
||||
<Button onClick={this.handleDownloadNewWave}>Upgrade to Wave v0.8</Button>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export { NewWaveModal };
|
||||
@@ -5,14 +5,34 @@ import * as React from "react";
|
||||
import * as mobxReact from "mobx-react";
|
||||
import { GlobalModel } from "@/models";
|
||||
import { TosModal } from "./tos";
|
||||
import { NewWaveModal } from "./newwave";
|
||||
|
||||
const SessionStorageKey = "newWaveRendered";
|
||||
|
||||
@mobxReact.observer
|
||||
class ModalsProvider extends React.Component {
|
||||
class ModalsProvider extends React.Component<{}, {}> {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.handleNewWaveOnClose = this.handleNewWaveOnClose.bind(this);
|
||||
}
|
||||
|
||||
handleNewWaveOnClose() {
|
||||
sessionStorage.setItem(SessionStorageKey, "1");
|
||||
this.forceUpdate();
|
||||
}
|
||||
|
||||
render() {
|
||||
let store = GlobalModel.modalsModel.store.slice();
|
||||
|
||||
if (GlobalModel.needsTos()) {
|
||||
return <TosModal />;
|
||||
}
|
||||
|
||||
const newWaveRendered = sessionStorage.getItem(SessionStorageKey);
|
||||
if (!newWaveRendered) {
|
||||
return <NewWaveModal onClose={this.handleNewWaveOnClose} />;
|
||||
}
|
||||
|
||||
let rtn: JSX.Element[] = [];
|
||||
for (let i = 0; i < store.length; i++) {
|
||||
let entry = store[i];
|
||||
|
||||
@@ -13,6 +13,7 @@ import {
|
||||
ScreenSettingsModal,
|
||||
LineSettingsModal,
|
||||
UserInputModal,
|
||||
NewWaveModal,
|
||||
} from "@/modals";
|
||||
import * as constants from "@/app/appconst";
|
||||
|
||||
@@ -27,6 +28,7 @@ const modalsRegistry: { [key: string]: React.ComponentType } = {
|
||||
[constants.LINE_SETTINGS]: LineSettingsModal,
|
||||
[constants.TAB_SWITCHER]: TabSwitcherModal,
|
||||
[constants.USER_INPUT]: UserInputModal,
|
||||
[constants.NEW_WAVE]: NewWaveModal,
|
||||
};
|
||||
|
||||
export { modalsRegistry };
|
||||
|
||||
@@ -98,7 +98,7 @@ class TosModal extends React.Component<{}, {}> {
|
||||
We collect minimal anonymous
|
||||
<a
|
||||
target="_blank"
|
||||
href={util.makeExternLink("https://legacydocs.waveterm.dev/reference/telemetry")}
|
||||
href={util.makeExternLink("https://docs.waveterm.dev/reference/telemetry")}
|
||||
rel={"noopener"}
|
||||
>
|
||||
telemetry data
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user