Problem/Motivation
The textfield input for "user field" is #required, but has no label (the label is held by the table header) and thus shouldn't have a lone red asterisk. Seven correctly omits the marker if the label is empty.
Example of a form 'multiple, required' field form Bartik :
Seen in #501408: Display user fields on registration form, but is also visible in current HEAD when editing an existing user account with fields.
Beta phase evaluation
Issue category | Bug because the information of the field being required should not appear twice |
---|---|
Issue priority | Major because tim.plunkett said so ;) |
Unfrozen changes | Unfrozen because it only changes markup on fields widget that are set as required and allowing multiple values. |
Prioritized changes | The main goal of this issue is usability and accessibility. Usability by hiding a non-pertinent mark near the input field. Accessibility by providing a valuable label for the multiple input fields. |
Disruption | This change could be disruptive for themes because it forces some form labels to be hidden. |
Proposed resolution
For these cases mark the title_display as hidden:
'#title_display' => 'invisible',
Remaining tasks
Task | Novice task? | Contributor instructions | Complete? |
---|---|---|---|
Create a patch | Instructions | Done | |
Reroll the patch if it no longer applies. | Novice | Instructions | Done |
Update the issue summary | Instructions | Done | |
Update the issue summary noting if allowed during the beta | Instructions | Done | |
Add automated tests | Instructions | Done | |
Manually test the patch | Novice | Instructions | Done |
Embed before and after screenshots in the issue summary | Novice | Instructions | Done |
Review patch to ensure that it fixes the issue, stays within scope, is properly documented, and follows coding standards | Instructions |
User interface changes
Yes, the red asterisk moves to the correct location AND accessibility is enhanced by a better label around the fields.
Before :
<h4 class="label form-required">My unlimited required field label</h4>
[...]
<label for="edit-field-unlimited-0-value" class="form-required"></label>
After :
<h4 class="label form-required">My unlimited required field label</h4>
[...]
<label for="edit-field-unlimited-0-value" class="visually-hidden form-required">My unlimited required field label (value 1)</label>
API changes
n/a
Comment | File | Size | Author |
---|---|---|---|
#114 | 980144-114.patch | 2.98 KB | aerozeppelin |
#114 | interdiff-980144-98-114.txt | 595 bytes | aerozeppelin |
#103 | 980144-screenshot-103.png | 6.63 KB | dxvargas |
#102 | Screen Shot 2017-01-03 at 3.24.58 PM.png | 31.1 KB | mgifford |
#98 | 980144-98.patch | 3.01 KB | aerozeppelin |
Comments
Comment #1
yched CreditAttribution: yched commentedOop. Sorry for blaming Bartik. This happens in Seven as well.
I'm a bit perplexed not having noticed this earlier.
I need to check how we handled that in CCK D6.
Comment #2
yched CreditAttribution: yched commentedTracked this down to #558928: Form element labeling is inconsistent, inflexible and bad for accessibility, more specifically patch in #148, committed in #150 (there was a followup in the same thread).
In D6, theme_form_element() does (roughly) :
In D7, theme_form_element() does :
Attached patch reverts to
(since '0' can be a valid label)
Note that Field API cannot set $element['#title_display'] = 'none' itself, because the $element is generated by the widget, in a way Field API does not control. All it can do is provide the title string the widget should use, setting it to empty when the field is displayed in a 'multiple field' table.
Comment #3
yched CreditAttribution: yched commentedComment #4
yched CreditAttribution: yched commentedOops, the OP was supposed to include a screenshot of the bug :
The required marker is taken care of in the table header, along with the label. The form element has no label and shouldn't have the marker either.
Comment #5
yched CreditAttribution: yched commentedI'm tired. Patch with git --no-prefix.
Comment #6
mgiffordWow, took one year less a week for us to stumble across this bug. I'll look at this patch shortly. It is interesting looking at the process of actually registering users in live sites in D7. It is a piece which probably is far enough into the process that it's easy to miss.
How do we make sure that changes like this are caught earlier for D8?
Thanks @yched!
Comment #8
sunComment needs to be updated and should elaborate a bit on the reasoning for the empty string check.
That said, assigning a #title but setting it to an empty string, sounds like a bogus idea to me in the first place.
Powered by Dreditor.
Comment #9
mgifford@sun is there anything other than this comment that you'd change in the patch? Other than getting it through the simpletests?
It certainly seems to be an important issue to bring into core.
Comment #10
sunI'm not sure whether we shouldn't fix Field module instead. Specifying an empty string as #title is perfectly valid from a Form API perspective, and getting an empty title potentially followed by a required marker is what I'd expect when doing that.
Comment #11
yched CreditAttribution: yched commented[crosspost with sun]
Fixing the test showed that the current behavior of outputting a lone required marker when #title == '' is currently explicitly tested and thus appears like an intentional feature. I can't pretend it's just an oversight.
D6 did not work that way, though (in D6 empty #title means no
<label>
and no 'required' marker').@mgifford : you rolled a large number of the patches in #558928: Form element labeling is inconsistent, inflexible and bad for accessibility - you remember a specific rationale for this change ?
However, different approach : when the label display is taken care of somewhere else, Field API can set $element['#title_display'] = 'invisible'. This lets screen readers get a meaningful 'required' mark next to the input. While we're in there, this also lets us add a real title (including delta) for screen readers users, which currently have little way to tell where exactly where they are. This introduces a new translatable string, though --> 'string freeze' tag.
Comment #12
yched CreditAttribution: yched commentedActually, this also fixes the issue that currently, "required, multiple" fields, having an empty #title, generate a dumb 'field is required' message (instead of the common, more accurate '[#title] field is required') on failed #required validation.
Thus, adjusting to a 'hidden title' more friendly for this context :
"@label (value @delta) field is required" reads better than
"@label - value @delta field is required"
In summary, the patch fixes several issues with "required, multiple" fields in forms :
- lone 'required marker' (see screenshot in #4)
- screen readers don't have any label for the input elements, and no way to differentiate the various deltas
- on failed '#required' validation, the error message doesn't point to a specific form field.
Comment #13
sunWe should move those conditional assignments into a real if/else condition. Like for #title, an empty #description should also output a totally needless empty DIV.description. Thus, a proper
if ($multiple) {
}
else {
}
separation would make much more sense here.
Not sure whether we need the @delta in the #title though. I think that aforementioned add-labels-for-accessibility patch contained similar constructs, so would be good to make this consistent.
Powered by Dreditor.
Comment #14
yched CreditAttribution: yched commentedReplaced ternaries with an
if ($multiple)
.re "an empty #description should also output a totally needless empty DIV.description"
It doesn't : I'm ready to bet that all your current fields are set up with an empty description, and you don't get that empty div, do you ? :-)
re "Not sure whether we need the @delta in the #title though"
Well, it does make sense for both screen readers and the failed validation message ?
Comment #15
mgifford@yched - I was certainly very supportive of that patch. Like many patches, I've had to roll, re-roll, re-re-roll them to keep up with core and to bring in legitimate concerns from folks like @sun. I think at the end of the day I really don't like macro patches like this. It's just suich a difficult thing to test for.
I suspect that what happened is that the "required, multiple" use case just got overlooked. Considering that it took a year to find it, it's clear it's an edge use case. I don't know how many rare instances like this there are, but it would be good to document them so we know.
Looking back at the early patches it's clear that Everett's initial goal was to use attributes for inserting titles rather than invisible labels. Unfortunately in D7 we weren't able to bring attributes into the Forms API.
I think it was added in comment 140 after discussions with @chx and @sun. Owen & Brandon did most of the heavy lifting on this patch, and Owen's comments were "we can use #title being unset as an implicit 'none', which would work the same way in terms of output - suppressing the label completely - but would simplify the API a bit for most use cases. I am not sure which one I prefer - it doesn't seem too critical either way."
Seems we found a use case where it was critical. I would think that getting the Field API to display it as invisible would be preferred but can see if we can get some perspectives.
Comment #16
Everett Zufelt CreditAttribution: Everett Zufelt commentedI haven't read through all of the comments here. However, there is, IMO, no use-case for a null string to be used as a form field #title.
All fields need titles, whether they are displayed as a visible label, an invisible label or the @title attribute of the field itself.
The question is, are there times when the form field needs a visible required marker, and an invisible title. If there is really a use-case for this, then this is what needs to be addressed.
Comment #17
yched CreditAttribution: yched commentedthere is, IMO, no use-case for a null string to be used as a form field #title. All fields need titles, whether they are displayed as a visible label, an invisible label or the @title attribute of the field itself
I probably agree - as the current approach for the patch shows. Screen readers need a usable label.
'Devil in the details' point about how to handle '#title' === '', though. D6 treats 'non-existent' and 'empty' #title similarly. D7 choses to threat 'empty' differently, and according to mgifford's #15, it is not entirely sure whether this was a conscious move.
Anyway - as far as this thread is concerned, this is a theoretical discussion. The way to fix the Field API issue at hand is to use #title_display wisely.
The question is, are there times when the form field needs a visible required marker, and an invisible title. If there is really a use-case for this, then this is what needs to be addressed.
This thread does not identify a use case for this :-)
Comment #18
Everett Zufelt CreditAttribution: Everett Zufelt commented#14: form_required_empty_label-980144-14.patch queued for re-testing.
Comment #20
SamH CreditAttribution: SamH commentedHi,
I ran into this problem as well. Tested the patch at #14 and it works on my local machine. I would change how @delta is added to #title, though. For me, the most common case of failed validation is when a user doesn't enter anything in the field. In this case, the only existing @delta is 0, and I think it can be removed without impacting screen readers.
So I would change
to
Is there anything I can do to help move this forward?
Comment #22
mgifford#20: multiple-required-field.patch queued for re-testing.
Comment #24
poedan CreditAttribution: poedan commentedI have this problem as well. I also have the module media installed and the previous patches didn't work.
Here it is what is worked for me.
Comment #25
mgiffordI think this might need to go to D8 and then get brought back to D7 but want the testing done now against D7.
Also setting to Needs review.
Comment #27
skipyT CreditAttribution: skipyT commentedComment #28
skipyT CreditAttribution: skipyT commentedComment #29
poedan CreditAttribution: poedan commentedFixed for testing
Comment #30
poedan CreditAttribution: poedan commented*Moved the status for needs review
Comment #31
DuaelFrApplies well on 7.22 !
Why hasn't it be commited yet ?
If you want to understand one of the usage of this patch :
Comment #32
DuaelFr7.x version is working very well but I know someone will ask for the 8.x version so here it is.
This patch is part of the #1day1patch initiative.
Comment #33
mgiffordFollowed the process in #31. Looks good to me now.
Comment #34
yched CreditAttribution: yched commentedSorry, but - the initial iterations of this patch, until #14, used #title_display to assign an invisible title, which is until that point was agreed as, and still is, the right approach (screen reader friendly, consistent with what is done in other places in core).
Then the issue stalled, and two years later, #24 restarted this with "I have this issue too, here is what worked for me" and a patch that completely overlooks the previous one. But #14 (adjusted in #20) is still the way to go.
What should happen here is reroll patch #20.
Comment #35
mgiffordYou definitely shouldn't be sorry @yched.. Definitely I should have caught that error..
It's confusing that single form elements seem to get piped through formMultipleElements()
Anyways, this inserts the labels back in.
It did make me wonder about adding fieldsets here around the table too. Not sure that is necessary though.
Comment #36
yched CreditAttribution: yched commentedThanks @mgifford :-) Looks good to me.
Comment #38
swentel CreditAttribution: swentel commented#35: drupal_core-8.x-fix_multivalue_validation-980144-35b.patch queued for re-testing.
Comment #39
swentel CreditAttribution: swentel commentedRandom failure
Comment #40
catchShould this have test coverage?
Comment #41
jibran#35: drupal_core-8.x-fix_multivalue_validation-980144-35b.patch queued for re-testing.
Comment #44
tim.plunkettMarked #2235319: Unlimited value required autocomplete entity_reference fields show bogus error message on validation as a dupe.
Comment #45
tim.plunkettHere's a D7 backport for those in need. Still needs tests.
Comment #46
ACF CreditAttribution: ACF commentedAdded a test to catch this.
Comment #47
ACF CreditAttribution: ACF commentedStupid mistakes in 46.
Comment #51
asgorobets CreditAttribution: asgorobets commentedA little typo in #45.
Attaching updated patch for D7.
Comment #52
swentel CreditAttribution: swentel commentedRerolled for PSR4
Comment #54
heddnComment #55
DuaelFrComment #57
DuaelFrA lot of things changed in form structure so it's not just a basic reroll that's needed.
I'm on it.
Comment #58
DuaelFrComment #59
DuaelFrComment #60
mark_fullmerPer patch in #58, placement of "required" asterisk is correct, both visually and in the source, for the textfield.
Comment #61
anavarreCould we use the entityManager instead of
entity_create()
?Comment #62
tim.plunkettComment #63
DuaelFr@anavarre @tim.plunkett I think we should open an other issue for that change because it would make this test inconsistent with the other ones of the same class.
Comment #64
tim.plunkettUsing deprecated functions in new code is not a good idea. Consistency within a single method wouldn't even convince me, but within a same class? That's not a reason to write worse code.
Comment #65
DuaelFrLet's work on a new patch then :)
Comment #66
DuaelFrComment #67
tim.plunkettFair enough :)
Might as well use [] on new code.
$this->t() please
public funtion
No real reason to create a new variable for this, we don't bother for $this->field
Comment #68
DuaelFrHere is a new patch. There is a lot of existing code that migh be rewriten according to these rules. Should we open an issue somewhere?
Comment #69
tim.plunkettLooks like this wasn't rebased properly (from 3kb to 40kb!)
You can open up a follow-up to modernize other code, though it might wait for 8.1.x.
I'm just against adding new code that follows obsolete standards.
Comment #70
DuaelFrOops sorry! That's what happens when working late :/
Comment #71
tim.plunkett$this->t(), array() to []
Then it's RTBC!
Comment #72
DuaelFrI should configure my IDE to warn me for all these things T_T
Comment #73
tim.plunkett:)
Thanks! RTBC
Comment #74
alexpottCommitted 2a4ea49 and pushed to 8.0.x. Thanks!
Thanks for the screenshots and beta evaluation in the issue summary.
Comment #76
DuaelFrComment #77
DuaelFrWhoops! Uploaded the same file twice ;)
Comment #80
star-szrLooks like a solid fix! Thank you everyone who worked on this issue.
This doesn't necessarily matter too much for the backport, but just for the record in tests XPaths are definitely preferred over assertRaw for asserting markup with certain attributes. Using XPaths in general makes the tests much less brittle when it comes to changing markup. Refactored the added test to use XPath over here: #2473951-15: Prefix form-required classes with js-
Comment #81
DuaelFr@Cottser @alexpott @tim.plunkett Do you think we should rewrite the D8 test to use xpath() instead of assertRaw() right now?
Comment #82
mgiffordWould be great to have this backported! Mostly I'm removing the a11y tag as we're trying not to use that.
Comment #84
mgiffordComment #85
star-szr@DuaelFr sorry for the delayed response yes the D7 test should use XPath as well I'd say.
Comment #86
DuaelFr@mgifford The patch in #77 still applies on 7.x for me.
@Cottser The D8 patch have been commited without using xpath. I suggest to stay consistent with that patch to ease future modifications. As changin that in D8 is probably going to be postponed to 8.1 I think we should not invest more time in that issue. The tests are working well as-is.
Comment #87
mgifford@DuaelFr - sorry.. Realized I was just applying this patch to D8..
I added a multiple text field to user/1/edit pre & post patch. It's looking good!
So any concerns with marking this RTBC?
Comment #88
DuaelFrNo problem Mike.
If we agree about keeping the tests as-is I think we can RTBC that issue :)
Comment #89
mgiffordOk, I just reapplied the patch to see that it all works still and marking it RTBC.
Comment #90
David_Rothstein CreditAttribution: David_Rothstein as a volunteer commentedI tested this patch. When I tried to submit the form without filling out the required multivalued field, I got this error message:
That's pretty confusing (although probably still better than the current behavior). Why isn't it just "My Field Name field is required"?
I guess we want the parenthetical part in there for the field label that screen readers use, but it doesn't seem like it should be part of the error message for non-screen-readers.
Something like #742344: Allow forms to set custom validation error messages on required fields might be a real solution, but possible independent solutions could include:
My Field Name <span class="element-invisible">(value X)</span>
. Kind of ugly (since the<label>
has an element-invisible too so there will be a nested element-invisible) but maybe it makes sense - both regular users and screen reader users will get an error message that matches the field labels that are shown to them.This doesn't look properly translatable. Shouldn't it be
t(!title (value @number)')
?Should be "Required symbol added to field label", I think?
The assertion message doesn't match the code - it's actually asserting that a required symbol is present. We probably want to say something more like "Required symbol and field label are visually hidden".
Comment #91
David_Rothstein CreditAttribution: David_Rothstein as a volunteer commentedAlso per the above comments we should really backport the tests as they currently exist in Drupal 8 (with xpath). Doesn't really matter if that got originally committed to Drupal 8 in this issue or another; it's still the right thing to backport :)
Here's what's currently in Drupal 8:
Should be a good guide for backporting, although obviously the HTML that's being asserted is slightly different.
Comment #95
ultrabob CreditAttribution: ultrabob commentedIs this the right place to watch for a fix to this to hit 7.x? Seeing a bunch of 8.x stuff at the end, I'm confused.
Comment #96
aerozeppelin CreditAttribution: aerozeppelin at California State University San Bernardino commentedAn attempt to update the patch as per comments in #91.
Comment #97
mgifford@aerozeppelin - what about the issues in #90?
Comment #98
aerozeppelin CreditAttribution: aerozeppelin at California State University San Bernardino commented@mgifford Thank you for pointing it out. I've made updates to accommodate changes from #90.
I wasn't sure what option to choose in this case. I chose option one for no specific reason. Any thoughts ?
Comment #99
DuaelFrThe code looks good.
I didn't test it manually though.
Comment #100
mgiffordThanks @aerozeppelin
I'm not actually sure about the accessibility. I'd need to look at it more or see an example.
If a required field is required, it should indicate that. Perhaps not visually (if it is clear in other ways), but semantically.
Comment #101
dxvargas CreditAttribution: dxvargas commentedI did test it manually and patch #98 works good!
@mgifford can you be more precise about the changes you recommend? I didn't fully understood what you're asking for.
Anyway, let me ask: Was your request fulfilled before and it stopped being fulfilled after applying this patch? Could that improvement be done in a new issue?
I would mark this as RTBC now. We should apply the patch and close this major bug ASAP, we have already a long story here and if one patch fixes the bug, please let's get on with it.
Comment #102
mgifford@dxvargas - This is an improvement over D7 Core. I agree with the RTBC. Without the patch the "*" is repeated visually. With the patch it looks like this:
Comment #103
dxvargas CreditAttribution: dxvargas commented@mgifford I see your point.
For me the "*" next to the field is not important, because we have that signal next to the label, as usual.
The weird thing is that currently only one "*" is shown next to one field and the others don't count. Any field once filled should be enough. Even if one of the text fields is filled but it is missing the "*" field, then we have the error saying the field is required.
So, again in my opinion, this should be fully thought and worked in a new issue.
Comment #104
mgifford@dxvargas I agree that the issue with error messages for multiple fields needing its own issue. The problem you described is also an issue in 8.3.x. Not that it gives you the same error (there's an HTML5 required element that pops up), but that error only happens on the first field.
We should discuss if it is:
But this isn't the place for this. It also doesn't seem like it would be an accessibility issue, but rather general behavior.
Can you open up a new issue for D8.3 and mark this current one RTBC for D7?
Comment #105
ademarco CreditAttribution: ademarco at Nuvole commentedI've tested it and patch #98 works fine for me too, marking it as RTBC as requested.
Comment #108
stefan.r CreditAttribution: stefan.r commentedThis t() is not really doing anything here
Comment #109
mgiffordWe need a new patch then.
Comment #110
dxvargas CreditAttribution: dxvargas commentedIMHO reopening an issue that was created in 2010 and it has a patch that has already been merged, only because there is a t() that is doing nothing, is not the best option.
Comment #111
mgifford@dxvargas I don't know what has changed.. Can't we just re-roll the patch and take out the t()?
Comment #112
ultrabob CreditAttribution: ultrabob commentedThe issue has not been reopened, it is a 7.x issue and there is not 7.x patch that has been committed so far as I can tell.
Edit: Sorry rereading the thread I see that you probably mean it doesn't make sense to remove RTBC for this issue.
Comment #113
seren10pity13 CreditAttribution: seren10pity13 commentedHi,
To solve the problem of required multiple fields not showing the field name on validation, I preferred using a custom module and a HOOK to avoid problems when updating :
It did the job for me. Hope it helps.
Comment #114
aerozeppelin CreditAttribution: aerozeppelin at California State University San Bernardino commentedUpdates to #108. Removed t().
Comment #116
therobyouknow CreditAttribution: therobyouknow commentedThank you aerozeppelin - my colleague and I have also found Patch #98 to work for our entity reference field set to mandatory.
By works I mean that "field is required" error message (i.e. without the actual field name shown/missing) now has the field name in the error message shown after attempting to save the content with the field empty.
We are now doing more testing to ensure hopefully no side effects in applying the patch (regression testing).
Thanks again, given that this has been available for a few months, hopefully this can be included in a forthcoming update to core soon.
For now, the patch is very welcome thank you. I'll let you know if we have any findings from our regression testing.
Comment #117
joelpittetI've tested this as well and it works perfect for entityreference with multiple values.
Before it would not have a title and after it would, no duplication on the form.
Comment #118
jelo CreditAttribution: jelo commentedSame on my site. Fixes issues with multiple values in entityreference fields.
Comment #119
ultrabob CreditAttribution: ultrabob commentedRTBC++ The patch takes unlimited value entity reference fields from being completely unable to delete entries to being usable again. I hope it can be committed soon so I can stop tracking that this patch is required for all my sites.
Comment #120
jelo CreditAttribution: jelo commentedAny chance that this can get committed? It seems like the community reviewed the patch and confirmed it is working...
Comment #121
andrewmacpherson CreditAttribution: andrewmacpherson as a volunteer commentedI queued a re-test, the patch is a year old. It's been at RTBC for 6 moths though, so worth bumping.
Comment #122
MustangGB CreditAttribution: MustangGB commentedPatch applies cleanly, RTBC+.
Comment #123
Vacilando CreditAttribution: Vacilando as a volunteer commentedRTBC+
Comment #124
MustangGB CreditAttribution: MustangGB commentedComment #125
joseph.olstadBumping to 7.61, this didn't make it into 7.60
Comment #126
joseph.olstadComment #127
joseph.olstadComment #128
MustangGB CreditAttribution: MustangGB commentedComment #129
tim.plunkettFixing tags
Comment #130
darkodev CreditAttribution: darkodev commentedPerhaps we should have a standard by which we reference the comment when we thumbs up a patch?
Is https://www.drupal.org/project/drupal/issues/980144#comment-11954051 the latest patch everyone is using? I can't tell from comments if they are referencing the updated version or the original at https://www.drupal.org/project/drupal/issues/980144#comment-11695545
Any update on getting this into the next release, please, please?
Comment #131
darkodev CreditAttribution: darkodev commented#114 applies cleanly to 7.65
Comment #132
darkodev CreditAttribution: darkodev commentedRTBC+
Comment #133
MustangGB CreditAttribution: MustangGB commentedComment #134
joseph.olstadComment #135
joseph.olstadComment #136
MustangGB CreditAttribution: MustangGB commentedComment #137
MustangGB CreditAttribution: MustangGB commentedComment #138
volegerComment #139
mcdruidPatch for review is #114 which passes all tests.
D8/9 commit for comparison was https://www.drupal.org/commitlog/commit/2/2a4ea49e9c4eb88bfbc30a18588d4f...
I think this looks good, other than we don't need
t()
around the messages in the assertions:That can be fixed on commit if it's the only problem.
Comment #140
Fabianx CreditAttribution: Fabianx as a volunteer and at Tag1 Consulting commentedRTBC + 1, except for the t() I agree with that change, we usually use format_string().
This should also improve things for screenreaders unless I miss something. (Yeah, just saw the Accessibiltiy tag)
+1000
Comment #141
joelpittetRTBC +1 #113 for a while too.
Comment #143
mcdruidRemoved the
t()
functions in the test's assertions on commit.Thanks everyone!
Comment #145
codebymikey CreditAttribution: codebymikey at Zodiac Media commentedThis seems to have broken the "Edit summary" behaviour on Long Text with Summary fields with multiple cardinality.
https://stm60fecf90ca939-kv5vfpdqprkhiplfwfkqskyhd8w9ukjg.tugboat.qa/nod... (7.80):
https://stm60fecfa319da7-kx6gxlnflq7ymq2kz4ibtmcw5imklyjw.tugboat.qa/nod... (7.82):
The same bug exists on D8/D9 (#2817081: Show 'Edit summary' links on multi-value long text field with summary) presumably because of that same commit.
NB: The tugboat instance might expire after a couple of days.
Login credentials are u:admin p:admin.
Comment #146
codebymikey CreditAttribution: codebymikey at Zodiac Media commented