Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plan of Gitea v1.17 #18345

Closed
zeripath opened this issue Jan 20, 2022 · 16 comments
Closed

Plan of Gitea v1.17 #18345

zeripath opened this issue Jan 20, 2022 · 16 comments
Labels
type/summary This issue aggregates a bunch of other issues
Milestone

Comments

@zeripath
Copy link
Contributor

zeripath commented Jan 20, 2022

Hi all Gitea contributors,

Gitea v1.16rc1 is now out! We have created the release/v1.16 branch and tagged v1.17.0-dev opening up main for 1.17 development. As mentioned in our CONTRIBUTION, it will spend three or four months before feature freeze.

I'm aware now is the time for the regular planning thread. Please use it to discuss your own plans for the 1.17 development cycle.

(Reminder, this thread is for things you PLAN TO DO YOURSELF, not things you want other people to do.)

Thanks,
zeripath

@zeripath zeripath added the type/summary This issue aggregates a bunch of other issues label Jan 20, 2022
@zeripath
Copy link
Contributor Author

Previous planning threads:

@zeripath
Copy link
Contributor Author

zeripath commented Jan 20, 2022

I guess I'll start with some of things I'd like to do:

Context Propagation + "Process" management

This is a series of refactors that will cause the request context to be passed down in called functions. Doing this allows newly created child contexts to be scoped to the request context - enabling process hierarchies to work, better logging, easier db functions, easier permissions checking and scoping. The first steps of this process was in #17125 and the DBContext work.

Authentication/Authorization

We still need to continue work on the DB password authentication.

  • - The DB password authentication things really need to be moved out user
  • - I'd like to make it possible to enforce 2fa
  • - I want to consider if users want to use their sec key as their method of login without a password

Then there are OAuth scoping and tokens:

  • - OAuth Tokens scopable to github like permissions
    • With the context propagation above permissions checks could actually be performed a bit more clearly.
  • - Deprecate the old Token scheme

We also need to make it possible to force logout of sessions for the current user - useful additionally for admin.

  • - Refactor sessions infrastructure to account for this.

Dump/Restore

I think we should stop dumping to "SQL" - and instead dump to a SQLite db file. We should then be able to restore from this a lot easier!

Internal SSH Server

This is currently broken for modern ssh versions. See #17798 - we've gotta sort this out...

If the underlying library is not fixed by February I think I'm gonna have to consider forking this and fixing this 😢 (Unless someone else wants to do this?!)

Federation

This work stream will be discussed elsewhere

Misc

Work with others

That's probably enough to be getting on with however, I'd like to list some potential refactors that I'd like to consider:

Potential Refactors

  • As mentioned above, context passing means we can consider "hydra" heading dropping the dependence on the global AppURL and instead get this set at the server level.
    • This would allow users to more easily mount gitea in two places and also reduce the problems from the ROOT_URL setting.
  • Once we stop having global dependence on setting.AppURL we'll likely find that a lot of packages really only look at particular settings. If we implement configurable we can actually consider having packages do this themselves.
  • I think we need to use more generation especially in the routers.
  • I think we should either consider using the go-sdk in the (especially the API) integration tests or get swagger to generate an API.

@zeripath zeripath pinned this issue Jan 20, 2022
@techknowlogick
Copy link
Member

Placeholder for my plan, will edit this post as I have things to add.

Currently just maintenance tasks are on top of my head:

  • Due to crowdin API deprecation, the cron task needs to be updated.
  • With upcoming release of golang 1.18, we will need to build with that (update drone, docker, & xgo)

refactor:

  • move some user columns to use user_settings table instead

features:

  • labels for milestones

As mentioned above, federation tasks will be discussed elsewhere.

Also, general upkeep of our infra & coordination with sponsors

@silverwind
Copy link
Member

silverwind commented Jan 20, 2022

@lafriks

This comment was marked as outdated.

@vwbusguy

This comment has been minimized.

@techknowlogick

This comment has been minimized.

@lunny
Copy link
Member

lunny commented Jan 21, 2022

@KN4CK3R
Copy link
Member

KN4CK3R commented Jan 21, 2022

@Gusted
Copy link
Contributor

Gusted commented Jan 23, 2022

Bit late to the party.

@richmahn
Copy link
Contributor

richmahn commented Feb 22, 2022

Still in great need of a UI for conflict resolving #9014. I said 1.5 years ago I would work on this...still seeking to find the time, hopefully for 1.17.

@delvh
Copy link
Member

delvh commented Mar 1, 2022

@more-pepsi
Copy link

I'm looking for some starter tasks if you want to pas some tasks on. I"m a JavaScript expert, but a little rusty with frameworks, its been years. So i'll just follow your lead.

@silverwind
Copy link
Member

I'm looking for some starter tasks if you want to pas some tasks on. I"m a JavaScript expert, but a little rusty with frameworks, its been years. So i'll just follow your lead.

Feel free to have a look at integrating https://github.com/dgraham/eslint-plugin-jquery with a few starter rules. I think no-ajax is a prime candidate where we can replace AJAX calls with native fetch. There will be many such AJAX cases in the code, so getting this rule alone to work will already be quite an extensive task.

Other starter candidates might be rules that only trigger a few errors in the code, those should be easy to refactor to native DOM usage.

@wxiaoguang
Copy link
Contributor

There are some work for refactoring:

  1. replace all .data('xxx') by .attr('data-xxx') for static HTML data attributes data-xxx="...", it makes the developers easier to find the data-xxx usages. Dynamic .data('yyy', val) might be kept at the moment.
  2. clean legacy / incorrect CSS styles. eg, the polluted .ui .left

@6543
Copy link
Member

6543 commented Apr 28, 2022

  1. The initial RSS support is already done 🎉 '( RSS/Atom support for Repos #19055, RSS/Atom support for Orgs #17714 )
  2. Now I'm focusing on Auto merge pull requests when all checks succeeded via API #9307

@6543 6543 added this to the 1.17.0 milestone Jun 18, 2022
@6543 6543 closed this as completed Jun 18, 2022
@6543 6543 unpinned this issue Jun 18, 2022
@go-gitea go-gitea locked and limited conversation to collaborators May 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type/summary This issue aggregates a bunch of other issues
Projects
None yet
Development

No branches or pull requests