Skip to content

Commit

Permalink
Merge pull request #3517 from mathesar-foundation/master
Browse files Browse the repository at this point in the history
Merge pull request #3494 from mathesar-foundation/0.1.6
  • Loading branch information
Anish9901 authored Mar 28, 2024
2 parents 4c92e83 + b99e82c commit 4f49884
Show file tree
Hide file tree
Showing 13 changed files with 238 additions and 24 deletions.
8 changes: 8 additions & 0 deletions config/settings/production.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
# Override default settings
DEBUG = False
MATHESAR_MODE = 'PRODUCTION'

'''
This tells Django to trust the X-Forwarded-Proto header that comes from our proxy,
and any time its value is 'https', then the request is guaranteed to be secure
(i.e., it originally came in via HTTPS).
'''
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

# Use a local.py module for settings that shouldn't be version tracked
try:
from .local import * # noqa
Expand Down
2 changes: 2 additions & 0 deletions docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ services:
context: .
target: development
dockerfile: Dockerfile
args:
PYTHON_VERSION: ${PYTHON_VERSION-3.9-bookworm}
environment:
- MODE=${MODE-DEVELOPMENT}
- DEBUG=${DEBUG-True}
Expand Down
44 changes: 44 additions & 0 deletions docs/docs/administration/debug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Debug Mathesar

For now, we only support turning on Debugging by using our special docker image. More methods will follow in future releases.

## Use the debugging Mathesar docker image

There is a debugging-enabled Mathesar docker image available at `mathesar/mathesar-debug` that is the same as the `mathesar/mathesar-prod` image, except that it has more debugging output available in the console where it's run, and it also produces more verbose errors in the browser when something goes wrong.

You can use this image to figure out (or to help the Mathesar team figure out) what's wrong if your Mathesar installation isn't working as expected. The procedure is to

1. Run Mathesar with the `mathesar/mathesar-debug` image, and then
1. Observe and report any additional output or clues to the Mathesar team.

### Docker Compose

Just replace the line

```
image: mathesar/mathesar-prod:latest
```

with

```
image: mathesar/mathesar-debug:latest
```

### Basic Mathesar docker image

If you are just trying the Mathesar Docker image directly as instructed in the [introduction](../index.md#try-locally), replace the command

```
docker run -it --name mathesar -p 8000:8000 mathesar/mathesar-prod:latest
```

with

```
docker run -it --name mathesar -p 8000:8000 mathesar/mathesar-debug:latest
```

### Other setups

The debugging docker image should work anywhere the production image works. This means you can just replace any pull or run of the image `mathesar/mathesar-prod:latest` with `mathesar/mathesar-debug:latest`.
3 changes: 2 additions & 1 deletion docs/docs/administration/upgrade/0.1.4.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,11 @@ If you installed Mathesar [from scratch](../../installation/build-from-source/in
!!! note
Your installation directory may be different from above if you used a different directory when installing Mathesar.
1. Pull the latest version from the repository
1. Pull version 0.1.4 from the repository
```
git pull https://github.com/mathesar-foundation/mathesar.git
git checkout 0.1.4
```
1. Update Python dependencies
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/administration/upgrade/0.1.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ docker compose -f /etc/mathesar/docker-compose.yml up --pull always -d

### For installations done from scratch

If you installed from scratch, the upgrade instructions are the same as [for 0.1.4](../upgrade/0.1.4.md#scratch), but you can skip Step 5 – you do not need to change the environment variables.
If you installed from scratch, the upgrade instructions are the same as [for 0.1.4](./0.1.4.md#scratch), except that you'll need to specify version 0.1.5 when pulling code from the repository in Step 2. You should also skip Step 5 – you do not need to change the environment variables.
86 changes: 86 additions & 0 deletions docs/docs/administration/upgrade/0.1.6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Upgrade Mathesar to 0.1.6

### For installations using Docker Compose

If you have a Docker compose installation (including one from the guided script), run the command below:

```
docker compose -f /etc/mathesar/docker-compose.yml up --pull always -d
```

!!! warning "Your installation directory may be different"
You may need to change `/etc/mathesar/` in the command above if you chose to install Mathesar to a different directory.


### For installations done from scratch

If you installed Mathesar [from scratch](../../installation/build-from-source/index.md), then use these steps to upgrade your installation to 0.1.6.

1. Go to your Mathesar installation directory

```
cd xMATHESAR_INSTALLATION_DIRx
```
!!! note
Your installation directory may be different from above if you used a different directory when installing Mathesar.
1. Pull version 0.1.6 from the repository
```
git pull https://github.com/mathesar-foundation/mathesar.git
git checkout 0.1.6
```
1. Update Python dependencies
```
pip install -r requirements-prod.txt
```
1. Activate our virtual environment
```
source ./mathesar-venv/bin/activate
```
1. You can skip the following if you're upgrading from versions 0.1.4 and above.
- If you're upgrading from versions <= 0.1.3, update your environment variables according to the [the new configuration specification](../../configuration/env-variables.md#db).
- In particular, you must put the connection info for the internal DB into new `POSTGRES_*` variables. The `DJANGO_DATABASE_URL` variable is no longer supported.
1. Add the environment variables to the shell before running Django commands
```
export $(sudo cat .env)
```
1. Run Django migrations
```
python manage.py migrate
```
1. Download and extract frontend assets
```
wget https://github.com/mathesar-foundation/mathesar/releases/download/0.1.6/static_files.zip
unzip static_files.zip && mv static_files mathesar/static/mathesar && rm static_files.zip
```
1. Compile Mathesar translation files
```
python manage.py compilemessages
```
1. Update Mathesar functions on the database:
```
python -m mathesar.install --skip-confirm | tee /tmp/install.py.log
```
1. Restart the gunicorn server
```
systemctl restart gunicorn
```
22 changes: 8 additions & 14 deletions docs/docs/installation/build-from-source/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,33 +23,36 @@ You should have **root access** to the machine you're installing Mathesar on.

You'll need to install the following system packages before you install Mathesar:

- [Python](https://www.python.org/downloads/) 3.9, 3.10, 3.11 or 3.12
- [Python](https://www.python.org/downloads/) 3.9, 3.10, or 3.11

!!! note "Python version"

Python _older_ than 3.9 will not run Mathesar.

Python _newer_ than 3.10 will run Mathesar, but will require some slightly modified installation steps which we have [not yet documented](https://github.com/centerofci/mathesar/issues/2872).
Python 3.12 will run Mathesar, but you'll have to take extra steps to get some dependencies to build. Installing a package for your OS that provides the `libpq-fe.h` header file should be enough in most cases. On Debian 12, this header is provided by the `libpq-dev` package.

- [PostgreSQL](https://www.postgresql.org/download/linux/) 13 or newer (Verify by logging in, and running the query: `SELECT version();`)

- [Caddy](https://caddyserver.com/docs/install) (Verify with `caddy version`)

- [git](https://git-scm.com/downloads) (Verify with `git --version`)

- [GNU gettext](https://www.gnu.org/software/gettext/) (Verify with `gettext --version`)

### Domain (optional)

If you want Mathesar to be accessible over the internet, you'll probably want to set up a domain or sub-domain to use. **If you don't need a domain, you can skip this section.**

Before you start installation, **ensure that the DNS for your sub-domain or domain is pointing to the machine that you're installing Mathesar on**.

## Customizing this Guide

Type your domain name into the box below. Do not include a trailing slash.

<input data-input-for="DOMAIN_NAME" aria-label="Your Domain name "/>

Then press <kbd>Enter</kbd> to customize this guide with your domain name.


## Installation Steps

### Set up the database
Expand All @@ -75,12 +78,6 @@ Then press <kbd>Enter</kbd> to customize this guide with your domain name.
CREATE DATABASE mathesar_django OWNER mathesar;
```
1. Now we let us create a database for storing your data.
```postgresql
CREATE DATABASE your_db_name OWNER mathesar;
```
1. Press <kbd>Ctrl</kbd>+<kbd>D</kbd> to exit the `psql` shell.
Expand Down Expand Up @@ -129,7 +126,7 @@ Then press <kbd>Enter</kbd> to customize this guide with your domain name.
1. Clone the git repo into the installation directory.
```
git clone https://github.com/centerofci/mathesar.git .
git clone https://github.com/mathesar-foundation/mathesar.git .
```
1. Checkout the tag of the latest stable release, `{{mathesar_version}}`.
Expand All @@ -141,9 +138,6 @@ Then press <kbd>Enter</kbd> to customize this guide with your domain name.
!!! warning "Important"
If you don't run the above command you'll end up installing the latest _development_ version of Mathesar, which will be less stable.
!!! tip
You can install a specific Mathesar release by running commands like `git checkout 0.1.1` (to install version 0.1.1, for example). You can see all available versions by running `git tag`.
1. We need to create a python virtual environment for the Mathesar application.
```
Expand Down Expand Up @@ -216,7 +210,7 @@ Then press <kbd>Enter</kbd> to customize this guide with your domain name.
```
wget https://github.com/mathesar-foundation/mathesar/releases/download/{{mathesar_version}}/static_files.zip
unzip static_files.zip && mv static_files /mathesar/static/mathesar
unzip static_files.zip && mv static_files mathesar/static/mathesar && rm static_files.zip
```
Expand Down
76 changes: 76 additions & 0 deletions docs/docs/releases/0.1.6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Mathesar 0.1.6

## Summary

Mathesar 0.1.6 introduces Japanese localization of the UI and adds better support for working with long text in individual record pages. Improvements for administrators include compatibility with Python 3.10 and 3.11, support for databases running PostgreSQL 16, and the removal of `npm` and `nodejs` as dependencies when installing from scratch.

_This page provides a comprehensive list of all changes in the release._

## Upgrading to 0.1.6

See our guide on [upgrading Mathesar to 0.1.6](../administration/upgrade/0.1.6.md).

## Improvements

### You can now configure Mathesar's UI to display in Japanese

The language setting is stored per-user and can be modified when logging in or when editing a user. This changes the text displayed on buttons and other UI elements within Mathesar. It does not change the display of data within your database (e.g. table names, column names, and cell values). We are hoping to support more languages beyond English and Japanese eventually. Please reach out to us if your are interested in helping to add more translations!

![image](https://github.com/mathesar-foundation/mathesar/assets/52523023/f100423a-922c-4b6c-ad22-3c16cd06afde)

_[#3486](https://github.com/mathesar-foundation/mathesar/pull/3486 "Enable i18n")_, _[#3484](https://github.com/mathesar-foundation/mathesar/pull/3484 "Updates for file translations/en/LC_MESSAGES/django.po in ja")_, _[#3483](https://github.com/mathesar-foundation/mathesar/pull/3483 "Updates for file mathesar_ui/src/i18n/languages/en/dict.json in ja")_, _[#3472](https://github.com/mathesar-foundation/mathesar/pull/3472 "Separate pluralized string to fix Transifex sync")_, _[#3501](https://github.com/mathesar-foundation/mathesar/pull/3501 "Fix layout problem in Data Explorer actions pane")_

### Text fields now auto-expands on the record page to accommodate longer texts

**Before**

All text inputs on the record page had the same height, regardless of their content.

![image](https://github.com/mathesar-foundation/mathesar/assets/52523023/e6ded1de-7b81-49f9-9b2e-7a6311a22d4f)

**After**

All text inputs in record page dynamically adjust to accommodate the content seamlessly.

![image](https://github.com/mathesar-foundation/mathesar/assets/52523023/31e031cc-5c71-447f-9381-c4d6fae03b2d)

_[#3470](https://github.com/mathesar-foundation/mathesar/pull/3470 "Make textarea inputs auto-expand to accommodate longer text fields on the record page")_, _[#3488](https://github.com/mathesar-foundation/mathesar/pull/3488 "Fix regression with record selector not filtering")_, [#3495](https://github.com/mathesar-foundation/mathesar/pull/3495 "Prevent record selector inputs from growing taller")

### Mathesar is now compatible with Python versions: 3.10 and 3.11 along with 3.9

Mathesar now officially supports Python versions 3.10 and 3.11, in addition to the existing 3.9 compatibility. This will provide great flexibility while building Mathesar from source on an OS that natively ships with relatively newer versions of Python.

_[#3478](https://github.com/mathesar-foundation/mathesar/pull/3478 "Extend mathesar to support python 3.10 and above")_, _[#3499](https://github.com/mathesar-foundation/mathesar/pull/3499 "Fix CSRF failures when app is behind a reverse proxy")_, _[#3503](https://github.com/mathesar-foundation/mathesar/pull/3503 "Remove 3.12 support from docs")_, [#3504](https://github.com/mathesar-foundation/mathesar/pull/3504 "Parameterize dev service python version")

### Mathesar is now compatible with PostgreSQL 16

Mathesar now officially supports, and is tested against, Postgres versions 13, 14, 15 and 16.

_[#3480](https://github.com/mathesar-foundation/mathesar/pull/3480 "Add PG 16 to testing matrix")_

### NodeJS is no longer a requirement for building Mathesar from source

We removed NodeJS as a dependency in favour of providing users with pre-built static assest for building Mathesar from source.

_[#3489](https://github.com/mathesar-foundation/mathesar/pull/3489 "GH workflow to create draft release with built static files")_

## Bug fix

- Fixed connection creation failures due to schema name collisions while adding provided sample schema(s) in the database _[#3490](https://github.com/mathesar-foundation/mathesar/pull/3490 "Fix schema creation errors while adding a new connection")_

## Documentation

- Documented upgrade instructions for v0.1.6 _[#3507](https://github.com/mathesar-foundation/mathesar/pull/3507 "Adds upgrade documentation for 0.1.6, fixes existing issues with upgrade docs")_
- 0.1.6 release notes _[#3506](https://github.com/mathesar-foundation/mathesar/pull/3506 "Release notes v0.1.6")_
- Documented mathesar-debug image for Docker based installations _[#3513](https://github.com/mathesar-foundation/mathesar/pull/3513 "Add Debug image docs")_
- Fixed upgrade instructions for v0.1.5 _[#3469](https://github.com/mathesar-foundation/mathesar/pull/3469 "Merge pull request #3468 from mathesar-foundation/upgrade_instruction_fix")_
- Updated Mathesar's version number in docs _[#3476](https://github.com/mathesar-foundation/mathesar/pull/3476 "Merge pull request #3475 from mathesar-foundation/version_number_in_docs")_
- Added MkDocs edit URI _[#3482](https://github.com/mathesar-foundation/mathesar/pull/3482 "Added MkDocs edit URI")_
- Removed stale code coverage badge _[#3491](https://github.com/mathesar-foundation/mathesar/pull/3491 "Remove stale code coverage badge")_

## Maintenance

- Added a health check endpoint for Mathesar _[#3479](https://github.com/mathesar-foundation/mathesar/pull/3479 "Add health check endpoint to Mathesar")_
- Bumped Django from 4.2.8 to 4.2.10 _[#3492](https://github.com/mathesar-foundation/mathesar/pull/3492 "Bump django from 4.2.8 to 4.2.10")_
- Removed NodeJS from Docker production image _[#3474](https://github.com/mathesar-foundation/mathesar/pull/3474 "Add multiple stages to Dockerfile, remove NodeJS & unnecessary source files from production image")_
- Post release cleanup _[#3463](https://github.com/mathesar-foundation/mathesar/pull/3463 "Merge pull request #3460 from mathesar-foundation/0.1.5")_
5 changes: 4 additions & 1 deletion docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,20 @@ nav:
- Environment variables: configuration/env-variables.md
- Administration:
- Upgrade:
- To 0.1.6: administration/upgrade/0.1.6.md
- To 0.1.5: administration/upgrade/0.1.5.md
- To 0.1.4: administration/upgrade/0.1.4.md
- To older versions: administration/upgrade/older.md
- Uninstall Mathesar: administration/uninstall.md
- Debug Mathesar: administration/debug.md
- Using Mathesar:
- Introduction: user-guide/index.md
- Importing data: user-guide/importing-data.md
- Syncing database changes: user-guide/syncing-db.md
- Users & access levels: user-guide/users.md
- Glossary: user-guide/glossary.md
- Releases:
- '0.1.6': releases/0.1.6.md
- '0.1.5': releases/0.1.5.md
- '0.1.4': releases/0.1.4.md
- '0.1.3': releases/0.1.3.md
Expand Down Expand Up @@ -97,4 +100,4 @@ markdown_extensions:
permalink: true

extra:
mathesar_version: 0.1.5
mathesar_version: 0.1.6
2 changes: 1 addition & 1 deletion mathesar/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
default_app_config = 'mathesar.apps.MathesarConfig'

__version__ = "0.1.5"
__version__ = "0.1.6"
9 changes: 4 additions & 5 deletions mathesar_ui/src/components/EntityPageHeader.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -117,11 +117,10 @@
.actions-right {
margin-left: auto;
display: flex;
> :global(* + *) {
margin-left: var(--size-xx-small);
}
display: grid;
grid-auto-flow: column;
align-items: center;
gap: var(--size-xx-small);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@
position: absolute;
bottom: var(--padding);
height: var(--input-height);
max-height: var(--input-height);
left: var(--padding);
width: calc(100% - 2 * var(--padding));
background: var(--white);
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "Mathesar"
version = "0.1.5"
version = "0.1.6"
[tool.vulture]
exclude = ["mathesar/migrations"]
ignore_names = ["go_to_patents_data_table", "go_to_all_types_table", "go_to_table_with_numbers_in_text", "admin_user"]
Expand Down

0 comments on commit 4f49884

Please sign in to comment.