-
Notifications
You must be signed in to change notification settings - Fork 146
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
Is the developer of this still here? #600
Comments
It would be great to continue this awesome project ! |
That's not the real problem, anyone can fork it. But to be actually useful, any project should have a maintainer who will set real goals and responsibly dedicate efforts to achieve all these goals in foreseeable future. Among others such goals apparently should include actual documentation and regular builds for all supported platforms. There is no sense in yet another dead project. |
Sure, there are already plenty of forks. What's cool with OpenTomb is that it is the original project ! |
If indeed there were any people who wanted to work on this project they'd do something already. But unfortunately there is virtually no documentation, no standard Windows (or Mac OS) build environment and plenty of fundamental incompatibilities and bugs, e.g #91 or #417. There already were few attempts to set up nightly builds with Travis but nothing sustainable so far. Of course, anyone is welcome to resolve all this. |
The last commit was made September 2019. Have some patience. |
As TeslaRus was building OpenTomb with Cygwin on Windows, it may be possible to create an automated Windows build using a GitHub Actions Ubuntu image with mingw. I already did that for another project, so I can give a try if the community is OK. Another suggestion of something I should be able to do : rename repo |
The development process of this project is not community driven - it follows benevolent dictator pattern. There was a short period of time when there was attempt to make decisions collectively, but that attempt failed miserably and the project lost all of its other developers. After return of TeslaRus only he led the project and made design decisions. Nobody else, except him and Lwmte could change global repository settings. I can only suggest to make all changes in your own fork and hope that your PRs will be merged back into this repository eventually. But honestly, the future of this project is uncertain at this point. There were no significant work in this repository by its principal author since November 2018. |
Hi everyone, |
That would be a proper way to deploy packages. But that means keeping Windows binaries in the public source repository would make even less sense, of course. And I personally wouldn't welcome yet Mac OS binaries, iOS binaries, Darwin binaries and whatnot. Users should not be expected to install from sources and programmers should build instrumented libraries from sources for debugging. Besides, this might complicate packaging for Linux distributions. To reiterate, keeping binaries in VCS is bad practice: it uselessly bloats resources for development on other platforms (multiply repository size on total count of all your repositories), it negatively affects build reproducibilty and security, makes it impossible to identify exact sources used, creates maintenance problems and bitrot and is difficult to debug and update, etc. Please, build and deploy platform specific libraries from a separate repository. Use package management or binary caches if necessary, e.g. Nix. Make it explicit instead of hiding it in source tree. Using bad engineering discipline might repel developers from a project and IIRC similar arguments already cost this project too much. |
Yes, I know about binaries in VCS. The only remaining binaries are SDL ones. Instead of keeping them in the repo, I can try to download them during Next moves :
|
That won't work, you can't remove anything from git repository - it will remain there forever in the history.
Believe me, if everyone will try to make only their own life easier you won't like it either. I couldn't even notice those binaries between those massive file copies. My browser would die every time I visited changed files tab. There is one question remained. We had clang build alongside gcc in Travis. Now we seems to trade it for Windows build instead. Why? I'd expect that Windows build would be added to the existing ones, not replacing it. IMHO, the only sane way to repair the harm would be to restore repository state to the last commit before the PR. Then we should try it again with lessons learnt:
|
Hi,
We can still rewrite repo history by force pushing as there are no new commits for now, but currently
I don't use Windows, it was only a tentative to help !
I totally missed clang build, thank you for pointing it. I will add it to GitHub Actions.
I'm not opposed to redoing this pull request and rewriting history. The question is : do we add required dependencies source code to |
As you suggested before @vvs-, we can create a separate repository with Windows and other OSes prebuilt dependencies (with headers), then let each developer retrieve this repository to allow building on his OS. This same repository could also be used for CI and CD. This way, OpenTomb |
That's the plan. Or we could create another branch from the last good commit, remove master and rename that branch back to master. We've already done this in the past. The abandoned history is still there as the
That's the tough question. I wasn't kidding when I said that this project is not community driven. There is only one principal developer in this public repository - TeslaRus. There is no point for us to discuss what should be done without his approval first. The other alternative would be you getting all the required credentials from him and become leading developer with all responsibilities 😜 Personally, I'm in favor of your proposal to move all external dependencies out of this repository. |
Whatever happens I'm glad I brought you all back here Lol. |
BTW I've forked last good commit before the controversial PR into |
I'm not skilled enough for that !
Sure, we will wait for his feedback before doing anything.
Thank you. |
Delete unnecessary binaries is a good idea )
ok, good, less external dependencies |
other questions - need time...
|
P.S. Thanks for interest to the project ;-) |
It's a great project, I would love playing all classic Tomb Raiders on Linux without Wine or DOSBox. Maybe you can create the dependencies repository, so I can start adding dependencies to it. What do you think about linking this dependencies repository to OpenTomb one by a git submodule, so it is easy to retrieve ? |
I don't think that submodule makes retrieving dependencies much easier. It's kinda dumb in that regard. It actually should solve a different problem - managing versions of dependencies inside the main repository. But do we really need that? I'm unable to recall if versions of supporting libraries were ever tied to OpenTomb. Looks like overengineering to me. I think that by "easy" you are actually referring to its purported ability to manage dependencies in a platform agnostic way. But what it basically does is just downloading and unpacking some archive. The only advantage I can see is its simplistic UI for that task. What is the expected scenario on the developer's workspace? Keep in mind that most developers use some IDE which might have a better integration with some sort of package manager. I'm not sure. |
As we all agreed previously, Please, note, that you might need to reset you workspace to correspond to the new |
Great, I will start as soon as possible. |
old "extern" directory should be and contain "al", "bullet", "freetype2", "lua"; |
So the final architecture of the dependencies repository, once downloaded to OpenTomb one, would be something like that ?
|
I don't think that this directory tree is correct, e.g. Lua is in |
So we have some dependencies in |
Probably that's a misunderstanding and everyone interprets some words differently. Or there are locally modified and pristine sources separated. I don't know. What exactly you have in mind here, @TeslaRus? |
"extern" directory = build in third-party, that compile with OT sources |
I think the result would be the same than my previous pull request, only some binaries would be removed. |
Why? It shouldn't, because there shouldn't be any significant changes to already existing |
Ok. Let me resume to be sure. I can start by adding TeslaRus-modified OpenAL to
CI and non-Linux developers will download Is everything correct ? |
I was sure that we already had OpenAL in |
OK. @TeslaRus, are you OK for creating the |
thirdparty: first time it may be folder near "extern" with text files with links to the required libraries with compatible versions |
added al to extern |
Ok, I'll create a pull request as soon as this work is ready.
Doing this way would be useless and would not help CI at all. We can totally avoid |
This is the job of a decent package manager, e.g. Nix, NuGet, npm, Stack, OPAM, Maven, CPAN, Cargo etc. What can be worse than reinventing the wheel all the time? Such approach creates endless headache for all involved developers. I don't think that anyone else in the future will be eager to learn, use and maintain any custom package management system instead of working on OpenTomb itself. That's why halfhearted approaches never lead to finished projects. |
Sure, and I would like to use one, but I don't know one that works on both Windows and Linux and that can provide the binaries we want. @vvs-, do you know one that could fit our needs ? |
zlib / libpng are built-in compatible (may be passed to the extern folder), do not know about SDL2. |
Nix has all the libraries. It also supports MacOS but I never used it there, though. You might consider WSL or MSYS2 for builds on Windows. I don't think that you can have a cross-platform package manager at this time, but using CMake won't make it any better either. And you are not restricted to use official repositories, because you can have you own packages. A nice property is that it's all source code based, so if there is no binaries in cache it will rebuild it from sources fetching all the dependencies. |
What about using vcpkg? |
Do you mean on Windows only or on all platforms? If the latter then it'd be good to know what are the advantages? How well it's supported on other platforms and architectures? Does it support dynamic linking and how then it should be deployed on different platforms? How it might treat programming languages other than C/C++ if required by the build system? I've never heard of it before and I suspect this is also true for many others as well. FWIW it doesn't looks mature to me: short list of available packages, seems like only x64 is supported on Linux, doesn't seem to offer an official binary cache. Besides, OpenTomb doesn't even actually support VisualStudio, so I don't see any point in using vcpkg even on Windows. But if you have other considerations, please tell us. The best way of course would be to see it in action. |
No activity after 2018..
The text was updated successfully, but these errors were encountered: