Replies: 40 comments 12 replies
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
-
I will tag the upstream developers so they know about our plan @lkashef @darangi @smashwilson. |
Beta Was this translation helpful? Give feedback.
-
@lkashef @darangi if you have thoughts about this fork, I am also all ears/interested to know what you would have to say. @aminya I think we can't necessarily expect our pull requests to be gotten to in any particular order. Also, our commit history will have strange stuff like merging their upstream I think we should give upstream just the commits containing the changes for the PR we are proposing, directly on top of their Open to discussing it more. Just that the underlying |
Beta Was this translation helpful? Give feedback.
-
Draft pull requests cannot be merged until marked as ready. We should only mark the first one in the sequence, and that is the only one they can merge.
The commit history is not important here. The point is to improve the code itself. Although rebasing will keep the history clean to a good extent. If we diverged too much, we will just merge upstream as commits. |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
We will make separate branches. That's how we want to release! See the upstream branches, each one is a version: |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
-
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
-
@bennypowers Hi Benny! Why don't you use We will look into those PRs, but the packages I mentioned are up to date and under active development. |
Beta Was this translation helpful? Give feedback.
-
Was there ever a resolution to the merging strategy? @DeeDeeG Speaking from (moderate) experience, I think continually merging in upstream master is the way to go. |
Beta Was this translation helpful? Give feedback.
-
@jeff-hykin This was discussed here: #28, and we came to essentially the same conclusion. Practically speaking: We have been using plain merges (the kind that generates a merge commit -- no rebase or squash) to bring in updates from upstream |
Beta Was this translation helpful? Give feedback.
-
Exactly. That's what we found. Rebasing (any force-push) makes a lot of problems for our pull requests. |
Beta Was this translation helpful? Give feedback.
-
Great to hear! Sorry I looked for the conclusion but didn't see one. |
Beta Was this translation helpful? Give feedback.
-
Also just as an FYI, I'm here because I'm interested parallel work: creating a refresh of Atom. I've used VS Code for many years and contributed a decent bit (I maintain their C++ syntax), but after exploring the VS Codebase and seeing how unmaintainable it is, I've switched back to Atom for good. A standard IDE interface would be part of the refresh, which is why I'm mentioning this here. I'm curious if you guys are opposed or interested in a re-branded Atom (not an extension, but also not a hard fork). The main goal is standardization; How can an IDE debugger use a terminal, when it doesn't know which terminal(s) you have? How can a theme customize terminal-colors when there is no standard for a terminals (and no standard terminal)? Even beyond extension-interactions, I think the lack of standardization is killing community maintenance. Looking at terminals themselves; there's platformio (a fork), teminus (a fork of that), However, part of the refresh is UI layout changes, different default settings & extensions, and a reduction of node-gyp dependencies. |
Beta Was this translation helpful? Give feedback.
-
That sounds beyond my skill level, personally. I am invested in making Atom's infrastructure sustainable, and updating dependencies, mostly. Even when that takes substantial care, updating uses of dependencies' APIs, substantial re-writes of sections of code, whatever it takes. I'm interested in keeping Atom modern and just "alive" and current. (Part of my calculation is that upstream is still interested in working on features, but a lot of their work hours are caught up in basic maintenance. I want to ease the burden for maintenance tasks and free up work hours for features and other concerns.) I'm self-taught and not an expert, but I can figure out a fair amount of Atom if I get an evening or two to stare at the code and do research, and read the PRs and past discussion that led to the current code and designs. That said, part of the work we're doing is to pave the bumps in the road for forks of Atom. A project is healthier when downstream contributors can fork you, run the infrastructure that supports you, and make changes/propose them back to upstream when needed. If upstream hasn't merged one of our PRs yet aiming to improve the forking experience, we will have the answers for any of the problems we've solved. (For example, we have CI 100% working, if you count remaining open PRs to fix Release Branches and Nightly). Ideally we will have those manual interventions needed written as documentation, and where possible stuff should "just work" at upstream and forks with no intervention, and we will do that if and where there's a readily apparent way to do so. But also, we're so far quite happy to answer the volume of questions we've been getting, which has been low in these early days. None of what we're doing is proprietary, from the code to the ethos. There is plenty of room for more than one, and even many players in this space. Where there is something of interest to this fork and another fork, I know I'd be interested in that, and out of encouraging the health of the ecosystem, I'd like to put effort into working together. Whether that needs to happen in this repo or another one is IMO kind of down to something more specific than you've mentioned, IMO. Decide feature by feature. I might lean against changing the UI, personally, or adding a lot of features to core, but I think I'm the more conservative about changes among the two of us who have been mainly working on this fork at the moment. And if it can be justified and discussed to come to a consensus, I can be swayed on things. But more specifics would be good before I would want to say yea or nay. tl;dr I'm open to anything, but there's only so far my expertise will go and so far I can think to go with features and drastic changes before I get a bit skeptical or concerned about it. But I would encourage and support efforts to fork upstream, us, or use code from both upstream and us as a base for new features. We still aim to coordinate with upstream where possible, so I think the right person to ask about a given piece of tech can be looped in to the discussion. If not, hopefully the state we're leaving the ecosystem in is vital enough, and pleasant enough to work on top of, so forking is a fruitful endeavor despite us/without having to ask us anything :P. And yeah, this fork is designed to be able to have more people working on it and so far we have (extremely informally) been using a consensus-like model. And I defer somewhat to the last person who made the feature "work," or who knows it best at the moment, even moreso if they can explain their work and its value to others working in the fork/upstream/wherever-it-is-to-be-merged. P.S. this is my opinion off the top of my head and I do not speak for anybody else by posting this. (Also, I am away for the week. So if I don't seem to be doing much around here... I'm away for the week! That's why.) |
Beta Was this translation helpful? Give feedback.
-
@jeff-hykin Thanks for the interest. VsCode is taking a closed approach in their codebase and extensions. They don't allow any extension to add any UI which keeps the extensions mostly simple. However, Atom gives the real power of improving the environment to the developers. That's why I think Atom is the superior choice for me. Check these issues and see the lack of freedom in VsCode. People are seeking simple toolbar, float windows, etc. The things that can be added "very simply" in Atom. We think we can easily cover the VsCode API by adding wrapper functions, and we have started this in our There are plans for standardization. It is undergoing in atom-ide-language-client and atom-ide-base. I have started with improving the old packages. We can achieve so much just by optimizing and modernizing the JavaScript packages. See this list for example #4 (comment). In addition, for the hot parts of the code that we cannot optimize in JavaScript, I plan to use AssemblyScript or Rust to convert them to WASM. We can compile many existing C++/Rust packages to Wasm for our needs. atom-archives/X-ray also includes some useful code. The good part about wasm (compared to native modules) is that the code works most of the time without changing it. Regarding the modernization of the native modules, replacing Multi-threading is my other big thing. Many things can run in parallel without affecting the main GUI thread. #74 By the way, regarding Terminals, X-terminal is the Atom's best terminal right now and I plan to include it in our Atom builds.
@DeeDeeG I do not think we need to follow what upstream wants, and I am not concerned with that much. They have taken a stable approach which prevents most of the improvements. For sure, the changes made here can be useful for the upstream repository, but the fact that they have not merged our PRs so far shows their different view. With that being said, we will continue to make pull requests for upstream. However, at some point, if they do not catch up, the changes will be so much that making isolated pull requests will become very hard or impossible. |
Beta Was this translation helpful? Give feedback.
-
Oh I 200% agree with you @aminya about VS Code, I hate their philosophy and I have never stared the repo because of it. I don't want to VS Code-ify Atom, I just want to take Atom to the next level. So when I say standards I only mean universally agreed on communication (ex: preventing overlapping keybindings), but still fully maintaining the proactively-hackable nature of Atom.
That would be a game changer! I hadn't even considered that. Sadly, I don't think it will be easy though, the API is quite large. Some actions use tools that don't exist in Atom by default. But it is doable and a large number of them can be done quite easily. That's great to hear about Javascript package updates, I've been planning on doing the same. I 100% agree with the move to WASM. I was actually the first person to get the Tree Sitter running in VS Code with WASM 😅. I want to compile the fuzzy-native to wasm and bundle all the language packs into one repo. Looks like we're going to be working together haha
Thanks! I missed that one. |
Beta Was this translation helpful? Give feedback.
-
Also good to hear from you @DeeDeeG Being skeptical is fair, and being open is more than enough for me. Atoms UI style is great IMO and I want to keep that, but some things (like URI handling having an entire tab for 1 setting) don't make much sense at all. I have a rough outline so I will go over it in more detail later. There's certainly more questionable parts to the outline, and I certainly would be happy for feedback on it. And just for reference, I'm considering calling the refresh "Neodymium" or "Neo" for short. Both because Neodymium is an element (a 'flavor' of Atom), and Neo being a form of 'new'. |
Beta Was this translation helpful? Give feedback.
-
Just for context, the I hope that's stating it accurately. Point being, this whole thing is bigger than Whatever happens, I personally want to see that Atom core is in good health and active. |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
I just found a way to convert an issue to a discussion. 😄 So, we can continue talking here instead of moving to a new thread. |
Beta Was this translation helpful? Give feedback.
-
i seriously have high hopes on this project, keep up the good work guys |
Beta Was this translation helpful? Give feedback.
-
github has retired atom its time to get this started |
Beta Was this translation helpful? Give feedback.
-
👋 Welcome!
I am pleased to say that we now have a parallel fork of Atom that plans to include
atom-ide
packages in ouratom-community
builds by default, speed up the development process, etc. We will release the builds under theatom-community
name. The core contributions will eventually become available in the upstreamatom
builds.https://github.com/atom-ide-community/atom
You can check the projects to see more details about the plan: https://github.com/atom-ide-community/atom/projects
Join our discord server here: https://discord.gg/deuBJaqVud
This discussion is the follow up of what was already discussed in
Beta Was this translation helpful? Give feedback.
All reactions