Compare commits

...

9 Commits

Author SHA1 Message Date
Archos c9657a3043 Use sed instead of patch for char limit 2026-04-17 06:35:51 +02:00
Archos 28a4dc066e Fix patch format 2026-04-17 06:35:50 +02:00
Archos 8eb0014d26 Add character limit patch (2500 chars) 2026-04-17 06:35:41 +02:00
Package Updates efc8b6a524 Update package version to 1.17.9 2026-04-16 17:13:02 +00:00
Renovate Bot 7a7c2064d1 chore(deps): update dependency tootsuite/mastodon to v4.5.9
| datasource      | package            | from  | to    |
| --------------- | ------------------ | ----- | ----- |
| github-releases | tootsuite/mastodon | 4.5.8 | 4.5.9 |
2026-04-16 16:21:55 +00:00
Girish Ramakrishnan 9ac8c1d244 test: remove package.json and package-lock.json, charlie provides all deps
Made-with: Cursor
2026-04-16 10:43:35 +02:00
Girish Ramakrishnan f0df8acb0b test: remove chromedriver dependency
Selenium Manager auto-detects the system ChromeDriver, making the
chromedriver npm package unnecessary.

Made-with: Cursor
2026-04-15 17:18:45 +02:00
Girish Ramakrishnan cd4d6efee4 test: convert test to ESM
Replace CommonJS require() with ESM imports, add "type": "module"
to test/package.json, remove 'use strict' and jshint directives,
replace __dirname with import.meta.dirname.

Made-with: Cursor
2026-04-15 16:16:57 +02:00
Girish Ramakrishnan 43b6dbc74a Replace expect.js with node:assert/strict
expect.js is unmaintained and unnecessary — Node's built-in assert
module covers all our assertion patterns. This also removes expect.js
from package.json dependencies.

Made-with: Cursor
2026-04-15 15:37:50 +02:00
6 changed files with 33 additions and 3346 deletions
+10
View File
@@ -855,3 +855,13 @@
* Fix OpenStack Swift Keystone token rate limiting ([#​38145](https://github.com/tootsuite/mastodon/issues/38145) by [@​hugogameiro](https://github.com/hugogameiro))
* Fix poll expiration notification being re-triggered on implicit updates ([#​38078](https://github.com/tootsuite/mastodon/issues/38078) by [@​ClearlyClaire](https://github.com/ClearlyClaire))
[1.17.9]
* Update mastodon to 4.5.9
* [Full Changelog](https://github.com/mastodon/mastodon/releases/tag/v4.5.9)
* Insufficient verification of email addresses ([GHSA-5r37-qpwq-2jhh](https://github.com/mastodon/mastodon/security/advisories/GHSA-5r37-qpwq-2jhh))
* Updated dependencies
* Add trademark warning to `mastodon:setup` task ([#38548](https://github.com/tootsuite/mastodon/issues/38548) by [@ClearlyClaire](https://github.com/ClearlyClaire))
* Fix definition for `quote` in JSON-LD context ([#38686](https://github.com/tootsuite/mastodon/issues/38686) by [@ClearlyClaire](https://github.com/ClearlyClaire))
* Fix being unable to disable sound for quote update notification ([#38537](https://github.com/tootsuite/mastodon/issues/38537) by [@ClearlyClaire](https://github.com/ClearlyClaire))
* Fix being able to quote someone you blocked ([#38608](https://github.com/tootsuite/mastodon/issues/38608) by [@ClearlyClaire](https://github.com/ClearlyClaire))
+2 -2
View File
@@ -5,8 +5,8 @@
"description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG",
"tagline": "Federated social network",
"version": "1.17.8",
"upstreamVersion": "4.5.8",
"version": "1.17.9",
"upstreamVersion": "4.5.9",
"healthCheckPath": "/about",
"httpPort": 8000,
"memoryLimit": 1610612736,
+10 -4
View File
@@ -68,7 +68,7 @@ RUN mkdir -p /app/code /app/pkg
WORKDIR /app/code
# renovate: datasource=github-releases depName=tootsuite/mastodon versioning=semver extractVersion=^v(?<version>.+)$
ARG MASTODON_VERSION=4.5.8
ARG MASTODON_VERSION=4.5.9
ENV RAILS_ENV production
ENV NODE_ENV production
@@ -90,8 +90,14 @@ RUN ldconfig && \
ffmpeg -version && \
ffprobe -version
RUN curl -L https://github.com/tootsuite/mastodon/archive/v${MASTODON_VERSION}.tar.gz | tar -xz --strip-components 1 -f - && \
bundle config --local set deployment 'true' && \
# Download Mastodon source
RUN curl -L https://github.com/tootsuite/mastodon/archive/v${MASTODON_VERSION}.tar.gz | tar -xz --strip-components 1 -f -
RUN sed -i 's/MAX_CHARS = 500/MAX_CHARS = 2500/g' app/validators/status_length_validator.rb && \
sed -i "s/max_characters'], 500)/max_characters'], 2500)/g" app/javascript/mastodon/features/compose/containers/compose_form_container.js
# Install Ruby dependencies
RUN bundle config --local set deployment 'true' && \
bundle config --local set without 'development test' && \
bundle config --local set silence_root_warning true && \
bundle install && \
@@ -100,7 +106,6 @@ RUN curl -L https://github.com/tootsuite/mastodon/archive/v${MASTODON_VERSION}.t
RUN corepack enable && \
corepack prepare --activate
RUN yarn workspaces focus --production @mastodon/mastodon
RUN yarn install
@@ -134,3 +139,4 @@ RUN ln -fs /app/data/system /app/code/public/system
COPY start.sh cleanup.sh config.sh env.template cache-env.sh.template /app/pkg/
CMD [ "/app/pkg/start.sh" ]
-3305
View File
File diff suppressed because it is too large Load Diff
-19
View File
@@ -1,19 +0,0 @@
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "test.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"expect.js": "^0.3.1",
"mocha": "^11.7.5",
"selenium-webdriver": "^4.41.0"
},
"dependencies": {
"chromedriver": "^146.0.5"
}
}
+11 -16
View File
@@ -1,6 +1,12 @@
#!/usr/bin/env node
/* jshint esversion: 8 */
import { execSync } from 'node:child_process';
import assert from 'node:assert/strict';
import fs from 'node:fs';
import path from 'node:path';
import { Builder, By, until } from 'selenium-webdriver';
import { Options } from 'selenium-webdriver/chrome';
/* global describe */
/* global before */
/* global after */
@@ -8,17 +14,6 @@
/* global it */
/* global xit */
'use strict';
require('chromedriver');
const execSync = require('child_process').execSync,
expect = require('expect.js'),
fs = require('fs'),
path = require('path'),
{ Builder, By, until } = require('selenium-webdriver'),
{ Options } = require('selenium-webdriver/chrome');
if (!process.env.USERNAME || !process.env.PASSWORD) {
console.log('USERNAME and PASSWORD env vars need to be set');
process.exit(1);
@@ -29,7 +24,7 @@ describe('Application life cycle test', function () {
const LOCATION = process.env.LOCATION || 'test';
const TEST_TIMEOUT = parseInt(process.env.TIMEOUT) || 10000;
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
const EXEC_ARGS = { cwd: path.resolve(import.meta.dirname, '..'), stdio: 'inherit' };
let browser, app;
const username = process.env.USERNAME;
@@ -51,7 +46,7 @@ describe('Application life cycle test', function () {
const currentUrl = await browser.getCurrentUrl();
if (!currentUrl.includes(app.domain)) return;
expect(this.currentTest.title).to.be.a('string');
assert.strictEqual(typeof this.currentTest.title, 'string');
const screenshotData = await browser.takeScreenshot();
fs.writeFileSync(`./screenshots/${new Date().getTime()}-${this.currentTest.title.replaceAll(' ', '_')}.png`, screenshotData, 'base64');
@@ -125,7 +120,7 @@ describe('Application life cycle test', function () {
function getAppInfo() {
const inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION || a.location === LOCATION + '2'; })[0];
expect(app).to.be.an('object');
assert.ok(app && typeof app === 'object');
}
xit('build app', function () { execSync('cloudron build', EXEC_ARGS); });
@@ -137,7 +132,7 @@ describe('Application life cycle test', function () {
it('has registration open', checkRegistration.bind(null, 'none'));
let testPassword;
it('create a user with CLI', function () {
const output = execSync('cloudron exec --app ' + LOCATION + ' -- bin/tootctl accounts create test --email=test@cloudron.io', { cwd: path.resolve(__dirname, '..'), encoding: 'utf8' });
const output = execSync('cloudron exec --app ' + LOCATION + ' -- bin/tootctl accounts create test --email=test@cloudron.io', { cwd: path.resolve(import.meta.dirname, '..'), encoding: 'utf8' });
console.log(output);
testPassword = output.slice(output.indexOf('New password: ') + 'New password: '.length).trim();
console.log(testPassword);