Version problem, pinned flutter container image version

This commit is contained in:
Álvaro González 2026-02-17 09:38:00 +01:00
parent f5c9493360
commit d4f255646e
7 changed files with 152 additions and 260 deletions

View file

@ -1,31 +0,0 @@
FROM ghcr.io/cirruslabs/flutter:stable
# Install cmake, ninja, clang, pkg-config for flutter linux
RUN apt-get update && apt-get install -y cmake ninja-build clang pkg-config libgtk-3-dev liblzma-dev
WORKDIR /app
# Configure cache directories
ENV PUB_CACHE=/cache/pub-cache
ENV GRADLE_USER_HOME=/cache/gradle-cache
RUN mkdir -p $PUB_CACHE $GRADLE_USER_HOME
# To avoid: fatal: detected dubious ownership in repository at '/sdks/flutter'
# Pass this during build: --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g)
ARG USER_ID
ARG GROUP_ID
RUN echo "Using UID: $USER_ID and GID: $GROUP_ID"
RUN chown -R $USER_ID:$GROUP_ID $PUB_CACHE $GRADLE_USER_HOME
RUN chown -R $USER_ID:$GROUP_ID /sdks/flutter
USER $USER_ID:$GROUP_ID
# Copy pubspec files and get dependencies
# Commented out to avoid building the app during image creation, this will be handled externally by makefile
# COPY pubspec.yaml pubspec.lock ./
# RUN flutter pub get
# Copy the rest of the application code and build
# Commented out to avoid building the app during image creation, this will be handled externally by makefile
# COPY . .
# RUN flutter build apk --release

View file

@ -1,5 +1,5 @@
all: clean-container build-linux-debug-container
all: clean-container build-builders build-linux-debug-container
build-container:
./flutterw --build-container

View file

@ -1,4 +1,4 @@
FROM ghcr.io/cirruslabs/flutter:stable
FROM ghcr.io/cirruslabs/flutter:3.32.3
# Install cmake, ninja, clang, pkg-config, and other tools for flutter linux
RUN apt-get update && apt-get install -y \

View file

@ -12,27 +12,18 @@ class $FormulaElementsTable extends FormulaElements
static const VerificationMeta _idMeta = const VerificationMeta('id');
@override
late final GeneratedColumn<int> id = GeneratedColumn<int>(
'id',
aliasedName,
false,
'id', aliasedName, false,
hasAutoIncrement: true,
type: DriftSqlType.int,
requiredDuringInsert: false,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'PRIMARY KEY AUTOINCREMENT',
),
);
static const VerificationMeta _elementTextMeta = const VerificationMeta(
'elementText',
);
defaultConstraints:
GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
static const VerificationMeta _elementTextMeta =
const VerificationMeta('elementText');
@override
late final GeneratedColumn<String> elementText = GeneratedColumn<String>(
'element_text',
aliasedName,
false,
type: DriftSqlType.string,
requiredDuringInsert: true,
);
'element_text', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true);
@override
List<GeneratedColumn> get $columns => [id, elementText];
@override
@ -41,10 +32,8 @@ class $FormulaElementsTable extends FormulaElements
String get actualTableName => $name;
static const String $name = 'formula_elements';
@override
VerificationContext validateIntegrity(
Insertable<FormulaElement> instance, {
bool isInserting = false,
}) {
VerificationContext validateIntegrity(Insertable<FormulaElement> instance,
{bool isInserting = false}) {
final context = VerificationContext();
final data = instance.toColumns(true);
if (data.containsKey('id')) {
@ -54,10 +43,7 @@ class $FormulaElementsTable extends FormulaElements
context.handle(
_elementTextMeta,
elementText.isAcceptableOrUnknown(
data['element_text']!,
_elementTextMeta,
),
);
data['element_text']!, _elementTextMeta));
} else if (isInserting) {
context.missing(_elementTextMeta);
}
@ -70,14 +56,10 @@ class $FormulaElementsTable extends FormulaElements
FormulaElement map(Map<String, dynamic> data, {String? tablePrefix}) {
final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
return FormulaElement(
id: attachedDatabase.typeMapping.read(
DriftSqlType.int,
data['${effectivePrefix}id'],
)!,
elementText: attachedDatabase.typeMapping.read(
DriftSqlType.string,
data['${effectivePrefix}element_text'],
)!,
id: attachedDatabase.typeMapping
.read(DriftSqlType.int, data['${effectivePrefix}id'])!,
elementText: attachedDatabase.typeMapping
.read(DriftSqlType.string, data['${effectivePrefix}element_text'])!,
);
}
@ -106,10 +88,8 @@ class FormulaElement extends DataClass implements Insertable<FormulaElement> {
);
}
factory FormulaElement.fromJson(
Map<String, dynamic> json, {
ValueSerializer? serializer,
}) {
factory FormulaElement.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= driftRuntimeOptions.defaultSerializer;
return FormulaElement(
id: serializer.fromJson<int>(json['id']),
@ -132,9 +112,8 @@ class FormulaElement extends DataClass implements Insertable<FormulaElement> {
FormulaElement copyWithCompanion(FormulaElementsCompanion data) {
return FormulaElement(
id: data.id.present ? data.id.value : this.id,
elementText: data.elementText.present
? data.elementText.value
: this.elementText,
elementText:
data.elementText.present ? data.elementText.value : this.elementText,
);
}
@ -178,10 +157,8 @@ class FormulaElementsCompanion extends UpdateCompanion<FormulaElement> {
});
}
FormulaElementsCompanion copyWith({
Value<int>? id,
Value<String>? elementText,
}) {
FormulaElementsCompanion copyWith(
{Value<int>? id, Value<String>? elementText}) {
return FormulaElementsCompanion(
id: id ?? this.id,
elementText: elementText ?? this.elementText,
@ -213,9 +190,8 @@ class FormulaElementsCompanion extends UpdateCompanion<FormulaElement> {
abstract class _$FormulasDatabase extends GeneratedDatabase {
_$FormulasDatabase(QueryExecutor e) : super(e);
$FormulasDatabaseManager get managers => $FormulasDatabaseManager(this);
late final $FormulaElementsTable formulaElements = $FormulaElementsTable(
this,
);
late final $FormulaElementsTable formulaElements =
$FormulaElementsTable(this);
@override
Iterable<TableInfo<Table, Object?>> get allTables =>
allSchemaEntities.whereType<TableInfo<Table, Object?>>();
@ -223,13 +199,13 @@ abstract class _$FormulasDatabase extends GeneratedDatabase {
List<DatabaseSchemaEntity> get allSchemaEntities => [formulaElements];
}
typedef $$FormulaElementsTableCreateCompanionBuilder =
FormulaElementsCompanion Function({
typedef $$FormulaElementsTableCreateCompanionBuilder = FormulaElementsCompanion
Function({
Value<int> id,
required String elementText,
});
typedef $$FormulaElementsTableUpdateCompanionBuilder =
FormulaElementsCompanion Function({
typedef $$FormulaElementsTableUpdateCompanionBuilder = FormulaElementsCompanion
Function({
Value<int> id,
Value<String> elementText,
});
@ -244,14 +220,10 @@ class $$FormulaElementsTableFilterComposer
super.$removeJoinBuilderFromRootComposer,
});
ColumnFilters<int> get id => $composableBuilder(
column: $table.id,
builder: (column) => ColumnFilters(column),
);
column: $table.id, builder: (column) => ColumnFilters(column));
ColumnFilters<String> get elementText => $composableBuilder(
column: $table.elementText,
builder: (column) => ColumnFilters(column),
);
column: $table.elementText, builder: (column) => ColumnFilters(column));
}
class $$FormulaElementsTableOrderingComposer
@ -264,14 +236,10 @@ class $$FormulaElementsTableOrderingComposer
super.$removeJoinBuilderFromRootComposer,
});
ColumnOrderings<int> get id => $composableBuilder(
column: $table.id,
builder: (column) => ColumnOrderings(column),
);
column: $table.id, builder: (column) => ColumnOrderings(column));
ColumnOrderings<String> get elementText => $composableBuilder(
column: $table.elementText,
builder: (column) => ColumnOrderings(column),
);
column: $table.elementText, builder: (column) => ColumnOrderings(column));
}
class $$FormulaElementsTableAnnotationComposer
@ -287,14 +255,10 @@ class $$FormulaElementsTableAnnotationComposer
$composableBuilder(column: $table.id, builder: (column) => column);
GeneratedColumn<String> get elementText => $composableBuilder(
column: $table.elementText,
builder: (column) => column,
);
column: $table.elementText, builder: (column) => column);
}
class $$FormulaElementsTableTableManager
extends
RootTableManager<
class $$FormulaElementsTableTableManager extends RootTableManager<
_$FormulasDatabase,
$FormulaElementsTable,
FormulaElement,
@ -305,20 +269,13 @@ class $$FormulaElementsTableTableManager
$$FormulaElementsTableUpdateCompanionBuilder,
(
FormulaElement,
BaseReferences<
_$FormulasDatabase,
$FormulaElementsTable,
FormulaElement
>,
BaseReferences<_$FormulasDatabase, $FormulaElementsTable, FormulaElement>
),
FormulaElement,
PrefetchHooks Function()
> {
PrefetchHooks Function()> {
$$FormulaElementsTableTableManager(
_$FormulasDatabase db,
$FormulaElementsTable table,
) : super(
TableManagerState(
_$FormulasDatabase db, $FormulaElementsTable table)
: super(TableManagerState(
db: db,
table: table,
createFilteringComposer: () =>
@ -327,16 +284,19 @@ class $$FormulaElementsTableTableManager
$$FormulaElementsTableOrderingComposer($db: db, $table: table),
createComputedFieldComposer: () =>
$$FormulaElementsTableAnnotationComposer($db: db, $table: table),
updateCompanionCallback:
({
updateCompanionCallback: ({
Value<int> id = const Value.absent(),
Value<String> elementText = const Value.absent(),
}) => FormulaElementsCompanion(id: id, elementText: elementText),
createCompanionCallback:
({
}) =>
FormulaElementsCompanion(
id: id,
elementText: elementText,
),
createCompanionCallback: ({
Value<int> id = const Value.absent(),
required String elementText,
}) => FormulaElementsCompanion.insert(
}) =>
FormulaElementsCompanion.insert(
id: id,
elementText: elementText,
),
@ -344,12 +304,10 @@ class $$FormulaElementsTableTableManager
.map((e) => (e.readTable(table), BaseReferences(db, table, e)))
.toList(),
prefetchHooksCallback: null,
),
);
));
}
typedef $$FormulaElementsTableProcessedTableManager =
ProcessedTableManager<
typedef $$FormulaElementsTableProcessedTableManager = ProcessedTableManager<
_$FormulasDatabase,
$FormulaElementsTable,
FormulaElement,
@ -360,15 +318,10 @@ typedef $$FormulaElementsTableProcessedTableManager =
$$FormulaElementsTableUpdateCompanionBuilder,
(
FormulaElement,
BaseReferences<
_$FormulasDatabase,
$FormulaElementsTable,
FormulaElement
>,
BaseReferences<_$FormulasDatabase, $FormulaElementsTable, FormulaElement>
),
FormulaElement,
PrefetchHooks Function()
>;
PrefetchHooks Function()>;
class $FormulasDatabaseManager {
final _$FormulasDatabase _db;

View file

@ -5,11 +5,13 @@
import FlutterMacOS
import Foundation
import path_provider_foundation
import share_plus
import sqlite3_flutter_libs
import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))

View file

@ -161,14 +161,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.1.2"
code_assets:
dependency: transitive
description:
name: code_assets
sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
code_builder:
dependency: transitive
description:
@ -388,10 +380,10 @@ packages:
dependency: "direct main"
description:
name: get_it
sha256: ae78de7c3f2304b8d81f2bb6e320833e5e81de942188542328f074978cc0efa9
sha256: "1d648d2dd2047d7f7450d5727ca24ee435f240385753d90b49650e3cdff32e56"
url: "https://pub.dev"
source: hosted
version: "8.3.0"
version: "9.2.0"
glob:
dependency: transitive
description:
@ -424,14 +416,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.2.3"
hooks:
dependency: transitive
description:
name: hooks
sha256: "7a08a0d684cb3b8fb604b78455d5d352f502b68079f7b80b831c62220ab0a4f6"
url: "https://pub.dev"
source: hosted
version: "1.0.1"
http:
dependency: transitive
description:
@ -476,34 +460,34 @@ packages:
dependency: transitive
description:
name: json_annotation
sha256: "805fa86df56383000f640384b282ce0cb8431f1a7a2396de92fb66186d8c57df"
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
url: "https://pub.dev"
source: hosted
version: "4.10.0"
version: "4.9.0"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
url: "https://pub.dev"
source: hosted
version: "11.0.2"
version: "10.0.9"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
url: "https://pub.dev"
source: hosted
version: "3.0.10"
version: "3.0.9"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
version: "3.0.1"
linked_scroll_controller:
dependency: transitive
description:
@ -556,10 +540,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
url: "https://pub.dev"
source: hosted
version: "1.17.0"
version: "1.16.0"
mime:
dependency: transitive
description:
@ -576,14 +560,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.4"
native_toolchain_c:
dependency: transitive
description:
name: native_toolchain_c
sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac"
url: "https://pub.dev"
source: hosted
version: "0.17.4"
nested:
dependency: transitive
description:
@ -600,14 +576,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.2"
objective_c:
dependency: transitive
description:
name: objective_c
sha256: "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52"
url: "https://pub.dev"
source: hosted
version: "9.3.0"
package_config:
dependency: transitive
description:
@ -644,18 +612,18 @@ packages:
dependency: transitive
description:
name: path_provider_android
sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e
sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37"
url: "https://pub.dev"
source: hosted
version: "2.2.22"
version: "2.2.19"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
url: "https://pub.dev"
source: hosted
version: "2.6.0"
version: "2.4.2"
path_provider_linux:
dependency: transitive
description:
@ -764,18 +732,18 @@ packages:
dependency: "direct main"
description:
name: share_plus
sha256: fce43200aa03ea87b91ce4c3ac79f0cecd52e2a7a56c7a4185023c271fbfa6da
sha256: "14c8860d4de93d3a7e53af51bff479598c4e999605290756bbbe45cf65b37840"
url: "https://pub.dev"
source: hosted
version: "10.1.4"
version: "12.0.1"
share_plus_platform_interface:
dependency: transitive
description:
name: share_plus_platform_interface
sha256: cc012a23fc2d479854e6c80150696c4a5f5bb62cb89af4de1c505cf78d0a5d0b
sha256: "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a"
url: "https://pub.dev"
source: hosted
version: "5.0.2"
version: "6.1.0"
shelf:
dependency: transitive
description:
@ -841,10 +809,10 @@ packages:
dependency: transitive
description:
name: source_span
sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev"
source: hosted
version: "1.10.2"
version: "1.10.1"
sqlite3:
dependency: transitive
description:
@ -913,26 +881,26 @@ packages:
dependency: "direct dev"
description:
name: test
sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7"
sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e"
url: "https://pub.dev"
source: hosted
version: "1.26.3"
version: "1.25.15"
test_api:
dependency: transitive
description:
name: test_api
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
url: "https://pub.dev"
source: hosted
version: "0.7.7"
version: "0.7.4"
test_core:
dependency: transitive
description:
name: test_core
sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0"
sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa"
url: "https://pub.dev"
source: hosted
version: "0.6.12"
version: "0.6.8"
timing:
dependency: transitive
description:
@ -969,18 +937,18 @@ packages:
dependency: transitive
description:
name: url_launcher_android
sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611"
sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e"
url: "https://pub.dev"
source: hosted
version: "6.3.28"
version: "6.3.20"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0"
sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7
url: "https://pub.dev"
source: hosted
version: "6.4.1"
version: "6.3.4"
url_launcher_linux:
dependency: transitive
description:
@ -993,10 +961,10 @@ packages:
dependency: transitive
description:
name: url_launcher_macos
sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18"
sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f
url: "https://pub.dev"
source: hosted
version: "3.2.5"
version: "3.2.3"
url_launcher_platform_interface:
dependency: transitive
description:
@ -1009,10 +977,10 @@ packages:
dependency: transitive
description:
name: url_launcher_web
sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f
sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2"
url: "https://pub.dev"
source: hosted
version: "2.4.2"
version: "2.4.1"
url_launcher_windows:
dependency: transitive
description:
@ -1049,26 +1017,26 @@ packages:
dependency: transitive
description:
name: vector_graphics_compiler
sha256: "201e876b5d52753626af64b6359cd13ac6011b80728731428fd34bc840f71c9b"
sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc
url: "https://pub.dev"
source: hosted
version: "1.1.20"
version: "1.1.19"
vector_math:
dependency: transitive
description:
name: vector_math
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
version: "2.1.4"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60"
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
url: "https://pub.dev"
source: hosted
version: "15.0.2"
version: "15.0.0"
watcher:
dependency: transitive
description:
@ -1142,5 +1110,5 @@ packages:
source: hosted
version: "3.1.3"
sdks:
dart: ">=3.10.4 <4.0.0"
flutter: ">=3.38.4"
dart: ">=3.8.1 <4.0.0"
flutter: ">=3.32.0"

View file

@ -19,7 +19,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
environment:
sdk: ^3.10.4
sdk: ^3.0.0
# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
@ -42,16 +42,16 @@ dependencies:
flutter_code_editor:
# Drift dependencies for database support
drift: ^2.18.0
sqlite3_flutter_libs: ^0.5.9
path_provider: ^2.1.1
path: ^1.8.3
get_it: ^8.0.2
xdg_directories: ^1.0.0
ffi: ^2.0.1
drift:
sqlite3_flutter_libs:
path_provider:
path:
get_it:
xdg_directories:
ffi:
collection: any
share_plus: ^10.0.3
collection:
share_plus:
dev_dependencies:
flutter_test:
@ -66,8 +66,8 @@ dev_dependencies:
test:
# Drift build dependencies
drift_dev: ^2.18.0
build_runner: ^2.4.7
drift_dev:
build_runner:
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec