Skip to content

Bump version to 1.0.11 #10

Bump version to 1.0.11

Bump version to 1.0.11 #10

Workflow file for this run

name: Build and Release macOS App
on:
push:
tags:
- "v*"
# Add explicit permissions
permissions:
contents: write # This is needed for creating releases
jobs:
release:
runs-on: macos-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history and tags
- name: Verify TanStack packages
run: |
if [ ! -f "fixed-tanstack-query-devtools.tgz" ] || [ ! -f "fixed-tanstack-react-query-devtools.tgz" ]; then
echo "❌ Fixed TanStack package files are missing! Cannot proceed."
exit 1
fi
echo "📦 Fixed TanStack packages found:"
ls -la fixed-*.tgz
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 10
- name: Configure pnpm for Electron Forge
run: |
# Create .npmrc file with required settings for Electron Forge
echo "node-linker=hoisted" > .npmrc
echo "frozen-lockfile=false" >> .npmrc
echo "save-exact=true" >> .npmrc
echo "Content of .npmrc:"
cat .npmrc
- name: Install dependencies
run: |
pnpm install --no-frozen-lockfile --unsafe-perm=true
echo "Basic dependencies installed"
- name: Setup TanStack Packages
run: |
echo "Setting up TanStack packages..."
mkdir -p temp
echo "Extracting @tanstack/react-query-devtools..."
tar -xzf fixed-tanstack-react-query-devtools.tgz -C temp/
mkdir -p node_modules/@tanstack/react-query-devtools
echo "Moving @tanstack/react-query-devtools files..."
cp -r temp/package/* node_modules/@tanstack/react-query-devtools/
echo "Extracting @tanstack/query-devtools..."
rm -rf temp
mkdir -p temp
tar -xzf fixed-tanstack-query-devtools.tgz -C temp/
mkdir -p node_modules/@tanstack/query-devtools
echo "Moving @tanstack/query-devtools files..."
cp -r temp/package/* node_modules/@tanstack/query-devtools/
echo "Creating stub for @tanstack/react-query..."
mkdir -p node_modules/@tanstack/react-query/build/lib
echo "Creating package.json for react-query..."
cat > node_modules/@tanstack/react-query/package.json << 'EOF'
{
"name": "@tanstack/react-query",
"version": "5.71.1",
"main": "build/lib/index.js",
"module": "build/lib/index.esm.js",
"browser": "build/lib/index.js",
"exports": {
".": {
"import": "./build/lib/index.esm.js",
"require": "./build/lib/index.js"
}
},
"dependencies": {},
"peerDependencies": {
"react": "^18.0.0"
}
}
EOF
echo "Creating CJS stub implementation..."
cat > node_modules/@tanstack/react-query/build/lib/index.js << 'EOF'
'use strict';
// Stub implementation of react-query
const QueryClient = function() {
return {
prefetchQuery: () => Promise.resolve(),
getQueryCache: () => ({}),
getQueryData: () => ({}),
setQueryData: () => ({}),
getQueryState: () => ({}),
fetchQuery: () => Promise.resolve({}),
fetchInfiniteQuery: () => Promise.resolve({}),
invalidateQueries: () => Promise.resolve(),
cancelQueries: () => Promise.resolve(),
refetchQueries: () => Promise.resolve(),
executeMutation: () => Promise.resolve(),
getDefaultOptions: () => ({}),
setDefaultOptions: () => {},
getQueryDefaults: () => ({}),
setQueryDefaults: () => {},
getMutationDefaults: () => ({}),
setMutationDefaults: () => {},
defaultQueryOptions: (options) => options,
defaultMutationOptions: (options) => options,
clear: () => {},
};
};
const QueryClientProvider = function() {
return null;
};
exports.QueryClient = QueryClient;
exports.QueryClientProvider = QueryClientProvider;
exports.useQuery = () => ({ data: null, isLoading: false, error: null });
exports.useMutation = () => [() => {}, { isLoading: false, error: null }];
exports.useInfiniteQuery = () => ({ data: null, isLoading: false, error: null, fetchNextPage: () => {} });
exports.useQueryClient = () => new QueryClient();
EOF
echo "Creating ESM stub implementation..."
cat > node_modules/@tanstack/react-query/build/lib/index.esm.js << 'EOF'
// Stub implementation of react-query
export const QueryClient = function() {
return {
prefetchQuery: () => Promise.resolve(),
getQueryCache: () => ({}),
getQueryData: () => ({}),
setQueryData: () => ({}),
getQueryState: () => ({}),
fetchQuery: () => Promise.resolve({}),
fetchInfiniteQuery: () => Promise.resolve({}),
invalidateQueries: () => Promise.resolve(),
cancelQueries: () => Promise.resolve(),
refetchQueries: () => Promise.resolve(),
executeMutation: () => Promise.resolve(),
getDefaultOptions: () => ({}),
setDefaultOptions: () => {},
getQueryDefaults: () => ({}),
setQueryDefaults: () => {},
getMutationDefaults: () => ({}),
setMutationDefaults: () => {},
defaultQueryOptions: (options) => options,
defaultMutationOptions: (options) => options,
clear: () => {},
};
};
export const QueryClientProvider = function() {
return null;
};
export const useQuery = () => ({ data: null, isLoading: false, error: null });
export const useMutation = () => [() => {}, { isLoading: false, error: null }];
export const useInfiniteQuery = () => ({ data: null, isLoading: false, error: null, fetchNextPage: () => {} });
export const useQueryClient = () => new QueryClient();
EOF
echo "TanStack packages setup complete"
- name: Update Vite Configuration
run: |
echo "Updating Vite configuration to handle TanStack packages..."
cat > vite.renderer.config.ts << 'EOF'
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { builtinModules } from 'module';
import * as path from 'path';
// https://vitejs.dev/config
export default defineConfig({
plugins: [react()],
build: {
rollupOptions: {
external: [
'@tanstack/query-devtools',
'@tanstack/react-query-devtools',
'@tanstack/react-query',
...builtinModules,
],
},
},
resolve: {
alias: {
'@tanstack/react-query-devtools': path.resolve(__dirname, 'node_modules/@tanstack/react-query-devtools'),
'@tanstack/query-devtools': path.resolve(__dirname, 'node_modules/@tanstack/query-devtools'),
'@tanstack/react-query': path.resolve(__dirname, 'node_modules/@tanstack/react-query'),
},
},
});
EOF
echo "Vite configuration updated"
- name: Build and package Electron app
run: pnpm run make
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: macos-app
path: out/make/**/*.zip
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: |
out/make/**/*.zip
draft: true
generate_release_notes: true