mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00:00
fix(electron): app updater (#8043)
This commit is contained in:
@@ -0,0 +1,162 @@
|
|||||||
|
// credits: migrated from https://github.com/electron-userland/electron-builder/blob/master/packages/electron-updater/src/providers/GitHubProvider.ts
|
||||||
|
|
||||||
|
import type { CustomPublishOptions } from 'builder-util-runtime';
|
||||||
|
import { newError } from 'builder-util-runtime';
|
||||||
|
import type {
|
||||||
|
AppUpdater,
|
||||||
|
ResolvedUpdateFileInfo,
|
||||||
|
UpdateFileInfo,
|
||||||
|
UpdateInfo,
|
||||||
|
} from 'electron-updater';
|
||||||
|
import { CancellationToken, Provider } from 'electron-updater';
|
||||||
|
import type { ProviderRuntimeOptions } from 'electron-updater/out/providers/Provider';
|
||||||
|
import {
|
||||||
|
getFileList,
|
||||||
|
parseUpdateInfo,
|
||||||
|
} from 'electron-updater/out/providers/Provider';
|
||||||
|
|
||||||
|
import type { buildType } from '../config';
|
||||||
|
import { isSquirrelBuild } from './utils';
|
||||||
|
|
||||||
|
interface GithubUpdateInfo extends UpdateInfo {
|
||||||
|
tag: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface GithubRelease {
|
||||||
|
name: string;
|
||||||
|
tag_name: string;
|
||||||
|
published_at: string;
|
||||||
|
assets: Array<{
|
||||||
|
name: string;
|
||||||
|
url: string;
|
||||||
|
}>;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface UpdateProviderOptions {
|
||||||
|
feedUrl?: string;
|
||||||
|
channel: typeof buildType;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class AFFiNEUpdateProvider extends Provider<GithubUpdateInfo> {
|
||||||
|
static configFeed(options: UpdateProviderOptions): CustomPublishOptions {
|
||||||
|
return {
|
||||||
|
provider: 'custom',
|
||||||
|
feedUrl: 'https://affine.pro/api/worker/releases',
|
||||||
|
updateProvider: AFFiNEUpdateProvider,
|
||||||
|
...options,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private readonly options: CustomPublishOptions,
|
||||||
|
_updater: AppUpdater,
|
||||||
|
runtimeOptions: ProviderRuntimeOptions
|
||||||
|
) {
|
||||||
|
super(runtimeOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
get feedUrl(): URL {
|
||||||
|
const url = new URL(this.options.feedUrl);
|
||||||
|
url.searchParams.set('channel', this.options.channel);
|
||||||
|
url.searchParams.set('minimal', 'true');
|
||||||
|
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
async getLatestVersion(): Promise<GithubUpdateInfo> {
|
||||||
|
const cancellationToken = new CancellationToken();
|
||||||
|
|
||||||
|
const releasesJsonStr = await this.httpRequest(
|
||||||
|
this.feedUrl,
|
||||||
|
{
|
||||||
|
accept: 'application/json',
|
||||||
|
'cache-control': 'no-cache',
|
||||||
|
},
|
||||||
|
cancellationToken
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!releasesJsonStr) {
|
||||||
|
throw new Error(
|
||||||
|
`Failed to get releases from ${this.feedUrl.toString()}, response is empty`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const releases = JSON.parse(releasesJsonStr);
|
||||||
|
|
||||||
|
if (releases.length === 0) {
|
||||||
|
throw new Error(
|
||||||
|
`No published versions in channel ${this.options.channel}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const latestRelease = releases[0] as GithubRelease;
|
||||||
|
const tag = latestRelease.tag_name;
|
||||||
|
|
||||||
|
const channelFileName = getChannelFilename(this.getDefaultChannelName());
|
||||||
|
const channelFileAsset = latestRelease.assets.find(({ url }) =>
|
||||||
|
url.endsWith(channelFileName)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!channelFileAsset) {
|
||||||
|
throw newError(
|
||||||
|
`Cannot find ${channelFileName} in the latest release artifacts.`,
|
||||||
|
'ERR_UPDATER_CHANNEL_FILE_NOT_FOUND'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const channelFileUrl = new URL(channelFileAsset.url);
|
||||||
|
const channelFileContent = await this.httpRequest(channelFileUrl);
|
||||||
|
|
||||||
|
const result = parseUpdateInfo(
|
||||||
|
channelFileContent,
|
||||||
|
channelFileName,
|
||||||
|
channelFileUrl
|
||||||
|
);
|
||||||
|
|
||||||
|
const files: UpdateFileInfo[] = [];
|
||||||
|
|
||||||
|
result.files.forEach(file => {
|
||||||
|
const asset = latestRelease.assets.find(({ name }) => name === file.url);
|
||||||
|
if (asset) {
|
||||||
|
file.url = asset.url;
|
||||||
|
}
|
||||||
|
|
||||||
|
// for windows, we need to determine its installer type (nsis or squirrel)
|
||||||
|
if (process.platform === 'win32') {
|
||||||
|
const isSquirrel = isSquirrelBuild();
|
||||||
|
if (isSquirrel && file.url.endsWith('.nsis.exe')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
files.push(file);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (result.releaseName == null) {
|
||||||
|
result.releaseName = latestRelease.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.releaseNotes == null) {
|
||||||
|
// TODO(@forehalo): add release notes
|
||||||
|
result.releaseNotes = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
tag: tag,
|
||||||
|
...result,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
resolveFiles(updateInfo: GithubUpdateInfo): Array<ResolvedUpdateFileInfo> {
|
||||||
|
const files = getFileList(updateInfo);
|
||||||
|
|
||||||
|
return files.map(file => ({
|
||||||
|
url: new URL(file.url),
|
||||||
|
info: file,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getChannelFilename(channel: string): string {
|
||||||
|
return `${channel}.yml`;
|
||||||
|
}
|
||||||
@@ -1,332 +0,0 @@
|
|||||||
// credits: migrated from https://github.com/electron-userland/electron-builder/blob/master/packages/electron-updater/src/providers/GitHubProvider.ts
|
|
||||||
|
|
||||||
import type {
|
|
||||||
CustomPublishOptions,
|
|
||||||
GithubOptions,
|
|
||||||
ReleaseNoteInfo,
|
|
||||||
XElement,
|
|
||||||
} from 'builder-util-runtime';
|
|
||||||
import { HttpError, newError, parseXml } from 'builder-util-runtime';
|
|
||||||
import type {
|
|
||||||
AppUpdater,
|
|
||||||
ResolvedUpdateFileInfo,
|
|
||||||
UpdateInfo,
|
|
||||||
} from 'electron-updater';
|
|
||||||
import { CancellationToken } from 'electron-updater';
|
|
||||||
import { BaseGitHubProvider } from 'electron-updater/out/providers/GitHubProvider';
|
|
||||||
import type { ProviderRuntimeOptions } from 'electron-updater/out/providers/Provider';
|
|
||||||
import {
|
|
||||||
parseUpdateInfo,
|
|
||||||
resolveFiles,
|
|
||||||
} from 'electron-updater/out/providers/Provider';
|
|
||||||
import * as semver from 'semver';
|
|
||||||
|
|
||||||
import { isSquirrelBuild } from './utils';
|
|
||||||
|
|
||||||
interface GithubUpdateInfo extends UpdateInfo {
|
|
||||||
tag: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface GithubRelease {
|
|
||||||
id: number;
|
|
||||||
tag_name: string;
|
|
||||||
target_commitish: string;
|
|
||||||
name: string;
|
|
||||||
draft: boolean;
|
|
||||||
prerelease: boolean;
|
|
||||||
created_at: string;
|
|
||||||
published_at: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
const hrefRegExp = /\/tag\/([^/]+)$/;
|
|
||||||
|
|
||||||
export class CustomGitHubProvider extends BaseGitHubProvider<GithubUpdateInfo> {
|
|
||||||
constructor(
|
|
||||||
options: CustomPublishOptions,
|
|
||||||
private readonly updater: AppUpdater,
|
|
||||||
runtimeOptions: ProviderRuntimeOptions
|
|
||||||
) {
|
|
||||||
super(options as unknown as GithubOptions, 'github.com', runtimeOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
async getLatestVersion(): Promise<GithubUpdateInfo> {
|
|
||||||
const cancellationToken = new CancellationToken();
|
|
||||||
|
|
||||||
const feedXml = await this.httpRequest(
|
|
||||||
newUrlFromBase(`${this.basePath}.atom`, this.baseUrl),
|
|
||||||
{
|
|
||||||
accept: 'application/xml, application/atom+xml, text/xml, */*',
|
|
||||||
},
|
|
||||||
cancellationToken
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!feedXml) {
|
|
||||||
throw new Error(
|
|
||||||
`Cannot find feed in the remote server (${this.baseUrl.href})`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const feed = parseXml(feedXml);
|
|
||||||
// noinspection TypeScriptValidateJSTypes
|
|
||||||
let latestRelease = feed.element(
|
|
||||||
'entry',
|
|
||||||
false,
|
|
||||||
`No published versions on GitHub`
|
|
||||||
);
|
|
||||||
let tag: string | null = null;
|
|
||||||
try {
|
|
||||||
const currentChannel =
|
|
||||||
this.options.channel ||
|
|
||||||
this.updater?.channel ||
|
|
||||||
(semver.prerelease(this.updater.currentVersion)?.[0] as string) ||
|
|
||||||
null;
|
|
||||||
|
|
||||||
if (currentChannel === null) {
|
|
||||||
throw newError(
|
|
||||||
`Cannot parse channel from version: ${this.updater.currentVersion}`,
|
|
||||||
'ERR_UPDATER_INVALID_VERSION'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const releaseTag = await this.getLatestTagByRelease(
|
|
||||||
currentChannel,
|
|
||||||
cancellationToken
|
|
||||||
);
|
|
||||||
for (const element of feed.getElements('entry')) {
|
|
||||||
// noinspection TypeScriptValidateJSTypes
|
|
||||||
const hrefElement = hrefRegExp.exec(
|
|
||||||
element.element('link').attribute('href')
|
|
||||||
);
|
|
||||||
|
|
||||||
// If this is null then something is wrong and skip this release
|
|
||||||
if (hrefElement === null) continue;
|
|
||||||
|
|
||||||
// This Release's Tag
|
|
||||||
const hrefTag = hrefElement[1];
|
|
||||||
// Get Channel from this release's tag
|
|
||||||
// If it is null, we believe it is stable version
|
|
||||||
const hrefChannel =
|
|
||||||
(semver.prerelease(hrefTag)?.[0] as string) || 'stable';
|
|
||||||
|
|
||||||
let isNextPreRelease = false;
|
|
||||||
if (releaseTag) {
|
|
||||||
isNextPreRelease = releaseTag === hrefTag;
|
|
||||||
} else {
|
|
||||||
isNextPreRelease = hrefChannel === currentChannel;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isNextPreRelease) {
|
|
||||||
tag = hrefTag;
|
|
||||||
latestRelease = element;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e: any) {
|
|
||||||
throw newError(
|
|
||||||
`Cannot parse releases feed: ${
|
|
||||||
e.stack || e.message
|
|
||||||
},\nXML:\n${feedXml}`,
|
|
||||||
'ERR_UPDATER_INVALID_RELEASE_FEED'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tag === null || tag === undefined) {
|
|
||||||
throw newError(
|
|
||||||
`No published versions on GitHub`,
|
|
||||||
'ERR_UPDATER_NO_PUBLISHED_VERSIONS'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
let rawData: string | null = null;
|
|
||||||
let channelFile = '';
|
|
||||||
let channelFileUrl: any = '';
|
|
||||||
const fetchData = async (channelName: string) => {
|
|
||||||
channelFile = getChannelFilename(channelName);
|
|
||||||
channelFileUrl = newUrlFromBase(
|
|
||||||
this.getBaseDownloadPath(String(tag), channelFile),
|
|
||||||
this.baseUrl
|
|
||||||
);
|
|
||||||
const requestOptions = this.createRequestOptions(channelFileUrl);
|
|
||||||
try {
|
|
||||||
return await this.executor.request(requestOptions, cancellationToken);
|
|
||||||
} catch (e: any) {
|
|
||||||
if (e instanceof HttpError && e.statusCode === 404) {
|
|
||||||
throw newError(
|
|
||||||
`Cannot find ${channelFile} in the latest release artifacts (${channelFileUrl}): ${
|
|
||||||
e.stack || e.message
|
|
||||||
}`,
|
|
||||||
'ERR_UPDATER_CHANNEL_FILE_NOT_FOUND'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
try {
|
|
||||||
const channel = this.updater.allowPrerelease
|
|
||||||
? this.getCustomChannelName(
|
|
||||||
String(semver.prerelease(tag)?.[0] || 'latest')
|
|
||||||
)
|
|
||||||
: this.getDefaultChannelName();
|
|
||||||
rawData = await fetchData(channel);
|
|
||||||
} catch (e: any) {
|
|
||||||
if (this.updater.allowPrerelease) {
|
|
||||||
// Allow fallback to `latest.yml`
|
|
||||||
rawData = await fetchData(this.getDefaultChannelName());
|
|
||||||
} else {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = parseUpdateInfo(rawData, channelFile, channelFileUrl);
|
|
||||||
if (result.releaseName == null) {
|
|
||||||
result.releaseName = latestRelease.elementValueOrEmpty('title');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result.releaseNotes == null) {
|
|
||||||
result.releaseNotes = computeReleaseNotes(
|
|
||||||
this.updater.currentVersion,
|
|
||||||
this.updater.fullChangelog,
|
|
||||||
feed,
|
|
||||||
latestRelease
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
tag: tag,
|
|
||||||
...result,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private get basePath(): string {
|
|
||||||
return `/${this.options.owner}/${this.options.repo}/releases`;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use release api to get latest version to filter draft version.
|
|
||||||
* But this api have low request limit 60-times/1-hour, use this to help, not depend on it
|
|
||||||
* https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28
|
|
||||||
* https://api.github.com/repos/toeverything/affine/releases
|
|
||||||
* https://docs.github.com/en/rest/rate-limit/rate-limit?apiVersion=2022-11-28#about-rate-limits
|
|
||||||
*/
|
|
||||||
private async getLatestTagByRelease(
|
|
||||||
currentChannel: string,
|
|
||||||
cancellationToken: CancellationToken
|
|
||||||
) {
|
|
||||||
try {
|
|
||||||
const releasesStr = await this.httpRequest(
|
|
||||||
newUrlFromBase(`/repos${this.basePath}`, this.baseApiUrl),
|
|
||||||
{
|
|
||||||
accept: 'Accept: application/vnd.github+json',
|
|
||||||
'X-GitHub-Api-Version': '2022-11-28',
|
|
||||||
},
|
|
||||||
cancellationToken
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!releasesStr) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const releases: GithubRelease[] = JSON.parse(releasesStr);
|
|
||||||
for (const release of releases) {
|
|
||||||
if (release.draft) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
const releaseTag = release.tag_name;
|
|
||||||
const releaseChannel =
|
|
||||||
(semver.prerelease(releaseTag)?.[0] as string) || 'stable';
|
|
||||||
if (releaseChannel === currentChannel) {
|
|
||||||
return release.tag_name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e: any) {
|
|
||||||
console.info(`Cannot parse release: ${e.stack || e.message}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
resolveFiles(updateInfo: GithubUpdateInfo): Array<ResolvedUpdateFileInfo> {
|
|
||||||
const filteredUpdateInfo = structuredClone(updateInfo);
|
|
||||||
// for windows, we need to determine its installer type (nsis or squirrel)
|
|
||||||
if (process.platform === 'win32' && updateInfo.files.length > 1) {
|
|
||||||
const isSquirrel = isSquirrelBuild();
|
|
||||||
// @ts-expect-error we should be able to modify the object
|
|
||||||
filteredUpdateInfo.files = updateInfo.files.filter(file => {
|
|
||||||
return isSquirrel
|
|
||||||
? !file.url.includes('nsis.exe')
|
|
||||||
: file.url.includes('nsis.exe');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// still replace space to - due to backward compatibility
|
|
||||||
return resolveFiles(filteredUpdateInfo, this.baseUrl, p =>
|
|
||||||
this.getBaseDownloadPath(filteredUpdateInfo.tag, p.replace(/ /g, '-'))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private getBaseDownloadPath(tag: string, fileName: string): string {
|
|
||||||
return `${this.basePath}/download/${tag}/${fileName}`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface CustomGitHubOptions {
|
|
||||||
channel: string;
|
|
||||||
repo: string;
|
|
||||||
owner: string;
|
|
||||||
releaseType: 'release' | 'prerelease';
|
|
||||||
}
|
|
||||||
|
|
||||||
function getNoteValue(parent: XElement): string {
|
|
||||||
const result = parent.elementValueOrEmpty('content');
|
|
||||||
// GitHub reports empty notes as <content>No content.</content>
|
|
||||||
return result === 'No content.' ? '' : result;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function computeReleaseNotes(
|
|
||||||
currentVersion: semver.SemVer,
|
|
||||||
isFullChangelog: boolean,
|
|
||||||
feed: XElement,
|
|
||||||
latestRelease: any
|
|
||||||
): string | Array<ReleaseNoteInfo> | null {
|
|
||||||
if (!isFullChangelog) {
|
|
||||||
return getNoteValue(latestRelease);
|
|
||||||
}
|
|
||||||
|
|
||||||
const releaseNotes: Array<ReleaseNoteInfo> = [];
|
|
||||||
for (const release of feed.getElements('entry')) {
|
|
||||||
// noinspection TypeScriptValidateJSTypes
|
|
||||||
const versionRelease = /\/tag\/v?([^/]+)$/.exec(
|
|
||||||
release.element('link').attribute('href')
|
|
||||||
)?.[1];
|
|
||||||
if (versionRelease && semver.lt(currentVersion, versionRelease)) {
|
|
||||||
releaseNotes.push({
|
|
||||||
version: versionRelease,
|
|
||||||
note: getNoteValue(release),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return releaseNotes.sort((a, b) => semver.rcompare(a.version, b.version));
|
|
||||||
}
|
|
||||||
|
|
||||||
// addRandomQueryToAvoidCaching is false by default because in most cases URL already contains version number,
|
|
||||||
// so, it makes sense only for Generic Provider for channel files
|
|
||||||
function newUrlFromBase(
|
|
||||||
pathname: string,
|
|
||||||
baseUrl: URL,
|
|
||||||
addRandomQueryToAvoidCaching = false
|
|
||||||
): URL {
|
|
||||||
const result = new URL(pathname, baseUrl);
|
|
||||||
// search is not propagated (search is an empty string if not specified)
|
|
||||||
const search = baseUrl.search;
|
|
||||||
if (search != null && search.length !== 0) {
|
|
||||||
result.search = search;
|
|
||||||
} else if (addRandomQueryToAvoidCaching) {
|
|
||||||
result.search = `noCache=${Date.now().toString(32)}`;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getChannelFilename(channel: string): string {
|
|
||||||
return `${channel}.yml`;
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,7 @@ import { autoUpdater as defaultAutoUpdater } from 'electron-updater';
|
|||||||
|
|
||||||
import { buildType } from '../config';
|
import { buildType } from '../config';
|
||||||
import { logger } from '../logger';
|
import { logger } from '../logger';
|
||||||
import { CustomGitHubProvider } from './custom-github-provider';
|
import { AFFiNEUpdateProvider } from './affine-update-provider';
|
||||||
import { updaterSubjects } from './event';
|
import { updaterSubjects } from './event';
|
||||||
import { WindowsUpdater } from './windows-updater';
|
import { WindowsUpdater } from './windows-updater';
|
||||||
|
|
||||||
@@ -93,16 +93,9 @@ export const registerUpdater = async () => {
|
|||||||
autoUpdater.autoInstallOnAppQuit = false;
|
autoUpdater.autoInstallOnAppQuit = false;
|
||||||
autoUpdater.autoRunAppAfterInstall = true;
|
autoUpdater.autoRunAppAfterInstall = true;
|
||||||
|
|
||||||
const feedUrl: Parameters<typeof autoUpdater.setFeedURL>[0] = {
|
const feedUrl = AFFiNEUpdateProvider.configFeed({
|
||||||
channel: buildType,
|
channel: buildType,
|
||||||
// hack for custom provider
|
});
|
||||||
provider: 'custom' as 'github',
|
|
||||||
repo: buildType !== 'internal' ? 'AFFiNE' : 'AFFiNE-Releases',
|
|
||||||
owner: 'toeverything',
|
|
||||||
releaseType: buildType === 'stable' ? 'release' : 'prerelease',
|
|
||||||
// @ts-expect-error hack for custom provider
|
|
||||||
updateProvider: CustomGitHubProvider,
|
|
||||||
};
|
|
||||||
|
|
||||||
logger.debug('auto-updater feed config', feedUrl);
|
logger.debug('auto-updater feed config', feedUrl);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/tag/v0.16.3-beta.2",
|
||||||
|
"name": "0.16.3-beta.2",
|
||||||
|
"tag_name": "v0.16.3-beta.2",
|
||||||
|
"published_at": "2024-08-14T06:56:25Z",
|
||||||
|
"assets": [
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-beta.2-beta-linux-x64.appimage",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/affine-0.16.3-beta.2-beta-linux-x64.appimage",
|
||||||
|
"size": 178308288
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-beta.2-beta-linux-x64.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/affine-0.16.3-beta.2-beta-linux-x64.zip",
|
||||||
|
"size": 176402697
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-beta.2-beta-macos-arm64.dmg",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/affine-0.16.3-beta.2-beta-macos-arm64.dmg",
|
||||||
|
"size": 168063426
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-beta.2-beta-macos-arm64.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/affine-0.16.3-beta.2-beta-macos-arm64.zip",
|
||||||
|
"size": 167528680
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-beta.2-beta-macos-x64.dmg",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/affine-0.16.3-beta.2-beta-macos-x64.dmg",
|
||||||
|
"size": 175049454
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-beta.2-beta-macos-x64.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/affine-0.16.3-beta.2-beta-macos-x64.zip",
|
||||||
|
"size": 174740492
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-beta.2-beta-windows-x64.exe",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/affine-0.16.3-beta.2-beta-windows-x64.exe",
|
||||||
|
"size": 177771240
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-beta.2-beta-windows-x64.nsis.exe",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/affine-0.16.3-beta.2-beta-windows-x64.nsis.exe",
|
||||||
|
"size": 130309240
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "codecov.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/codecov.yml",
|
||||||
|
"size": 91
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "latest-linux.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/latest-linux.yml",
|
||||||
|
"size": 561
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "latest-mac.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/latest-mac.yml",
|
||||||
|
"size": 897
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "latest.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/latest.yml",
|
||||||
|
"size": 562
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "web-static.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3-beta.2/web-static.zip",
|
||||||
|
"size": 61990155
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/tag/v0.17.0-canary.7",
|
||||||
|
"name": "0.17.0-canary.7",
|
||||||
|
"tag_name": "v0.17.0-canary.7",
|
||||||
|
"published_at": "2024-08-29T08:20:54Z",
|
||||||
|
"assets": [
|
||||||
|
{
|
||||||
|
"name": "affine-0.17.0-canary.7-canary-linux-x64.appimage",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/affine-0.17.0-canary.7-canary-linux-x64.appimage",
|
||||||
|
"size": 181990592
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.17.0-canary.7-canary-linux-x64.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/affine-0.17.0-canary.7-canary-linux-x64.zip",
|
||||||
|
"size": 180105256
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.17.0-canary.7-canary-macos-arm64.dmg",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/affine-0.17.0-canary.7-canary-macos-arm64.dmg",
|
||||||
|
"size": 170556866
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.17.0-canary.7-canary-macos-arm64.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/affine-0.17.0-canary.7-canary-macos-arm64.zip",
|
||||||
|
"size": 170382513
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.17.0-canary.7-canary-macos-x64.dmg",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/affine-0.17.0-canary.7-canary-macos-x64.dmg",
|
||||||
|
"size": 176815834
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.17.0-canary.7-canary-macos-x64.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/affine-0.17.0-canary.7-canary-macos-x64.zip",
|
||||||
|
"size": 176948223
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.17.0-canary.7-canary-windows-x64.exe",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/affine-0.17.0-canary.7-canary-windows-x64.exe",
|
||||||
|
"size": 182557416
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.17.0-canary.7-canary-windows-x64.nsis.exe",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/affine-0.17.0-canary.7-canary-windows-x64.nsis.exe",
|
||||||
|
"size": 133493672
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "codecov.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/codecov.yml",
|
||||||
|
"size": 91
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "latest-linux.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/latest-linux.yml",
|
||||||
|
"size": 575
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "latest-mac.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/latest-mac.yml",
|
||||||
|
"size": 919
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "latest.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/latest.yml",
|
||||||
|
"size": 576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "web-static.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.17.0-canary.7/web-static.zip",
|
||||||
|
"size": 61555023
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/tag/v0.16.3",
|
||||||
|
"name": "0.16.3",
|
||||||
|
"tag_name": "v0.16.3",
|
||||||
|
"published_at": "2024-08-14T07:43:22Z",
|
||||||
|
"assets": [
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-stable-linux-x64.appimage",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/affine-0.16.3-stable-linux-x64.appimage",
|
||||||
|
"size": 178308288
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-stable-linux-x64.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/affine-0.16.3-stable-linux-x64.zip",
|
||||||
|
"size": 176405078
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-stable-macos-arm64.dmg",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/affine-0.16.3-stable-macos-arm64.dmg",
|
||||||
|
"size": 168093091
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-stable-macos-arm64.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/affine-0.16.3-stable-macos-arm64.zip",
|
||||||
|
"size": 167540517
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-stable-macos-x64.dmg",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/affine-0.16.3-stable-macos-x64.dmg",
|
||||||
|
"size": 175029125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-stable-macos-x64.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/affine-0.16.3-stable-macos-x64.zip",
|
||||||
|
"size": 174752343
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-stable-windows-x64.exe",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/affine-0.16.3-stable-windows-x64.exe",
|
||||||
|
"size": 177757416
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "affine-0.16.3-stable-windows-x64.nsis.exe",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/affine-0.16.3-stable-windows-x64.nsis.exe",
|
||||||
|
"size": 130302976
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "codecov.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/codecov.yml",
|
||||||
|
"size": 91
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "latest-linux.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/latest-linux.yml",
|
||||||
|
"size": 539
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "latest-mac.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/latest-mac.yml",
|
||||||
|
"size": 865
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "latest.yml",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/latest.yml",
|
||||||
|
"size": 540
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "web-static.zip",
|
||||||
|
"url": "https://github.com/toeverything/AFFiNE/releases/download/v0.16.3/web-static.zip",
|
||||||
|
"size": 61989498
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xml:lang="en-US">
|
|
||||||
<id>tag:github.com,2008:https://github.com/toeverything/AFFiNE/releases</id>
|
|
||||||
<link type="text/html" rel="alternate" href="https://github.com/toeverything/AFFiNE/releases"/>
|
|
||||||
<link type="application/atom+xml" rel="self" href="https://github.com/toeverything/AFFiNE/releases.atom"/>
|
|
||||||
<title>Release notes from AFFiNE</title>
|
|
||||||
<updated>2023-12-28T16:36:36+08:00</updated>
|
|
||||||
<entry>
|
|
||||||
<id>tag:github.com,2008:Repository/519859998/0.11.0-nightly-202312280901-e11e827</id>
|
|
||||||
<updated>2023-12-28T17:23:15+08:00</updated>
|
|
||||||
<link rel="alternate" type="text/html" href="https://github.com/toeverything/AFFiNE/releases/tag/0.11.0-nightly-202312280901-e11e827"/>
|
|
||||||
<title>0.11.0-nightly-202312280901-e11e827</title>
|
|
||||||
<content>No content.</content>
|
|
||||||
<author>
|
|
||||||
<name>github-actions[bot]</name>
|
|
||||||
</author>
|
|
||||||
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/in/15368?s=60&v=4"/>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<id>tag:github.com,2008:Repository/519859998/v0.11.1</id>
|
|
||||||
<updated>2023-12-27T19:40:15+08:00</updated>
|
|
||||||
<link rel="alternate" type="text/html" href="https://github.com/toeverything/AFFiNE/releases/tag/v0.11.1"/>
|
|
||||||
<title>0.11.1</title>
|
|
||||||
<content type="html"><p>fix(core): enable page history for beta/stable (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056965718" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5415" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5415/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5415">#5415</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a><br>
|
|
||||||
fix(component): fix font display on safari (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055383919" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5393" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5393/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5393">#5393</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/EYHN/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/EYHN">@EYHN</a><br>
|
|
||||||
fix(core): avatars are not aligned (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056136302" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5404" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5404/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5404">#5404</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JimmFly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JimmFly">@JimmFly</a><br>
|
|
||||||
fix(core): trash page footer display issue (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056129348" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5402" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5402/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5402">#5402</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a><br>
|
|
||||||
fix(electron): set stable base url to app.affine.pro (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056113464" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5401" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5401/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5401">#5401</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joooye34/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joooye34">@joooye34</a><br>
|
|
||||||
fix(core): about setting blink issue (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056090521" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5399" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5399/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5399">#5399</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a><br>
|
|
||||||
fix(core): workpace list blink issue on open (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056096694" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5400" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5400/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5400">#5400</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a><br>
|
|
||||||
chore(core): add background color to questionnaire (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055986563" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5396" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5396/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5396">#5396</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JimmFly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JimmFly">@JimmFly</a><br>
|
|
||||||
fix(core): correct title of onboarding article-2 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2053650286" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5387" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5387/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5387">#5387</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CatsJuice/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CatsJuice">@CatsJuice</a><br>
|
|
||||||
fix: use prefix in electron to prevent formdata bug (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055616549" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5395" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5395/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5395">#5395</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/darkskygit/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/darkskygit">@darkskygit</a><br>
|
|
||||||
fix(core): fix flickering workspace list (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055363698" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5391" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5391/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5391">#5391</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/EYHN/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/EYHN">@EYHN</a><br>
|
|
||||||
fix(workspace): fix svg file with xml header (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2053693777" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5388" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5388/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5388">#5388</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/EYHN/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/EYHN">@EYHN</a><br>
|
|
||||||
feat: bump blocksuite (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2053645163" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5386" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5386/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5386">#5386</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/regischen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/regischen">@regischen</a></p></content>
|
|
||||||
<author>
|
|
||||||
<name>github-actions[bot]</name>
|
|
||||||
</author>
|
|
||||||
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/in/15368?s=60&v=4"/>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<id>tag:github.com,2008:Repository/519859998/v0.11.1-beta.1</id>
|
|
||||||
<updated>2023-12-27T18:30:52+08:00</updated>
|
|
||||||
<link rel="alternate" type="text/html" href="https://github.com/toeverything/AFFiNE/releases/tag/v0.11.1-beta.1"/>
|
|
||||||
<title>0.11.1-beta.1</title>
|
|
||||||
<content type="html"><p>fix(core): enable page history for beta/stable (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056965718" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5415" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5415/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5415">#5415</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a><br>
|
|
||||||
fix(component): fix font display on safari (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055383919" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5393" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5393/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5393">#5393</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/EYHN/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/EYHN">@EYHN</a><br>
|
|
||||||
fix(core): avatars are not aligned (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056136302" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5404" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5404/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5404">#5404</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JimmFly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JimmFly">@JimmFly</a><br>
|
|
||||||
fix(core): trash page footer display issue (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056129348" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5402" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5402/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5402">#5402</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a><br>
|
|
||||||
fix(electron): set stable base url to app.affine.pro (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056113464" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5401" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5401/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5401">#5401</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joooye34/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joooye34">@joooye34</a><br>
|
|
||||||
fix(core): about setting blink issue (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056090521" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5399" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5399/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5399">#5399</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a><br>
|
|
||||||
fix(core): workpace list blink issue on open (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056096694" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5400" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5400/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5400">#5400</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a><br>
|
|
||||||
chore(core): add background color to questionnaire (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055986563" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5396" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5396/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5396">#5396</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JimmFly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JimmFly">@JimmFly</a><br>
|
|
||||||
fix(core): correct title of onboarding article-2 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2053650286" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5387" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5387/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5387">#5387</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CatsJuice/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CatsJuice">@CatsJuice</a><br>
|
|
||||||
fix: use prefix in electron to prevent formdata bug (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055616549" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5395" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5395/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5395">#5395</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/darkskygit/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/darkskygit">@darkskygit</a><br>
|
|
||||||
fix(core): fix flickering workspace list (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055363698" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5391" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5391/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5391">#5391</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/EYHN/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/EYHN">@EYHN</a><br>
|
|
||||||
fix(workspace): fix svg file with xml header (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2053693777" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5388" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5388/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5388">#5388</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/EYHN/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/EYHN">@EYHN</a><br>
|
|
||||||
feat: bump blocksuite (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2053645163" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5386" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5386/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5386">#5386</a>) <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/regischen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/regischen">@regischen</a></p></content>
|
|
||||||
<author>
|
|
||||||
<name>github-actions[bot]</name>
|
|
||||||
</author>
|
|
||||||
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/in/15368?s=60&v=4"/>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<id>tag:github.com,2008:Repository/519859998/v0.11.1-canary.2</id>
|
|
||||||
<updated>2023-12-28T10:47:52+08:00</updated>
|
|
||||||
<link rel="alternate" type="text/html" href="https://github.com/toeverything/AFFiNE/releases/tag/v0.11.1-canary.2"/>
|
|
||||||
<title>0.11.1-canary.2</title>
|
|
||||||
<content>No content.</content>
|
|
||||||
<author>
|
|
||||||
<name>github-actions[bot]</name>
|
|
||||||
</author>
|
|
||||||
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/in/15368?s=60&v=4"/>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<id>tag:github.com,2008:Repository/519859998/v0.11.1-canary.1</id>
|
|
||||||
<updated>2023-12-27T10:47:52+08:00</updated>
|
|
||||||
<link rel="alternate" type="text/html" href="https://github.com/toeverything/AFFiNE/releases/tag/v0.11.1-canary.1"/>
|
|
||||||
<title>0.11.1-canary.1</title>
|
|
||||||
<content type="html"><h2>What's Changed</h2>
|
|
||||||
<ul>
|
|
||||||
<li>fix(core): remove plugins settings by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2048206391" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5337" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5337/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5337">#5337</a></li>
|
|
||||||
<li>chore: bump up @vitejs/plugin-vue version to v5 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055571407" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5394" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5394/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5394">#5394</a></li>
|
|
||||||
<li>fix(core): correct title of onboarding article-2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/CatsJuice/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/CatsJuice">@CatsJuice</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2053650286" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5387" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5387/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5387">#5387</a></li>
|
|
||||||
<li>chore(core): add background color to questionnaire by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JimmFly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JimmFly">@JimmFly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2055986563" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5396" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5396/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5396">#5396</a></li>
|
|
||||||
<li>ci: define tag name to fix nightly release failing by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joooye34/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joooye34">@joooye34</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056068417" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5397" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5397/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5397">#5397</a></li>
|
|
||||||
<li>fix(core): workpace list blink issue on open by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056096694" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5400" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5400/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5400">#5400</a></li>
|
|
||||||
<li>fix(core): about setting blink issue by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056090521" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5399" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5399/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5399">#5399</a></li>
|
|
||||||
<li>fix(electron): set stable base url to app.affine.pro by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/joooye34/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/joooye34">@joooye34</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056113464" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5401" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5401/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5401">#5401</a></li>
|
|
||||||
<li>fix(core): trash page footer display issue by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056129348" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5402" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5402/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5402">#5402</a></li>
|
|
||||||
<li>chore: bump up @types/supertest version to v6 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2053226342" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5376" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5376/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5376">#5376</a></li>
|
|
||||||
<li>chore: bump up react-i18next version to v14 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/renovate/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/renovate">@renovate</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2052675317" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5375" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5375/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5375">#5375</a></li>
|
|
||||||
<li>fix(core): avatars are not aligned by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JimmFly/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JimmFly">@JimmFly</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056136302" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5404" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5404/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5404">#5404</a></li>
|
|
||||||
<li>fix(infra): workaround for self-referencing in storybook by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengx17/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengx17">@pengx17</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2056165203" data-permission-text="Title is private" data-url="https://github.com/toeverything/AFFiNE/issues/5406" data-hovercard-type="pull_request" data-hovercard-url="/toeverything/AFFiNE/pull/5406/hovercard" href="https://github.com/toeverything/AFFiNE/pull/5406">#5406</a></li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/toeverything/AFFiNE/compare/v0.11.1-canary.0...v0.11.1-canary.1"><tt>v0.11.1-canary.0...v0.11.1-canary.1</tt></a></p></content>
|
|
||||||
<author>
|
|
||||||
<name>github-actions[bot]</name>
|
|
||||||
</author>
|
|
||||||
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/in/15368?s=60&v=4"/>
|
|
||||||
</entry>
|
|
||||||
</feed>
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135252810",
|
|
||||||
"assets_url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135252810/assets",
|
|
||||||
"upload_url": "https://uploads.github.com/repos/toeverything/AFFiNE/releases/135252810/assets{?name,label}",
|
|
||||||
"html_url": "https://github.com/toeverything/AFFiNE/releases/tag/0.11.0-nightly-202312280901-e11e827",
|
|
||||||
"id": 135252810,
|
|
||||||
"node_id": "RE_kwDOHvxvHs4ID8tK",
|
|
||||||
"tag_name": "0.11.0-nightly-202312280901-e11e827",
|
|
||||||
"target_commitish": "canary",
|
|
||||||
"name": "0.11.0-nightly-202312280901-e11e827",
|
|
||||||
"draft": false,
|
|
||||||
"prerelease": true,
|
|
||||||
"created_at": "2023-12-28T08:36:36Z",
|
|
||||||
"published_at": "2023-12-28T09:23:07Z",
|
|
||||||
"tarball_url": "https://api.github.com/repos/toeverything/AFFiNE/tarball/0.11.0-nightly-202312280901-e11e827",
|
|
||||||
"zipball_url": "https://api.github.com/repos/toeverything/AFFiNE/zipball/0.11.0-nightly-202312280901-e11e827",
|
|
||||||
"body": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135173430",
|
|
||||||
"assets_url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135173430/assets",
|
|
||||||
"upload_url": "https://uploads.github.com/repos/toeverything/AFFiNE/releases/135173430/assets{?name,label}",
|
|
||||||
"html_url": "https://github.com/toeverything/AFFiNE/releases/tag/v0.11.1",
|
|
||||||
"id": 135173430,
|
|
||||||
"node_id": "RE_kwDOHvxvHs4IDpU2",
|
|
||||||
"tag_name": "v0.11.1",
|
|
||||||
"target_commitish": "canary",
|
|
||||||
"name": "0.11.1",
|
|
||||||
"draft": false,
|
|
||||||
"prerelease": false,
|
|
||||||
"created_at": "2023-12-27T06:39:59Z",
|
|
||||||
"published_at": "2023-12-27T11:40:15Z",
|
|
||||||
"tarball_url": "https://api.github.com/repos/toeverything/AFFiNE/tarball/v0.11.1",
|
|
||||||
"zipball_url": "https://api.github.com/repos/toeverything/AFFiNE/zipball/v0.11.1",
|
|
||||||
"mentions_count": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135163918",
|
|
||||||
"assets_url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135163918/assets",
|
|
||||||
"upload_url": "https://uploads.github.com/repos/toeverything/AFFiNE/releases/135163918/assets{?name,label}",
|
|
||||||
"html_url": "https://github.com/toeverything/AFFiNE/releases/tag/v0.11.1-beta.1",
|
|
||||||
"id": 135163918,
|
|
||||||
"node_id": "RE_kwDOHvxvHs4IDnAO",
|
|
||||||
"tag_name": "v0.11.1-beta.1",
|
|
||||||
"target_commitish": "canary",
|
|
||||||
"name": "0.11.1-beta.1",
|
|
||||||
"draft": false,
|
|
||||||
"prerelease": true,
|
|
||||||
"created_at": "2023-12-27T06:39:59Z",
|
|
||||||
"published_at": "2023-12-27T10:30:52Z",
|
|
||||||
"tarball_url": "https://api.github.com/repos/toeverything/AFFiNE/tarball/v0.11.1-beta.1",
|
|
||||||
"zipball_url": "https://api.github.com/repos/toeverything/AFFiNE/zipball/v0.11.1-beta.1",
|
|
||||||
"mentions_count": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135103520",
|
|
||||||
"assets_url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135103520/assets",
|
|
||||||
"upload_url": "https://uploads.github.com/repos/toeverything/AFFiNE/releases/135103520/assets{?name,label}",
|
|
||||||
"html_url": "https://github.com/toeverything/AFFiNE/releases/tag/v0.11.1-canary.1",
|
|
||||||
"id": 135103520,
|
|
||||||
"node_id": "RE_kwDOHvxvHs4IDYQg",
|
|
||||||
"tag_name": "v0.11.1-canary.2",
|
|
||||||
"target_commitish": "canary",
|
|
||||||
"name": "0.11.1-canary.2",
|
|
||||||
"draft": true,
|
|
||||||
"prerelease": true,
|
|
||||||
"created_at": "2023-12-26T12:27:20Z",
|
|
||||||
"published_at": "2023-12-26T13:24:28Z",
|
|
||||||
"tarball_url": "https://api.github.com/repos/toeverything/AFFiNE/tarball/v0.11.1-canary.1",
|
|
||||||
"zipball_url": "https://api.github.com/repos/toeverything/AFFiNE/zipball/v0.11.1-canary.1",
|
|
||||||
"body": "## What's Changed\r\n* fix(core): remove plugins settings by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5337\r\n* chore: bump up @vitejs/plugin-vue version to v5 by @renovate in https://github.com/toeverything/AFFiNE/pull/5394\r\n* fix(core): correct title of onboarding article-2 by @CatsJuice in https://github.com/toeverything/AFFiNE/pull/5387\r\n* chore(core): add background color to questionnaire by @JimmFly in https://github.com/toeverything/AFFiNE/pull/5396\r\n* ci: define tag name to fix nightly release failing by @joooye34 in https://github.com/toeverything/AFFiNE/pull/5397\r\n* fix(core): workpace list blink issue on open by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5400\r\n* fix(core): about setting blink issue by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5399\r\n* fix(electron): set stable base url to app.affine.pro by @joooye34 in https://github.com/toeverything/AFFiNE/pull/5401\r\n* fix(core): trash page footer display issue by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5402\r\n* chore: bump up @types/supertest version to v6 by @renovate in https://github.com/toeverything/AFFiNE/pull/5376\r\n* chore: bump up react-i18next version to v14 by @renovate in https://github.com/toeverything/AFFiNE/pull/5375\r\n* fix(core): avatars are not aligned by @JimmFly in https://github.com/toeverything/AFFiNE/pull/5404\r\n* fix(infra): workaround for self-referencing in storybook by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5406\r\n\r\n\r\n**Full Changelog**: https://github.com/toeverything/AFFiNE/compare/v0.11.1-canary.0...v0.11.1-canary.1",
|
|
||||||
"mentions_count": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135103520",
|
|
||||||
"assets_url": "https://api.github.com/repos/toeverything/AFFiNE/releases/135103520/assets",
|
|
||||||
"upload_url": "https://uploads.github.com/repos/toeverything/AFFiNE/releases/135103520/assets{?name,label}",
|
|
||||||
"html_url": "https://github.com/toeverything/AFFiNE/releases/tag/v0.11.1-canary.1",
|
|
||||||
"id": 135103520,
|
|
||||||
"node_id": "RE_kwDOHvxvHs4IDYQg",
|
|
||||||
"tag_name": "v0.11.1-canary.1",
|
|
||||||
"target_commitish": "canary",
|
|
||||||
"name": "0.11.1-canary.1",
|
|
||||||
"draft": false,
|
|
||||||
"prerelease": true,
|
|
||||||
"created_at": "2023-12-26T12:27:20Z",
|
|
||||||
"published_at": "2023-12-26T13:24:28Z",
|
|
||||||
"tarball_url": "https://api.github.com/repos/toeverything/AFFiNE/tarball/v0.11.1-canary.1",
|
|
||||||
"zipball_url": "https://api.github.com/repos/toeverything/AFFiNE/zipball/v0.11.1-canary.1",
|
|
||||||
"body": "## What's Changed\r\n* fix(core): remove plugins settings by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5337\r\n* chore: bump up @vitejs/plugin-vue version to v5 by @renovate in https://github.com/toeverything/AFFiNE/pull/5394\r\n* fix(core): correct title of onboarding article-2 by @CatsJuice in https://github.com/toeverything/AFFiNE/pull/5387\r\n* chore(core): add background color to questionnaire by @JimmFly in https://github.com/toeverything/AFFiNE/pull/5396\r\n* ci: define tag name to fix nightly release failing by @joooye34 in https://github.com/toeverything/AFFiNE/pull/5397\r\n* fix(core): workpace list blink issue on open by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5400\r\n* fix(core): about setting blink issue by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5399\r\n* fix(electron): set stable base url to app.affine.pro by @joooye34 in https://github.com/toeverything/AFFiNE/pull/5401\r\n* fix(core): trash page footer display issue by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5402\r\n* chore: bump up @types/supertest version to v6 by @renovate in https://github.com/toeverything/AFFiNE/pull/5376\r\n* chore: bump up react-i18next version to v14 by @renovate in https://github.com/toeverything/AFFiNE/pull/5375\r\n* fix(core): avatars are not aligned by @JimmFly in https://github.com/toeverything/AFFiNE/pull/5404\r\n* fix(infra): workaround for self-referencing in storybook by @pengx17 in https://github.com/toeverything/AFFiNE/pull/5406\r\n\r\n\r\n**Full Changelog**: https://github.com/toeverything/AFFiNE/compare/v0.11.1-canary.0...v0.11.1-canary.1",
|
|
||||||
"mentions_count": 5
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
version: 0.11.1-beta.1
|
|
||||||
files:
|
|
||||||
- url: affine-beta-windows-x64.exe
|
|
||||||
sha512: uQdF7bEZteCMp/bT7vwCjlEcAf6osW9zZ+Q5grEkmbHPpcqCCzLudguXqHIwohO4GGq9pS8H4kJzG0LZc+SmXg==
|
|
||||||
size: 179515752
|
|
||||||
- url: affine-beta-macos-arm64.dmg
|
|
||||||
sha512: gRsi4XO4+kREQuLX2CnS2V9vvUmBMmoGR6MvoB6TEFm1WiC8k8v69DRKYQ0Vjlom/j9HZlBEYUTqcW7IsMgrpw==
|
|
||||||
size: 169726061
|
|
||||||
- url: affine-beta-macos-arm64.zip
|
|
||||||
sha512: +aXkjJfQnp2dUz3Y0i5cL6V5Hm1OkYVlwM/KAcZfLlvLoU3zQ0zSZvJ6+H2IlIhOebSq56Ip76H5NP8fe7UnOw==
|
|
||||||
size: 169007175
|
|
||||||
- url: affine-beta-macos-x64.dmg
|
|
||||||
sha512: i5V95dLx3iWFpNj89wFU40THT3Oeow8g706Z6/mG1zYOIR3kXUkIpp6+wJmlfe9g4iwNmRd0rgI4HAG5LaQagg==
|
|
||||||
size: 175712730
|
|
||||||
- url: affine-beta-macos-x64.zip
|
|
||||||
sha512: DnRUHcj+4FluII5kTbUuEAQI2CIRufd1Z0P98pwa/uX5hk2iOj1QzMD8WM+MTbFNC6rZvMtMlos8GyVLsZmK0w==
|
|
||||||
size: 175235583
|
|
||||||
path: affine-beta-windows-x64.exe
|
|
||||||
sha512: uQdF7bEZteCMp/bT7vwCjlEcAf6osW9zZ+Q5grEkmbHPpcqCCzLudguXqHIwohO4GGq9pS8H4kJzG0LZc+SmXg==
|
|
||||||
releaseDate: 2023-12-27T08:59:31.826Z
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
version: 0.11.1-canary.1
|
|
||||||
files:
|
|
||||||
- url: affine-canary-windows-x64.exe
|
|
||||||
sha512: qbK4N6+axVO2dA/iPzfhANWxCZXY1S3ci9qYIT1v/h0oCjc6vqpXU+2KRGL5mplL6wmVgJAOpqrfnq9gHMsfDg==
|
|
||||||
size: 179526504
|
|
||||||
- url: affine-canary-macos-arm64.dmg
|
|
||||||
sha512: ++LAGuxTmFAVd65k8UpKKfU19iisvXHKDDfPkGlTVC000QP3foeS21BmTgYnM1ZuhEC6KGzSGrqvUDVDNYnRmA==
|
|
||||||
size: 169903530
|
|
||||||
- url: affine-canary-macos-arm64.zip
|
|
||||||
sha512: IAWbCpVqPPVVzDowGKGnKZzHN2jPgAW40v+bUZR2tdgDrqIAVy4YdamYz8WmEwpg1TXmi0ueSsWgGFPgBIr0iA==
|
|
||||||
size: 169085665
|
|
||||||
- url: affine-canary-macos-x64.dmg
|
|
||||||
sha512: 4y4/KkmkmFmZ94ntRAN0lSX7aZzgEd4Wg7f85Tff296P3x85sbPF4FFIp++Zx/cgBZBUQwMWe9xeGlefompQ/g==
|
|
||||||
size: 175920978
|
|
||||||
- url: affine-canary-macos-x64.zip
|
|
||||||
sha512: S1MuMHooMOQ9eJ+coRYmyz6k5lnWIMqHotSrywxGGo7sFXBY+O5F4PeKgNREJtwXjAIxv0GxZVvbe5jc+onw9w==
|
|
||||||
size: 175315484
|
|
||||||
path: affine-canary-windows-x64.exe
|
|
||||||
sha512: qbK4N6+axVO2dA/iPzfhANWxCZXY1S3ci9qYIT1v/h0oCjc6vqpXU+2KRGL5mplL6wmVgJAOpqrfnq9gHMsfDg==
|
|
||||||
releaseDate: 2023-12-26T13:24:28.221Z
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
version: 0.11.1-canary.2
|
|
||||||
files:
|
|
||||||
- url: affine-canary-windows-x64.exe
|
|
||||||
sha512: qbK4N6+axVO2dA/iPzfhANWxCZXY1S3ci9qYIT1v/h0oCjc6vqpXU+2KRGL5mplL6wmVgJAOpqrfnq9gHMsfDg==
|
|
||||||
size: 179526504
|
|
||||||
- url: affine-canary-macos-arm64.dmg
|
|
||||||
sha512: ++LAGuxTmFAVd65k8UpKKfU19iisvXHKDDfPkGlTVC000QP3foeS21BmTgYnM1ZuhEC6KGzSGrqvUDVDNYnRmA==
|
|
||||||
size: 169903530
|
|
||||||
- url: affine-canary-macos-arm64.zip
|
|
||||||
sha512: IAWbCpVqPPVVzDowGKGnKZzHN2jPgAW40v+bUZR2tdgDrqIAVy4YdamYz8WmEwpg1TXmi0ueSsWgGFPgBIr0iA==
|
|
||||||
size: 169085665
|
|
||||||
- url: affine-canary-macos-x64.dmg
|
|
||||||
sha512: 4y4/KkmkmFmZ94ntRAN0lSX7aZzgEd4Wg7f85Tff296P3x85sbPF4FFIp++Zx/cgBZBUQwMWe9xeGlefompQ/g==
|
|
||||||
size: 175920978
|
|
||||||
- url: affine-canary-macos-x64.zip
|
|
||||||
sha512: S1MuMHooMOQ9eJ+coRYmyz6k5lnWIMqHotSrywxGGo7sFXBY+O5F4PeKgNREJtwXjAIxv0GxZVvbe5jc+onw9w==
|
|
||||||
size: 175315484
|
|
||||||
path: affine-canary-windows-x64.exe
|
|
||||||
sha512: qbK4N6+axVO2dA/iPzfhANWxCZXY1S3ci9qYIT1v/h0oCjc6vqpXU+2KRGL5mplL6wmVgJAOpqrfnq9gHMsfDg==
|
|
||||||
releaseDate: 2023-12-26T13:24:28.221Z
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
version: 0.11.1
|
|
||||||
files:
|
|
||||||
- url: affine-stable-windows-x64.exe
|
|
||||||
sha512: qHRO31Fb8F+Q/hiGiJJ2WH+PpSC5iUIPtWujUoI+XNMz7UfhCGxoVW9U38CTE9LecILS119SZN0rrHkmu+nQiw==
|
|
||||||
size: 179504488
|
|
||||||
- url: affine-stable-macos-arm64.dmg
|
|
||||||
sha512: uDS7bZusoU5p2t4bi1k/IdvChj3BRIWbOLanbhAfIjwBmf9FM3553wgeUzQLRMRuD5wavsw/aA1BaqFJIbwkyQ==
|
|
||||||
size: 169793193
|
|
||||||
- url: affine-stable-macos-arm64.zip
|
|
||||||
sha512: n4CrOgNPd70WqPfe0ZEKzmyOdqOlVnFvQqylIlt92eqKrUb8jcxVThQY+GU2Jy3jVjvKqUvubodDbIkQhXQ1xQ==
|
|
||||||
size: 169014676
|
|
||||||
- url: affine-stable-macos-x64.dmg
|
|
||||||
sha512: xFy1kt1025h1wqBjHt+IoPweC40UqAZvZLI2XD3LIlPG60jZ03+QM75UwaXYuVYEqe3kO9a3WeFcrfGdoj4Hzw==
|
|
||||||
size: 175720872
|
|
||||||
- url: affine-stable-macos-x64.zip
|
|
||||||
sha512: FfgX22ytleb8fv35odzhDyFsmiUVPdI4XQjTB4uDmkhQ719i+W4yctUnP5TSCpymYC0HgVRFSVg4Jkuuli+8ug==
|
|
||||||
size: 175244411
|
|
||||||
path: affine-stable-windows-x64.exe
|
|
||||||
sha512: qHRO31Fb8F+Q/hiGiJJ2WH+PpSC5iUIPtWujUoI+XNMz7UfhCGxoVW9U38CTE9LecILS119SZN0rrHkmu+nQiw==
|
|
||||||
releaseDate: 2023-12-27T11:04:53.014Z
|
|
||||||
11
packages/frontend/electron/test/main/fixtures/releases/0.16.3-beta.2/latest-linux.yml
vendored
Normal file
11
packages/frontend/electron/test/main/fixtures/releases/0.16.3-beta.2/latest-linux.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
version: 0.16.3-beta.2
|
||||||
|
files:
|
||||||
|
- url: affine-0.16.3-beta.2-beta-linux-x64.appimage
|
||||||
|
sha512: munCzfD0tOky2MRZVVu+/JCCMrQ4C/EcOSxkNXrEVwK0aoeYo3Q0H1Cm/KJ+7mZ2yMfxctdPH0KGfHRL0tNENg==
|
||||||
|
size: 178308288
|
||||||
|
- url: affine-0.16.3-beta.2-beta-linux-x64.zip
|
||||||
|
sha512: 6emy8f8QrhrAdNxOfHj9PSbWtRXI/LocvpsckrbqrYIi7sU12GmmS0dI2SCxvDBwYTDSoC4mh0erfzUeDSLAEg==
|
||||||
|
size: 176402697
|
||||||
|
path: affine-0.16.3-beta.2-beta-linux-x64.appimage
|
||||||
|
sha512: munCzfD0tOky2MRZVVu+/JCCMrQ4C/EcOSxkNXrEVwK0aoeYo3Q0H1Cm/KJ+7mZ2yMfxctdPH0KGfHRL0tNENg==
|
||||||
|
releaseDate: 2024-08-14T06:56:24.609Z
|
||||||
17
packages/frontend/electron/test/main/fixtures/releases/0.16.3-beta.2/latest-mac.yml
vendored
Normal file
17
packages/frontend/electron/test/main/fixtures/releases/0.16.3-beta.2/latest-mac.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
version: 0.16.3-beta.2
|
||||||
|
files:
|
||||||
|
- url: affine-0.16.3-beta.2-beta-macos-arm64.dmg
|
||||||
|
sha512: 5sR2TXAV+hgMOvplG2CobW5VSsrGXsAoZmgWqs7uEpf491XoYkUFl5iXQZaL23xi0HpuGkSS33jSZ/b7pwy0Hg==
|
||||||
|
size: 168063426
|
||||||
|
- url: affine-0.16.3-beta.2-beta-macos-arm64.zip
|
||||||
|
sha512: aI/q3DgyORjCNLxrtsT7W1KoAcuaxUT0AY0QtwnRjtMYiJYV/s4aTQtGFISDEdHcU9Vy+mS8ZcZ6yRVCksdKAg==
|
||||||
|
size: 167528680
|
||||||
|
- url: affine-0.16.3-beta.2-beta-macos-x64.dmg
|
||||||
|
sha512: P8JoSRP5tu2fpQb/EwdV6OSPNx9lEj1NT8iAZhawgeCVLaWokMMVkcsqyRYi7vX25Hf7eegvxF5LNpYzUsfKQQ==
|
||||||
|
size: 175049454
|
||||||
|
- url: affine-0.16.3-beta.2-beta-macos-x64.zip
|
||||||
|
sha512: gpzlGq0ucZUeJOZi6h/cIFRpvIhGJ5qYmWkrD6ncMgSJQOVWQapfFOrQrmU7SCwtE92pfRUcrZeH3g9cNrJDSQ==
|
||||||
|
size: 174740492
|
||||||
|
path: affine-0.16.3-beta.2-beta-macos-arm64.dmg
|
||||||
|
sha512: 5sR2TXAV+hgMOvplG2CobW5VSsrGXsAoZmgWqs7uEpf491XoYkUFl5iXQZaL23xi0HpuGkSS33jSZ/b7pwy0Hg==
|
||||||
|
releaseDate: 2024-08-14T06:56:23.981Z
|
||||||
11
packages/frontend/electron/test/main/fixtures/releases/0.16.3-beta.2/latest.yml
vendored
Normal file
11
packages/frontend/electron/test/main/fixtures/releases/0.16.3-beta.2/latest.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
version: 0.16.3-beta.2
|
||||||
|
files:
|
||||||
|
- url: affine-0.16.3-beta.2-beta-windows-x64.exe
|
||||||
|
sha512: iHiIF5Swrgz6RfL/Xf9KFZsmFggGFWtSrkj7IUJUt69Z+gxQQp2dO4wrQ4uaZmiqMVr+8Op++oeczMhcjXGPHw==
|
||||||
|
size: 177771240
|
||||||
|
- url: affine-0.16.3-beta.2-beta-windows-x64.nsis.exe
|
||||||
|
sha512: 5437aZddjbgzwGWsj/nxgepS2jBM/WB561DNz3XXA5sTtqPVafMvEmcbE1KE86JZTpAAJHcJheSwjxdYOL/Lgw==
|
||||||
|
size: 130309240
|
||||||
|
path: affine-0.16.3-beta.2-beta-windows-x64.exe
|
||||||
|
sha512: iHiIF5Swrgz6RfL/Xf9KFZsmFggGFWtSrkj7IUJUt69Z+gxQQp2dO4wrQ4uaZmiqMVr+8Op++oeczMhcjXGPHw==
|
||||||
|
releaseDate: 2024-08-14T06:56:22.750Z
|
||||||
11
packages/frontend/electron/test/main/fixtures/releases/0.16.3/latest-linux.yml
vendored
Normal file
11
packages/frontend/electron/test/main/fixtures/releases/0.16.3/latest-linux.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
version: 0.16.3
|
||||||
|
files:
|
||||||
|
- url: affine-0.16.3-stable-linux-x64.appimage
|
||||||
|
sha512: nmID71T7jq9yKCdujVUeL71TLXmwIdaaWZB0ouDX13Np1vahS1+1A5uJbHUzTH0N/sN0W+LKUg9L29wNgi42gw==
|
||||||
|
size: 178308288
|
||||||
|
- url: affine-0.16.3-stable-linux-x64.zip
|
||||||
|
sha512: fsHTT0fUeU/uLGdlRiuddzSuJWIOcaUTgUj7DB5XSQJ4qA5blAcpij8zOil0ww3Ea7Kwe7qcIe4SSCtNFu31sQ==
|
||||||
|
size: 176405078
|
||||||
|
path: affine-0.16.3-stable-linux-x64.appimage
|
||||||
|
sha512: nmID71T7jq9yKCdujVUeL71TLXmwIdaaWZB0ouDX13Np1vahS1+1A5uJbHUzTH0N/sN0W+LKUg9L29wNgi42gw==
|
||||||
|
releaseDate: 2024-08-14T07:11:42.171Z
|
||||||
17
packages/frontend/electron/test/main/fixtures/releases/0.16.3/latest-mac.yml
vendored
Normal file
17
packages/frontend/electron/test/main/fixtures/releases/0.16.3/latest-mac.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
version: 0.16.3
|
||||||
|
files:
|
||||||
|
- url: affine-0.16.3-stable-macos-arm64.dmg
|
||||||
|
sha512: fmJWpi45gVYYUavb0Cd6Y9DR2nxBc3wMagHOiMF1PPg+4tEyHGmVIhRIwY/QaJ5TAR+3tRAENZwen2gvja0UtQ==
|
||||||
|
size: 168093091
|
||||||
|
- url: affine-0.16.3-stable-macos-arm64.zip
|
||||||
|
sha512: u1ud8pJ613A5Oqh3fbcnUUOA4hNoURWBdtAMJoeZ6EIAUvZzV0tsDcAqLiEP89LKbitaH0IdrW3D8EFSsZ9kRw==
|
||||||
|
size: 167540517
|
||||||
|
- url: affine-0.16.3-stable-macos-x64.dmg
|
||||||
|
sha512: Ou1W6/xHyM+ZN9BLYvc+8qCB8wR9F3jLQP5m3oG0uIDDw7wwoR+ny3gcWbDzalfxoOR84CvM74LIfc7BQf69Uw==
|
||||||
|
size: 175029125
|
||||||
|
- url: affine-0.16.3-stable-macos-x64.zip
|
||||||
|
sha512: oot098M9qqdRbw+znnuLjVedZ1U59p4m+gzSxRtpCuYdfvumvu5/RN1jvY2cHssqstJj/Ybh4eBTlREZMgKyyg==
|
||||||
|
size: 174752343
|
||||||
|
path: affine-0.16.3-stable-macos-arm64.dmg
|
||||||
|
sha512: fmJWpi45gVYYUavb0Cd6Y9DR2nxBc3wMagHOiMF1PPg+4tEyHGmVIhRIwY/QaJ5TAR+3tRAENZwen2gvja0UtQ==
|
||||||
|
releaseDate: 2024-08-14T07:11:41.503Z
|
||||||
11
packages/frontend/electron/test/main/fixtures/releases/0.16.3/latest.yml
vendored
Normal file
11
packages/frontend/electron/test/main/fixtures/releases/0.16.3/latest.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
version: 0.16.3
|
||||||
|
files:
|
||||||
|
- url: affine-0.16.3-stable-windows-x64.exe
|
||||||
|
sha512: 47zaLkAhSxPuWsKq01dSEt8GusXqK1rmSaiOTBLe32lmUiXPhUqYO5JhzbrjJKx7/TFcic4UDJ/Zir3wf9fKRA==
|
||||||
|
size: 177757416
|
||||||
|
- url: affine-0.16.3-stable-windows-x64.nsis.exe
|
||||||
|
sha512: G3Rxa3onqlJTGQIcz7Rz6ZQ/6rAwjzjYnW/HB5yzXkjN6e5yfW2JBk765+AyiPFV5Mn4Rloj7V6GM6m4q7WfWg==
|
||||||
|
size: 130302976
|
||||||
|
path: affine-0.16.3-stable-windows-x64.exe
|
||||||
|
sha512: 47zaLkAhSxPuWsKq01dSEt8GusXqK1rmSaiOTBLe32lmUiXPhUqYO5JhzbrjJKx7/TFcic4UDJ/Zir3wf9fKRA==
|
||||||
|
releaseDate: 2024-08-14T07:11:40.285Z
|
||||||
11
packages/frontend/electron/test/main/fixtures/releases/0.17.0-canary.7/latest-linux.yml
vendored
Normal file
11
packages/frontend/electron/test/main/fixtures/releases/0.17.0-canary.7/latest-linux.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
version: 0.17.0-canary.7
|
||||||
|
files:
|
||||||
|
- url: affine-0.17.0-canary.7-canary-linux-x64.appimage
|
||||||
|
sha512: qspZkDlItrHu02vSItbjc3I+t4FcOiHOzGt0Ap6IeZEFKal+hoOh4WIcUN16dlS/OoFm+is8yPBHqN/70xhWKA==
|
||||||
|
size: 181990592
|
||||||
|
- url: affine-0.17.0-canary.7-canary-linux-x64.zip
|
||||||
|
sha512: fom2iuMiPUlnHAGJhQdAnWJwMggK4rloNkiWqH8ZHF1Q09oturgSMGgkUEWZWXsZPpORt545eYNv5Zg9aff8yQ==
|
||||||
|
size: 180105256
|
||||||
|
path: affine-0.17.0-canary.7-canary-linux-x64.appimage
|
||||||
|
sha512: qspZkDlItrHu02vSItbjc3I+t4FcOiHOzGt0Ap6IeZEFKal+hoOh4WIcUN16dlS/OoFm+is8yPBHqN/70xhWKA==
|
||||||
|
releaseDate: 2024-08-29T08:20:53.453Z
|
||||||
17
packages/frontend/electron/test/main/fixtures/releases/0.17.0-canary.7/latest-mac.yml
vendored
Normal file
17
packages/frontend/electron/test/main/fixtures/releases/0.17.0-canary.7/latest-mac.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
version: 0.17.0-canary.7
|
||||||
|
files:
|
||||||
|
- url: affine-0.17.0-canary.7-canary-macos-arm64.dmg
|
||||||
|
sha512: Tdy7dgrCHP95PjsZBt1evxUk7DUkn+JpseBQj1Gz60MmcsFx+0NtJvofZbUcsLFiS0IC32JM/szHlHiNGEznrQ==
|
||||||
|
size: 170556866
|
||||||
|
- url: affine-0.17.0-canary.7-canary-macos-arm64.zip
|
||||||
|
sha512: pmYD0B5Z9hrzgjcHmRCKnNawoPJiO5r1RjBBZi+THVL3TyKXzpJBr9HTNQkjYnQYgqHX4q2eoONsDNCIoqTeBA==
|
||||||
|
size: 170382513
|
||||||
|
- url: affine-0.17.0-canary.7-canary-macos-x64.dmg
|
||||||
|
sha512: k4a4GUmy/6MmSc1xVGJNeNCCtYylWWSRcfDoZA+syUhZFY6x3xrOft972ONsiRrJukXWlKrFmVTwoW68Ywe49A==
|
||||||
|
size: 176815834
|
||||||
|
- url: affine-0.17.0-canary.7-canary-macos-x64.zip
|
||||||
|
sha512: PL24krtjeiQY53F7OuS+hh8EZP3YpbLle0JboXiddSrulypxzBRquOCCinNW88Kg8ZJbOrfTkxaNOHpOAVfeaQ==
|
||||||
|
size: 176948223
|
||||||
|
path: affine-0.17.0-canary.7-canary-macos-arm64.dmg
|
||||||
|
sha512: Tdy7dgrCHP95PjsZBt1evxUk7DUkn+JpseBQj1Gz60MmcsFx+0NtJvofZbUcsLFiS0IC32JM/szHlHiNGEznrQ==
|
||||||
|
releaseDate: 2024-08-29T08:20:52.810Z
|
||||||
11
packages/frontend/electron/test/main/fixtures/releases/0.17.0-canary.7/latest.yml
vendored
Normal file
11
packages/frontend/electron/test/main/fixtures/releases/0.17.0-canary.7/latest.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
version: 0.17.0-canary.7
|
||||||
|
files:
|
||||||
|
- url: affine-0.17.0-canary.7-canary-windows-x64.exe
|
||||||
|
sha512: cF47Wcu69PXyMVswSzrdNktNO2lqkjsyJ/HQr2qWjFPuIJfcad9QDTfOyCVsMCV6KGUSSeFiTHyObWgKd6z2DQ==
|
||||||
|
size: 182557416
|
||||||
|
- url: affine-0.17.0-canary.7-canary-windows-x64.nsis.exe
|
||||||
|
sha512: ztugqKwPpxDDSK1OpzUPkGvL8wLXwg9rh985bs9ZvxydY037yKBAZOk96PPtow2qqRb5/9Xn8MuGrWgchqXkVg==
|
||||||
|
size: 133493672
|
||||||
|
path: affine-0.17.0-canary.7-canary-windows-x64.exe
|
||||||
|
sha512: cF47Wcu69PXyMVswSzrdNktNO2lqkjsyJ/HQr2qWjFPuIJfcad9QDTfOyCVsMCV6KGUSSeFiTHyObWgKd6z2DQ==
|
||||||
|
releaseDate: 2024-08-29T08:20:51.573Z
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import nodePath from 'node:path';
|
import path from 'node:path';
|
||||||
import { fileURLToPath } from 'node:url';
|
import { fileURLToPath } from 'node:url';
|
||||||
|
|
||||||
import type { UpdateCheckResult } from 'electron-updater';
|
import type { UpdateCheckResult } from 'electron-updater';
|
||||||
@@ -16,7 +16,7 @@ import {
|
|||||||
vi,
|
vi,
|
||||||
} from 'vitest';
|
} from 'vitest';
|
||||||
|
|
||||||
import { CustomGitHubProvider } from '../../src/main/updater/custom-github-provider';
|
import { AFFiNEUpdateProvider } from '../../src/main/updater/affine-update-provider';
|
||||||
import { MockedAppAdapter, MockedUpdater } from './mocks';
|
import { MockedAppAdapter, MockedUpdater } from './mocks';
|
||||||
|
|
||||||
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
||||||
@@ -39,72 +39,52 @@ const platformTail = (() => {
|
|||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
function response404() {
|
|
||||||
return HttpResponse.text('Not Found', { status: 404 });
|
|
||||||
}
|
|
||||||
function response403() {
|
|
||||||
return HttpResponse.text('403', { status: 403 });
|
|
||||||
}
|
|
||||||
|
|
||||||
describe('testing for client update', () => {
|
describe('testing for client update', () => {
|
||||||
const expectReleaseList = [
|
const expectReleaseList = [
|
||||||
{ buildType: 'stable', version: '0.11.1' },
|
{ buildType: 'stable', version: '0.16.3' },
|
||||||
{ buildType: 'beta', version: '0.11.1-beta.1' },
|
{ buildType: 'beta', version: '0.16.3-beta.2' },
|
||||||
{ buildType: 'canary', version: '0.11.1-canary.1' },
|
{ buildType: 'canary', version: '0.17.0-canary.7' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const basicRequestHandlers = [
|
const basicRequestHandlers = [
|
||||||
http.get(
|
http.get('https://affine.pro/api/worker/releases', async ({ request }) => {
|
||||||
'https://github.com/toeverything/AFFiNE/releases.atom',
|
const url = new URL(request.url);
|
||||||
async () => {
|
const buffer = await fs.readFile(
|
||||||
const buffer = await fs.readFile(
|
path.join(
|
||||||
nodePath.join(__dirname, 'fixtures', 'feeds.txt')
|
__dirname,
|
||||||
);
|
'fixtures',
|
||||||
const content = buffer.toString();
|
'candidates',
|
||||||
return HttpResponse.xml(content);
|
`${url.searchParams.get('channel')}.json`
|
||||||
}
|
)
|
||||||
),
|
);
|
||||||
|
const content = buffer.toString();
|
||||||
|
return HttpResponse.text(content);
|
||||||
|
}),
|
||||||
...flatten(
|
...flatten(
|
||||||
expectReleaseList.map(({ version, buildType }) => {
|
expectReleaseList.map(({ version }) => {
|
||||||
return [
|
return [
|
||||||
http.get(
|
http.get(
|
||||||
`https://github.com/toeverything/AFFiNE/releases/download/v${version}/latest${platformTail}.yml`,
|
`https://github.com/toeverything/AFFiNE/releases/download/v${version}/latest${platformTail}.yml`,
|
||||||
async () => {
|
async req => {
|
||||||
const buffer = await fs.readFile(
|
const buffer = await fs.readFile(
|
||||||
nodePath.join(
|
path.join(
|
||||||
__dirname,
|
__dirname,
|
||||||
'fixtures',
|
'fixtures',
|
||||||
'releases',
|
'releases',
|
||||||
`${version}.txt`
|
version,
|
||||||
|
path.parse(req.request.url).base
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
const content = buffer.toString();
|
const content = buffer.toString();
|
||||||
return HttpResponse.text(content);
|
return HttpResponse.text(content);
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
http.get(
|
|
||||||
`https://github.com/toeverything/AFFiNE/releases/download/v${version}/${buildType}${platformTail}.yml`,
|
|
||||||
response404
|
|
||||||
),
|
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
describe('release api request successfully', () => {
|
describe('release api request successfully', () => {
|
||||||
const server = setupServer(
|
const server = setupServer(...basicRequestHandlers);
|
||||||
...basicRequestHandlers,
|
|
||||||
http.get(
|
|
||||||
'https://api.github.com/repos/toeverything/affine/releases',
|
|
||||||
async () => {
|
|
||||||
const buffer = await fs.readFile(
|
|
||||||
nodePath.join(__dirname, 'fixtures', 'release-list.txt')
|
|
||||||
);
|
|
||||||
const content = buffer.toString();
|
|
||||||
return HttpResponse.xml(content);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
|
||||||
beforeAll(() => server.listen({ onUnhandledRequest: 'error' }));
|
beforeAll(() => server.listen({ onUnhandledRequest: 'error' }));
|
||||||
afterAll(() => server.close());
|
afterAll(() => server.close());
|
||||||
afterEach(() => server.resetHandlers());
|
afterEach(() => server.resetHandlers());
|
||||||
@@ -113,80 +93,19 @@ describe('testing for client update', () => {
|
|||||||
it(`check update for ${buildType} channel successfully`, async () => {
|
it(`check update for ${buildType} channel successfully`, async () => {
|
||||||
const app = new MockedAppAdapter('0.10.0');
|
const app = new MockedAppAdapter('0.10.0');
|
||||||
const updater = new MockedUpdater(null, app);
|
const updater = new MockedUpdater(null, app);
|
||||||
updater.allowPrerelease = buildType !== 'stable';
|
|
||||||
|
|
||||||
const feedUrl: Parameters<typeof updater.setFeedURL>[0] = {
|
updater.setFeedURL(
|
||||||
channel: buildType,
|
AFFiNEUpdateProvider.configFeed({
|
||||||
// hack for custom provider
|
channel: buildType as any,
|
||||||
provider: 'custom' as 'github',
|
})
|
||||||
repo: 'AFFiNE',
|
);
|
||||||
owner: 'toeverything',
|
|
||||||
releaseType: buildType === 'stable' ? 'release' : 'prerelease',
|
|
||||||
// @ts-expect-error hack for custom provider
|
|
||||||
updateProvider: CustomGitHubProvider,
|
|
||||||
};
|
|
||||||
|
|
||||||
updater.setFeedURL(feedUrl);
|
|
||||||
|
|
||||||
const info = (await updater.checkForUpdates()) as UpdateCheckResult;
|
const info = (await updater.checkForUpdates()) as UpdateCheckResult;
|
||||||
expect(info).not.toBe(null);
|
expect(info).not.toBe(null);
|
||||||
expect(info.updateInfo.releaseName).toBe(version);
|
expect(info.updateInfo.releaseName).toBe(version);
|
||||||
expect(info.updateInfo.version).toBe(version);
|
expect(info.updateInfo.version).toBe(version);
|
||||||
expect(info.updateInfo.releaseNotes?.length).toBeGreaterThan(0);
|
// expect(info.updateInfo.releaseNotes?.length).toBeGreaterThan(0);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('release api request limited', () => {
|
|
||||||
const server = setupServer(
|
|
||||||
...basicRequestHandlers,
|
|
||||||
http.get(
|
|
||||||
'https://api.github.com/repos/toeverything/affine/releases',
|
|
||||||
response403
|
|
||||||
),
|
|
||||||
http.get(
|
|
||||||
`https://github.com/toeverything/AFFiNE/releases/download/v0.11.1-canary.2/canary${platformTail}.yml`,
|
|
||||||
async () => {
|
|
||||||
const buffer = await fs.readFile(
|
|
||||||
nodePath.join(
|
|
||||||
__dirname,
|
|
||||||
'fixtures',
|
|
||||||
'releases',
|
|
||||||
`0.11.1-canary.2.txt`
|
|
||||||
)
|
|
||||||
);
|
|
||||||
const content = buffer.toString();
|
|
||||||
return HttpResponse.text(content);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
|
||||||
beforeAll(() => server.listen({ onUnhandledRequest: 'error' }));
|
|
||||||
afterAll(() => server.close());
|
|
||||||
afterEach(() => server.resetHandlers());
|
|
||||||
|
|
||||||
it('check update for canary channel get v0.11.1-canary.2', async () => {
|
|
||||||
const app = new MockedAppAdapter('0.10.0');
|
|
||||||
const updater = new MockedUpdater(null, app);
|
|
||||||
updater.allowPrerelease = true;
|
|
||||||
|
|
||||||
const feedUrl: Parameters<typeof updater.setFeedURL>[0] = {
|
|
||||||
channel: 'canary',
|
|
||||||
// hack for custom provider
|
|
||||||
provider: 'custom' as 'github',
|
|
||||||
repo: 'AFFiNE',
|
|
||||||
owner: 'toeverything',
|
|
||||||
releaseType: 'prerelease',
|
|
||||||
// @ts-expect-error hack for custom provider
|
|
||||||
updateProvider: CustomGitHubProvider,
|
|
||||||
};
|
|
||||||
|
|
||||||
updater.setFeedURL(feedUrl);
|
|
||||||
|
|
||||||
const info = (await updater.checkForUpdates()) as UpdateCheckResult;
|
|
||||||
expect(info).not.toBe(null);
|
|
||||||
expect(info.updateInfo.releaseName).toBe('0.11.1-canary.2');
|
|
||||||
expect(info.updateInfo.version).toBe('0.11.1-canary.2');
|
|
||||||
expect(info.updateInfo.releaseNotes?.length).toBe(0);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user