@go-gitea/maintainers
After #1029 closed, I think we should make a new plan about next big step. Any idea about that?
A plugin (including theme) solution for extending gitea.
Would it be possible add proper OS packages to the build process? I have been trying to put something together for fedora but go seems kind of a mess to package. #31 kind of talks about this but still seems to be open.
We are using ansible to deploy the tarball on Debian system, this is not very handy but it works. Repositories for the most common distros would be nice, but it needs to be put in place and maintained.
A few suggestions:
Federated pull requests / issues / forks
Federated pull requests / issues / forks
Maybe not federated in the Fediverse sense of the word (ActivityPub, OStatus, diaspora*, etc.) but I would like the ability to interact with remote instances from one's own implemented in whatever way fits the project best.
It might also be cool to have teams and organisations made of users from across multiple instances, though that would likely be incredibly difficult to implement.
Two suggestions from the POV of an end user with minimal coding skills who tries to help open source projects I use by reporting bugs and giving UX feedback:
1) Help standardize ForgeFed! I would love the UX of filing bugs on instance of Gitea (and other community-hosted code forges) to be like one huge, decentralized GH.
2) Make each part of a project a Git repo, so issues, wiki etc, can be easily pulled from, branched, pushed to, or forked. GL and sr.ht do this with at least some of their components. As well as just being useful, this would potentially help with point 1)
The ability to reply to tickets by email would be a big step forward for usability
Allow the edition of all the config from the UI (and maybe change the config file format during the process)
Maybe store majority of config within database and provide proper cli and api for it
@sapk @tboerger I'd say we should switch to viper for config, that way we could get rid of ini (and some of the bugs we had with it) and get stuff like reloading the config while Gitea is running and proper env variables.
I'd be willing to tackle this, but I'm not sure if I'll find the time in the nearer future.
I am for Viper too. I was trying to do it 2 years ago, but had no time to finish it... but I can try it again :)
I'm for getting a more minimal config file... A lot of these settings doesn't need to be set via a static config file and could be easily added to the db and and get cached for performance reasons.
I think we could at first add a database config table and move most changeable config items there from ini file and only left items which need to reload.
@lunny and all: agree moving many settings to the database and letting them be configured in the Web interface (either site wide or repo wide) feels like a good step forward. It would also then be easy to have a tool like tea or gitea itself be able to change those values from the command line, so you could still script a default setup.
Module system sounds great. I believe there are many people out there willing to add new functionality to gitea.
@belliash @sapk IMO plugins/modules cannot be implemented efficiently without refactoring the models package completely and adding more abstraction. I've tested multiple technologies like the native plugin support of Go.
The result was giant binaries which are hard-depended on the Gitea binary.
I think improving webhook support and adding custom pages by webhooks is more realistic to become implemented since we already have a quiet mature API that can be used for database operations.
@jonasfranz I'd be very much in favour of refactoring models to remove a lot of its dependencies.
go list -f '{{ .Imports }}' code.gitea.io/gitea/models
reveals 98 (!) direct imports. 50 of which are non-go core.
go list -f '{{ .Deps }}' code.gitea.io/gitea/models
reveals 437 (!!) transitive dependencies. (304 of which are non-go core)
Look at the drone source, there we got a lot of pluggable stuff based on webhooks.
Beside that a plugin model like packer makes sense, a grpc-based plugin system.
@tboerger Can you provide a example from drone's pluggable stuff? Do you mean the plugin system based on docker images?
I'm talking about the extensions for configs, secrets and so on, the interfaces should be defined at https://github.com/drone/drone/tree/master/plugin
I agree with you, Gitea's next big step should be plugin system. I'm also thinking this these days. I will give the plugin system a try.
I think it should be similar with drone's plugin system but have more. We have to allow a plugin have a UI and should login with Gitea's OAuth2 automatically. And we should have some security policy on the plugins. and etc.
I want to share a comparison table we made in circa 2016 to _decide_ which hosting platform to choose for the Open Source Geospatial Foundation. In that table we listed features that were important for us. Gitea is in one of the columns:
https://wiki.osgeo.org/wiki/GitInfrastructureComparison
You will see that an important feature which was missing in 2016 is still missing today: reply-by-mail (comment/reply) --- some others have been implemented as of today.
@strk tool to migrate from github
and Comments on diff lines
are done.
Need mail template customization
See #6037
So there's quite a bit of template customisation already possible - the subject line is the only thing I don't think we have.
What we really should be doing however is enabling i18n for email and the git serv hook messages.
Reverting a pull request needed.
See #6375
Full support of tags in the UI. Create, assign, change, delete, etc. I really miss this feature.
I am in favor of config in database (with cli or api to configure it, like create user and authentication ldap,etc..) and plugin system.
Those two should push gitea a big step forward.
$GITEA_ROOT/owner/reponame
it's a bad architectural decision IMHO and leads to assumptions by users that our repositories can still be used by git on the server without further thought - THEY SHOULD NOT. We should move to $GITEA_ROOT/repository-$ID
, possibly sharded. (Doing this would allow the removal of a lot of calls to repo.MustOwner()
or repo.GetOwner()
).git/config
or the central .gitconfig
core.hooksPath
variable and think about where we're going to place hooks otherwise.code.gitea.io/gitea/models
depends on way too many things this has to stop.models.x
must be destroyed. It's a terrible architectural decision.On the UI part, I would suggest to deliver two UI :
- think we should take seriously the move to gin proposed by @lunny
I would suggest go-chi instead of gin.
- We should automate stripping out our hugo website documentation so it can be internationalised with CrowdIn
IMHO the website/docs should not be translated at all, it's anyway always outdated...
IMHO the website/docs should not be translated at all, it's anyway always outdated...
But with crowdin, it being outdated would notify people and invalidate the current translations.
Would it be possible add proper OS packages to the build process? I
Perhaps PPA style packages controlled and versioned by the GItea developers would be a good idea, but I'm not a fan of Debian-style "freeze and backport security patches" way of versioning for fast moving projects (such as GItea)
I'd still like to have https://github.com/go-gitea/gitea/issues/3840.
I think it can be implemented with backward-compatibility.
But this will become clear only after the migration of the new routing lib is settled down.
A prerequisite foundational cleanup/refactor would make it easier too.
I'd still like to have #3840.
I think it can be implemented with backward-compatibility.
But this will become clear only after the migration of the new routing lib is settled down.
A prerequisite foundational cleanup/refactor would make it easier too.
In that case it's possible that you will loose Drone support, as it's currently also not implemented for Gitlab.
I'd still like to have #3840.
I think it can be implemented with backward-compatibility.
But this will become clear only after the migration of the new routing lib is settled down.
A prerequisite foundational cleanup/refactor would make it easier too.
We probably don't need this group feature to affect repository urls, we could just make folders that repository could be palced into display but keep repo urls same as it is now
@tboerger
My thought was the URL can remain the same if a repo does not nested in a group/directory.
The URLs need to be "upgraded" only if the repo uses the group/directory feature.
But yes, the repos with the new URLs probably couldn't have Drone support out of the box.
@lafriks
That sounds like a good idea. My use scenario of the feature is to host Git modules or the subprojects of Repo projects. So, I am not sure it covers that case.
No worries. I am reluctant to make such an extensive, and possibly breaking, change too.
This issue has a lot a good idea and we should keep them and address them.
However, when and how we should choose? This discussion can go on forever.
I would suggest either the owner pick the subjects or a vote between them and members.
What do you think?
@DblK That's right. But I think we could do that after we migrated to gitea.com. Currently we need more feedback from users.
- Mercurial support
No please. It's called "git"ea for a reason.
I understand the desire to have wider scope but
bloat is around the corner...
mercurial import would be an alternative
On July 26, 2019 1:52:50 PM UTC, Sandro Santilli notifications@github.com wrote:
- Mercurial support
No please. It's called "git"ea for a reason.
I understand the desire to have wider scope but
bloat is around the corner...--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/go-gitea/gitea/issues/6998#issuecomment-515461704
Federated pull requests / issues / forks
Maybe not federated in the Fediverse sense of the word (ActivityPub, OStatus, diaspora*, etc.) but I would like the ability to interact with remote instances from one's own implemented in whatever way fits the project best.
There already is some discussion about this in #1612. ForgeFed collects some interesting ideas to get federation into code forges like Gitea. It would be awesome if this would be the next big feature of Gitea!
I'd love a visual diff tool for graphic files (JPEG, PNG, but also PDF), similar to what Github offers.
We have already a PR to diff images
We have already a PR to diff images
True, but that doesn't cover swipe or onion skin preview, only side-by-side. In addition, I don't think it covers PDF files. We're using Gitea here for development of graphic material (including manuals and brochures), and a good visual diff for PDFs would be a life changer.
I have some ideas that I just want to throw out there :smile_cat:
Use Cloud KSM to transparently encrypt/descrypt any secret. This will protect against DB hacked and exposed. The idea is that we can use a custom type with XORM encoding/decoding methods to encrypt the secret data before writing to DB. We made a demo example here: https://github.com/gomodules/ksm-xorm
OIDC Support: Return id_token in addition to oauth2 token when logged in via Gitea
Gitea user profile can show user's profile across any verified Git repo. Example: user can pin Github/Gitlab/BitBuket/Gitea repos. The idea is that users can't ignore the other ones either. So, can gitea be the one global user profile?
Custom domain support for repos (go)
Full compat with Github (I have seen some work on this front, I don't know how much is already done.)
Optional Language server integration. Something like Sourcegraph like navigation built into the UI.
I would like to contribute towards 1 & 2 in short order.
Maybe we can show diff in a form of tree of folders and files that have changed - like in BitBucket, instead of one huge page with all the changes in it. It would be much, much more readable.
Maybe an Option to aggregrate Notifications on all Repositories per day or per week.
Kind of like a summary of last weeks Activities.
Add the possibility to define custom webhooks via custom templates and a pool of standard variables.
Not a Gitea evolution but a side project that would be usefull : #7853
Feature parity with github!
Or, at the very least, an up-to-date list on the wiki, which shows all those features we still need before we achieve parity. This would be a good way to structure future development efforts.
@lonix1 take a look at https://docs.gitea.io/en-us/comparison/ for that list
@kolaente looks like we have almost all the tick marks! yeah!
I am very new here, but a willing coder too; I would love it if gitea supported gists. That's one of the biggest holes for my usage. Easily enough worked around, but I'd rather just have a gist system in place.
I think the issue for gists would be https://github.com/go-gitea/gitea/issues/693 (linking as it doesn't seem to be referenced from here yet).
Add also Help
documentation, which can be accessed by Help
link. The initial source for this documentation can be from GitHub Help, with Gitea-specific modifications.
@bagasme help can not be taken from github, that would be copyright violation. Someone will have to write Gitea help from zero
If more people start adopting self-hosting for sharing their open-source projects, there needs to be a way for non-registered users to submit issues without having to create an account on each instance (most people are extremely unlikely to register for a bug report).
2a. Container registry UI tab and auth.
Some kind of plugin / extension system.
Most of the suggestions are good, but they'll create problems in the core codebase.
It would be best to have official (and unofficial) plugins. This would also mean that plugin authors could release more frequently.
@lonix1 Well, git hooks, webhooks and the Swagger API can be considered plugin connect points. I'm all for more plugin support, but stating a list with specifics could help. For example, I'd like support for a command-line equivalent of webhooks.
@guillep2k For example all the project management features discussed above. Those would be very useful - but they probably touch so many parts of the codebase that 1) they might cause issues even for those who don't use those features, and 2) because of that, such development is very slow because those responsible for merging new features know that this scenario is possible, so they are cautious.
If these new features could be released separately, they could be tried by willing users before being merged into the main branch.
And there are other examples of these sort of big new features, just scroll up.
@brandonkal GPG signing of auto generated commits is now possible with the merging of #7631
I guess the roadmap should be divided into those four categories (I added some example issues — it should be obvious that it's far from complete :wink:):
There are still some _basic functions_ that aren't working properly.
For instance:
There are also some security issues:
root
user (you can remap ports on the outside anyway)I guess integration with other applications/services are a good thing in general.
Because software development usually don't just rely on a single tool.
And it will probably help to convince some folk to use Gitea in their workplace.
Those two issues would improve interoperability a lot:
Also generic webhooks would avoid the need of having other people knowing the internals of gitea. @guillep2k had a wonderful idea that an "external command" integration could be done similar to the generic webhook integration.
:warning: This would probably solve most of the problems on what most people in this issue want as 'plugin support'. Because that would enable to call whatever users need to call. However, @lunny just mentioned that this is practically already possible via git hooks. I'm just not quite sure whether this really is the best way to integrate other tools/plugins/services.
Furthermore there are obviously some nice features in competing applications (i.e. Git[Hub/Lab]) (most of them are probably rather nice to have):
May be use Oracle Database as option? If it possible technically.
@DemiusAcademius If xorm supports oracle better, I think that's possbile.
More and more people are starting to use Gitea, e.g. also caused by the recent GitLab tracker announcement. But GitHub/GitLab still have the network effect on their side.
Federation would be a big driver to improve the ability to collaborate between users of different Gitea instances and thereby increase the whole Gitea network: #1612
Ability to show large diffs in the UI was reported to be a limiting factor in the adoption of Gitea.
Tickets addressing it: #7341 (feature), #7495 (crasher bug)
Ability to show large diffs in the UI was reported to be a limiting factor in the adoption of Gitea.
Tickets addressing it: #7341 (feature), #7495 (crasher bug)
That's a _huge_ limitation. IMO everything @alexanderadam listed above pales in comparison to this. If I can't review large diffs by commenting inline in the code, that's a big problem.
W/R/T the anger at Microsoft and Github that caused many projects to migrate and caused high demand for federation--Gitlab has recently proposed banning employees in China and Russia, 2 of the world's largest countries by land mass and economy. The US military has shifted focus to China and Russia (among others) to weaken the barriers they pose to US imperial expansion/interests. Propaganda and financial incentives have brought Microsoft (Github, Azure), Amazon, Google, Atlassian (Trello, Jira) and even Gitlab into the industries of war, espionage, propaganda and surveillance in an offensive role.
I bring this up to give my thanks to those working on highly available open source remote repositories with few short-comings to the corporate and Pentagon-linked services we use and still rely on now--and to bring to your attention that quickly alternatives are disappearing for those who wish to use the Internet and technology as far away from history's most powerful and hostile empire.
Perhaps the topic is big enough for a separate section of the official website to track progress on this feature, along with a separate fund-raising campaign to capture this demand. Including ForgeFed in the fundraising may be beneficial and fair, seeing their work so far. It's been 17 months to the day since Microsoft bout Github, and I hope in another 17 moths we can be using federated Gitea, or have remaining parts of the 'net worth building on.
Please do not discuss politics here, let's keep to the subject - improving Gitea for everyone
@lafriks Improving Gitea means defining a niche--something unmet by substitute goods. Marketing is the process of finding external opportunities, "political" being 1 of 4 main categories of marketing analysis. A wise brand appeals to people's _values_ equally as much as they deliver features, specs and price. There is a values-based ("political") draw to alternatives like Gitea, and failing to underline and maintain it would be a failure to understand your consumer and the market opportunity.
"Political" as a term has become a thought-terminating cliché, extinguishing discussion of racism, violence and exploitation. I simply came here to thank folks for continuing work on alternatives not associated with US concentration camps, drag-net surveillance and other imperialists interests the majority of our industry is actively aiding in. If you're saying these are not qualities Gitea stands by, I got you wrong and I'll be leaving.
Note to @OKNoah
Marketing 101 for an open-source project:
If GitLab.com's transparency offends you, you can self-host GitLab-FOSS. It's an extremely good all-in-one product. But if you want a simple install or require lower memory usage compared to GitLab or GitHub Enterprise, Gitea is a good option for the basic web features.
This thread is about discussing features that can help close that gap without compromising on simplicity.
My 2 cents - I think this thread became too long, and it's time to open a new issue summarizing any ideas already expressed here. And close this one.
If you're saying these are not qualities Gitea stands by, I got you wrong and I'll be leaving.
This is not what is being said. What is being said is that this thread is the place for discussing what changes/improvements to Gitea can be made (specifically technical ones). These discussions are more than welcome, but not in this specific thread.
As one of the leads I will be locking this thread, as @XVilka said it right, we have solicited a lot of feedback, and it should now be evaluated for next steps.
We could change path to FHS compliance for v2. It is already possible with flags but it should be the default for v2.
Most helpful comment
Federated pull requests / issues / forks