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

WIP: Add contributing guide. #234

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

Hoikas
Copy link
Member

@Hoikas Hoikas commented Apr 23, 2023

This repository exists in an odd state where it kinda matches MOULa but not really. So, I've written up a draft contributor guide that lays out where I think this repo should fall in the ecosystem. Specifically, we are not trying to be the MOULa repository - that's not been our goal, ever really. Our goal, generally speaking, has been to provide a high quality baseline for any shard to operate off of.

One of our main sources of difficulty is that a lot of things that have been tested on Minkata and deployed to MOULa. Unfortunately, Minkata is a testing environment, not a review environment. This has led to content going to Cyan's shard that, even in cases going back almost a decade, isn't particularly up to snuff with the rest of the game. This has been accelerating over the last couple of years and has been putting us in an awkward position where we have a lot of open pull requests whose purpose is basically to match what's on MOULa but not to actually receive feedback.

So, I've codified that we aren't trying to match MOULa exactly (but we also don't want to break it), and we also don't want to be the initial submission point for new Ages. There still isn't an official process, but this at least draws the line in the sand, so to speak, that we expect for content to go through some kind of review process. Ideally, this will be with community members that we know have a keen eye for details both in regard to canon and art. I'm not sure we should explicitly list those people out, so I labelled them as "discerning members" in the document.

With this guide in place, we will need to re-evaluate all fan content that we've accepted and determine whether or not it falls in line with the new guidelines. My initial observations are:

  • Chiso: Accept - with the MOULa roleplay items from the lower floor removed from this repo. Could probaby be moved into a new PRP that we just simply don't include.
    • Endorsed by Hoikas
    • Provides important gameplay service of library Age
  • Highgarden Revert
    • Lacks an endorsement
  • GoMePubNew Accept
    • Endorsed by Hoikas... and possibly two others from the Gehn era
    • Provides important socialization space, matches the rest of the game content
  • Kirel Speeches Reject
    • violated specific shard roleplay rule
  • Serene Revert
    • Lacks an endorsement
  • Tiam Revert
    • Lacks an endorsement
  • trebivdil TBD
    • is winning the RAD a sufficient endorsement?
  • Veelay Accept
    • Endorsed by Hoikas... and possibly two others from the Gehn era
    • Provides important community space
  • Vothol TBD
    • is winning the DLC a sufficient endorsement?

Note that rejection does not necessarily mean that the Age or content is not good, rather, it doesn't comply with the procedure set forth for inclusion. I want to avoid personally endorsing anything new for the purpose of this PR, but there are some things that I endorsed back in the Gehn era.

When applying these rules to the open PRs, we need to close (with the potential for re-opening on endorsement):

Finally, we'll probably want to seriously consider having another repository (or org) that tracks what's actually on MOULa. The goal of this repo/org won't be to act on pull requests. Rather, it should be a fork of both Plasma and moul-assets containing the code and assets required to play specifically MOULa using the superior client. Ideally, this would be unnecessary; however, OU continues to a roadblock in terms of actually progressing the ecosystem as a whole. It would be nice if we could farm the maintenance of that out to someone else (who isn't me)

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
@dpogue
Copy link
Member

dpogue commented Apr 23, 2023

I think some additional (even if it's just informally set out in the comments here) context around storyline aspects would be good. I can understand not wanting to include things for storyline roleplaying that is playing out solely on the MOULa shard, but how stringent do we want to be about things like Ages that include journals? Are we opposed to any additions to storyline?

Co-authored-by: Joseph Davies <deledrius@gmail.com>
@dgelessus
Copy link
Contributor

Thanks for writing this up - it will definitely be helpful to have the purpose, goals, and criteria for this repo stated explicitly.

Meta question: what's the context and "approval state" for these guidelines? Is this a proposal from Hoikas, or have other H'uru folks already given some input, or are you writing down already existing informal guidelines? Have you (non-specific "you") already decided that the repo will be operated this way, or is this open for feedback/discussion to some extent?

I have more thoughts on this, which I'll write down when it's not late at night for me.

@Hoikas
Copy link
Member Author

Hoikas commented Apr 24, 2023

I can understand not wanting to include things for storyline roleplaying that is playing out solely on the MOULa shard, but how stringent do we want to be about things like Ages that include journals? Are we opposed to any additions to storyline?

That's a good point. I was thinking that we would reject things that don't make sense in terms of canon (eg the original Serene journal submission) or involve roleplaying on a specific shard. Those Kirel messages mention characters that are RP'd on MOULa only, hence their rejection. Beyond that, I think that characters that exist in an Age (eg in journals, notes, etc.) are fine even if they are also RP'd.

Meta question: what's the context and "approval state"

Good question! This is currently a proposal from me on how this repository should be operated, and feedback is welcome.

@patmauro
Copy link
Contributor

patmauro commented Apr 24, 2023

Outsider's perspective: I understand the need for this; however I find the proposed way this would be retroactively applied to prior content and open PRs a bit too extreme. Specifically: I think there needs to be more clarity as to what "no endorsement" means on a case by case basis - in other words, there needs to be a clearer distinction between something that was reviewed & actively non-endorsed (rejected) vs something that simply wasn't reviewed yet and thus lacks an endorsement - I don't think it's fair to equate the latter to a formal "rejection" when it may very well meet the guidelines despite not yet having an endorsement. Furthermore, what are we saying constitutes an "endorsement?"

I feel that fully closing those PRs would be to communicate not even entertaining the possibility that these could ever be accepted, rather than simply marking them as "changes requested," "review requested," etc and indicating a potential attainable path to acceptance. I do not see why something like #145 or #75, which I feel follows these guidelines, should be rejected and closed; nor something like #52 which is still in development and very much falls within the guidelines, just because they lack a 3rd-party endorsement at this time.

Perhaps I have misunderstood and you are merely using existing content & PRs as an example of how these rules would be applied, but I still feel that distinction between "not endorsed yet & will require an endorsement to be accepted" vs "actively non-endorsed & therefore rejected" is important to make.

@Hoikas
Copy link
Member Author

Hoikas commented Apr 26, 2023

That makes sense. When I was writing my post, I had the two terms Accept and Reject in mind where it probably would have made more sense to say Accept and Close. Right now, everything that I mad marked as Reject is more Revert, pending an endorsement. The goal is that we'd like to see some prominent names endorsing subjective content before the pull request is opened.

The major goal here is to reduce the amount of untested, experimental, unfinished, and/or inappropriate submissions. I'm hoping the new guide makes it a bit clearer what's appropriate and what isn't. For the sake of the discussion, I'm going to conflate subjective content with new Ages because they're easier to talk about. PRs for new Ages are not zero cost, unfortunately. There are two main costs, both of which are non-obvious to non-maintainers. They are cognitive complexity and disk space (potential monetary costs).

Every time a pull request is opened, there is a new entry on the pull request page. I seem to be the one who is primarily handling PRs on this repository - this isn't problematic, but I have difficulty juggling more than a handful of active pull requests at any one particular moment. I am also responsible for a lot of other things, such as PRs to Plasma, improving Korman, keeping an eye on microsoft/vcpkg, and add RL on top of that. So, I really shouldn't be the one on the hook, so to speak, to do the baseline evaluation of new Ages. The baseline evaluation being things like fit with the rest of the game, lighting, etc. These are tasks that there are plenty of other people can do aside from just me, and I would like to see them involved in the process. There are a lot of people who DM me on discord and ask for me to review Ages to try to pump the brakes on them because they don't think the Age belongs in the game. There is similar discussion in IRC but with less prompting for me to do something. I think that if we can move more from a "someone needs to say no to this" mindset to a "someone needs to say yes to this" mindset will help alleviate both my workload and the concerns of the individuals who come to me. Ideally, this will slow the rate of submissions here to a more sustainable rate for me but also ensure that those items that do get submitted here can be incorporated more quickly. Ideally, I would be looking at just the technical merits here. The nuts-and-bolts of the creative isn't something that I think we need to be doing here.

Additionally, every revision of an Age that's pushed to this repository consumes disk space. GitHub charges exorbitant rates for LFS data and bandwidth, so all of the data is actually hosted on guildofwriters.org. At this time, we are not close to consuming all of the disk space; however, I am cognizant that the space on guildofwriters.org is finite, and I would prefer to not have to pay for more disk space because this repository was used for pushing an unbounded amount of back-and-forth creative revisions. That's not to say that we don't want changes pushed here, but I would prefer to limit the commits to this repository to meaningful milestones.

That being said, I'm going to edit the OP to change the Reject labels to Revert, with the intention that endorsements mean that new PRs are welcome to be re-opened for those contributions.

@dpogue
Copy link
Member

dpogue commented Apr 26, 2023

There are a lot of people who DM me on discord and ask for me to review Ages to try to pump the breaks on them because they don't think the Age belongs in the game. There is similar discussion in IRC but with less prompting for me to do something.

It would be nice if there were some effect of people saying no to things, rather than stuff getting accepted and shipped off to MOULa regardless, but that's not really in the scope of this repository. Beyond to say that, there are things that are currently live on MOULa that were objected to on technical grounds, and those objections were ignored and as such that content will definitely not pass the technical review required to be included here.

The lack of any actual approval process for content complicates both the reviewing of things, and the managing of this repository. Yet there is seemingly reluctance to implement any sort of general approval process for MOULa despite these concerns being raised multiple times.

@Hoikas
Copy link
Member Author

Hoikas commented Apr 26, 2023

And that's the problem. I'm not delusional enough to think that I can dictate what policy MOULa uses, the hope is that if we can change the process here, we can at least be a model for what should happen going forward. Unfortunately, we can't put the genie back in the bottle on some of the things that have gone to MOULa.

@Emor-Dni-Lap
Copy link

This is a topic that goes way way back. It's been sidestepped, ignored, and a general hot-potato for well over a decade. Yet it has to be hashed over, yet again, because every past discussion has faded into oblivion without resolution. I'm glad to see it resurrected here, in hopefully a very rational fashion.

Being new here, I'm just going to respond randomly with my own thoughts and to various points made by others. If this is verboten and you'd prefer I reply to commenters individually, let me know and I'll do so by deleting and segmenting this post.

  • Hoikas has written draft guidelines for participants in the review process. But - as I think he's also suggested - this first requires a set of (fixed but revisable) guidelines for agebuilders - to understand how to create admissible Ages, to understand the grounds on which an Age might be rejected. Such guidelines should cover tech issues (some of which may be bugs visible in-game and reported in testing, others seen only in file&code inspection), and canon issues (Cyan content conflicts, RP conflicts as has been pointed out here)...both of which are comparatively definable areas. What may prove more difficult is defining aesthetic admissibility, what Hoikas is calling 'Subjective Changes': how to say that lighting must not be flat with textures set to 'emissive', that spaces should not be empty and undetailed, that it shouldn't be merely a collection of appropriated meshes cobbled together into an 'Age', that it should show at least an attempt at creating a plausibly 'real' environment (as opposed to CG boxes and planes), that there should be some purpose or intent to the Age, and so on and so on. Difficult, yet I think it's necessary to define these things to prospective agebuilders up front, rather than rejecting after the fact for reasons they hadn't known about.

  • These 'Subjective changes', as Hoikas calls them, should not be the purview of any one "discerning member": we all may call ourselves 'discerning', yet we all have very different tastes. Nor would any Discerning Member like to have their thumbup/thumbdown vote known to the community, much less the agebuilder: a great way to make enemies. So I would far prefer to see a known-quantity of unknown-identity Discerning Members formed, with anonymous votes tabbed in some manner invisible to the outside but very transparent (yet still unidentified) within the group. Any such group would have to be entirely prepared for the inevitable "Star Chamber" epithets and worse: you know that would happen.

  • As dpogue indicates, no matter what any review process that's established may advise or proclaim about any future project, it's entirely possible that advice will be ignored. However, my guess is that rarified will be only too happy to cut back on the chatter, the incessant tiny-revisions and countless updates he's had to endure.

  • And yes, there is no way to put the cat (current MO:ULa volunteer-created Ages not meeting specs) back in the bag: for any Age deleted from Chiso at this point, the howls of outrage would be enormous. No matter what we may feel about any given one of such Ages, each has some devoted fanbase by this time.

@dgelessus
Copy link
Contributor

As promised, here are my thoughts. For context: I'm mainly active on the technical/engine side of things. I have no experience in age creation. I've only contributed small content fixes and helped with testing on Minkata, but not as much recently, so I'm probably missing some context/subtext about Current Events™.

The way I read it, the overall message of these guidelines is:

  • The H-uru/moul-assets repo and PRs will be used only for finished fan content, not as a place for content development.
  • The maintainers of H-uru/moul-assets expect content submissions to be already externally reviewed, but will also perform their own review (to some extent) to decide whether to accept the submission.
  • H-uru/moul-assets will only contain a conservative subset of content, rather than containing all/most fan content or tracking any particular shard.
    • This implies: If content is rejected from H-uru/moul-assets, that doesn't necessarily mean that the content is bad in any way (although that may be the case).
  • Content in H-uru/moul-assets aims to remain compatible with Cyan's MOULa shard, where the two sets of content overlap.

Is that correct?

I agree with what @patmauro said and I think the new wording "Revert" makes more sense. It could also be helpful (especially for future submissions) to differentiate between rejections because of minor/fixable issues vs. major/fundamental incompatibility with the guidelines. In pull request terms: if a submitted age e. g. has bad lighting, it would get a "Changes requested" review, but if e. g. its premise goes against established lore, the PR would be closed completely.

Beyond that, I'm confused by the first paragraph about subjective submissions. It seems contradictory at first: submissions must have gone through a review process by certain people, but the process is explicitly undefined and it's not explained who the people are, but you can ask H'uru maintainers if you want to know about the process or the people..? I'm guessing the intent is to say "before submitting content to this repo, someone other than the creator/submitter must earnestly look at the content and consider it good" without formalizing the process too much or restricting it to a closed circle of reviewers. If so, I think that should be worded more clearly.

The project goals seem fine overall. I think the part about "integrating new content/Ages that serve a clear purpose in enhancing Myst Online: Uru Live as a video game" will be tricky to handle in a consistent and fair way, because different people have different opinions on what content "enhances" the game. Specifically: what happens if the H-uru/moul-assets reviewers consider a submission a clear enhancement, but other community members disagree? It would be nice if that could be defined more clearly, but that's probably difficult without making it much more conservative (e. g. "no original fan content, only enhancements to Cyan content").

The non-goal "accepting fan content geared toward role-playing done on any particular shard" is especially tricky IMO, and I don't see how this follows from the other goals. Not to rehash the whole RP/storytelling discussion, but Cyan has integrated "role-playing" with Uru game content on multiple occasions. If this non-goal was followed consistently, you would have to remove e. g. parts of Douglas Sharper's journal, the dead Bahro in the Watcher's Pub, and possibly Phil's Relto. This goal would also be less tricky to enforce if it clearly said "no fan content geared toward fan role-playing", but even that leaves some things unclear, e. g. the Heritage Documents books in Chiso Preniv.

The other requirements for subjective changes, as well as the rest of the guidelines, look reasonable and good to me - I have no major thoughts on those.

@dgelessus
Copy link
Contributor

dgelessus commented Apr 29, 2023

Finally, we'll probably want to seriously consider having another repository (or org) that tracks what's actually on MOULa. [...] It would be nice if we could farm the maintenance of that out to someone else (who isn't me)

I've been meaning to try something like this, at least for the content side, as I've hinted at a few times in the OpenUru Discord. Can't promise when I'll actually do it though, so if anybody else is motivated to set this up, go ahead.

My plan would be to fork H-uru/moul-assets at the first commit of compiled game content (fe10174), which corresponds almost exactly to Build 918.OpenUru=138, and then apply the incremental delivery bundles from the OpenUru Foundry-MOULa-Delivery repo. The resulting commit history should precisely match the history of builds released by Cyan, because these delivery bundles are what gets sent to Chogon to be put on Cyan's file server.

This approach would rely on the GoW Gitea for LFS storage space. I expect that this project won't require much additional space at the moment, because all (or almost all?) the content published on Cyan's MOULa server has been merged into or at least submitted to H-uru/moul-assets, so the data files already exist in the LFS storage and will be shared without consuming additional space. That would change in the future though if H-uru/moul-assets becomes more conservative about what submissions it accepts. It would also become tricky if Cyan decides to publish content with unclear licensing (e. g. Direbo) that the GoW may not be comfortable with hosting.

If the GoW doesn't want to host this "Cyan-identical" repo for the reasons above, I would probably attempt the same approach as a fork of OpenUru's MOULa-current-content repo. This would allow reusing the LFS storage space even more efficiently, because all content submitted to Cyan will have gone through that repo at some point.

@Hoikas Hoikas added documentation Improvements or additions to documentation enhancement New feature or request labels Jun 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants