Google Doc

You might find the Google Doc for this meeting (from which the notes are copied) to be easier to consume and to include additional detail (e.g. comments) not present in this issue. If this meeting hasn't happened yet, find and add to the agenda in that doc anytime before the meeting.

Member Platform Meeting

October 21, 2025 at 10:00am CDT

Meeting Notifications, Agendas, Past Notes, Slack Channel

See [Meta] Member Platform meetings

Who is here?

Include your Drupal.org username in parentheses if you have one.

  • JD Leonard (jdleonard)
  • Luke McCormick (cellear)
  • James Shields (lostcarpark)
  • Erica Stevenson (speckles)
  • Eric Wheeler (sikofitt)
  • Steve Ayers (bluegeek9)

What Topics Should We Discuss? / Limited Human Notes

  • Recording
  • Quick introductions
  • Getting CRM to Beta
  • CRM Events
    • Next steps
      • Erica to draft spec
  • CRM + Commerce proof of concept for membership dues
  • Working session to follow the meeting for anyone interested and available

Action Items

Fathom AI Summary

VIEW RECORDING - 104 mins (No highlights)

Meeting Purpose

Review CRM beta blockers and plan the new CRM Events module.

Key Takeaways

Topics

CRM Beta Blockers

External Identifier Module Strategy

CRM Events Module Planning

Working Session: Testing & Onboarding

Next Steps

Action Items

  • Push primary entity reference/IEF code; notify James to style primary radio - WATCH (5 secs)
  • Fix relationship type config (Contact A=Person, Contact B=Household) - WATCH (5 secs)
  • Draft CRM Events spec (standalone module, start/end dates, state, signup limit) - WATCH (5 secs)
  • Message Martin re: SW Ontario Drupal Camp; intro Erica - WATCH (5 secs)
  • Refactor CRM unit test: move to fork, create MR, access=false, unique name, load by ID, no address regex, remove null casts - WATCH (5 secs)

Fathom AI Transcript

VIEW RECORDING - 104 mins (No highlights)

@0:05 - JD Leonard (modernbizconsulting.com)

I am not sure that everybody knows everybody here. I think we do. Luke, have you met? You have.

@0:16 - estevenson

We met when you weren't there.

@0:18 - JD Leonard (modernbizconsulting.com)

Yeah, that's right.

@0:19 - Luke McCormick

Perfect.

@0:20 - estevenson

All right.

@0:20 - Luke McCormick

We'll skip intros then, because I think you all know each other.

@0:26 - JD Leonard (modernbizconsulting.com)

Getting CRM to beta. Yeah. Steve, I see you're on the call. Would you like to take me by the horns here?

You do not see me. I sit corrected.

@0:41 - steven.ayers

Well, in terms of dependencies, the name module has some outstanding bug in its current release, but has been resolved in its dev branch.

And so it probably would be best if we didn't use the dev branch as a dependency. Okay. Thank But some sort of, you know, next release of the name project.

But all the other dependencies seem to be okay.

@1:11 - Luke McCormick

Are you able to hear me all right?

@1:12 - steven.ayers

I know that Zoom sometimes mutes me.

@1:15 - Luke McCormick

Perfect, yes.

@1:18 - JD Leonard (modernbizconsulting.com)

But Steve, is there an issue for that name module release already?

@1:23 - steven.ayers

Somebody opened an issue asking to make a new release of it. But there's also a handful of bugs or other issues that I've worked on that have either are in the process of being reviewed or have not been reviewed.

So a bit of a waiting game.

@1:44 - JD Leonard (modernbizconsulting.com)

I may break down and request to be a co-maintainer. I don't believe it. I feel like that would be admitting loss or something.

Conceding loss.

@2:04 - steven.ayers

In terms of the project itself, there are a handful of bugs that, you know, would be better, I guess, if they were addressed than not.

SCREEN SHARING: Jd started screen sharing - WATCH

But in terms of actual requirements, there's the primary entity reference field. And that project's dependency is getting the inline entity form to integrate correctly.

I guess you have some sort of thing. Oh, a search. Oh, you use tags. Interesting. I have never actually used tags appropriately before.

So kudos.

@2:43 - JD Leonard (modernbizconsulting.com)

have much to learn from each other.

@2:48 - steven.ayers

There is some cleanup work that probably needs to be done in terms of the CRM field slash CRM external module or submodule.

just타 Frame level. So. Right, there's a branch out there that does better stuff with it than what's currently in dev, but...

@3:12 - JD Leonard (modernbizconsulting.com)

Is it the external identifier field issue?

@3:18 - steven.ayers

So I should add a tag there, huh? Yeah, I mean, either it needs to be spun off as its own project, or the changes need to be completed and some other stuff done.

So, right, something has to happen to it before we decide to start supporting this with updates going forward, right?

So, I mean, can we resolve what that path should be on this call to help move that forward?

@3:51 - JD Leonard (modernbizconsulting.com)

No, because you're going to disagree with me.

@3:53 - steven.ayers

I mean, probably.

@3:55 - JD Leonard (modernbizconsulting.com)

That's arguably the point of meetings like this, to have those disagreements.

@4:03 - steven.ayers

I mean, I'm still kind of on the opinion that it should be included, but as a separate project, like a separate module and not enabled by default, not a dependency.

But the ability to map other contacts from other systems, do integration, not only is that, I think, pertinent to the community at large, but as RFPs, right, projects that might be willing to pay for, you know, software projects to do, well, they need software to do stuff, and this might just be used to accomplish those goals.

So, in effect, funding for the project, funding sounds like the wrong word. It would get used and contributed to.

@4:51 - JD Leonard (modernbizconsulting.com)

A bribe.

@4:55 - steven.ayers

I think it might advance the overall development of the project.

@5:03 - JD Leonard (modernbizconsulting.com)

So I guess in the interest of, well, I guess philosophically, do you feel like this needs to be a part of the beta release for there to be a beta?

Or is this something that can be added later?

@5:19 - steven.ayers

I don't know. I'll have more information later in the week. It comes back to what makes it more attractive for some of these potential contracts.

@5:33 - JD Leonard (modernbizconsulting.com)

Got it.

@5:37 - steven.ayers

I mean, making it a separate project isn't like a terrible idea. But I don't know if there should be one way to do this or not.

Or provide a preferred way to do this or not.

@5:57 - JD Leonard (modernbizconsulting.com)

What are we trying to do again, Steve?

@5:59 - steven.ayers

I didn't. Follow. Yes, that's because my explanation skills are not so great. So let's say you have somebody in, I don't know, a neighborhood association just randomly thinking of an idea here.

And they are in, let's say, your mailing list maintained by MailChimp, which has some sort of identifier associated with that email address or something to that effect.

And you're also using, I don't know, some sort of Canadian system to charge them that's like using Stripe under the hood.

mean, again, just random ideas here. And so those would then be a separate identifier. And so you want some way of mapping those with each other so you could do some sort of more advanced integration.

Hmm, Steve, that's a very random idea. I don't know where you would have gotten that from.

@6:56 - JD Leonard (modernbizconsulting.com)

So, okay, I guess maybe taking it up a level. video. couple notes. bit. I It's We'd love to hear everyone's thoughts on this.

There are lots of things that could ship as part of the CRM project, right, as like a submodule, right, or as a module in the project.

I guess what criteria should be used for determining what those things are versus what exists in separate projects? And I'm also thinking of all this in the context of it could make some sense for there to be some recipes that compose some of these projects, right, to sort of produce a more opinionated or more fully featured sort of out-of-the-box experience beyond just what ships within the CRM namespace.

Anyone?

@8:03 - estevenson

I know I feel like I'm still unfamiliar enough with the kind of Drupal sort of landscape to not really have an opinion beyond kind of that sounds plausible, if I'm being honest.

Fair enough.

@8:23 - James Shields

I think the member component has already been moved to a separate module, hasn't it?

@8:29 - steven.ayers

Yes. And the case management has. This is the only submodule left.

@8:40 - JD Leonard (modernbizconsulting.com)

And I should clarify, I actually think there's a decent case to be made that this should ship as part of the CRM project.

I'm just wondering about, do we, can we arrive at a sufficiently... ... A flexible solution, right, so that we're shipping something that is going to meet anybody's needs to track a connection with an external system.

An identifier, not a connection.

@9:14 - steven.ayers

I mean, it ships with a number of identifier types. think this branch, right, you have to go in to look at the code.

Or I'm just making stuff up. You know, that's another possibility.

@9:29 - JD Leonard (modernbizconsulting.com)

What's going on? If down, it should show you. There is where it is. Thank you. Yeah, yeah.

@9:35 - steven.ayers

See, CRM case external, I think that's been moved as well, since that was in the CRM case module.

@9:43 - JD Leonard (modernbizconsulting.com)

Contact external, interesting.

@9:47 - steven.ayers

So, right, there's a entity type or something that's a config, and you can use some sort of regex. can regex.

Thank Yeah, identity, external, excellent. So, right, what bundles does it qualify for, right? You might have a CRM that maps contacts and organizations as different entities inside of itself.

So its IDs aren't going to be sequential, right? You can have a person with an ID one and an organization with an ID one.

So, like, in Salesforce, that's how – well, in Salesforce, they use GUIDs, but same concept. So you would have overlapping IDs, or they could be the same entity type in the external system, so they wouldn't be overlapping.

So, you know, how is it unique, I guess?

@10:47 - JD Leonard (modernbizconsulting.com)

And this field type for tracking this, is this multi-valued, and does it support – your to notice. A way of denoting an external ID for one system plus an external ID for another system?

@11:07 - steven.ayers

Yes, and because I like creating redonkulous fields, and because you can have duplicate contacts, not just in your own.

You can have duplicate contacts in many CRMs, so you can include more than one contact ID and denote which one is primary.

Ah, , Steve.

@11:33 - JD Leonard (modernbizconsulting.com)

Hi, caramba. Interesting, the denoting a primary, like a primary external ID per external system? Yes.

@11:49 - steven.ayers

Oh, God, Steve, why? Why? Well, when I worked at Big Company, they used people. Cool. Cool. Highly modified. And their standard operating procedure is they usually hire people on as a contractor, and they get a person created inside the CRM.

And when they are brought on as full time, they don't update that contact in the CRM, they create a new one, because they're stupid.

And so you need to be able to denote which one's primary if you want to integrate with the system where you're, if you want to push data, rather than just pull data out of the system, you need to know which ID or which person you're trying to act on the behalf of or denote.

@12:48 - Luke McCormick

All right, let's, let's look at this briefly from sort of an 80-20 perspective, although the, it's going to, it's going to be more lopsided than, than that.

good question. Thank But clearly, we're talking about things that are in the 20, that are edge casey, as opposed to the 80.

So we don't want to ignore those. Those are important. But the question I want to ask yourself in that case is, to handle the edge case, how much are you harming the majority case?

I don't think you Then do it. I mean, right.

@13:26 - steven.ayers

Like, it's not a – you don't have to have this installed, right? You install CRM, and this is just another module that's there.

Ah, so it'll work without it.

@13:36 - Luke McCormick

This isn't a required thing, then. But – Full speed ahead, then. Is there any reason not to do it?

@13:45 - steven.ayers

Not really, other than where – I don't think there's a lot of growth around the CRM ecosystem, right? There's not, like, competing modules to do membership or case management.

So, So… Thank So I don't think there's like a reason to spin it off. And it's different than other entities that you might map to an external system because like articles, for example, are only, should really only be in one external system, right?

Like you wouldn't have the same article in two different systems or hopefully not. Case management certainly would be one-to-one, right?

You're not going to have two different support cases and two different, unless there was some sort of migration in the process, right?

So.

@14:42 - Luke McCormick

Even though it's still one-to-one, I mean, you're going to have a primary current case in that case. you're not going to update two things at once, right?

@14:52 - steven.ayers

Like if you do updates, there's a single target and it better not be any other target, better not be more than one.

So let's see. So let's get started. Okay. But I can't really think of anything other than users who would be, have multiple entries across multiple systems, and each system they're in can potentially have duplicates.

@15:11 - JD Leonard (modernbizconsulting.com)

You mean users or contacts?

@15:14 - steven.ayers

Well, no, I'm just saying as any, I can't think of a different, any other entity type at all, like, that has the same sort of potential for multiple IDs.

Right, like, user sort of, but not really. I think that's a distant second in terms of complexity or edginess.

But, yeah, it doesn't need to be installed. And so that's maybe the reason why we might want to spin it off as a second separate project, because it's not required.

And so we would have benefits, like being able to track who is using it. But also, there's the downside of they have to know where it is and discoverability.

@16:07 - Luke McCormick

Yeah, I mean, you said that there's no downside to the majority case, but anything that adds extra detail, extra complexity, adds to the tech debt, for one phrase.

So it does harm the general case if it has to be tracked, right, if it has to be thought of and considered and searched through, and, like, it makes the haystack.

@16:34 - steven.ayers

Like, it's not, like, it doesn't change the behavior of how the contacts work.

@16:46 - JD Leonard (modernbizconsulting.com)

So I'm, I'm, go ahead, James.

@16:50 - James Shields

I was just going to say, and even if, even if it's a sub-module, people still have to know there's an extra, there's an extra module to install.

Although, if it's installed by a recipe, then that wouldn't necessarily be a problem. So I suppose if we have a recipe that installs this...

@17:17 - steven.ayers

I think the biggest downside to including this is that it has to be working to include it with a beta release.

@17:25 - James Shields

Good point.

@17:25 - JD Leonard (modernbizconsulting.com)

I agree with that. I think more generally, the point about discoverability of this, I think applies also to a whole bunch of other things that will be outside of the CRM project itself.

So I think we have to solve those problems anyway and provide some handholdings as far as documentation, maybe even stuff on the page of the CRM project saying, hey, here are some recommended modules.

Here's how you might use them. So I don't know. I don't know how... There's that big a negative to it not being in the CRM namespace, but I don't feel strongly.

@18:06 - James Shields

Yeah. And if we are encouraging people to install a Recipe, then Recipe can install multiple modules very easily.

@18:18 - JD Leonard (modernbizconsulting.com)

I mean, I think it also goes back to the overarching difference in some ways between this Drupal CRM and other CRMs.

The other CRMs are much more available out of the box, sort of ready to use in general, right? Whereas here, we're providing the building blocks, right?

Like, as Steve, you like to say, this is a glorified address book, right? I don't say it's glorified, JD.

I've outed a previous conversation. So I guess I'm kind of, I'm just thinking like... ... ... Thank you. I don't know.

I'm struggling to come up with a strong opinion on the matter, so I guess whatever.

@19:08 - James Shields

I don't think it's something we need to decide right away.

@19:12 - steven.ayers

I mean, other stuff has to be done before we can make a beta release, so I'm not... If we were sitting here and the only thing stopping us was this and the name module, then...

@19:24 - JD Leonard (modernbizconsulting.com)

Sure. It's not. So then, next steps for this is, do think, Steve, you thinking about it, or is there something more?

@19:38 - steven.ayers

I'm going to have a meeting later this week, and I'll have more information next week.

@19:44 - JD Leonard (modernbizconsulting.com)

Very good. Where were we? We were on... I'm going meeting later week, I'm going to have meeting I'm meeting later I'm to later week, I'm have Thank you.

I thought I had a comment ready to add to that project. Well, it's gone away. Do you have a breakdown of cholesterol levels?

Breakdown of cholesterol levels? Yeah, for your beta blockers. Ah! Boo.

@20:32 - steven.ayers

You know, when I was a child, I wanted to be a comedian. All the other children, they laughed at me.

Well, they ain't laughing now, are they?

@20:57 - JD Leonard (modernbizconsulting.com)

All right, what else do we have for beta? very good. Blockers.

@21:13 - James Shields

Are there any of these issues that would be good for someone to take on and work away on?

@21:32 - JD Leonard (modernbizconsulting.com)

Steve, what's your thought there? I'm halfway.

@21:37 - steven.ayers

I'm in the middle of two of these issues that we just talked about, so probably not, right? Here's a half-completed merge request, or it's not even a merge request, but figure out what I was thinking in this process.

Go.

@21:52 - James Shields

Well, I mean... Well, I mean... And would any of the ones that you aren't currently working on? They could be.

@22:07 - steven.ayers

We could take a look at them. I don't know if any of them, though, are actually beta-blocking issues.

@22:16 - JD Leonard (modernbizconsulting.com)

So these are the ones that we have flagged as potentially beta-blocking. Do we want to do a quick triage on those?

@22:23 - steven.ayers

Well, I mean, these are bugs. mean, some of them are. Yeah, let's go through the list.

@22:34 - James Shields

All right.

@22:35 - JD Leonard (modernbizconsulting.com)

So we've got saving a blank person contact breaks the admin content CRM contact page.

@22:42 - steven.ayers

This is a duplicate of another bug, I believe. If you don't give the person contact a name, their label is blank, and so bad stuff happens.

One of them, I think, is assigned to me, and I was doing something where I fixed the form. Yeah.

Yeah. So you want to close this other one as a duplicate? Let's take a look at the change on the other one first.

@23:09 - JD Leonard (modernbizconsulting.com)

Okay.

@23:15 - steven.ayers

Yeah, what I want to do is move it from the form into the entity. What do you mean by that, Steve?

Well, if in the pre-save function, if the label, the name doesn't is blank, we give it a name by using the contact type plus the UUID, which is what we're doing here.

But this is inside the form, and so it, quote, works unless you're importing contacts, which, you know, no one will ever do that, right, if it doesn't have a proper name field, right?

@24:02 - JD Leonard (modernbizconsulting.com)

Wait, are you saying that in the UI, if I submit a contact with an identical name? With a blank name.

@24:10 - steven.ayers

With a blank name, okay. If you submit an organization or a household, the name field is required, but I don't know.

Either we don't have any of the subfields on name required, or if you make them not required, you can then submit it without putting in anything for the name field.

So in the pre-save function, then, we are setting the name to be blank, which then causes these other issues.

@24:43 - estevenson

Yeah, no, inside my opinion, you're probably good in terms of the submission form to just, if a name is blank, just reject that because it's a required field.

And arguably, currently, the bug is that it isn't rejecting that for kind of... People contacts. Well, which subfield are you going to make required?

Presumably, you have to have at least one of them?

@25:11 - steven.ayers

Yeah, but which one?

@25:13 - estevenson

Well, no, of these three, at least one must be filled. So kind of like I'd probably do the requirement if this field and this field and this field are all blank, reject it as kind of not enough information.

@25:26 - steven.ayers

Well, that's something for the name project then.

@25:29 - estevenson

Mm-hmm. Yeah, that, mean, kind of another way to potentially simplify it, if we're going for kind of a beta, is we just make person contact like the other two in terms of names.

So that, yeah, that I'm not sure what the right, well, no, mean, fixing the name project is probably the right approach.

But I think in terms of desired behavior, it would be that if you need this field because we need a name to exist, that it rejects it if- If

Name doesn't exist.

@26:02 - JD Leonard (modernbizconsulting.com)

I would argue that a contact does not necessarily have a known name, right? I may be just putting in an email address for somebody, right?

Okay. I might not know their real name or any name to call them by.

@26:20 - estevenson

Well, I mean, that's fun because email address is not a required field. Um, so no, I mean, you can definitely like add to the complexity that if you don't have a name, but you have an email, then you have kind of the pre-save function, make the person's email their name.

Um, you know, kind of that, that, that's just, um, that's adding kind of an additional field that of these four fields, at least one must be filled.

@26:47 - JD Leonard (modernbizconsulting.com)

Um, I kind of like that approach, but I'm concerned about then, um, now you might be exposing their email address publicly or something in the process.

@26:57 - estevenson

Yeah, that's a problem. Um.

@27:03 - JD Leonard (modernbizconsulting.com)

I think the approach that we're looking at here, you know, does something.

@27:10 - estevenson

I mean, probably then the behavior I'd imagine is if the email field is full, then you just make, then you can pick the name unknown because you'll kind of, you don't want it that someone clicks a form, you know, kind of like accidentally and, or just, yeah, is able to just, completely flood your database because, yeah, clicking a form with nothing in it is logically not desired behavior.

What you could have is that if you just have an email or phone number, that is considered enough that then you kind of have either unknown or an auto-generated kind of name.

So that, you know, kind of, do have an identifier. It isn't exposing sort of, you know, private information or identify.

@28:22 - JD Leonard (modernbizconsulting.com)

I agree, but I think it's tricky because we don't know what the set of fields is going to be on a given instance of this, right?

Like, somebody might be hiding a bunch of the fields that we provide out of the box anyway and using their own fields.

So if we make an assumption about which fields to check for the presence of the value, right, we might be inadvertently preventing somebody from actually using the system.

@28:47 - estevenson

I mean... Site builders can also define which fields are required and which ones aren't. Yeah. I mean, we could...

To me, kind of the workaround, if you make... The name field required, even if you kind of don't really know, is that the person could manually type in unknown or their own identifier.

You know, kind of that just because we reject it, if there is a name, like there is a workaround for kind of the user.

@29:19 - steven.ayers

So that doesn't resolve the issue of importing data? Yes. No, we're going to go ahead and set the name field to the type plus the UUID.

@29:29 - estevenson

Yeah, that, know, pretty much that to me, having that as part of an import makes sense and having that be the kind of the default behavior.

And then I think, yeah, my opinion is in said addition to that, you know, kind of for specifically the form people entering stuff, like it's fair enough for that to kind of be considered.

I don't know, kind of just having it auto generate the name is another way to just fix it. I don't know.

And it's more just sort of like the QA person that, you know, kind of like, but if I am clicking the form as a QA person, it shouldn't work, but that's just me being touchy.

@30:13 - JD Leonard (modernbizconsulting.com)

So I do think there's value in there being something on the entity label for somebody to click in a view or list of contacts, but that doesn't have to be stored as the entity label itself.

Right. Like they're, I mean, I guess I don't know whether it makes sense to populate the database with a bunch of sort of UUIDs, right, in this field.

And then we kind of, you know, more or less stuck with that until you go and address it.

@30:54 - estevenson

No, and then if you do have the UID field and then someone does come back and kind of enter the name.

UID you Should updating the name change kind of that label?

@31:04 - steven.ayers

Yes.

@31:08 - JD Leonard (modernbizconsulting.com)

I would also say yes.

@31:16 - estevenson

So, yeah, like, to me, kind of, again, the ultimate discussion is should we be closing one as a bug?

Sorry, as a duplicate. And to me, kind of the answer to the question is that, yes, when importing, having it automatically generate kind of the data we need, if it's not there, just seems like a no-brainer.

Definitely, that should be import behavior. Do we care about the form having different behavior? Because, yeah, that, know, kind of from a user expectation that, you know, kind of, yes, I have given this system to someone else.

They kind of only enter the email address. They kind of... I of hit enter, and then I get sort of this weird thing.

Do I come back to the project and complain about it because this isn't the behavior I expected? And, you know, kind of, so long as we're kind of cool saying that that's expected behavior, then that seems fine.

That just seems like a thing that people would complain about. So do we want the form to have slightly different behavior than the import would be the question?

And if we don't, then it's a duplicate ticket.

@32:28 - JD Leonard (modernbizconsulting.com)

I think it's fine for it to be different. But I don't feel strongly. Steve, what's your gut here?

@32:41 - steven.ayers

I mean, it's the same issue. It's giving the error because the label is blank. Right, the other issue that's giving you an error message about not being able to go to an overview page.

It's an error because the label is returning null into HTML. It's escape, which in PHP 8.3, I want to say, is an error.

Or is it PHP 8.1? I don't know. In PHP 8, passing null into escape is a no-no.

@33:15 - James Shields

I think I might be PHP 4, actually. 8.4. But anyway, it is deprecated.

@33:29 - JD Leonard (modernbizconsulting.com)

So, this one, what are we doing here? Sorry. I'm all twisted around.

@33:40 - steven.ayers

If you go to look at the contacts.

@33:45 - JD Leonard (modernbizconsulting.com)

Can I go to look at the contacts? Yeah, like a list of contacts, the admin contact list. Yeah. It gives you this error message.

@33:56 - steven.ayers

If you submit a contact without a name. Right. The, the other bug we were just looking at. Yeah.

@34:04 - JD Leonard (modernbizconsulting.com)

So, so then in this, so in this one, we, we need to adjust the label.

@34:08 - steven.ayers

No, we don't need to do anything here. We don't?

@34:11 - JD Leonard (modernbizconsulting.com)

Yeah.

@34:12 - estevenson

The other one, we'll ensure that it always has a label.

@34:16 - steven.ayers

So this will never be an issue. Yes.

@34:19 - estevenson

Yeah. That to me solves it. But I mean, I think there is an argument that if the person is entering it, there ought to be a label.

And then, you know, kind of, it gets just rejected as required. Same way for the other two kind of stuff, which is also arguably a problem when importing.

So kind of for those ones, at least right now we would have kind of.

@34:42 - steven.ayers

It's the same.

@34:45 - estevenson

They're, they're all the same entity type.

@34:46 - steven.ayers

So it's the same hook for the pre-save. So it would affect them all. Mm-hmm.

@34:55 - JD Leonard (modernbizconsulting.com)

Okay. But do we agree with this? As a beta blocker?

@35:04 - estevenson

Probably not, to be honest.

@35:09 - JD Leonard (modernbizconsulting.com)

Erika?

@35:10 - estevenson

I would agree that so long as it's fixed inside some form, it's not a beta blocker. And yeah, kind of this imaginary kind of debate I'm having with this imaginary person can wait until we have a beta and see if anyone actually complains.

@35:25 - steven.ayers

I mean, again, like site builders, you can make any of these fields required. It's just the out-of-the-box, we don't require any of them.

@35:34 - estevenson

Simply because we don't know which ones you want, right?

@35:40 - steven.ayers

So yeah, they can fix it themselves.

@35:49 - James Shields

So yeah, no, no, no.

@35:50 - estevenson

Then it's a duplicate ticket. So it is a beta blocker, but the other one can be the beta blocker.

@35:59 - JD Leonard (modernbizconsulting.com)

Wait.

@36:00 - steven.ayers

I'd like to have the other one fixed, but it isn't really affecting the schema, right? It's just some code.

Like, it's not a schema update, so I would be okay with going forward with a beta release and fixing it later if that's how things panned out.

But, like, half the code's already there.

@36:32 - JD Leonard (modernbizconsulting.com)

I feel on the fence. But, yeah, I mean, it seems likely, Steve, that he'll probably get to that soon anyway, right?

@36:42 - estevenson

I mean, we could leave it on this project, just kind of... The issue is kind of a blocker because it needs to be solved inside some way.

And then this one can just exist on this project and be updated when the other one's fixed? I don't know.

I'm not sure which projects you're referring to. I mean, sorry, what's the other ticket that this is a duplicate of?

Okay, then yeah, then this one we need to kind of label it the beta blocker, I think. It'd be nice if it was fixed, but I don't think it's blocking a beta release.

@37:27 - JD Leonard (modernbizconsulting.com)

I mean, I think absent defined criteria for what blocks the beta, then it's, we're, you know, kind of, I mean, I think everyone would agree on that.

just mean, the project hasn't documented, you know, what counts kind of toward that, so it's just a bunch of opinions, right?

@37:53 - steven.ayers

I guess what I'm saying is that this won't require any hook update end functions to fix, so... Yeah.

@38:03 - JD Leonard (modernbizconsulting.com)

I mean, I agree with that. think it's, I think it's fine to, I don't think anybody is going to be harmed by this not being a beta blocker, right?

It just means that the quality of the beta is not so great, right? Let's move on. Okay.

@38:24 - estevenson

Mark that one as duplicate and close it. Got it.

ACTION ITEM: Push primary entity reference/IEF code; notify James to style primary radio - WATCH

@38:28 - JD Leonard (modernbizconsulting.com)

So that's done. We talked about external identifier and Steve, you mentioned the primary entity reference inline entity form integration.

@38:39 - steven.ayers

Yeah, I've got code on my local machine here with that working, but I need to align the radio button that you use to denote which one's primary.

So it doesn't look bad. Do you want to see if you can pawn that off on somebody here? I need to look at my local code.

See if I've committed it or we can look at it now, but. I mean, yes, I would need to push it forward, I guess.

@39:16 - James Shields

Would it make sense to, well, I assume it's mixed up with other stuff, but if it was possible to push that, maybe somebody else could look at making it look pretty.

@39:28 - steven.ayers

That's what I'm thinking, yes. Um, any takers?

@39:33 - JD Leonard (modernbizconsulting.com)

I can have a go. All right. So, Steve, you're on deck to push code and let James know.

@40:12 - James Shields

Thank you.

@40:17 - JD Leonard (modernbizconsulting.com)

We've got... You can't install it now after you uninstall it.

@40:24 - steven.ayers

The comments just don't work. So that's why it's still open.

@40:30 - JD Leonard (modernbizconsulting.com)

Got it. When you reinstall it, the comments don't get installed correctly. And so, Steve, in your opinion, is this a beta blocker?

there...

@40:48 - steven.ayers

Not... Well... Potentially the fix affects the schema, maybe? Yeah, it's some configs. I'm just thinking in my head how difficult is it to add the dependency.

To the config, you know, hookup update end function rather than not. So I don't know. We can leave it as a beta blocker.

You mean this might be easier to fix once there is a tag release? No. Okay.

@41:17 - JD Leonard (modernbizconsulting.com)

All right. But I don't it's really going to be hard.

@41:20 - Luke McCormick

Would it be unreasonable to rename that issue? Because the title is misleading. I mean, you can install it. It just has bugs.

@41:32 - James Shields

Or close that one and create a follow-on.

@41:38 - JD Leonard (modernbizconsulting.com)

Steve, seeking your direction.

@41:40 - steven.ayers

Oh, I don't think we need to create another issue.

@41:45 - Luke McCormick

No, I just want to rename it.

@41:47 - steven.ayers

Yeah. Yeah.

@41:50 - Luke McCormick

Comments no work after reinstall?

@41:54 - JD Leonard (modernbizconsulting.com)

Better if awkward.

@41:58 - steven.ayers

JD corrects my speed. Speaking, and I correct his spelling.

@42:02 - Luke McCormick

There we go.

@42:03 - James Shields

Yeah, perfect.

@42:05 - Luke McCormick

And now it accurately reflects the...

@42:08 - JD Leonard (modernbizconsulting.com)

Much success. All right, we're at household field in the ad head of household form doesn't work.

@42:19 - steven.ayers

I'd believe it.

@42:25 - estevenson

Yeah, no, I remember that. Just when I did that sweep for bugs.

@42:33 - steven.ayers

I don't think I've looked at this. So anybody want to look at it?

@42:42 - estevenson

I did try to sort of, yeah, describe all the steps I did to do it. But yeah, pretty much if I were to manually enter, so what I think is specific...

Perfectly broken is the lookup, yeah, like as you are typing stuff in, it's supposed to do a lookup of, I think it was a household.

If you kind of manually type in something and kind of with like the brackets for the ID and submit it, that works.

But yeah, it's specifically that it's, yeah, that the look, it won't be able to find the contact. Yeah, no, and it'll just kind of like keep on sort of submitting as blank.

But the submission itself does work. So like theoretically for member platform, just because member platform isn't going to be using the form directly, that's potentially fine.

@43:52 - steven.ayers

I mean, I don't think it's a, it's clearly a bug, but it doesn't sound like it's like a database schema issue.

Which, we can do updates to those. It's not that I, we can't do that. It's just we have a few of those updates in our pipeline, so why not include those as an alpha, not a beta?

@44:18 - JD Leonard (modernbizconsulting.com)

You lost me.

@44:21 - steven.ayers

There's a few things we have to do with this schema involving the primary entity reference, and since we sort of already know that's on the plate, my thought is to get that in and not write an update function for it, because that seems like a pain in the .

@44:39 - JD Leonard (modernbizconsulting.com)

We don't need to write update functions until after beta 1. Correct.

@44:44 - steven.ayers

Or, I don't know, if we make an alpha and then do releases for the next one being beta, or if we do a beta and releases after that, I don't really have an opinion, but the thought process is we have one, maybe two more releases before we're providing hook.

Update ends, right? Or update functions? Sure.

@45:06 - JD Leonard (modernbizconsulting.com)

Do you feel okay with this being a beta blocker as some key features sort of not functioning? I mean, it seems like a bug.

@45:21 - steven.ayers

I'm still waiting for my local environment to start up for me to look at it to give you a better explanation.

All right.

@45:31 - JD Leonard (modernbizconsulting.com)

Yeah.

@45:33 - estevenson

Let's come back to that.

@45:34 - JD Leonard (modernbizconsulting.com)

Here we've got denote which address phone email is a contact's primary, which is to use the primary entity reference.

So that's the work we already know about.

@45:42 - steven.ayers

Yeah. Not exactly a duplicate, but implementing the changes done in the other project.

ACTION ITEM: Fix relationship type config (Contact A=Person, Contact B=Household) - WATCH

@45:50 - JD Leonard (modernbizconsulting.com)

Right. These are across two projects here. Does anybody have anything else that they feel like is? All right. Maybe we move on to CRM events.

@46:13 - estevenson

No, and I didn't get- found the bug.

@46:17 - JD Leonard (modernbizconsulting.com)

Oh, you did?

@46:19 - steven.ayers

I don't know if I want to really even call it a bug. So if you go to the form to edit the relationship type, contact A is the person, and contact B is supposed to be the household, but it's blank.

So either way, we'll have this one fixed by the end of the day.

@46:38 - estevenson

Okay. Cool, cool.

@46:43 - steven.ayers

Not so much a bug, so much as misconfigured.

@46:52 - JD Leonard (modernbizconsulting.com)

All right. CRM events. Erica, you want to talk a little bit about the next steps here?

@47:01 - estevenson

Oh, I didn't end up getting started in this because I really wanted to finish for sort of something for that one unit test that I said I was going to do for CRM.

So I do have code for that. But yes, for this one, I'm willing to, yeah, sort of like try to take next steps.

I know, yeah, pretty much I am just going to be reviewing the forms as they are in order to sort of figure out what are the current expectations.

No, I was going to do this yesterday, but then kind of stuff came up.

@47:38 - JD Leonard (modernbizconsulting.com)

When you say review the forms as they are, what are you referring to?

@47:41 - estevenson

Oh, kind of like we already have, like, I'm just thinking of the sort of, well, between the mock-up notes and the sort of requirements.

There's certain assumptions about kind of like what event fields are going to be there, which I think are pretty standard.

That, you know, kind of there is going to be a start date. There's going to be an end date.

There's going to be a description. So far, the biggest confusion that I've encountered, and it wasn't even for our project, it was for Event Platform, is that I know inside, for example, inside Google Calendar, there's the expectation that I can, on that highly advanced thing that's above what we need, select the event, drag it down, and it'll automatically kind of recalculate based on the established duration, or kind of I can stretch it out.

So theoretically, even though we don't currently have a duration field, we might want to add a duration field, just because that's pretty standard.

Yeah, a lot of people now expect calendars to work that way, that I can either change kind of the end date, or I can sort of like drag the start date to a different time and have it remember, if that sort of makes sense.

Aww.

@49:00 - JD Leonard (modernbizconsulting.com)

So from the data model perspective, though, right, the event has a start date and or time, right? A start date and possibly a time on that date?

@49:12 - estevenson

Yeah, so kind of that, so yes.

@49:14 - JD Leonard (modernbizconsulting.com)

But the duration may or may not be present, right? And the end time may or may not be present.

Presumably only one of those is part of the data model, like the schema, and the other one is just exposed in the UI.

@49:29 - estevenson

Yeah, that, so yeah, I know for event platform, they have basically start date and duration because they're kind of like sequence of events is people sort of, I am, I want to have this talk, it will kind of like, be this long, and then kind of, then once they've been accepted, they get put inside the calendar and kind of moved around so that everything fits.

So for them, the sort of model is start date and then duration with kind of start. Date only really being assigned when, yeah, when it's scheduled in, versus you can have start date, end date, which is just sort of our thinking, which is the more simple version.

And then you can have something like Google Calendar, and I don't know how their backend works, but from a user experience kind of way that they expect to be able to do both, where sort of, I have this event, oh, I want it to be two hours longer, I drag this down, versus I want it to be two hours later, I sort of put this down.

So, yeah, that was sort of the main debate that kind of came up as I was sort of doing it so far.

I feel like I haven't done, like, enough of a review to see if I can spot anything else. I don't think there's anything else, but, yeah.

I'm personally, I'm not that concerned with, like, how closely we're doing things compared to event platform. Like, they've got a mandate, right?

@50:59 - JD Leonard (modernbizconsulting.com)

Thank you. you. Thank As long as the two can coexist peacefully on a website as sort of minimum bar, and then it would be nice to be able to have a site like that, maybe support event platform events, having registration for contacts as opposed to users.

But that seems like a way further down the road kind of thing that would require a change, a big change to that.

@51:31 - estevenson

So I think kind of the one decision point is, do we just want to have start date and end date for us?

And then if there's any kind of duration silliness, that's handled by front-end UI. And that to me would make sense.

It's just like, it's complicated enough that it's worth kind of having a discussion about it.

@51:52 - steven.ayers

There's an age field that exists inside of CRM, and it's a computer. So if you look at contacts, they have a start underscore date and an end underscore date field, and so do the relationships, and they both have an age field, and the age field calculates based off of, like, you have to have a start date, obviously, otherwise it's going to be blank.

If you don't have an end date, it uses the current day as, you know, an end date to calculate the age, so write for contacts, how old are they, you know.

And if you include an end date, it will include, it will calculate the time between the two. Yeah.

@52:41 - estevenson

So yeah, no, and then if later on we wanted to have kind of a front end thing that was smart enough that if, yes, I want the option to be able to sort of move an event without having to kind of change the end date, which is nice to have, it's not, it's not a beta thing, then that age field could serve as.

That calculation. So that probably solves the issue. And yeah, it's just a matter that we're deciding that, yeah, we're just doing start date, end date, and duration.

also a duration field.

@53:13 - steven.ayers

Oh, okay, there is a I mean, we could sit here for a while about different options. We're thinking about using that for membership to determine how long a membership lasts for per unit cost.

Mm-hmm.

@53:28 - estevenson

Bye. I know kind of the model that we are using is meetup.com, and I think that is kind of start date, end date.

Yeah, so my vote is keep it simple. Simple.

@53:49 - JD Leonard (modernbizconsulting.com)

And then yes, kind of.

@53:51 - estevenson

It sounds like we have different options for having a computed field for duration. Um, and yeah, that, I mean, kind of the, the objections are.

Actually, like, either kind of integrations that don't need to happen, or kind of super far inside the future functionality, where this is sort of already whale past beta.

So, yeah, I would be happy to start date, end date, and then let duration come up when we actually need to worry about it.

But, and yeah, like, that was the only one that I think was kind of weird. But yeah, for event, so I'd want to do kind of just a review of what's there to see if I just sort of, there's something that is assumed to be there that I didn't think of.

But yeah, it's just end date, start date, description. Um, we have a few flags that, like, you know, kind of sign up limit, um, I remember where we want to have kind of so many members.

few flags, um, um, um, have have few Event state. We're kind of like, yeah, I can't remember what all that was.

Like, do we want to? Yeah, we wouldn't have a draft state right now. We would have kind of happened, you know, kind of like is going to happen or has happened.

@55:21 - JD Leonard (modernbizconsulting.com)

And Eric, I know we've just hit the official end of our meeting. As usual, I'm going to stick around and invite anybody else who wants to stick around to keep working on some things.

@55:30 - estevenson

But certainly everyone should feel free to disembark whenever they choose.

ACTION ITEM: Draft CRM Events spec (standalone module, start/end dates, state, signup limit) - WATCH

@55:38 - JD Leonard (modernbizconsulting.com)

Bye, Luke. So, Erica, do you want to keep talking through anything about events? Or do you feel like you've got enough to go on for next steps and then maybe come back next meeting with some specific questions?

@55:56 - estevenson

I think I have enough to sort of like get started. And yeah, just sort of come up with a spec.

I don't actually think the spec is going to be that complicated. Because, I mean, that's sort of the agreement is that we don't want something complicated.

So I think I know what I'm doing. If I had people's time, I'd more kind of want, you know, kind of like, could we go over what I did for creating that unit test for CRM?

Because, yeah, I leaned on AI way too hard. Yeah, kind of like, and I'm still trying to figure out how do I become Drupal fluent enough in order to contribute to code.

But, so yes, if I was being selfish, I'd rather have time focusing on that than events, which I think, yeah, I can create something to start out with.

And then that can be sort of talked over, I think, with what I have.

@56:53 - James Shields

So are we thinking of tracing a new event entity for CRM?

@57:00 - estevenson

Yes, that, you know, kind of, we sort of talked about this, yeah, during that one meeting that, yeah, JD was sort of gone for, that we probably want to do a lightweight CRM events plot sort of thing.

Okay. You know, that if there is an integration sort of later, yeah, like that happens later. And for now, we just have, we're going, that was the general sort of thought that I had.

And there was people who kind of were more into the event platform inside that meeting, and they seemed on board, you know, kind of with the caveat that they prefer something light, as opposed to sort of, because, yes, if there is an everything project, it'll happen down the line once they've sort of more addressed it, because, yeah, their project is currently very coupled.

Yeah. So. And so as with, as with everything, right.

@57:59 - JD Leonard (modernbizconsulting.com)

Right. Like, there will be some stuff that sort of lives in a CRM sort of namespace-y thing, right? And then we may get some much more opinionated things that are member platform-specific that, you know, add on top of that.

And so I think as we think anything through including this, right, we should be thinking about, well, what's generally applicable, right, to anybody who's going to want to use this thing versus something that is really specific to what member platform is trying to do, in which case we might have a...

member, you know, member platform events module or something that we could add on, right?

@58:34 - estevenson

Yeah, but I think kind of the actual thing won't be that complicated because that's sort of the desire that if there is an everything project that kind of is worried about, yeah, event platform or whatever, that that could happen inside the future and potentially supersede this.

Or this can become the everything module, but it's going to start out very light.

@59:01 - JD Leonard (modernbizconsulting.com)

Yeah, mean, personally, I can't see event platform turning, I can't really see them turning into something that accounts for what we're doing.

I don't really see those two merging that way. The only way I could see them merging would be whether if event, if there's just a tighter opportunity for integration between event platform and CRM events.

Hmm.

@59:32 - estevenson

And I fully agree with that. I just, yeah, like, it came up a little bit inside discussion. But even they were like, even, even the staunchest advocate for kind of like, inside that meeting was like, yeah, let's, let's do CRM events as its own module and worry about that inside the future.

@59:53 - JD Leonard (modernbizconsulting.com)

Okay, cool. And is this one going to be a standalone module?

@59:59 - James Shields

Or not? No, not. Sign-alone or two, but as an independent module as opposed to a sub-module.

@1:00:07 - JD Leonard (modernbizconsulting.com)

Yes. Right, Steve?

@1:00:13 - steven.ayers

That's my understanding. would be a separate project.

@1:00:16 - estevenson

Yeah.

@1:00:23 - JD Leonard (modernbizconsulting.com)

Very good. Anything else on events? All right. So next up on here, I have CRM plus commerce proof of concept for membership dues, which is my crazy plan to try to put something in production with CRM in six days from now, which I think is not realistic for a number of reasons.

But I am hopefully going to still get a Drupal commerce with... Stripe integration for my neighborhood association in that time frame, including syncing contact information over to MailChimp, which I'm hoping I can just leverage the existing MailChimp module.

That's my hope because I really want to get off of our existing Zephi payment processing platform for a variety of reasons.

And the reason for that deadline is because we basically start accepting memberships for our 2026 calendar year at our fourth quarter meeting, which is October 27th.

Although we don't strictly have to do that, so I might just bump it anyway. But in any event, I wouldn't seek to introduce CRM into that equation until it's at least at beta so that I can sort of count on schema updates, et cetera.

But I would look to dogfood CRM in that way. As soon as I can. Anybody have any questions or comments on that?

@1:02:10 - estevenson

I'm trying to track gang members in Colorado.

@1:02:15 - JD Leonard (modernbizconsulting.com)

How is more, Steve? Oh, no.

@1:02:18 - estevenson

mean, it's just an RFP we're applying to.

@1:02:22 - steven.ayers

The state of Colorado wants a gang tracking database. That would be an interesting kind of use case for client relationship management.

I was thinking, I can only imagine the demographic requirements they would have. Because they're government, so they're probably required to have certain labels, right?

From the 70s.

@1:02:52 - estevenson

It is a valid use case. Very good.

@1:03:00 - JD Leonard (modernbizconsulting.com)

Um, okay, I have working session on here.

@1:03:04 - estevenson

Um, I know kind of another thing. I know that I'm going to be going to the kind of, um, going to go to my first sort of Drupal Con inside sort of Kitchener inside, um, yeah, southwestern Ontario.

Um, and is there anything I should be on the lookout for that? Um, like, I think I'm just going to be going, but I figured I'd just mention it in case, like, people want me to print out pamphlets or something.

I don't think so.

@1:03:32 - JD Leonard (modernbizconsulting.com)

I would encourage you if, uh, they have it to host a, a boff, right? Like a birds of a, a birds of a feather, um, and a sort of informal gathering of people, but at a specific time, usually Drupal conferences have like a way to sign up sometimes on the day to just sort of host one of these things.

Um, and then, you know, give you a conference room or whatever it is and people show up and you talk about whatever.

Um, so.

@1:04:04 - James Shields

I tried to do one in Vienna, but nobody showed up for it. think I just picked it at the same time.

I think you can see what ones have already been accepted when you submit it, but I think somebody submitted an AI one at the same time after mine, so everyone went to that instead.

@1:04:30 - estevenson

Yeah, I mean, I suspect what actually would probably make more sense for me, just because I've never gone to a DrupalCon, would be to try to go to one and kind of see sort of what it's like.

But if I see an opportunity, I will, and otherwise I'm just going to be informal about it.

@1:04:48 - James Shields

Is it a con or a camp?

@1:04:51 - estevenson

Um, it, I should double check this. I believe it's just a camp. Um, so kind of south. Northwestern, Ontario, Drupal.

Yeah, it's a camp.

@1:05:14 - JD Leonard (modernbizconsulting.com)

And Eric, have to apologize. I failed to mail you the little business card size promos. And that's something that maybe I can do better for you, Erica.

@1:05:24 - estevenson

Well, mean, like, yeah, like, I only sort of, I only just learned about it, that there was going to be one that was so close to me.

You know, kind of. So, yes, I'm sort of dropping this last minute, but I think I'm mostly just going to be going there for me.

And if I do see a way to sort of talk it up, I will.

@1:05:47 - steven.ayers

Will Martin be there, JD? I don't know. I mean, isn't he, like, from London, Ontario?

@1:05:57 - JD Leonard (modernbizconsulting.com)

Seems likely. He is, yeah.

@1:06:00 - estevenson

I mean, that would be lovely to be able to sort of network with someone a little bit more experienced.

ACTION ITEM: Message Martin re: SW Ontario Drupal Camp; intro Erica - WATCH

He goes to everything, so.

@1:06:08 - James Shields

Okay.

@1:06:08 - steven.ayers

That's sort of what I was counting on is he goes to everything.

@1:06:12 - estevenson

Yeah, no, no, no. So kind of someone could just, I don't know, could someone sort of message me and message him and just sort of say, I'm working on this project, you know, kind of maybe we could try to meet up.

@1:06:25 - JD Leonard (modernbizconsulting.com)

I'm happy to. Okay.

@1:06:27 - steven.ayers

Just be warned, Martin is sort of like a straight dog. If you feed him, he's going to come back and talk to you.

@1:06:33 - estevenson

Okay. Yes, no, this is the fabled networking. What's the name of the event? Oh, it is South Western Ontario Drupal Camp.

I'm just going to drop it inside the member. That's all right.

@1:06:57 - JD Leonard (modernbizconsulting.com)

Okay, you bet.

@1:06:58 - estevenson

Okay.

@1:06:59 - James Shields

That's Okay. .

@1:07:00 - estevenson

So it's probably Martin's local meetup. Okay. So that would be fun.

@1:07:10 - James Shields

Oh, near enough. I don't know. I may be underestimating how big Ontario is, but.

@1:07:19 - estevenson

I mean, if he's inside London, Ontario, then I think that's closer than, because yeah, I'm inside Toronto.

@1:07:25 - steven.ayers

Isn't it like 20 million people?

@1:07:29 - estevenson

Or no? Don't remember.

@1:07:32 - steven.ayers

Yeah.

@1:07:34 - estevenson

Well, I mean, I know, I know Kitchener, like, mean, it's got a university and like, it's, it's, it's a sort of not a small place.

@1:07:45 - JD Leonard (modernbizconsulting.com)

So we've got a, you know, a theoretical working session now. What would we like to work on? Does anybody have anything they're itching to make some progress on?

Oh, kind of.

@1:07:55 - estevenson

Like I said, I would love to be able to sort of, I don't actually. don't Like Like don't I very good about my code because to some extent I wanted to get it done so that then I could work on the draft spec.

I don't, yeah, I didn't even create kind of a branch. Yeah, pretty much I just, if you were to go to the ticket that's about creating a unit test by me.

There we go. I have pushed code into kind of the branch and didn't actually, because I wasn't even sure how to change it to kind of a pull, a PR.

ACTION ITEM: Refactor CRM unit test: move to fork, create MR, access=false, unique name, load by ID, no address regex, remove null casts - WATCH

@1:08:41 - JD Leonard (modernbizconsulting.com)

All right, so let's see, I'm seeing nothing in that one, about this one?

@1:08:49 - estevenson

Yeah.

@1:08:51 - JD Leonard (modernbizconsulting.com)

So, everyone please correct me if I'm wrong. Best practice would be to not use the 1.0.x branch.

@1:08:59 - estevenson

Okay. So

@1:09:00 - JD Leonard (modernbizconsulting.com)

The, yeah, here, because it kind of gets a little confusing because then there's the 1.0.x branch here versus the 1.0.x branch in the destination CRM project repository.

@1:09:12 - estevenson

So that's already learning on my part. That's okay. And yes, kind of this, this, this, I basically just sort of ended up asking AI just because I know I was getting bogged down.

And I was like, if I don't feel like I can do something better than AI, I'm just going to see how well I can do with AI.

So if part of it ends up being nonsensical, that is fine. This is mostly for my own reading, learning, and I really, really appreciate you guys' time.

@1:09:43 - JD Leonard (modernbizconsulting.com)

Does anybody want here? Maybe I'll zoom in a little bit here. Hmm.

@1:09:49 - estevenson

So yes, this is sort of the end result of a big, long sort of discussion with AI about, you know, kind of go over sort of Drupal best practices.

And And then attempting to create just, yeah, a happy path one. Oh, did you already see something where I sort of absolutely should not have trusted AI?

@1:10:12 - steven.ayers

Oh, no, I was respond. I was. I got a work message through Slack just now.

@1:10:19 - estevenson

Oh, OK. That's probably higher priority than this.

@1:10:24 - steven.ayers

I guess I was going to ask, is there a base test class? And if there is, I guess I wrote it, so.

There is a contact test base.

@1:10:36 - estevenson

OK.

@1:10:38 - steven.ayers

I was able to figure that out.

@1:10:40 - JD Leonard (modernbizconsulting.com)

Good job, Steve.

@1:10:48 - estevenson

Yeah, no, no. you know, kind of Drupal suggested if, you know, kind of a person contact doesn't exist for this test, create it.

That's, it seems plausible. So have you experienced unit tests, kernel tests, and functional tests? Inside other systems, I've absolutely done unit tests.

I haven't specifically done Drupal.

@1:11:21 - steven.ayers

Oh, you'll learn it, and you'll learn to love it. And if not, well, we have a camp for you.

You suffer.

@1:11:30 - estevenson

But yeah, no, no, no. Kind of like also just being pointed out that you should learn X, Y, Z, or just sort of like study this, study that is helpful information for me.

But yeah, this is either nonsense or showing a higher level of competence than I actually possess at the moment.

@1:11:49 - steven.ayers

Well, the code I wrote, we should be cautious of that too. Like line 53, I don't know if that's a hallucination.

it hallucination or?

@1:12:01 - estevenson

I do know that it was able to run. The only one that didn't run was sort of the one at the bottom that's currently commented out where, oh, I attempted to create basically something that would recreate that sort of nothing inside name bug.

And that one is far more of a guess.

@1:12:27 - steven.ayers

I mean, you'd want to, we'd want to do a kernel test for that anyways, or a unit test.

@1:12:33 - estevenson

mean, functional tests take really a long time to execute.

@1:12:39 - steven.ayers

And, right, as somebody who optimizes for 100% code coverage, oh, God, Steve, don't say that.

@1:12:48 - estevenson

I mean, if you help me get on board, then I can write some of the unit tests in order to increase code coverage.

@1:12:58 - James Shields

This is an investment.

@1:12:59 - estevenson

is

@1:13:01 - JD Leonard (modernbizconsulting.com)

There is a link to documentation somewhere.

@1:13:04 - steven.ayers

Oh, yes, here it is. I'll drop it in chat below my message about Canada.

@1:13:10 - estevenson

Okay. Thank you. you.

@1:13:43 - steven.ayers

So I probably stole the node creation code if I had to guess.

@1:13:47 - JD Leonard (modernbizconsulting.com)

That sounds right.

@1:13:49 - James Shields

Okay.

@1:13:50 - estevenson

So kind of the AI took advantage of a whole. So is it that you copied something? Oh, no, kind of like, I'm being fully honest that this is sort of the result of me going to the AI, kind of asking it to go through.

It did initially do kind of like the sort of Drupal-based test, and then I sort of asked it about, like, hey, there's this other class that other ones seem to be using.

And it's sort of like, okay, I know how to use this. This is absolutely kind of AI-generated garbage, just because I wanted to have something that I could show.

@1:14:30 - James Shields

But it could be that Steve copied the base class out of the node base class and forgot to rename the create a node to create a contact.

@1:14:44 - estevenson

In which case, yes, kind of, that's revealing a deeper problem if the AI should not have thought to do that.

@1:14:53 - JD Leonard (modernbizconsulting.com)

Back up to the setup, I've got a question. So, I know CRM ships with a... A person contact type, and here we're checking whether it exists.

I know it's possible for somebody to delete that contact type. Do the tests, though, that ship with CRM, should they assume that the person contact type might not exist?

@1:15:20 - estevenson

Functional tests, no, it should exist.

@1:15:22 - steven.ayers

If you're going to do a kernel test or a unit test, the answer is it's not going to exist.

Well, guess with kernel tests, could decide whether or not you want them to exist or not, but that's a whole other question.

Functional tests, no, we don't need this. Okay, yeah, kind of.

@1:15:37 - estevenson

This is the result of me asking it to do best practices, and best practices, you know, kind of like, probably, if you have no idea what you're doing, don't have them.

But, yeah, so that can be deleted.

@1:15:50 - steven.ayers

I mean, the whole setup method is probably...

@1:15:54 - JD Leonard (modernbizconsulting.com)

Not necessary, yeah. Yeah.

@1:15:57 - James Shields

I could believe that.

@1:16:00 - estevenson

So yes, and that assertNodeCreateAccess is not good.

@1:16:10 - James Shields

It might be fine, it's just that the base class function needs renaming.

@1:16:16 - estevenson

Okay. And that I don't know, but I did tell the AI to just sort of like review the class and use what it thought made sense.

I do intend to sit down and learn it properly. just, like I said, wanted to have something to have reviewed.

And, you know, kind of this part made sense to me, that I'm sort of creating sort of a form submission.

Have you looked at the verbose, like the output of these tests? Just curious.

@1:16:52 - steven.ayers

Yes.

@1:16:53 - estevenson

Have you chosen the browser output?

@1:16:55 - steven.ayers

So...

@1:16:57 - estevenson

So...

@1:17:00 - steven.ayers

So what's happening under the hood is there's a headless browser, and so it's interacting with a full install of Drupal, and so, right, with this edit array that's submitting a form, that's literally just submitting a form on a Drupal install somewhere.

And so every time it goes to a different page, it'll take a screenshot isn't the right word, but it will let you look at it.

@1:17:26 - estevenson

So I absolutely know that I'm just sort of dumping some, apparently a little bit too much, but, so I just sort of truncated a bit, but I absolutely saw this.

I didn't know what to make of it, so I just sort of ignored it because...

@1:17:43 - steven.ayers

Oh, yeah. Is this what you're talking about? Yeah, yeah, if you open one of those on your local, you should be able to see, like, you know, a webpage without CSS and not very good looking, and there'll be some, like, next.

There's previous button somewhere at the top.

@1:18:02 - estevenson

Yeah.

@1:18:04 - steven.ayers

Each time you hit next, you're going to another step in this test.

@1:18:07 - estevenson

Okay. So that's another way to sort of help me sort of navigate, is this doing what I think it's doing?

@1:18:14 - steven.ayers

Yeah. Like on line 68, when you're submitting the form, since that's going to be a new page load, it will take a, it'll give you another one of these links.

Okay.

@1:18:28 - estevenson

So, yeah, no, and I'm, I can do that on my own, trying to step through it. Yes, no. So it's just sort of creating it.

Then it is doing, yeah, kind of a lookup. Is it able to find kind of said contact?

@1:18:53 - JD Leonard (modernbizconsulting.com)

Is this a logic error here?

@1:18:56 - estevenson

Entirely possible.

@1:18:57 - JD Leonard (modernbizconsulting.com)

Casting an array array of...

@1:19:02 - steven.ayers

You're not casting an array of IDs, you're returning the first item.

@1:19:06 - JD Leonard (modernbizconsulting.com)

Does reset return the first item? It does.

@1:19:10 - James Shields

Ah, never mind. I think in your PHP, there's an array function that's called something like array first element or something like that.

That's, that's, that's, um, it's just kind of a array, array key first.

@1:19:34 - Eric Wheeler

Yeah, I think that's an H3 or H4.

@1:19:38 - estevenson

Can we maybe just add a comment for me to look that up?

@1:19:42 - JD Leonard (modernbizconsulting.com)

Uh, we'll do that from this view because I'm comparing. Okay.

@1:19:48 - estevenson

But if you, I think, I mean, he needs to have a merge request to add comments.

@1:19:55 - James Shields

There we go. Uh, but I, if I think what you. probably want to do is move that in. What you probably want to do.

@1:20:03 - JD Leonard (modernbizconsulting.com)

Ah.

@1:20:04 - steven.ayers

You need push permission.

@1:20:06 - JD Leonard (modernbizconsulting.com)

Oh, that's why I don't have push. Thank you. Get push access. Okay.

@1:20:13 - estevenson

Let's try that again. Okay. So I should have gone to sort of merge requests. And...

@1:20:21 - James Shields

Ideally, if you move that into the other branch that's in... That's in the fork. Oh, yeah.

@1:20:32 - JD Leonard (modernbizconsulting.com)

It should be the other one at first. And create a merge request from it.

@1:20:36 - James Shields

Then the tests will run on... Okay.

@1:20:42 - estevenson

So, yeah. So pretty much I need to... I need to kind of move this code into that branch, which I can figure out.

That's just... I'll figure it out. That's not something that I need specific help with. Yeah. So I do need to sort of review that.

That reset function to actually understand, one, what reset does. I still feel guilty using AI, but this has already been super helpful, so I don't regret it now.

@1:21:19 - JD Leonard (modernbizconsulting.com)

The access check here is not relevant, probably.

@1:21:24 - estevenson

I know the test will not run without it. It will complain that, you know, kind of, it needs it.

I don't know if that was the right solution.

@1:21:31 - steven.ayers

but it could be false.

@1:21:36 - JD Leonard (modernbizconsulting.com)

I guess in this case... check method.

@1:21:39 - steven.ayers

Yeah, in this case, doesn't matter which, right? It probably should still be false, but...

@1:21:47 - estevenson

Yeah, I'm happy to make it false, but yeah, kind of. It absolutely complained and refused to run, and then that was just from me sort of fumbling, and this seemed to make it work.

... So, yeah, it... works with true because the user account that's being created has the permission to view any CRM contact, but that's not really what we're testing, right?

@1:22:11 - JD Leonard (modernbizconsulting.com)

Okay, that makes sense.

@1:22:14 - estevenson

So it doesn't actually need to check if the person needs to sort of have access. It just, you need to tell it that it doesn't need to check for that.

@1:22:26 - JD Leonard (modernbizconsulting.com)

Also, this access check is being done in the context of not that user anyway, right? Because this is being instituted by automation.

Yes.

@1:22:42 - estevenson

That makes sense. So, okay, so that needs to be false. I'm going to try to remember all these things.

Worst comes to worst.

@1:22:50 - JD Leonard (modernbizconsulting.com)

It'll be in the recording. Okay, there we go.

@1:22:53 - estevenson

I'll be able to review the recording. Brilliant. More AI kind of shenanigans.

@1:22:59 - JD Leonard (modernbizconsulting.com)

Right. I'm not sure about, well, I don't know if people have opinions on asserting that this message exists, right?

Wait, this is assert not empty on the IDs. Oh, I'm sorry. I'm sorry. No, that makes sense. That makes sense.

Never mind. All right, I'm going to let somebody else drive. I've to take a call here.

@1:23:34 - estevenson

I'm going to have to drop it. Okay, but yes, thank you so much for the time for kind of a really low-level ticket.

@1:23:54 - Eric Wheeler

I'm going to go. Okay.

@1:23:57 - estevenson

I'm going be more active.

@1:23:59 - Eric Wheeler

Okay. Okay. In the member platform. Okay, awesome.

@1:24:03 - estevenson

So I will see you later.

@1:24:04 - Eric Wheeler

See you later.

@1:24:06 - estevenson

Good to see you all.

@1:24:07 - James Shields

I'm to drop off too. Bye now.

@1:24:09 - estevenson

Bye. I'm to be right back. Bye.

@1:26:00 - JD Leonard (modernbizconsulting.com)

Thank Hey, Erica. Oh, you're muted. did not realize.

@1:26:42 - estevenson

Okay. No, no, no. I really appreciate kind of the time I'm getting to sort of help review this and help me get better.

Do want keep looking?

SCREEN SHARING: Jd started screen sharing - WATCH

@1:26:52 - JD Leonard (modernbizconsulting.com)

Yes, that would be amazing. Truthfully, I'm not the best test maestro. Um, out of practice, but, um, let's see.

@1:27:08 - estevenson

I mean, some of it is also just knowing enough in order to identify what is nonsensical, because, yeah, I absolutely could have created nonsense with this.

@1:27:19 - JD Leonard (modernbizconsulting.com)

Yeah, I mean, you know.

@1:27:22 - estevenson

It's a fairly simple thing to try to do, so I figured I could get away with it, but.

@1:27:28 - JD Leonard (modernbizconsulting.com)

yeah, and I mean, like, the trick here, right, is like, I don't, like, I think you're trying to determine whether, right, a person contact can be created by the UI.

You don't need to test all the nooks and crannies of it, right, as part of this test.

@1:27:45 - estevenson

Some of that is kind of not knowing, not being familiar with what the nooks and crannies are versus what's sort of important and, yeah.

Yeah, I mean, there's some value in those nooks and crannies, right?

@1:27:55 - JD Leonard (modernbizconsulting.com)

Like, I mean, you can stick something in every field you can find, right? nooks right? Mm-hmm.

@1:28:02 - estevenson

But I actually only, I mean, I did the happy path test, I did the kind of no access test, which is basically just because the AI kept on sort of suggesting it.

And then, yeah, like I had sort of a test down at the bottom, which was the most ambitious, which was testing the one bug that I discovered.

@1:28:23 - JD Leonard (modernbizconsulting.com)

I would probably argue, well, I would argue that you are, I don't know, maybe people have different opinions on this.

I would argue if you're just testing that you can create the contact, right, that the address of the resulting contact is, matches a certain pattern, seems sort of like a secondary thing that like could trip up the test if that changes in the future or something like that.

@1:28:59 - estevenson

And...

@1:29:00 - JD Leonard (modernbizconsulting.com)

But I don't feel strongly about that. I'm just not sure I would have included that.

@1:29:06 - estevenson

But maybe somebody else would have. Yeah, that's probably a case where, yeah, access chest, false. This is also an interesting one because you're loading that entity by the preferred name.

Mm-hmm.

@1:29:32 - JD Leonard (modernbizconsulting.com)

I mean, when, hmm.

@1:29:43 - estevenson

Which, yeah, basically sort of, instead of talking to the entity directly, which would have kind of the label sort of Ada Loveless Ada, it's going to that kind of, like, subtable for kind of, like, name.

@1:29:57 - JD Leonard (modernbizconsulting.com)

When you, when you run this. During test, during the test, how many contacts are present in the database?

@1:30:07 - estevenson

Is it two? Is it the one you're creating here plus the default one created when you install CRM? So, yes.

But, yeah, kind of like removing that person bundle exists. I'm totally fine with that. That's more kind of not knowing kind of what's important.

Yeah, sure, sure, sure.

@1:30:35 - JD Leonard (modernbizconsulting.com)

I mean, another interesting piece here is actually this entity query is missing a check for the entity type. So the entity type is contact.

Oh, I'm sorry, that's here. Never mind.

@1:30:54 - estevenson

Never mind.

@1:31:00 - JD Leonard (modernbizconsulting.com)

Yeah, I mean, this is a, I don't think there's anything wrong with this. Like, you're clearly going to fetch this.

@1:31:07 - estevenson

It might have been a weird way to do it, because, yeah, I'm asking the AI to figure it out, and, yeah.

Yeah, I mean, I don't know.

@1:31:18 - JD Leonard (modernbizconsulting.com)

I mean, I'm just trying to think, like, how else would I have done it? Because I don't have, well, actually, I guess you have the ID from the address.

That is one way you could look it up, right? But then, again, I sort of somewhat disagree with checking the address.

To begin with.

@1:31:34 - estevenson

Hey, but, yeah, don't read into that too much. Yeah. What do we have here?

@1:31:42 - JD Leonard (modernbizconsulting.com)

So now we're loading the contact. We're making sure it's not null. Sure. Asserting the... I guess, I don't know if that's necessary, given you have these other assertions, which would...

... Fail if it were null. know what mean?

@1:32:03 - estevenson

Well, mean, kind of the nice thing is that if it fails on that line as opposed to the ones below it is that you know the problem is that it's null.

@1:32:11 - JD Leonard (modernbizconsulting.com)

true. No, that's fair. I would say checking whether the contact bundle is person is sort of pointless because that's how you found it, was based on the bundle being person.

@1:32:28 - estevenson

Valid. Valid. So then you load it, like it's going to be the same thing. I could maybe make Ada kind of slightly more unique.

So like Ada test123. So that, you know, kind of that's something that would never show up inside a database.

@1:32:48 - JD Leonard (modernbizconsulting.com)

Well, yeah, that's I mean, that is the other thing is because you don't actually know what the starting set of data is going to be.

@1:32:54 - estevenson

Yeah, so I could make that preferred name more ridiculous.

@1:32:59 - JD Leonard (modernbizconsulting.com)

Yeah.

@1:33:01 - estevenson

In order to sort of make it that, yeah, it's difficult to know what to query, so I know what preferred name is because I created it, but yeah.

@1:33:12 - JD Leonard (modernbizconsulting.com)

The other thing I don't know is, because I just haven't done this in too long, is while you're checking if the address matches the pattern, right, we know that that address is going to have the ID in it.

I would imagine that there is a method that you can call to just fetch the, like, entity from the path.

@1:33:35 - estevenson

Well, mean, another thing that I should probably check is that does submit form return anything that could be used to identify the just created user?

Because if I was coding stuff, I might do that.

@1:33:51 - JD Leonard (modernbizconsulting.com)

Submit form.

@1:33:55 - estevenson

I should Google that function. Well, uh.

@1:34:02 - JD Leonard (modernbizconsulting.com)

I mean, you could look at the function, like go look at the code, but I think more what I'm thinking is because you're in this headless browser, right, and the form has been submitted and now you're on this page, just because you're on that page, there should be a Drupal-y way to say, hey, get the entity from the path, right, from the context of the page, and load it.

And now you can skip all this, right? But then you could maybe just check that these values match. Yes.

Well, it looks like you're doing that down here, so you already have that part down here, but it's just the, because then you kind of get rid of this wonkiness.

@1:34:56 - estevenson

Yes. See ya. Yeah, I can absolutely check to see if there's a smarter, because it would make sense to me that there's a smarter way to go about that.

@1:35:06 - JD Leonard (modernbizconsulting.com)

Yeah, better to look it up by the ID it presents to you than to hope that you're getting the correct contact out of the database.

All right, so we're, yes, we don't need that part, is published, okay, I'm not sure, I'm just thinking at some point, like, maybe there might be some sort of setting that affects the behavior of that, but if that comes into existence and the test fails, then the test can be adjusted, that's fine.

Let's see, oh, I see. I don't know, because I'm not that familiar with the name project. Object, but I would hope that there is, oh, no, that's okay.

That's just Drupal being weird because it's a multi-value field. I don't think it is a multi-value field. All right, what I'm questioning is why for preferred name, you can just do value.

And here, oh, you're doing get value zero. I'm not 100% certain, but you might be able to just do value here and have it perform the same.

@1:36:43 - estevenson

Yeah, no, it's a lot of that. Gymnastics of what's happening here. Yes, right under the full name parts persisted, which I'm just saying for the AI recording because it will not tell me what here is.

Yeah, I'm on a It's

@1:37:11 - JD Leonard (modernbizconsulting.com)

And then these nulls should presumably be a message about what's going on here, right? Well, isn't that just sort of...

What is it? Wait, hold on. Bull, if it's not set, then null. I think this is just not necessary.

@1:37:30 - estevenson

Oh, I see.

@1:37:31 - JD Leonard (modernbizconsulting.com)

Oh, no.

@1:37:32 - estevenson

I see.

@1:37:33 - JD Leonard (modernbizconsulting.com)

It's saying if there's no value. I don't think it would be null, though. I believe it would be an empty string.

Doesn't really matter. But you might check whether this is truly necessary.

@1:37:44 - estevenson

Yeah, on sort of line 93. Yeah, 93, 94.

@1:37:49 - JD Leonard (modernbizconsulting.com)

Yeah.

@1:37:49 - estevenson

Maybe it is. Maybe.

@1:37:51 - JD Leonard (modernbizconsulting.com)

I don't know how it all comes through the system. But if it's not, nice to just reduce the fluff.

we go. let's see. Thank label is auto-generated and non-empty.

@1:38:08 - estevenson

I should look up what a label actually is.

@1:38:12 - JD Leonard (modernbizconsulting.com)

I think there's no need to cast this to a string.

@1:38:17 - estevenson

Yeah, on line 97? Yeah. It's true. I would expect a label to always be a string, because otherwise, what's the point of having a label?

@1:38:43 - JD Leonard (modernbizconsulting.com)

But yeah, you can verify some of this stuff as well. Have you got an Xdebug working?

@1:38:49 - estevenson

I am not sure. I know I've managed to get it installed, but I've been trying to get it to work with PHP Storm and haven't been successful.

This is another thing that I'm sort Sort of hoping that I can maybe go to the DrupalCon and just sort of ask people in said person, kind of, could you think you're my machine?

@1:39:08 - JD Leonard (modernbizconsulting.com)

One note on nomenclature. So DrupalCon is a semi-annual event put on by the Drupal Association in various places. Yeah, so it is a Drupal Conference, which has a name that happens to be in the Drupal Camp.

But yeah, so no, that DrupalCon is sort of showing that you don't know what a DrupalCon is. I don't know what a DrupalCon is.

@1:39:33 - estevenson

Right, right, right.

@1:39:34 - JD Leonard (modernbizconsulting.com)

But now you do. But yes, yes, no, kind of.

@1:39:36 - estevenson

am sounding like a hick, which I probably, a hick? A noob. A noob is probably better work. That makes more sense.

But so yes, at the Drupal Camp, that is one thing I'm vaguely hoping to get as part of networking, is could people take kind of a moment and help me configure my PHP storm and Xdebug so I know it's working.

Xdebug is, I think, one of the most.

@1:40:00 - JD Leonard (modernbizconsulting.com)

Sort of hoping that I can maybe go to the DrupalCon and just sort of ask people in said person, kind of, could you think you're my machine?

One note on nomenclature. So DrupalCon is a semi-annual event put on by the Drupal Association in various places.

@1:40:19 - estevenson

Yeah, so it is a Drupal Conference, which has a name that happens to be in the Drupal Camp. But yeah, so no, that DrupalCon is sort of showing that you don't know what a DrupalCon is.

I don't know what a DrupalCon is. Right, right, right. But now you do. But yes, yes, no, kind of.

am sounding like a hick, which I probably, a hick? A noob. A noob is probably better work. That makes more sense.

@1:40:45 - JD Leonard (modernbizconsulting.com)

But so yes, at the Drupal Camp, that is one thing I'm vaguely hoping to get as part of networking, is could people take kind of a moment and help me configure my PHP storm and Xdebug so I know it's working.

Xdebug is, I think, one of the most. The valuable things you can get set up, I've probably said it before, because it lets you examine, right, at any given line, what are the values of all these things?

And it really, I think, opens your mind to understanding what is here. Yeah, no, and I, yeah, so I've been sort of, like, picking away at it.

@1:41:19 - estevenson

I suspect it's also something that if I were to sit down with someone, they'd very quickly help me figure it out.

And so I, I think I got it working, but I can't remember, and that probably meant that I didn't get it working.

I was just trying to mostly get it to run unit tests, which it also wouldn't do. And I'm not sure, kind of, like, do I have to figure out something with dddev, where I'm supposed to get it to run with dddev, but I'm not.

there's a, there's an xdbug, um, sorry, there's a ddev xdbug on command. Mm-hmm. And, uh, that is something that's sort of a prerequisite to have it work with ddev.

Okay. Um, and then you might need, like, a... A browser bookmark extension or something that kind of flags that you want to be doing XDebug stuff.

And then you need to start debugging in PHPStorm and have a breakpoint where you want it to stop. No, no, no.

@1:42:20 - JD Leonard (modernbizconsulting.com)

I'm 100% sold, but if I figured out how to get it set up properly, it would be a lot easier.

@1:42:29 - estevenson

But yeah, kind of like I was struggling that I really want to have something I can kind of show so then I can have these discussions.

@1:42:36 - JD Leonard (modernbizconsulting.com)

I can sort of, I don't know, kind of have my stupidity sort of on full display. It's much easier to kind of get it fixed than if you're just sort of like going, ah.

@1:42:50 - estevenson

But yeah, so I will, I will prioritize that. Well, no, the thing I'm going to prioritize is getting that spec done because I don't need to.

And I don't know if I needed to test that, but I know that, yeah, kind of, but the AI was sort of really wanting to include it, so.

I mean, it's a sensible thing to test. Honestly, I don't have a strong philosophy on exactly what belongs in the tests and what doesn't.

@1:43:51 - JD Leonard (modernbizconsulting.com)

So, yeah, that can just sort of exist. And then, yeah, the last one that I commented out, because it does break, because it was specifically designed to sort

Yeah, no, and this is the one where I was getting kind of even more because, like, I don't actually know if that's where errors are sort of.

@1:44:18 - estevenson

So, sorry, what's this doing? Okay, so what I wanted to do is test empty contact shows error and does not create entity, which is sort of the behavior that I thought should happen, though it sounds like, based on what we just discussed, that maybe we don't want that, in which case this whole thing can be just deleted because you wouldn't expect, you do want an empty contact or change so that it tests that it does create an entity.

But, yeah, this was the most experimental one. Sure. All right. Well, let me offer to see if we can get your...

Xdebug working. Okay. I will end the recording for the benefit of everyone who might see the recording because they're not going to listen.

sounds good.

Comments

jdleonard created an issue. See original summary.

jdleonard’s picture

Title: Member Platform (Zoom) Meeting on October 23, 2025 » Member Platform (Zoom) Meeting on October 21, 2025
Issue summary: View changes
Status: Active » Fixed

Now that this issue is closed, please review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, please credit people who helped resolve this issue.

jdleonard’s picture

Issue summary: View changes

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.