text:
Cannot see Repositories on Gitea Dashboard after Gitea update (1.4.1 -> 1.6.4 -> 1.12.5)

Gitea version (or commit ref): 1.12.5 (from Binary download)
Git version: 2.11.0
Operating system: Raspbian GNU/Linux 9 (stretch)
Running gitea from systemctl
Database (use [x]):

[ ] PostgreSQL
[X] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No

Log gist:

Description
Hello there. When I tried to update my old version of gogs (1.4.1 Linux Arm7) to the latest version (1.12.5 Arm 6) on my raspberry Pi 3 B+, I've discovered in the gitea logs that I needed to update gitea first to version 1.6.4 and then to the latest version (1.12.5). So this is what I did. Everything seems to work perfectly... Except that when I get to my dashboard, I can see the number of repo I have, but cannot see the list like I was able before in previous version
I can navigate to my repository through the "Explore" tab as you can see here

But as you can see on my first screenshot, I'm unable to have the list of my repositories on my Gitea Dashboard..
Here are the logs you may need, according to the "Debugging problems" section of your docs.
gitea.log
router.log
The actions I did to get these logs is simple: Login...wait few seconds...then logout
Could you help me please to resolve this issue ?
Thank you in advance
...
Screenshots

Are there any error log on your log file or console.

@lunny Hi... Didn't see any error log on my log file or console...

Ok first thoughts, In your database could you check that the repository table has the owner_name set correctly for each repository?
Somehow people can end up with migrations incompletely being performed.

The next thing to check is whether it's possible that the issue is actually at your browser. To that end checking the result of:
/api/v1/repos/search?sort=updated&order=desc&uid=1&q=&page=1&limit=15&mode=&archived=false
And
/api/v1/repos/search?sort=updated&order=desc&uid=1&q=&page=1&mode=
Would be helpful to determine if this is a JavaScript or other template issue.
(Although it's notable that both of these requests seem correct to me - suggesting that your js is likely correct )

I saw something similar when upgrading to 1.12 or thereabouts - somehow all of my repos got marked as archived and thus wouldn't show up on the dashboard. It happened on two or three installations, all using postgres. This smells like a broken migration, but I didn't dig into it.
I used the psql console to clear the archived column on all the repos (something along the lines of UPDATE repository SET is_archived = FALSE) but obviously that's not ideal.

@zeripath Thanks a lot for your answer and suggestion...Here is what I got:
1 - It seems that "owner_name" value is set properly in the "repository" table

2- Here are the result of the requests to the API
/api/v1/repos/search?sort=updated&order=desc&uid=1&q=&page=1&limit=15&mode=&archived=false

/api/v1/repos/search?sort=updated&order=desc&uid=1&q=&page=1&mode=
{
    "ok": true,
    "data": [
        {
            "id": 1,
            "owner": {
                "id": 1,
                "login": "TitaneBoy",
                "full_name": "",
                "email": "philoufelin25@gmail.com",
                "avatar_url": "http://192.168.0.18:3000/user/avatar/TitaneBoy/-1",
                "language": "en-US",
                "is_admin": true,
                "last_login": "2020-10-25T18:03:59-04:00",
                "created": "2018-05-12T01:04:43-04:00",
                "username": "TitaneBoy"
            },
            "name": "Skynet_Video_Updater",
            "full_name": "TitaneBoy/Skynet_Video_Updater",
            "description": "Logiciel de mise à jour de bibliothèque vidéo",
            "empty": false,
            "private": false,
            "fork": false,
            "template": false,
            "parent": null,
            "mirror": false,
            "size": 13822,
            "html_url": "http://192.168.0.18:3000/TitaneBoy/Skynet_Video_Updater",
            "ssh_url": "philoufelin@localhost:TitaneBoy/Skynet_Video_Updater.git",
            "clone_url": "http://192.168.0.18:3000/TitaneBoy/Skynet_Video_Updater.git",
            "original_url": "",
            "website": "",
            "stars_count": 0,
            "forks_count": 0,
            "watchers_count": 1,
            "open_issues_count": 3,
            "open_pr_counter": 0,
            "release_counter": 0,
            "default_branch": "master",
            "archived": false,
            "created_at": "2018-05-12T01:36:33-04:00",
            "updated_at": "2020-10-22T19:07:16-04:00",
            "permissions": {
                "admin": true,
                "push": true,
                "pull": true
            },
            "has_issues": true,
            "internal_tracker": {
                "enable_time_tracker": true,
                "allow_only_contributors_to_track_time": true,
                "enable_issue_dependencies": true
            },
            "has_wiki": true,
            "has_pull_requests": true,
            "ignore_whitespace_conflicts": false,
            "allow_merge_commits": false,
            "allow_rebase": false,
            "allow_rebase_explicit": true,
            "allow_squash_merge": false,
            "avatar_url": ""
        },
        {
            "id": 2,
            "owner": {
                "id": 1,
                "login": "TitaneBoy",
                "full_name": "",
                "email": "philoufelin25@gmail.com",
                "avatar_url": "http://192.168.0.18:3000/user/avatar/TitaneBoy/-1",
                "language": "en-US",
                "is_admin": true,
                "last_login": "2020-10-25T18:03:59-04:00",
                "created": "2018-05-12T01:04:43-04:00",
                "username": "TitaneBoy"
            },
            "name": "Web_Server",
            "full_name": "TitaneBoy/Web_Server",
            "description": "",
            "empty": false,
            "private": false,
            "fork": false,
            "template": false,
            "parent": null,
            "mirror": false,
            "size": 640,
            "html_url": "http://192.168.0.18:3000/TitaneBoy/Web_Server",
            "ssh_url": "philoufelin@localhost:TitaneBoy/Web_Server.git",
            "clone_url": "http://192.168.0.18:3000/TitaneBoy/Web_Server.git",
            "original_url": "",
            "website": "",
            "stars_count": 0,
            "forks_count": 0,
            "watchers_count": 1,
            "open_issues_count": 0,
            "open_pr_counter": 0,
            "release_counter": 0,
            "default_branch": "master",
            "archived": false,
            "created_at": "2018-08-24T08:44:46-04:00",
            "updated_at": "2019-02-17T16:32:15-05:00",
            "permissions": {
                "admin": true,
                "push": true,
                "pull": true
            },
            "has_issues": true,
            "internal_tracker": {
                "enable_time_tracker": true,
                "allow_only_contributors_to_track_time": true,
                "enable_issue_dependencies": true
            },
            "has_wiki": true,
            "has_pull_requests": true,
            "ignore_whitespace_conflicts": false,
            "allow_merge_commits": false,
            "allow_rebase": false,
            "allow_rebase_explicit": true,
            "allow_squash_merge": false,
            "avatar_url": ""
        },
        {
            "id": 3,
            "owner": {
                "id": 1,
                "login": "TitaneBoy",
                "full_name": "",
                "email": "philoufelin25@gmail.com",
                "avatar_url": "http://192.168.0.18:3000/user/avatar/TitaneBoy/-1",
                "language": "en-US",
                "is_admin": true,
                "last_login": "2020-10-25T18:03:59-04:00",
                "created": "2018-05-12T01:04:43-04:00",
                "username": "TitaneBoy"
            },
            "name": "Basic_Client_HTTP_Request",
            "full_name": "TitaneBoy/Basic_Client_HTTP_Request",
            "description": "",
            "empty": false,
            "private": false,
            "fork": false,
            "template": false,
            "parent": null,
            "mirror": false,
            "size": 136,
            "html_url": "http://192.168.0.18:3000/TitaneBoy/Basic_Client_HTTP_Request",
            "ssh_url": "philoufelin@localhost:TitaneBoy/Basic_Client_HTTP_Request.git",
            "clone_url": "http://192.168.0.18:3000/TitaneBoy/Basic_Client_HTTP_Request.git",
            "original_url": "",
            "website": "",
            "stars_count": 0,
            "forks_count": 0,
            "watchers_count": 1,
            "open_issues_count": 0,
            "open_pr_counter": 0,
            "release_counter": 0,
            "default_branch": "master",
            "archived": false,
            "created_at": "2018-09-04T15:43:30-04:00",
            "updated_at": "2018-09-21T23:01:49-04:00",
            "permissions": {
                "admin": true,
                "push": true,
                "pull": true
            },
            "has_issues": true,
            "internal_tracker": {
                "enable_time_tracker": true,
                "allow_only_contributors_to_track_time": true,
                "enable_issue_dependencies": true
            },
            "has_wiki": true,
            "has_pull_requests": true,
            "ignore_whitespace_conflicts": false,
            "allow_merge_commits": false,
            "allow_rebase": false,
            "allow_rebase_explicit": true,
            "allow_squash_merge": false,
            "avatar_url": ""
        },
        {
            "id": 4,
            "owner": {
                "id": 1,
                "login": "TitaneBoy",
                "full_name": "",
                "email": "philoufelin25@gmail.com",
                "avatar_url": "http://192.168.0.18:3000/user/avatar/TitaneBoy/-1",
                "language": "en-US",
                "is_admin": true,
                "last_login": "2020-10-25T18:03:59-04:00",
                "created": "2018-05-12T01:04:43-04:00",
                "username": "TitaneBoy"
            },
            "name": "Open_SSL",
            "full_name": "TitaneBoy/Open_SSL",
            "description": "",
            "empty": true,
            "private": false,
            "fork": false,
            "template": false,
            "parent": null,
            "mirror": false,
            "size": 0,
            "html_url": "http://192.168.0.18:3000/TitaneBoy/Open_SSL",
            "ssh_url": "philoufelin@localhost:TitaneBoy/Open_SSL.git",
            "clone_url": "http://192.168.0.18:3000/TitaneBoy/Open_SSL.git",
            "original_url": "",
            "website": "",
            "stars_count": 0,
            "forks_count": 0,
            "watchers_count": 1,
            "open_issues_count": 0,
            "open_pr_counter": 0,
            "release_counter": 0,
            "default_branch": "master",
            "archived": false,
            "created_at": "2018-09-09T22:59:14-04:00",
            "updated_at": "2018-09-09T22:59:14-04:00",
            "permissions": {
                "admin": true,
                "push": true,
                "pull": true
            },
            "has_issues": true,
            "internal_tracker": {
                "enable_time_tracker": true,
                "allow_only_contributors_to_track_time": true,
                "enable_issue_dependencies": true
            },
            "has_wiki": true,
            "has_pull_requests": true,
            "ignore_whitespace_conflicts": false,
            "allow_merge_commits": false,
            "allow_rebase": false,
            "allow_rebase_explicit": true,
            "allow_squash_merge": false,
            "avatar_url": ""
        }
    ]
}

Also, just to notify you that when I create a new repository through the Dashboard, I can see the new created repository on the Dashboard, but not the previous repositories I'm trying to display

I wonder if @aswild 's suggestion is happening here and the archived value is somehow different.

From @aswild and @zeripath  comment, I decided to take a look to the "is_archived" column value for all my repositories and this is what I got:

When I set the "is_archived" column values to 0, it seems now that I can see all my repositories on the Dashboard 🎉

Thanks a lot @aswild  & @zeripath for your support... I think that somehow in the migration process, this column must not be set correctly (at least for MySQL databases)..

Not related anymore to this issue, but I wonder why sometimes, after a successfull login, I am redirected to /user/events

It Happened sometimes since I have done the updated to the latest version. When I disconnect and reconnect after, all seems fine and I get to the dashboard route.. But it seems that after a while, when disconnected, when I log in again, I got redirected to this path (/user/events)...Any ideas of what is happening for this one ?  Thanks again for your support and answer...

I'm not a maintainer so this is just my unqualified opinion, but I'm not sure that this issue should be closed, unless the migration bug is already being tracked elsewhere.
If there's a bad migration path which can cause all repos to get flagged as archived, that sounds to me like a bug that should be fixed. "Manually fix the database using raw SQL commands" isn't really a great solution, just a quick hack that worked for me personally (since I didn't have any repos that I wanted to be archived).

@aswild I think I'm kind of agree with you...The bug is still here and should be fixed...I can Reopen this issue if needed

This was already fixed in June.
It's fixed in v142.go which is in 1.13 and there is a doctor command to fix it in 1.12.5.
gitea doctor --run check-db-consistency --fix

The issue that spurred this was #11824
It was fixed in #11853 which backported to 1.12 the doctor fix as #11853
So no the bug is not still there.

authors: TitaneBoy aswild lunny zeripath


text:
Text is not visible on Mermaid flowchart shapes with markdown string labels

Description
When I use the markdown string feature to format mermaid flowchart labels, the label position is off by a few pixels, so that most of the text is hidden.
Example:
https://try.gitea.io/terius/MermaidTest/src/branch/main/README.md
flowchart LR
TEST{{"`**Rendering problem**`"}}

I guess this is due to mermaid uses <p> tag for markdown labels and gitea renders mermaid inside an <iframe>. Seems like chrome adds some default margin to <p>-tags inside iframes.
There is an iframeCss const in mermaid.js. Adding a style to set margin to 0 for the iframe might fix the issue?
p {margin: 0}

Gitea Version
1.22.0+dev-101-g112f37c54
Can you reproduce the bug on the Gitea demo site?
Yes
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
Tested with try.gitea.io
Database
None

It seems mermaid relies on some CSS but we don't load any CSS for it. Should investigate how to extract this CSS from the mermaid package and then apply it inside the iframe.
https://mermaid.live/edit#pako:eNoVyzsOgzAQRdGtWK-0WIHrpEsFlFMwwQNY8QdNjKLIYu8h3S3ObZiLFzgssXzmjbWaR095vA9ja4TJ2l6yFw15NbuWZ5Rk7UQ4T3RIoomDv-5G2RhC3SQJwV3pWV8Eyn_HRy3DN89wVQ_pcOyeq9wCr8oJbuH4lvMHtZIvOA
Example of missing CSS:
blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre {
  margin: 0;
}

Same example on GitHub:
flowchart LR
TEST{{"`**Rendering problem**`"}}

I'd say it's a bug in Mermaid as they depend on the "css reset" of tailwindcss, but it's not shipped as part of the module. I opened https://github.com/mermaid-js/mermaid/issues/4907.
If they don't solve it, we would have to workaround and add these styles manually, but I think they should be published along with mermaid for best compatibility.

source: gharchive/issue

authors: cy-x silverwind

repo: go-gitea/gitea

license: MIT

license_type: permissive

license_source: github-api


text:
Can't run  make generate-images

Description
Hi guys! I have gitea setup on VM (no docker)
I wanna to update logos to custom. According to docs i shall run make generate-images, but there is no makefile, how can i regenerate logos without reinstalling gitea?
I tryed to download repo with makefile and executed make generate-images, it was executed with no errors, but nothing changed
Gitea Version
1.22.0
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
2.20.1
Operating System
Debian GNU/Linux 10 (buster) in LXC on Proxmox
How are you running Gitea?
Was installed from TurnKey, rebuild with separate DB and LFS
Database
PostgreSQL

You need a source checkout of the gitea repo to run it, it's not part of the binary distributions.

Hi, @silverwind ! I solved it another way. I've modified tmpl files and now everything is good. Thank you!

authors: alicetails silverwind


text:
Hardcoded "localhost" error in 1.3.2

Gitea version (or commit ref): 1.3.2
Git version: 2.15.1
Operating system: Ubuntu 14.x
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
After update to 1.3.2 from 1.3.0,
I couldn't load my local network gitea repository with mouse click.
NOTE: FOR EXAMPLE, my local network gitea server IP is 192.168.100.100, my computer IP is 192.168.100.99
Before (with v1.3.0)
http://192.168.100.100:3000/sailfish009/hello_world -- (mouse click) --> http://192.168.100.100:3000/sailfish009/hello_world
After (with v1.3.2)
http://192.168.100.100:3000/sailfish009/hello_world -- (mouse click) --> http://localhost:3000/sailfish009/hello_world
i couldn't load the repository because it is not localhost, it must  be 192.168.100.100 instead of "localhost".
Screenshots

downloaded app.ini.sample, didn't touched anything. temp work around.
$ cd
$ wget https://raw.githubusercontent.com/go-gitea/gitea/master/custom/conf/app.ini.sample
$ mv mv app.ini.sample app.ini

app.ini is needed so that Gitea knows what configuration values to use.
As you were able to find a work around can this issue be closed?


text:
bug: cannot edit branch once issue was created

Gitea version (or commit ref): 1.6.0
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
In issues cannot edit the branch associated once the issue was created!
Screenshots

@Etzelia do you see in image the "master" asociated branch? in the issue, once created i try to change the related associated branch and i cannot do it! pufff!

It is not bug, it is just way it is implemented

umm ok so then we need a feature to edait how to change if a user make misctake or get wrong branch right?

this was resolved at 1.7.1 ?? what about 1.6.X ??? not all users have golang 1.11 and vendors provide security patches backported to golang 1.8 and 1.9!

authors: lafriks mckaygerhard


text:
Database Error on update to 1.7.1

Gitea version (or commit ref):
Git version: 1.7.1
Operating system: Ubuntu 18.04.1
Database (use [x]):

[ ] PostgreSQL
[ x] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[ ] Not relevant

Log gist:
2019/02/01 09:52:22 [I] ORM engine initialization attempt #10/10...
2019/02/01 09:52:23 [...itea/routers/init.go:81 GlobalInit()] [E] ORM engine initialization failed: sync database struct error: Error 1138: Invalid use of NULL value

Description
Trying an update from gitea-1.60 to gitea.1.7.1. gitea-1.7.1 doesn't start, error in logfile pointing to error in mysql database.
...
Screenshots

Are you able to enable DB logging, and post the SQL statement that is failing? Info on how to enable that can be found here: https://docs.gitea.io/en-us/config-cheat-sheet/

Enabled DB-Logging, downloaded latest Master Binary, restarted and it worked without error.
Disabled DB-Logging restarted and gitea-1.7.1 works without an error.
Slightly baffled, but everything is fine now.

authors: techknowlogick vbonline


text:
AUTO_WATCH_NEW_REPOS = false does not seem to work

Gitea version (or commit ref): 1.7.2
Git version: 2.17.0.windows.1
Operating system: Windows Server 2016
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
With the option [service] AUTO_WATCH_NEW_REPOS = false, all members of organizations still are automatically watching when the repo is created.
Thanks!
...
Screenshots

I can confirm this

Hi, this option will be introduced with  1.8.0 (see the label at https://github.com/go-gitea/gitea/pull/5852 ).

Excellent! Thank you.


text:
Multiple merges in single commit breaks commit graph

Gitea version (or commit ref): 1.7.6
Git version:
Operating system: Centos
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[X] No
[ ] Not relevant

Log gist:

Description
When more that one branch is merged as part of a single commit, the text output of "git log --graph" appears something like the following:
* | | b9783c0c2
* | | c6c684cd7
| | *-------.   f91f7549e  Interesting commit
| | |\ \ \ \ \
| | | | | | | * 57759c11a
| | | | | | | * 9f1924f08
The parsing of the graph in public/vendor/plugins/gitgraph/gitgraph.js does not handle the "-" characters properly, resulting in an error that prevents display of commits subsequent to the line with the merge.
At line 391, changing:
					color = flows[colomnIndex].color;
to:
				if (colomn === "-") {
					currentRow.splice(colomnIndex + 1, 1);
					color = flows[colomnIndex+1].color;
				}
				else {
					color = flows[colomnIndex].color;
				}
Corrects the display, in our repository, but I am unsure of any side effects, particularly with the flows array.
Screenshots

it should probably needs to be tested with latest gitgraph.js and if still not working reported upstream

I originally tested with a copy of gitgraph.js after the the fix for #3382 so I will open one under bluef/gitgraph.js


text:
Log IP on SSH authentication failure for Built-in SSH server

targets https://github.com/go-gitea/gitea/issues/13094
Line 127 logs the IP address when connecting with a key from a user that does not have permission for the repo they're trying to clone or the repo does not exist.
Line 188 logs the IP address when connecting with a key not recognized by the server.
I'm not sure which cases Line 131 will be hit (if any and if Line 127 already covers this), but including it seemed prudent.
The regex from this guide could also be updated to omit the 'for' so it matches this along with failed logins, should I include that in this pull request or make a new one? It could also be updated to match "invalid credentials from" in the log when cloning over HTTP.

Codecov Report

Merging #13150 into master will increase coverage by 0.10%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master   #13150      +/-   ##
==========================================
+ Coverage   41.97%   42.08%   +0.10%
==========================================
  Files         681      681
  Lines       75121    75121
==========================================
+ Hits        31535    31614      +79
+ Misses      38456    38358      -98
- Partials     5130     5149      +19

Impacted Files
Coverage Δ

modules/ssh/ssh.go
46.32% <66.66%> (ø)

modules/log/event.go
58.96% <0.00%> (-2.84%)
:arrow_down:

services/pull/check.go
49.63% <0.00%> (-1.46%)
:arrow_down:

models/error.go
34.39% <0.00%> (ø)

services/pull/pull.go
41.27% <0.00%> (+0.49%)
:arrow_up:

modules/git/repo.go
47.71% <0.00%> (+1.01%)
:arrow_up:

services/mailer/mail.go
55.91% <0.00%> (+1.07%)
:arrow_up:

modules/notification/notification.go
81.25% <0.00%> (+2.67%)
:arrow_up:

modules/notification/base/null.go
71.42% <0.00%> (+2.85%)
:arrow_up:

modules/git/commit.go
54.05% <0.00%> (+4.05%)
:arrow_up:

... and 5 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e4a3785...95d5840. Read the comment docs.

Yes, please update docs in this PR

Ok so I think this is all in the wrong place.
By the time the session handler is involved they have authenticated with the server as using a public key.
You presumably want to catch the people who are failing to authenticate.
In terms of errors from the session handler - those are more authorization errors and you'd be better off logging them in routers/private/serv.go

Ok so I think this is all in the wrong place.
By the time the session handler is involved they have authenticated with the server as using a public key.
You presumably want to catch the people who are failing to authenticate.
In terms of errors from the session handler - those are more authorization errors and you'd be better off logging them in routers/private/serv.go

Thank you! You're right, that place is much better. I've updated it to reflect this, and also added one more location to log the remote IP address, when trying to clone over HTTP for a user that does not exist.

:rocket:

source: gharchive/pull-request

authors: 6543 codecov-io elesiuta lafriks zeripath


text:
[Frontport] Changelog (v1.13.6, v1.13.7, v1.14.0-rc2)

as title

please bump docs version too


text:
Set safe dir for git operations in .drone.yml CI

Our drone by necessity runs on git repositories not owned by the drone process. Unfortunately this means that git operations and thence CI builds will fail without the safe.directory option being set.
See: https://drone.gitea.io/go-gitea/gitea/54632/2/8

It seems a shame we can't get the permissions correct on the source repository so that drone can just run things properly.

Given the build is failing though we should merge and then fix things later.

Please send backport

authors: techknowlogick zeripath


text:
Add "Reviewed by you" filter for pull requests

This includes pull requests that you approved, requested changes or commented on. Currently such pull requests are not visible in any of the filters on /pulls, while they may need further action like merging, or prodding the author or reviewers.
Especially when working with a large team on a repository it's helpful to get a full overview of pull requests that may need your attention, without having to sift through the complete list.

In #16074 a number of other filters are proposed. I think for the home page it makes sense to keep the number of filters limited, both for performance and to avoid clutter. Adding more filters to the Type menu in issue lists on the other hand does not have those problems, so I imagine more could be added there.
And so a question is, what is a good set of default filters for the home page, and why should this one be on there? For me the reason is that this makes the pulls that need my attention complete. Having pulls already listed under "created by you" categorized more finely useful, but I'm usually quite aware of the state of my own pulls. Having pulls filtered by review state regardless of my involvement also is useful, but perhaps would work best to have only in the Type filter menu in a repository.

I'm not sure what you mean by util.OptionalBool?
An alternative here would be to instead add a filter Reviewed by you, which would include any pull requests where you approved or requested changes. On GitHub that filter also include pull requests that you commented on, which seems good.
If we do that, the filters together would include all the pull requests that you interacted with, which is the main thing I'm after. It also makes #22926 less important for me, though for issues it would still be nice to somehow see issues that I commented on somewhere.

util.OptionalBool is a type that can be true, false, or Not Present, so a ternary boolean.
That way you differentiate between included, excluded, and not set.
I guess that's what lunny meant.

ping LG-TM bot

authors: brechtvl delvh techknowlogick


text:
Fix organization removal from watch table migration

Fixes #2702

LGTM
Tested on postgresql.

Codecov Report

Merging #2703 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2703   +/-   ##
=======================================
  Coverage   27.38%   27.38%
=======================================
  Files          86       86
  Lines       17014    17014
=======================================
  Hits         4659     4659
  Misses      11675    11675
  Partials      680      680

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e89bb7e...ae0a948. Read the comment docs.

LGTM

authors: Morlinest codecov-io ethantkoenig lafriks


text:
update multiple assignes feature in comparison

Update comparison because we implemented the "multiple assignees per issue" - feature.

Codecov Report

Merging #3938 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3938   +/-   ##
=======================================
  Coverage   20.27%   20.27%
=======================================
  Files         146      146
  Lines       29316    29316
=======================================
  Hits         5945     5945
  Misses      22470    22470
  Partials      901      901

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0e00361...9245cc3. Read the comment docs.

LGTM

authors: codecov-io daviian lunny


text:
Rewrite markdown rendering to blackfriday v2 and rewrite ormode rendering to go-org

[x] Rewrite markdown rendering to new blackfriday v2.0 version
[x] Fix tests
[x] Rewrite orgmode rendering go-org library as current library gorgeous is deprecated and depends on old blackfriday library version

Fixes #8502
Initially I did not see that PR so this replaces #8503

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@690a8ec). Click here to learn what that means.
The diff coverage is 86.5%.

@@            Coverage Diff            @@
##             master    #8560   +/-   ##
=========================================
  Coverage          ?   41.44%
=========================================
  Files             ?      539
  Lines             ?    69330
  Branches          ?        0
=========================================
  Hits              ?    28732
  Misses            ?    36905
  Partials          ?     3693

Impacted Files
Coverage Δ

modules/markup/mdstripper/mdstripper.go
100% <100%> (ø)

modules/markup/markdown/markdown.go
83.49% <81.33%> (ø)

modules/markup/orgmode/orgmode.go
82.81% <84.9%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 690a8ec...7f3d2de. Read the comment docs.

This PR is now ready for review, would like to get it merged sooner rather later so if there are any regressions they could be fixed :)

PR title: ormode ==> orgmode 😉

authors: codecov-io guillep2k lafriks


text:
Delete all tables

How can I delete all tables in psql database?

just drop & recreate database

authors: jinzhu shreeharsha-factly

repo: go-gorm/gorm


text:
"使用 Group 条件可以更轻松的编写复杂 SQL"得不到正确的sql代码；

Your Question
"使用 Group 条件可以更轻松的编写复杂 SQL"得不到正确的sql代码；
我参考的文档是：https://gorm.io/zh_CN/docs/advanced_query.html#子查询
问题如下：
我在db后面加个.Table("f_quoted_price") 改变下table名，就不能得到正确的sql语句。见下图：

如果采用默认的table就可以得到正确的sql语句。见下图：

The document you expected this should be explained
Expected answer

可以看下这个https://gorm.io/zh_CN/docs/method_chaining.html


text:
What is the purpose of the package?

Is it supposed to be a MathJax version for Go ? Or more like the go tools (gofmt,...) but for latex ? Is it supposed one day to become a complete tex implementation in go ?

hi,

Is it supposed to be a MathJax version for Go ?

yes. (eventually)

Or more like the go tools (gofmt,...) but for latex ?

yes, that as well. (eventually)

Is it supposed one day to become a complete tex implementation in go ?

also yes. (eventually)
actually, a complete TeX implementation (TeX, not (yet) LaTeX) in Go is already available there:

https://star-tex.org/x/tex
https://star-tex.org/x/tex/internal/xtex
https://star-tex.org/x/tex/cmd/star-tex

star-tex is the new place where all the go-latex goals are supposed to be met.
star-tex is the automatic translation of tex.web into Pascal and then into Go (under star-tex.org/x/internal/xtex)
what is missing in star-tex is:

providing a pure-Go implementation of type1 and pk fonts
providing a pure-Go dvitopdf implementation
providing a pure-Go dvitopng implementation
providing a pure-Go set of builtin macros for LaTeX support

then split out the internal/xtex package into manageable, reusable and focused packages (dvi, matheq, ...)

@sbinet very very interesting ! Have you write somewhere a blog post or a documentation that describe the project and how you have achieved the transpilation from pascal to go ?
As this is an automatic transpilation I suppose that the go version does not benefit from the power of parallel programming (goroutines)  ?

the tool that was used to apply the automatic conversion was written by cznic:

https://gitlab.com/cznic/web2go

I asked him whether he was considering writing a little blurb or blog post about it but he declined :)
(I was also rather interested in his strategy and the pitfalls he may have faced)

As this is an automatic transpilation I suppose that the go version does not benefit from the power of parallel programming (goroutines) ?

indeed, it's a rather blunt transpilation with no concurrency in the mix.
that's why I'd like to be able to split it up into multiple (more manageable) packages.
as soon as I (but I am fine other people sending patches :P) finish the DVI->PDF or DVI->PNG support (this means adding support for either pk or type1 fonts), I'll cut v0.3.0 and make an announcement.
I must admit I've lost a bit of steam.
but the action is happening there:

https://git.sr.ht/~sbinet/star-tex/tree/dvi (dvi branch)
https://git.sr.ht/~sbinet/star-tex/tree/type1-font (type1 branch)
https://git.sr.ht/~sbinet/star-tex/tree/font-pk (font-pk branch)

the tool that was used to apply the automatic conversion was written by cznic:

https://gitlab.com/cznic/web2go

Thanks for this link. I was not aware about this project.

I asked him whether he was considering writing a little blurb or blog post about it but he declined :)
(I was also rather interested in his strategy and the pitfalls he may have faced)

What a pity he didn't want to write something about it. I'll try to ask him too. Maybe he'll end up doing it ;)

As this is an automatic transpilation I suppose that the go version does not benefit from the power of parallel programming (goroutines) ?

indeed, it's a rather blunt transpilation with no concurrency in the mix.
that's why I'd like to be able to split it up into multiple (more manageable) packages.

This will be fantastic.

as soon as I (but I am fine other people sending patches :P) finish the DVI->PDF or DVI->PNG support (this means adding support for either pk or type1 fonts), I'll cut v0.3.0 and make an announcement.

Are you sure that you want to do this directly ? May be DVI(X) → Canvas ?
This is something that probably I would like to work on.

I must admit I've lost a bit of steam.
but the action is happening there:

https://git.sr.ht/~sbinet/star-tex/tree/dvi (dvi branch)
https://git.sr.ht/~sbinet/star-tex/tree/type1-font (type1 branch)
https://git.sr.ht/~sbinet/star-tex/tree/font-pk (font-pk branch)

Are you sure you want to work with type1 fonts and not with TTF and OTF?
I know this means switching from tex to something like xetex, but maybe that's the way to go... the poor UTF support in tex is really annoying.
Do you know tectonic project ? (He is ambitioning to port xetex to Rust.)

Are you sure that you want to do this directly ? May be DVI(X) → Canvas ?

the dvi branch is trying to put in place the necessary scaffolding to be able to read/decode a DVI file (mostly done) and then produce something (PDF, PNG) (that's what needs to be done).
the most difficult thing being loading the correct fonts (right now, only type1 and pk fonts are supported by tex.web and thus star-tex).
the plan is to be able to produce a .pdf document from a (plain) .tex document, with star-tex.org/x/tex (in pure-Go) + an already installed TeX distribution system.

Are you sure you want to work with type1 fonts and not with TTF and OTF?

my strategy was to be able to replicate tex.web, first.
as it was the most minimal working TeX system, I thought it would be easier to do.
handling TTF/OTF meant to be able to create new code w/o much documentation (or w/o looking at GPL-ed code).
it seemed easier to first get a handle on the TeX system at large first and then improve on it. (I have been a user of LaTeX for >20yrs, but never went behind the curtain before then)
I now of the tectonic project.
and other projects:

https://github.com/tex-other

(my favorite one being https://github.com/xymostech/XymosTeX)

Are you sure that you want to do this directly ? May be DVI(X) → Canvas ?

the dvi branch is trying to put in place the necessary scaffolding to be able to read/decode a DVI file (mostly done) and then produce something (PDF, PNG) (that's what needs to be done).

I can't find the dvi branch. I see only a main branch in https://git.sr.ht/~sbinet/star-tex.
Are you following some dvi specifications ? If yes, where can I find them ?

the most difficult thing being loading the correct fonts (right now, only type1 and pk fonts are supported by tex.web and thus star-tex).
the plan is to be able to produce a .pdf document from a (plain) .tex document, with star-tex.org/x/tex (in pure-Go) + an already installed TeX distribution system.

Stupid question : is it not possible for the dvi renderer part to use converted otf fonts in place of the original type1 ? If this is possible, may be a first step will be to work with "adjusted" tex distribution, where the type1 fonts are doubled by converted otf fonts, because there are available go libraries for this type of fonts.

Are you sure you want to work with type1 fonts and not with TTF and OTF?

my strategy was to be able to replicate tex.web, first.
as it was the most minimal working TeX system, I thought it would be easier to do.

This seems reasonable. The only problem is that there are no (as far as I know) a go library for type1 fonts :(

handling TTF/OTF meant to be able to create new code w/o much documentation (or w/o looking at GPL-ed code).
it seemed easier to first get a handle on the TeX system at large first and then improve on it. (I have been a user of LaTeX for >20yrs, but never went behind the curtain before then)

Me too ;)

the dvi branch is there:

https://git.sr.ht/~sbinet/star-tex/tree/dvi

I've put some references for dvi on the tracker:

https://todo.sr.ht/~sbinet/star-tex/3

same for dvi2pdf, dvi2png and type1/pk:

https://todo.sr.ht/~sbinet/star-tex/5
https://todo.sr.ht/~sbinet/star-tex/4
https://todo.sr.ht/~sbinet/star-tex/8
https://todo.sr.ht/~sbinet/star-tex/11

is it not possible for the dvi renderer part to use converted otf fonts in place of the original type1

I don't know of a tool that would do what you are describing.
type1 fonts are indeed complicated (you need a PostScript interpreter for one thing).
I think it will be more tractable to focus on the pk fonts. (the pk-related branch seems to be able to correctly decode those, now what still needs to be done is to present the data as a golang.org/x/image/font.Face (or something else?) so as to be able to actually render the text)
could we migrate this discussion over to star-tex list?

https://lists.sr.ht/~sbinet/star-tex
mailto:~sbinet/star-tex@lists.sr.ht

could we migrate this discussion over to the star-tex list?

https://lists.sr.ht/~sbinet/star-tex
mailto:~sbinet/star-tex@lists.sr.ht

We can try, I have never used sr.ht before. I just created a free account there.

My first thought when I found this project was how thorough and awesome it looked, if only there was any documentation about how to use it, or at least what it's intentions were. Luckily I decided to dig deeper and found this "issue", because your first answer filled in a huge number of gaps. You should move a bunch of that into the README.md.

You are not wrong.
I'll try to send a PR when in front of a real keyboard.

(closing, feel free to reopen if you feel it hasn't been properly addressed.)

authors: kpym sbinet tommyo

repo: go-latex/latex


text:
test issue 3

This is new test issue.

This should be fail.


text:
Question | Which .env file is used during an eas update with Expo?

Which .env file is used during an eas update with Expo?
Is there a specific .env file that is used during an eas update with Expo, and if so, which one is it?
I have those env files:
.env.local
.env.development
.env.production
When using eas build,
I do not encounter any problems because I am specifying the "env" key in my eas.json file for each profile.

You need to put your environment variables as secrets onto the EAS platform

Feel free to continue the discussion here https://github.com/goatandsheep/react-native-dotenv/discussions/388

authors: goatandsheep maoryadin

repo: goatandsheep/react-native-dotenv


text:
Web UI for configuration

Web UI, like Sidekiq or AsynQ

Done in https://github.com/gobackup/gobackup/pull/141

repo: gobackup/gobackup


text:
Allow to set the default job timeout

Hey gomatic Team,
in some of our projects we have to set the default pipeline timeout quite regularly. This PR helps with that. Are the tests sufficient this way?
Cheers
@pellepelster, @fbernitt and @holderbaum

published in gomatic 0.5.7, thanks!

authors: dudadornelles holderbaum

repo: gocd-contrib/gomatic


text:
refactor: Whitespace removal from all .gd files

As Godot 3.4.2 automatically removes whitespace from gd files when the project is run, this PR is to fix all files.
After whitespace removal and testing the demo, Godot changed 2 files again, so these were recommitted. No further changes occurred after opening every room in the demo.

I would have preferred a rebase instead of merging HEAD into this branch so that the PR doesn't hold code that's already in the target branch.

I would have preferred a rebase instead of merging HEAD into this branch so that the PR doesn't hold code that's already in the target branch.

Agreed as well. Can you maybe rebase it on develop?

@StraToN @dploeger @BHSDuncan should be good now.

lgtm

authors: StraToN balloonpopper dploeger

repo: godot-escoria/escoria-demo-game


text:
Bullet PR: ray shape falling inside and bouncing from conclave collision shape triangles.

Operating system or device, Godot version, GPU Model and driver (if graphics related):
This issue is relate to Bullet pr: 59ac299
Tested on ubuntu 17.04 release_debug build
Issue description:
Ray collision shape don't cooperate well with conclave collision shapes of static bodies, especially in a scenario where conclave collision shape is level floor and ray shape is used to be a base of dynamic body.
Please look at video that presents how this is behaving currently(godot physic engine), and how the same project is behaving in Bullet:
https://youtu.be/Fd-ge51ZTT8
Steps to reproduce:

Download sample project
Run RayShapeTest.tscn
Try to navigate a character a little through the level with arrow keys.
Observe that character sometimes bounces from floor triangles
Observe that character ray shape sometimes is falling into level geometry.

Link to minimal example project:
BulletRayBounceAndFall.zip
here is a source blend file for this level, just in case:
Level_test.blend.zip

@AndreaCatania very sorry! But looking at this from the bright site, I think this one is the last one that is related to dynamic character controller :)

related issue #12156

Fixed ce367016f4d1d97d998049287e70fe694377c061
I can give you an advice, if you intersec a bit the ray with capsule in your character you can avoid some problems

It's fine, let me know if this commit resolve it even in your side

@AndreaCatania Tested! It works beautifully! Thank you so much! :heart:

repo: godotengine/godot


text:
Cannot apply Normal Map to Sprite3D

Godot version:
3.0.2
3.0.6
OS/device including version:
Windows 10 Pro 64 bit
Issue description:
I have a Sprite3D object with SpatialMaterial applied in GeometryInstance tab. Everything looks good until a normal map is enabled: sprite gets darker and stops reacting to any light sources regardless of normal texture picked (or none):

However, material is rendered as intended on the preview ball:

Also same material works fine with plane MeshInstance.
Steps to reproduce:
Bumped into issue on Godot v3.0.2 (noticed fps drop when sprite entered viewport first time) and reproduced on v3.0.6 by creating a new project with initial settings, adding Sprite3D, adding SpatialMaterial to it and enabling normal map.
Minimal reproduction project:
Sprite3D Normal Map.zip

I can reproduce this as well. We're currently experiencing the same issue. We have a lot of sprites and as a temporary workaround we'll have to use them as MeshInstances. Which is quite painful...


text:
Make the radius property in CapsuleShape not interfere with height.

Well, in fact the height property value in Inspector still the same, but the 3d capsule itself increase in height. It's pretty annoying, did I miss something? In Unity it doesn't happen, so I have much more control over the capsule height and radius. It sounds silly, but it gets in the way a little bit to keep up with the map scale, since it's confusing to tweak and match units.

Sounds easy to fix but it will break compat.

I just noticed the same issue occurs with CapsuleMesh. Maybe both should have similar behavior so they are easier to match.

authors: Zylann marmitoTH


text:
APK Expansion fail to install

Godot version:
3.1

OS/device including version:
Android 5.0/Samsung Galaxy S5

Issue description:
APK Expansion enabled, devices report cannot locate resource.

Steps to reproduce:
Godot 3.1 Project on Galaxy S5.
Minimal reproduction project:

Are you using the official export templates?

Are you using the official export templates?

Custom android export with admob. the apk works fine if no apk expansion(and yes i'm testing live from the playstore). the problem only happens on Galaxy S5

did you enable READ_EXTERNAL_STORAGE permission?

did you enable READ_EXTERNAL_STORAGE permission?

I didnt add that permission, I'll try it and see if this resolves my issue.

@canvasbushi any update?

@canvasbushi any update?

i reduced the size of the engine to get an apk under 100mb, so i haven't tried it yet.

Closing since the issue seems to be resolved. @canvasbushi Feel free to reopen if it's not.

authors: LinuxUserGD canvasbushi m4gr3d volzhs


text:
gtlf export have incorrect cloth skin

Godot version:
Godot 3.2.1 stable.official
Blender v2.83.0
OS/device including version:
Win10 x64
Issue description:
I export the character and her additional cloth, and it just has incorrect skin.
In Blender, the skin weight is like this:

In Godot, it just become this:  (The cloth is broken!)

Steps to reproduce:
1.Open blender file
2.select the armature and its children to export as gltf2.0 as this option:

Then go to Godot to import this glb  file.
You found this walk animation is not correct as it in Blender.

Minimal reproduction project:
Blender file:
FemaleCloth_10001.zip

I noticed that you are using an internal animation rig, please bake it out.
That's all I can think of.

I noticed that you are using an internal animation rig, please bake it out.
That's all I can think of.

I try to bake the action, it just fill the key frame, it can let the animation work well, but here is my problem: The cloth skin is incorrect, that is not same as blender, every time I edit the mesh in Blender, it just can not show in Godot right.

I can see it in the blender file

And if this issue can not fix, anyone has anyways to avoid this issue can let me keep creating my character wear and change clothes feature?

I noticed that you are using an internal animation rig, please bake it out.
That's all I can think of.

By the way, the body mesh have shape key. I doubt it may effect.

Something goes wrong when I import the model from blender into ms 3d viewer. Can you check that point?

When I tried exporting, I saw.
FemaleCloth_10001.zip

Are you sure your blender version is right?

I open your glb file in blender, the skeletal is right as expect.

But it just wrong like shit in Godot...All skeletal just incorrect!

I tired import this glb in Godot, it just have incorrect skeletal transform........

At least the skin is right.....

By the way, Blender is the Best glb viewer, not ms 3D viewer.

@wijat Please use the Edit button (hidden behind the ... icon) to edit your posts instead of multi-posting. I merged your posts manually.

Used blender 2.9 and a Godot Engine branch git branch on 3.2.
I don't see any problems now.

The incorrect skin seems to work in Blender 2.9+. Will close.

authors: Calinou fire wijat


text:
iOS input delay on exports from 3.2.3

Godot version:

3.2.3.stable.official
OS/device including version:

Issue is present on two devices I've tested:

iPhone X, iOS 14.0
iPad 6th generation, iPadOS 13.6.1

Issue description:

There is a noticeable delay (~250ms) between the time the screen is tapped and the time _input(event) fires.
Steps to reproduce:

Download Multitouch View Demo from Asset Library
Export to iOS using 3.2.3.stable export template
Install and run on iOS device

See also https://github.com/godotengine/godot/issues/41452. Can you reproduce this on Godot 3.2.2?

No; I just exported the same Multitouch View Demo project using 3.2.2 and it ran perfectly on both devices. I'll try 3.2.3-rc4 to see if it's related to #41452.

The delay is 150ms same as iOS's delay for some native views.
It will also fire immediately on touch movement or touch being released.
Related code is in: https://github.com/godotengine/godot/blob/3.2/platform/iphone/gl_view_gesture_recognizer.m
The issue linked above (#41452) also has the discussion on why it's working this way now and why the problem from that issue occurred.
The delay could probably be lowered a little, but this would require testing with project from initial issue.

Thanks for your response. I'm not sure I understand though. Is there really no way to detect an iOS tap before 150ms have passed? It seems like this would break the responsiveness of a lot of games. It's very noticeable. Is there any workaround to get iOS input faster?

As I previously said, if you release the touch before 150ms delay, touch events would fire immediately, so 150ms delay basically has no effect on input.
And tap, which is essentially a press and fast release, should be working correctly as before.
Also in PR and issue that was fixed with it I've mentioned why this fixed was introduced. Basically on newest phones iOS fires moved events even if no movement happened.
I haven't found any issue with my iOS project with this implementation. With 3.2.2 I had to make a workarounds so game would correctly handle taps.
And the problem from #41452 was happening only because iOS queues input events instead of firing them when they happen, like Android does.

Sorry, maybe "tap" was the wrong word. I have a project where you press and hold to move. There's no gesture or release to trigger further input, so I relied on the initial event. Worked great in 3.2.2, but now with the delay I need to find a workaround.

Moving delay value into project settings should probably give more control over the input for cases like yours.

@mtk4000 I've made some modifications in this branch - https://github.com/naithar/godot/tree/feature/ios-delay-in-settings
You can change default delay in ProjectSettings at Input Devices -> Pointing.

Works great. Thank you very much for your help.

That's great. I'll try to make PR soon, so this would make into 3.2.4.

Having the same issue here since I moved to 3.2.3, how can I solve that without needing to re-compile the engine?
Is there any way I can modify that delay parameter without needing to touch Godot's internals?

No, you can't, for now you have to rebuild the engine. You can wait for Godot 3.2.4 beta or RC1 and migrate to it once it's out.

Will do, thanks!

I get this problem as well, also don't have the experience to rebuild the engine. Any idea when the RC is gonna be released? I get an error when exporting to iOS from the 3.2.4 beta (AOT Compilation exited with code 134), but I need this issue fixed asap.

I get this problem as well, also don't have the experience to rebuild the engine. Any idea when the RC is gonna be released? I get an error when exporting to iOS from the 3.2.4 beta (AOT Compilation exited with code 134), but I need this issue fixed asap.

Are you using Mono build with C#?

Yes @naithar

Well, the fix for this issue is merged and should be in beta, but I can't help you with Mono build.
I think you should make another issue for your case or find the one already addressing it. As far as I know Godot Mono for iOS sometimes have issues, so making a correct bug report could help contributors find and fix the problem.

Any idea when the RC is gonna be released? I get an error when exporting to iOS from the 3.2.4 beta (AOT Compilation exited with code 134), but I need this issue fixed asap.

A RC can't be released right after a beta which apparently doesn't work ;)
Please open an issue about this AOT compilation failure.

I'm having this issue on 3.2.3-stable-release. I can't use v3.2.4 rc3 because I'm using a few plugins that may not be compatible with it. Game crashes if I use prebuilt versions of the plugins and some are not compiling for v3.2.4 rc3. I was trying to find the "ios-delay-in-settings" branch, but it's missing. Is there any way I can have access to it or at least the changes I need to make to add this feature? Thanks.

The PR that's linked to this issue https://github.com/godotengine/godot/pull/42457 has the changes you need.

The problem is still present in 3.5.1, at least for systems that use InputDefault, such as TouchScreenButton. If I understand the current solution correctly, for short taps it will fire the presses at the same time (just before) the releases. So for something using InputDefault, action_press() will be called just before action_release(), and then Input.is_action_pressed() will always return false for presses shorter than 0.15s, which is very long.

Also confirming that this is still in issue in 3.5.3. Is there any path forward here or is this a hard platform limitation?

Nevermind, I set the input_devices/pointing/ios/touch_delay project setting to 0, and all works well! Out of curiosity, why have this setting at all, or at least, why not set it to 0 by default? Even using NSTimer to delay it by 0 seconds causes it to not be dispatched immediately, but rather, schedule it for the next run of the event queue (which is still in practice fast enough for the user not to notice, but still).

Out of curiosity, why have this setting at all, or at least, why not set it to 0 by default

To my knowledge, the touch delay is in place so that double-taps can be recognized. Setting it to 0 by default would prevent double-taps from registering. Also, changing a default project setting's value would break compatibility with existing projects, so the change would have to be applied to newly created projects only by modifying the project.godot file written by the project manager.

authors: BimDav Calinou Joseaay akien-mga elinfame fadexmusic mtk4000 naithar yokai-shogun


text:
Improve error reporting when an Ogg audio file fails to import

I tried to load hello.ogg into Godot, but it's actually an MP3 file. 😄 So, this issue now tracks making it a little more obvious in the UI what's going on. Original issue text below:

Original issue

Godot version:
Reproduces in 3.2.3 and 3.2.4-rc3
OS/device including version:
Windows 10 x64
Issue description:
Adding this ogg file (attached in repro steps) to a project gives me some error logs in the Godot console:
ERROR: set_data: Condition "ogg_stream == __null" is true.
   At: modules/stb_vorbis/audio_stream_ogg_vorbis.cpp:202
ERROR: import: Condition "!ogg_stream->get_data().size()" is true. Returned: ERR_FILE_CORRUPT
   At: modules/stb_vorbis/resource_importer_ogg_vorbis.cpp:102
ERROR: _reimport_file: Error importing 'res://hello.ogg'.
   At: editor/editor_file_system.cpp:1795

And the UI shows it failed to import:

The file plays fine in various players and opens in Audacity.
Steps to reproduce:
Create a new project and add hello.ogg: hello.zip
Minimal reproduction project:
ogg_project.zip

Is there a minimal stb_vorbis loader we can try out to see if this is an issue with stb_vorbis itself?

That's because a.ogg is actually a MP3 file :slightly_smiling_face:
$ file a.ogg
a.ogg: MPEG ADTS, layer III, v2,  32 kbps, 24 kHz, Monaural

Oh... oops. 😄 Thanks. I don't know an easy way to tell on Windows (but I don't work with audio files much).

Oh... oops. smile Thanks. I don't know an easy way to tell on Windows (but I don't work with audio files much).

You can install FFmpeg and use the ffprobe <path to file> command, or install a port of file for Windows and use file <path to file>.
Both can be installed using Scoop:
scoop install ffmpeg file

I've noticed that image_loader.cpp checks the header of it's resource when loading, to ensure the format is valid; maybe this could be implemented for all binary resources?
https://github.com/godotengine/godot/blob/8fbe644b6e6548dc2c9f9d675bc17f13b74e747b/core/io/image_loader.cpp#L137-L144

Fixed by #56903.


text:
Unable to change mouse cursor over RichTextLabel

Godot version: 3.2.3.stable.mono.official
OS/device including version: Windows 10
Issue description:
With RichTextLabels, changing "Mouse": "Default cursor shape" from the editor or .mouse_default_cursor_shape from code has no effect on the mouse cursor. This is true even though I made the RichTextLabel clickable and have code executing functions when the label is clicked, so I know it's not an issue with the underlying rect size or anything.
There is a maybe related issue #42249, but it looks like they only had problems with the mouse cursor if they have the RichTextLabel's meta_underlined property set to false, whereas I'm not able to get the cursor to change even if meta_underlined is set to true.
Unless this is a sign that there's a more fundamental underlying issue, this is probably a low priority to fix because the following workaround worked for me (in case anyone is running into this issue and finds this in a web search):

Add a MarginContainer as a child to the RichTextLabel
Set the MarginContainer Anchors to be 0 for Left and Top, and 1 for Right and Bottom
Set the MarginContainer Margins to all be 0
Set the MarginContainer Mouse settings to Filter: Pass and Default Cursor Shape: Pointing Hand

Steps to reproduce:
Add a RichTextLabel and attempt to change the mouse default cursor shape.
Minimal reproduction project:
rich_text_label_mouse_cursor_minimal_project.zip

Seems fixed by #52067.


text:
Geometry not visible on imported FBX files, both 3.3 and 4.0

Godot version:
3.3 and 4.0 (updated from a week ago)
OS/device including version:
Linux Mint, RX 5500 XT with open source drivers.
Issue description:
If I export a model from Blender (tried both 2.82 and 2.90) only the armature is visible, the geometry is there (a meshInstance) but it is not visible.
Steps to reproduce:
geometrybug.zip
Minimal reproduction project:
Any project will do, just export the attached blend file.

cc @RevoluPowered

This is probably fixed with the new FBX importer using FBX2glTF.
You can test it in Godot 4.0 alpha 6: https://godotengine.org/article/dev-snapshot-godot-4-0-alpha-6
This new importer might also be backported for the 3.x branch eventually.
If you still find issues with these models using the new importer, we suggest opening a new issue with details about the problems in Godot 4.0 alpha 6 or later.

authors: Calinou akien-mga rogerdv


text:
Default Environment with Additive Bloom enabled. Shader goes crazy

Godot version:
3.3-stable 8e68f2e5f48c66bfa80b9bb7746a488afb70086d
OS/device including version:
macOS Big Sur 11.3.1
Issue description:
Godot 3D env shader goes crazy when you enable additive bloom in canvas mode to the default environment. It reacts to moving your mouse and resizing the window.

Steps to reproduce:
Run a Godot project with a default_env.tres with an Environment with at least these settings:
Background->Mode: "Canvas"
Glow->Enabled: True
Glow.Levels->Bloom: 1.0
Glow.Levels->Blend Mode: "Additive"

Minimal reproduction project:
bloom_env_bug.zip

This is expected when using the Canvas mode in the 3D editor viewport. The canvas mode is meant to be used in 2D. This issue should not occur in the 2D editor viewport.

authors: Calinou superoven


text:
Websocket Network Limits in ProjectSettings missing

Godot version
v4.0.dev.calinou [8ffb631cd]
System information
Windows 10
Issue description
The network/limits/websocket_client/ and network/limits/websocket_server/ settings in the ProjectSettings are missing in the 4.0 dev Version.
In Godot 3.3 they are there:

Godot 4.0 dev:

Steps to reproduce

Go to the ProjectSettings in Godot 4.0 dev.

Minimal reproduction project
No response

Did you toggle Advanced settings?

Yes.

They were removed intentionally by @Faless in #37099.

Is it possible to change the Websocket values?

Yes, the set_buffers method in both WebSocketClient and WebSocketServer.
Although the documentation about the method should be updated.

Thank you!

@Faless  Am I right that set_buffers must be set once in the _ready() function? (before connect_to_url())

Closing as this was an intentional change as per the discussion above.

authors: Faless Gamemap akien-mga mhilbrunner


text:
"Quick Open" window is ignoring file extensions

Operating system or device - Godot version:
Ubuntu 16.04,  119cd5d3ff9fbbafc59db7481c0eee29f43c0c64 commit
Issue description (what happened, and what was expected):
It's a regression from 2.0
In Godot 2.1 windows "Quick open scene" and "Quick open script" are ignoring dots (or file extensions). It will be the best to ilustrate this with screenshot:

In Godot 2.0 for this phrase I would have only one outcome.
Steps to reproduce:
Link to minimal example project (optional but very welcome):

Well, it's not ignoring. It is performing subsequence search and since all files have .t it shows all files. So there's a few solutions to this:

Make the search smarter and change from subsequence to regular match if the search term has a dot.
Make it only search for file name, not the whole path.
Make the subsequence search opt-out with an editor setting (then it should consider if this is global or there's an option for each search field).

Doesn't the search algorithm consider a full match like "mainmenu.t" as a best match? If so it should then show UI/MainMenu/MainMenu.tscn on the top of the list as the best match no?

I think (2) is not a good solution, as quite often you type a folder name to get all files of this folder and pick the one you want (e.g. levels).
(1) might be a good compromise. Another solution could be to always start with a regular match, and only make the subsequence search afterwards, thus always listing regular matches first. But that might have a performance impact.

I also think option (2) is not the best one for the reasons raised by Akien. It's quite comfortable to write name of the folder with levels to see all the levels for example.

I'll tackle this. I'll make it so it uses regular match first then.

Heh, there's no easy way to do this :disappointed:. The list is a Tree, which seems to have no way to add items in a particular position and since the function is recursive per directory, I can't prioritize generally (unless I change the root function to perform two searches).
A clean way around this would be to add two root items, one with the regular matches and other with subsequences.

Hmm changing root function to perform two searches sounds like a good solution for me, but I have fast ssd disk, is it possible for those searches to be to slow?

authors: akien-mga kubecz3k vnen


text:
Clicking on bell button does nothing

Godot version
b2382183635acb4117d6b88eaffa8fd841052f10
System information
Windows 10
Issue description
Clicking on

does nothing. I think if there is no effect that button should be either disabled or hidden. Plus it does not have a tooltip.
Steps to reproduce
^^
Minimal reproduction project
No response

It toggles the toaster notifications.

Ah, yeah, I have a "show internal errors in toast notification" in the disabled(auto) state (which is on by default), so pressing it does not have any effect almost always.

Another thing I noticed when pressing this bell button is that it still displays errors which has already been resolved. This can also be confusing.
Demo:

After resolving the error, the error message is still there:

The "show internal errors in toast notification" setting is enabled on target=debug builds, and disabled on target=release_debug (so e.g. official 4.0 alpha 1 builds have this disabled as they use target=release_debug).
That's intentional, as we're not convinced that those internal errors are actually useful to show in the toaster. However, some errors which might be relevant to show seem to be wrongly internal-only, and they should be changed. There might also be a double reporting of errors (e.g. the Parse Errors in the above screenshot are likely already reported somewhere else in the script editor, and having them again in the toaster is not useful).

authors: Chaosus KoBeWi akien-mga gerhean


text:
[Godot4.0] Timer not auto start when tool mode

Godot version
v4.0.alpha12.official [2c11e6d9e]
System information
Windows 10 64bit
Issue description
Code like this:
@tool
extends Node2D

func _init():
	var timer = Timer.new()
	timer.wait_time = 1
	timer.autostart = true
	add_child(timer)
	timer.timeout.connect(update)

func _ready():
	pass

func update():
	prints(Time.get_ticks_msec())

But the timer not auto start, I must start it like this:

Steps to reproduce
Please run the reprocution project
Minimal reproduction project
TimerToolTest.zip

@akien-mga Oh, thanks


text:
--convert-3to4 doesn't convert shaders

Godot version
5c6744ae54189869580d713a6c31caa90492838a
System information
Win 10/64 NVIDIA GeForce GTX 1060/PCIe/SSE2
Issue description
According to my incomplete conversion log found in issue #63672, all my shaders in assets/shaders were converted. However the work is far from complete.

There are new .gdshader files, but all the old .shader files are still there and weren't deleted or renamed.

The new shaders have render_mode async_visible, which GD4 doesn't support and gives an error.

In fact, the shaders were hardly touched at all. The only difference I see is NORMAL_MAP. There are so many more issues.

These are all of the necessary conversions I have identified for my shaders. I'm not sure about backlight. It appears to be a functional replacement, but it is a poor quality replacement. I haven't decided if it needs an issue filed yet.
			$line =~ s/async_visible,?//g;
			$line =~ s/depth_draw_alpha_prepass/depth_draw_opaque/g;
			$line =~ s/hint_color|hint_albedo/source_color/g;
			$line =~ s/hint_white/hint_default_white/g;
			$line =~ s/hint_black_albedo|hint_black/hint_default_black/g;
			$line =~ s/hint_aniso/hint_anisotropy/g;
			$line =~ s/NORMALMAP/NORMAL_MAP/g;
			$line =~ s/INV_CAMERA_MATRIX/VIEW_MATRIX/g;
			$line =~ s/CAMERA_MATRIX/INV_VIEW_MATRIX/g;
			$line =~ s/WORLD_MATRIX/MODEL_MATRIX/g;
			$line =~ s/TRANSMISSION/BACKLIGHT/g;
			$line =~ s/ALPHA_SCISSOR/ALPHA_SCISSOR_THRESHOLD/g;

@qarmin

Problem with getting automatically list of all available shader values is reason why so much things are not renamed in shaders.
Feel free to open PR with shader renames so other contributors could look at this renames(I don't use shaders in code, so I can't really check if this renames are valid)
Place where such renames could be added
https://github.com/godotengine/godot/blob/ea4b8de2b4c06e6f18bf0470d716f787bddfecc3/editor/project_converter_3_to_4.cpp#L1223-L1229

would it be possible to replicate this bug on a different Nvidia SKU? for reference, i currently have a 1650 mobile and a gtx 960. Is there any way i can replicate this problem?

Has nothing to do with the hardware, so yes. And it's not a bug, it just wasn't implemented at the time of creation.
If you have your own project, use the search and replace lines to manually convert it.
If you're making an engine PR, follow the direction in the 1st and 2nd posts to rename files and edit scripts based on the identified patterns.

Alright, i'll take a look into this.

Hi! I was searching discrepancies between the Godot 3.5 and Godot 4.1 shader docs in hopes of contributing to fix this issue. Basically I found two missing conversions (INV_CAMERA_MATRIX and CAMERA_MATRIX) and one wrong existing coversion (depth_draw_alpha_prepass).
There are other discrepancies of things that Godot 4 doesn't support (like render_mode async_visible or LIGHT_VEC), but I'm not sure what could be done about that.
I'm trying to find other places to compare documentation and figure out what might be missing. Any suggestions for such resources would be really helpful. If you don't have any, I'll probably just submit my pull request for review.

authors: Guilhermev25 TokisanGames XaurDesu qarmin


text:
Vulkan Mobile: Curved MeshInstance3D's have strange lighting patterns

Godot version
4.alpha3 -> 4.beta2
System information
Windows 10, Vulkan Mobile, Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz 2.21 GHz
Issue description
Curved surfaces on MeshInstance3D's such as spheres and capsules are being lighted strangely.
This issue is not present in the Forward+ renderer or with cylinders.
This issue is present both in the editor and when rendered in a scene.
I have traced this back to version 4.alpha3

Steps to reproduce

Open up any Godot 4 version starting from 4.alpha3
Spawn a MeshInstance3D
Choose a sphere or capsule mesh

Minimal reproduction project
Sphere Lighting MRP beta-2.zip

Duplicate of https://github.com/godotengine/godot/issues/58631 (same cause).

authors: Calinou bepthomp


text:
Grandchild class of RefCounted is mistaken for Resource's child class.

Godot version
4.0.beta14
System information
Windows 10, Forward+
Issue description
I simplified the situation in the title.
Specifically, in any class which is sub-sub-class of RefCounted, when you try to define a function which exists in Resource, parser will throw this error: The function signature doesn't match the parent. Parent signature is "duplicate(bool = default) -> Resource".
Steps to reproduce
class A:
	extends RefCounted

class B:
	extends A

	static func duplicate():
		pass

res://addons/new_script.gd:5 - Parse Error: The function signature doesn't match the parent. Parent signature is "duplicate(bool = default) -> Resource".

Minimal reproduction project
N/A

Please join a MRP when there's scripts involved. Even if it seems simple, it simplifies greatly the developer's work.

I confirm this issue. Got it on master (e93266b).
Minimal reproduction project
71994.zip

To clarify, even though an argument can be made that this is correct behavior (static methods are accessible with the class alone and since a class is also a GDScript object, you can also access methods defined in GDScript and its super classes, so makes sense to check signature), the error shown here itself is not consistent.
This does not give an error:
class A:
	extends RefCounted
	static func duplicate():
		pass

This gives an error even without static:
class A:
	extends RefCounted
class B:
	extends A
	func duplicate():
		pass

So there's definitely something odd with the super class check.

Reopening as #72144 was reverted.

authors: adamscott akien-mga rambda vnen


text:
[3.x & 4.x] Off "position" value of simulated InputEventMouse in fullscreen/tiled window

Godot version
3.5.2 rc2
4.0 rc2
System information
Arch Linux and Windows 10 22H2
1366x768 HiDPI
Issue description
The position value of a simulated InputEventMouse becomes skewed when passed to _input if the game window is fullscreen/tiled/maximized.
global_position is not affected.
Steps to reproduce
event.position will not be (100, 100) if the window is fullscreen/maximized/tiled.
var event := InputEventMouseButton.new()
event.position = Vector2(100, 100)
Input.parse_input_event(event)

Create an event that inherits InputEventMouse
Set the event's position to something
Emit the event when the game's window is tiled or fullscreen
Print or assign to a label the position of the event after it's been passed to _input
Observe altered position value

Minimal reproduction project
off_mouse_event_position.zip
off_position_of_simulated_inputeventmouse_4.x.zip

Issue present in godot 4

This is expected behavior and as far as I can tell not a bug.
Input.parse_input_event expects the position in the coordinate system of the screen relative to the window. So you need to adjust the position accordingly.
Plase try in Godot 4:
	var event = InputEventMouseButton.new()
	event.position = get_viewport().get_screen_transform() * Vector2(100, 100)
	Input.parse_input_event(event)

authors: Sauermann baldie-degenerate


text:
Project broken following upgrade from 4.0.3 - "Parser Error: Identifier not found: (x)" error on all child classes from a global script class

Godot version
4.1 Stable
System information
Linux Mint 21.1 - Godot 4.1 Stable - Vulkan (Forward+) - i7-12700K - RTX 2060
Issue description
Hi folks!
My project worked back on Godot 4.0.3 but since upgrading to 4.1 the project instantly crashes when testing, with the parser reporting that it was unable to find pretty much all inherited members with the following error:
Parser Error: Identifier not found: [variable name here]
My characters are currently made up of three classes, starting with Actor_Base inheriting from CharacterBody3D, then two child classes named Actor_Simple and Actor_Player_NPC inheriting from Actor_Base, which can be found in the project’s Scripts/Actors folder.
To explain the problem, two members inherited from Actor_Base that first manifested this problem in my child classes after upgrading were “ActorActive” and “ActorAlive”, both of which appear to be correctly recognised as inherited members from Actor_Base in child scripts by the editor’s script parser, but no longer seem to be detected as inherited members by the in-game script parser, instantly causing a crash.
Commenting out each now-offending variable call revealed it appears to have a problem with pretty much every member inherited from my custom parent class. Putting “self.” at the start of each call appeared to work around the issue, but this meant that another script/node that instances these actors broke as it was unable to access and set the inherited “ActorDefinition” resource member.
As even the editor’s script parser can’t find any issues with these scripts, I am at a loss for what’s happened here.
Unfortunately as I can’t guarantee that I can reproduce the same symptoms for the same reasons on a minimal project, I have included the entire project as the Minimal Reproduction Project.
To reiterate, the project worked just fine back on 4.0.3, but has completely broken since the upgrade, with this issue backporting to 4.0.3 and thus leaving me stranded. I have also tried to start a new project and copy the original files in, which produced the same results.
Any help is greatly appreciated!
-CFR
Steps to reproduce
Run test on included project
Minimal reproduction project
TPAction_Broken_GH.zip

I can reproduce the issue with that project in 4.0.3.stable and 4.1.stable. It's pretty weird indeed.
Clearing the .github folder to force recreating the .godot/global_script_class_cache.cfg doesn't seem to fix it.

As mentioned by @anvilfolk on Rocket.chat, this might be the same issue as #78146.

I believe we can confirm this as a duplicate of #78146 since #79205 also fixes it :)

authors: CornflakeWoof akien-mga anvilfolk


text:
Multiple Sprite3D being rendered in weird order

Systems tested:
http://pasted.co/ca4970b9
http://pasted.co/d1a10e38
Version: v2.1.2.stable.official
Issue description:
Placing a big Sprite3D in front of a small Sprite3D may render the big one in front of the small one, depending on the view angle.
Adding a TestCube between both sprites creates a curious side-effect, here the big sprite on the back is rendered in front of the small sprite, except where the latter overlaps the TestCube, where the small sprite is rendered as expected.
It happens on both the editor and when running.
Steps to reproduce:

Link to minimal example project:
Issue.tar.gz

Hm, not sure if you can change the sprite3d's material, but if you can, could you try to set it's "depth draw" to "always" or to "pre-pass alpha"?

Using a material override and using those settings seems to work.

(don't mind the corners, alpha was disabled on the material override)
Still, it is definitely not the behavior I expected, when I used the two Sprite3D, where one is in front of the other. I would expect that in case those were billboards, when the small sprite is overlapped by the big one at around the same angle...
If I change the diffuse parameters on the material to add alpha this is what happens:

The left one is a common Sprite3D, the one in the middle has Depth Draw set to Always, and the one on the right to Pre-Pass Alpha.

Hi, why was this closed? I have quite a few textures in the same scene. It's basically the body with different parts of an armor, a shield, a weapon, all in Sprite3D. And I'm still hitting this. Is there any way to set the order?
Thank you

Depth-sorting is inherently problematic. Turn on pre-pass alpha.

Thank you very much.
For future reference on anyone having a similar issue:
Click on the Sprite3D -> Flags -> Alpha Cut -> Select
Move your textures slightly back and forth on Z to set the order

Hi, why was this closed?

Hi, I closed this since I moved on to another engnie for that specific project, as I did not have the time to wait nor the knowledge to contribute a fix. This is a really hard problem to tackle, in general. In the shadow of a the new engine version (what included a new renderer) this issue was not really all that useful for the project anymore, and it made sense to just close it.
I do believe this problem still exists in 3.1, but in case it happens to affect anyone, I'd say it would make more sense to open a new issue for it.
Sorry for the late reply.

@dejaime I don't think it should have been closed, even if it was no longer useful to you.
@hikari-no-yume Any idea why this wouldn't just be enabled by default if the transparency option above it is enabled?

@gerrywastaken perhaos the pre-pass is somewhat expensive so Godot wants to avoid it unless we really need it?

The general limitation around transparency sorting is now documented on the 3D rendering limitations page.

I had actually just read that and honestly, it left me with more questions. :D

Enabling opaque prepass by default isn't a good idea due to the added rendering cost. Only pay for the features you actually need slightly_smiling_face

That makes sense. The only problem is that when your sprites disappear behind something like a massive plane mesh, it can take quite some time before you discover what is actually happening. It wasn't until lowering my camera after an hour (or perhaps longer) that it became clear that it was just the ordering that was making the sprite vanish. Some sort of warning on the hover text of the transparency option, or a warning when it's enabled would be very helpful. It won't help me anymore, now that I know, but for others, it could save a lot of time.

Either way, this should be addressed by godotengine/godot-proposals#3986 and its implementation #60704.

Thank you for the link!

@gerrywastaken maybe not, but this was a 2.1 bug. The minimal project does not work on current engine versions, the reproducing steps are not the same, and this might not even be an issue on 3.5 / 4.0 afaik. This to me means the issue was no longer relevant to the engine, except maybe for reference.
If someone were to face a similar problem and end up stumbling on this issue, this could give them some insight. But that's about it, they'd still be better off opening a new issue for their engine version, with new repro steps and example project.

authors: bojidar-bg dc740 dejaime gerrywastaken hikari-no-yume


text:
TileMap debug with force show does not display on scene load

Tested versions
4.3dev4 / 29b3d9e
System information
Windows 10
Issue description
The TileMap debug visuals for collision/navigation do not show on scene load in the editor when the TileMap is saved with force show property. Selecting the TileMap only shows the TileMap grid but the debug stays invisible.
The property needs to be manually disabled and enabled again in order to see the debug.
Steps to reproduce
I used the Godot isometric demo to test this.
Set collision/navigation debug collision_visibility_mode or navigation_visibility_mode to force show, save the TileMap scene.
Reloaded scene/project again. The debug visuals will not show.
Minimal reproduction project (MRP)
N/A - Isometric Godot demo.

Can't reproduce in 7e4c15057


text:
GD.RandRange is broken at integer limits, always returning the same number.

Tested versions
requires C# version as the the issue is related to C#
Godot v4.3.dev5.mono - Windows 10.0.22631 - GLES3 (Compatibility) - NVIDIA GeForce GTX 1650 (NVIDIA; 31.0.15.5176) - 13th Gen Intel(R) Core(TM) i5-13600KF (20 Threads)
System information
Godot v4.3.dev5.mono - Windows 10.0.22631 - GLES3 (Compatibility) - NVIDIA GeForce GTX 1650 (NVIDIA; 31.0.15.5176) - 13th Gen Intel(R) Core(TM) i5-13600KF (20 Threads)
Issue description
C# GD.RandRange is broken when using the minimum and maximum value of the int type
it returns the same number always, which is some big negative number
Steps to reproduce
get the specified version.
in ready function use the following code line, run the scene a few times. you will get the same number after the first run
use GD.Print(GD.RandRange(int.MinValue, int.MaxValue));
Minimal reproduction project (MRP)
requires C# version of godot! create a new project and simply use GD.Print(GD.RandRange(int.MinValue, int.MaxValue));
in ready or anywhere.

For GDScript use print(randi_range(pow(2, 31), pow(2, 31)))

The lower bound is the same as the upper bound here, so you'll always get the same value.

Looks like it could be an overflow due to this code:
https://github.com/godotengine/godot/blob/e25f3c0d38d457b15a63720240736f564ce0501b/core/math/random_pcg.cpp#L78C2-L78C58

Wanted to add some clarity here that this is broken for gdscript as well, for example
randi_range(-2147483647, 2147483646)

returns weird results

authors: AThousandShips Calinou DuneTruffle Frozenfire92


text:
Control::set_offsets_preset ignores custom minimum size of the control

Tested versions
v4.3.stable.mono.official [77dcf97d8]
System information
archlinux
Issue description
Relevant code
In the method linked above, get_minimum_size method is used instead of combined minimum size, resulting in erroneous offset state after method call. Other methods that call this method with preset mode other than PRESET_MODE_KEEP_SIZE, notably set_anchors_and_offsets_preset, may also be affected by this issue.
Steps to reproduce
Try to call the method on control with custom minimum size.
Minimal reproduction project (MRP)
offset-thing.zip
Simple side-by-side setup showing two rectangles being programmatically aligned with set_anchors_preset and set_offsets_preset call on _ready. (This is essentially identical to calling set_anchors_and_offsets_preset.) White area show the intended position of the rectangles getting aligned.
The red rectangle has custom min size of (100, 100) and default min size. The blue rectangle has no custom min size, but has min size of (100, 100) defined in code. The blue one is able to produce desired result, while the red one produces odd behavior.

I would like to give this issue a try, seems like a good first issue for me :slightly_smiling_face:


text:
[WIP] Restructuring android glue code to make it easier to extend

IMPORTANT this is untested and work in progress, please treat it as such :)
I've been trying to understand and extend Android for ARCore and Oculus SDK and have been hitting a wall for a long time. Part of this is due to how unclear and messy the android glue code is. I've started cleaning this up, encapsulating logic in objects so we don't need to throw a bunch of function pointers around, etc.
This is but a start, there is far more to clean up but we should end up with a much easier to maintain and easier to extend system.
Some of the files need to be renamed, I just wanted things to order together.
Also I'd like to get peoples opinion on whether we should rename java_glue to jni_interface, that does seem to be the (unofficial) standard looking at other Android projects.
Finally I've disabled getting the env from threadandroid. This is likely a mistake but I don't see this being done anywhere else. I'd like to understand it more so anyone who can give me some background perspective so I know how to properly use it, please do :)
Further todos:

rename files
make sure objects are destructed at the proper time
look through java_clue.cpp and find where _godot_instance is used, add proper functions for these in the main godot wrapper
maybe rename env in the wrappers to main_env if we do use threadandroid
provide access to these objects from android modules, ARCore for instance needs to be able to access env and activity
make the names of the methods of our wrapper class match the names of their java equivalent
probably more

I'll be loosing access to my laptop for a couple of days so won't be doing much here until I get it back.

Nice to hear!
For example, in order to make firebase plugin I have to patch godot to make _godot_instance public variable, because I didn't find any way to access to it.

Nice to hear!
For example, in order to make firebase plugin I have to patch godot to make _godot_instance public variable, because I didn't find any way to access to it.

It took me awhile to get my head around it, I need this as well which is one of the things that prompted me to make these changes. Obviously every instance on the JAVA side has a value that references that instance and allows you to send messages to the JAVA object or interrogate its member.
The Godot object is the main object, the application object, whatever you want to call the grand master object, which is also known as the main activity. Activity is the term you see used everywhere else, took me a while to add 1 and 1 together :) well as far as my Android-noob brain understands so far :)
I'm probably going to go through some additional renaming, maybe keep the internal variable for both Godot and Godot IO named instance, but then exposing a get_activity on Godot to make it clear that is out activity.

Ok, I've tested this on my phone so I'm pretty happy with how the stuff I've done so far works.
Would love some feedback.
One thing I'm not sure off yet is how to expose these instances to other parts of the Android module, they are not usable outside of the platform but inside of the platform a lot of the classes could use just asking for a pointer.
Share them through java_glue? or access method on os_android?

@BastiaanOlij FYI, GitHub now has the ability to create draft pull requests.

@aaronfranke hmm, I'll keep that in mind for next time since I generally share work long before its ready to be merged.

Just rebased, going to continue on this on the weekend, if anyone has any suggestions about making the new classes accessible from other classes, access methods on the OS? singletons?

IMPORTANT this is a work in progress, please treat it as such :)
I've been trying to understand and extend Android for ARCore and Oculus SDK and have been hitting a wall for a long time. Part of this is due to how unclear and messy the android glue code is. I've started cleaning this up, encapsulating logic in objects so we don't need to throw a bunch of function pointers around, etc.
This is but a start, there is far more to clean up but we should end up with a much easier to maintain and easier to extend system.
Some of the files need to be renamed, I just wanted things to order together.
Also I'd like to get peoples opinion on whether we should rename java_glue to jni_interface, that does seem to be the (unofficial) standard looking at other Android projects.
After reading online a bit I think I get the whole thing with JNIenv, so each thread has one, if we get one parsed we know what environment we're running our code in and can use it, but its dangerous to retain it.
The code in ThreadAndroid simply gives us a JNIenv valid in our current thread, so seems safe to rely on that for the most part. I'm thus using it in most functions, only passing JNIEnv to some functions likely to be run either when this is not setup, or from calls that parse an existing env.
Further todos:

rename files
make sure objects are destructed at the proper time
provide access to these objects from android modules, ARCore for instance needs to be able to access env and activity
make the names of the methods of our wrapper class match the names of their java equivalent
probably more

java_glue can be renamed to java_godot_lib_jni to make its connection to GodotLib.java more clear.

this is great, is there anything missing? I need to do some changes to Android, so it would be nice to merge before so.

this is great, is there anything missing? I need to do some changes to Android, so it would be nice to merge before so.

The freeing of godot_java in the OS_Android destructor is the only problematic piece of logic. Asides from that, the changes look good!

@reduz I'll put the improvements suggested by @m4gr3d through in the weekend and rebase it all. My main thing that I miss is a way to make these new object accessible in any Android code, I'll probably add access methods to them to AndroidOS or something. Then I can start building ontop of it but that can be new PRs.

java_glue can be renamed to java_godot_lib_jni to make its connection to GodotLib.java more clear.

Should we rename the wrapper classes aswell? java_godot_jni and java_godot_io_jni ?

I think this is doing what it should be doing. Only thing that we may need to debate is the names of a few things.

Thanks!

authors: BastiaanOlij DrMoriarty aaronfranke akien-mga m4gr3d reduz


text:
Clicking backgrd. dimming of editor popup stops input event propagation

A click on the dimmed background of a popup in the editor should stop the input event from propagating to the background.
This solution reuses the system introduced in commit efc3ffb8, taking advantage of the hide() notifications from the modal where we will set the flag "pass_on_modal_close_click(false)" to stop event handling at the viewport input event handling.
The viewport first hides the modal and after marks the input as handled if the flag mentioned above is set.
Fixes #36341

Thanks!

Cherry-picked for 3.2.2.

authors: akien-mga giarve


text:
Replace 'add_child_below_node' with 'add_sibling' in Node

Fixes: #19642
My previous PR https://github.com/godotengine/godot/pull/37042# was messed-up after rebasing - sorry for inconveniences, that one is ready to be merged with current 'master'.

Needs a rebase, otherwise should be good to merge.

Needs a rebase, otherwise should be good to merge.

Rebase done :)

Thanks!

authors: akien-mga dreamsComeTrue


text:
Cross-reference AABB getter methods in the documentation

This also clarifies that get_aabb() returns the AABB in local space.
See https://github.com/godotengine/godot/issues/42095.

Thanks!

Cherry-picked for 3.2.3.

authors: Calinou akien-mga


text:
[Vulkan] Lighting like in gles2

This PR makes lights look like they did in gles2 and contains some fixes for Light2D. Changes were tested on
Windows, NVIDIA
Debian, Intel UHD 630
closes #40426
closes #40425
closes #36112
Bugfixes:

clear flag bits before render -> light no longer stuck in mix mode
fix argument order so user light shaders no longer fail to compile

Light like in gles2

items can now be unshaded and light only
existing and missing light modes have been reworked to look as much as possible like they did in gles2. (see comment for differences)

I have reworked the shading to mimic the old gles2 render as closely as possible.
Single Lights look exactly as in gles2. This includes both the light itself and shadow in every light mode.
Multiple lights have a slightly different behavior as the gles2 interactions were suboptimal.
New Render accumulates changes separately. Then:

Apply all mask lights.
Mix this with all mix lights.
Add additive and subtractive lights

This somewhat negates the order in which lights are rendered

Additive/Subtractive Lights are truly order independent. gles2 sometimes the order mattered, I guess because of clamping between the render passes. I consider the new behavior to be more correct.
Mix lights are still order dependent but mixing is inherently order dependent. Same as in gles2.
Mask lights are order independent. In gles2 mask lights could overdraw all prior lights which I do not consider a correct behavior.
Different categories interact nicely like explained above.

I hope this is a good solution for multiple lights.

Please correct me if I am wrong, but it looks like this PR does 2 things:

fixes some bugs with 2D lights
changes the behaviour of lights to more closely match lights in GLES2

I'd prefer if the bug fixes were in a separate PR from the behaviour changes. Then we can discuss whether we want to change the behaviour back to the behaviour in GLES2.
Keep in mind the GLES2 backend is the low-end backend aimed at the oldest devices. While the Vulkan renderer is much newer and targets high-end devices exclusively. So I am a little skeptical about a PR which changes the behaviour to match the low-end renderer right after reduz did the huge rewrite.
That being said, some of what you describe above sounds like it may be caused by mistakes in re-implementing 2D lighting in Vulkan. Accordingly, the next step is to untie which parts of this are bug fixes, which are likely porting mistakes, and which are changes in behaviour that may or may not be desired. Then we can have a proper conversation of the merits of the changes.

This is obsolete, as I rewrote most of this code a few weeks ago. I suggest if bugs remain, make a new PR.

Superseded by #45050.

Superseded by #45050.

authors: DavidSichma akien-mga clayjohn reduz


text:
Added extra warning to texture nodes in visual shader + fix warning appearing

Added extra warning if the user connected sampler port but SamplerPort is not set to the source:

and fixed warning updating on connection/disconnection and on pressing the show preview button to reflect changes.

Thanks!

authors: Chaosus akien-mga


text:
Fix OpenType property editor signal connection.

Fixes https://github.com/godotengine/godot/pull/59500#issuecomment-1095466844

Thanks!

authors: akien-mga bruvzg


text:
Fix Updating New Node Dialog Description of Custom Nodes

The text of the first column in the selection Tree is used to compare Node names.
Since this text contains for custom nodes additionally the path to the file, it doesn't match anything.
This patch separates the path and puts it into the second column of the Tree.
resolve #67535

Could you take a screenshot to showcase how this looks with two columns?

Sure, here is a showcase
https://user-images.githubusercontent.com/6299227/196302184-a9879dc9-0b98-46ec-8e18-45ad533c0d79.mp4

Not sure... 19yo me who doesn't know about custom nodes would think that not selecting the full row is janky UI.
Wouldn't it be simpler to make it so before searching for a description, the text is cut out when " (" is encountered?

I found a way to keep the old visuals.
The trick is to put the "(...)" not into the text, but to add it as suffix.

Thanks!

authors: MewPurPur Mickeon Sauermann akien-mga


text:
Remove unused SUPER_L/R constants.

Missed them in https://github.com/godotengine/godot/pull/70052, everything use META instead.

Thanks!


text:
Remove memdelete of button in GIProbeEditor exit

This was causing a heap corruption when exiting on windows.

As far as I can tell, no other plugins delete there buttons on exit. This fixes the issue, but someone please feel free to tell me I'm wrong.


text:
Docs: Fix link to Android Gradle build tutorial

https://github.com/godotengine/godot-docs/pull/7884 on the docs changed the URL for this page referenced in the Android platform class reference; the change is live in master/4.2 and was backported to 4.1 in https://github.com/godotengine/godot-docs/pull/8217, which will be cherrypicked to 4.0 soon.
In-editor/on the web this will be fine, as the page will be redirected. The outdated link in the class reference breaks docs CI currently though, so we still need to adapt the link in the main repo. :)
Until then, I've made that change temporarily on the docs side in https://github.com/godotengine/godot-docs/pull/8244.

Thanks!

Cherry-picked for 4.1.3. Note that we don't plan further 4.0.x releases at the moment, so we can't cherry-pick this into the 4.0 branch. I suggest not changing 4.0 docs either.

authors: YuriSizov akien-mga mhilbrunner