2️⃣ I would like to create a page, maybe in our handbook, for how to set up beta2 and get it working. Since Drupalpod won't work with it due to symlinks, it needs to be set up locally and without symlinks, and we need to be sure to also pull automatic updates, etc. Might use this thread to think through all the steps out loud, then I might work on that page.

chrisfromredfin base drupal installadd project_browser and automatic_updates with composerdo not use drush, or if you do you need to remove symlinks from vendor/bin and vendor/drush/.../docsenable Package Manager and Project Browser go to Project Browser settings, enable the experiemental feature(edited)
chrisfromredfin That's about it, right? (cc @leslieg since I know she got this working last night. did I miss anything?)
shaal :wave: What part would work in DrupalPod?
chrisfromredfin If there were no symlinks (i.e. if drush was not included and if we didn't symlink anything from /repos in, but maybe actually copied them?
shaal Sorry, I meant to ask - what is not working in DrupalPod
shaal (I do remember the request for additional dependencies, WIP. Is this related?)
chrisfromredfin Related to the same goal - which is to have -beta2 work in Project Browser
shaal I'd love to make is all work in DrupalPod, so beside adding another module, what else is needed / or is a problem?
leslieg That sounds correct @chrisfromredfin I used ddev, but folks would need a local environment. That and the use of composer in a terminal is a barrier for our target audience's testing of beta2 (site builders and those new to Drupal).  It's a good workaround for now though and folks can help us test auto updates and package manager use in project browser. Thanks again to all the folks that made that all work. Kudos!!!
James Shields I'm setting it up in Ddev now. I'll note down all my steps in a document and see if it's helpful.
James Shields @shaal I think DrupalPod installs the module in a repos directory, then symlinks to that from the modules directory. It would need to install directly in the modules directory to work.Also, as Chris said, would need an option to exclude Drush.
shaal DrupalPod symlink is essential for core development.But when using modules, it's just "nice to have", so I would like to see what it breaks
shaal If you could tell me what to click - and how to see the error / problem - I'll be able to check it out
chrisfromredfin Steps for DrupalPod to reproduce: Use try it now button on project_browser main page, once it's up then composer require drupal/automatic_updates.Enable package_manager and project_browser modules.Go to admin > development > project browser and turn on the experimental setting for UI installer.  Once on, go back to project browser UI. You will get an error message from Project Browser that symlinks were detected in the codebase
James Shields Anyone tried Project Browser on simplytest.me ?It seems to have beta2 available, but it gives error during build:SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than
'max_allowed_packet' bytes
chrisfromredfin Yes, I tried patching it to fix that issue, but didn't know what I was doing. 🙂
chrisfromredfin #3285253: Error: Got a packet bigger than 'max_allowed_packet' bytes
shaal @chrisfromredfin I think I followed your instructions, but I don't see the option you mentioned
shaal Oh, found it! (it just wasn't in the menu)
chrisfromredfin Doh! Guess we'll have to file an issue to add it :wink:
shaal @chrisfromredfin do you have more information on WHY symlinks are not supported? I only saw this, but it doesn't explain the why/admin/help/package_manager#package-manager-faq-symlinks-found
chrisfromredfin They're not supported by Package Manager because "symlinks are hard" per @phenaproxima 🙂 - he gave me the direct low-down at NEDCamp about it. Basically the composer-stager package that everything depends on cannot make them work reliably.
phenaproxima @shaal If you want the in-the-weeds version, talk to @TravisCarden
shaal It seems like search for *any* symlinks whatsoever in a project.We often use relative symlinks in projects to connect design system with the theme of Drupal (which shouldn't have anything to do with auto-updates)
phenaproxima I know @tedbow is trying to implement a workaround
shaal :thinkspin: Add an advanced user override button - "I think I know what I am doing" :wink:
shaal actually... I think there's another bug needs resolved.I removed symlink setup in a DrupalPod installation.and the UI still complained about symlinks in the project.The symlink in question was -/var/www/html/vendor/drush/drush/docs/contribute/CONTRIBUTING.mdwhich is actually this file =CONTRIBUTING.md -> ../../CONTRIBUTING.md(something that installing Drush through composer seems to happen?)
chrisfromredfin Yeah so we are trying to get symlinks out of drush
chrisfromredfin But I think vendor bin ends up always being symlinks
shaal I know very little about the issue, but wouldn't it be possible to check for only the symlinks that would cause issues for the update feature to run correctly ?
shaal (or is it really that ANY symlink anywhere is going to cause issues?)
chrisfromredfin Yeah it seems to be anywhere because it’s composer
chrisfromredfin So vendor actually matters
phenaproxima (or is it really that ANY symlink anywhere is going to cause issues?)Technically no, but we do not at the moment have a strong way to exclude symlinks from being considered.
shaal I have an idea (on how to solve the DrupalPod issue)I can add a flag "no-symlinks" or something, that would load the source code into web/modules/contrib/ instead of using symlinks under /repos
shaal Still managed by composer, still have git access to source code of the project
James Shields In case it's helpful to anyone, I have put together a quick guide on setting up Project Browser locally in Ddev:https://docs.google.com/document/d/1rTLHgW6xVovSUbN0QggYkEht3O3eoQCn6nK4...
chrisfromredfin VERY helpful James, thank you!!!!!
James Shields The link above is editable, in case anyone wants to make any tweaks or improvements to it. However, we should either move to another page or lock down editing permissions if you want to share with other people.
bnjmnm Drupalpod was the first remote means of hosting I got Project Browser GUI install working in! (edited)
bnjmnm There was one additional step I needed to do for it to work. It's documented in Automatic Updates and great that it's documented at all, but it's not exaaactly easy to find. If you use the vendor hardening plugin it takes care of the PITA symlinks.
bnjmnm The symlink thing is a pretty common obstacle so it's probably worth opening an issue to make that solution easier to find. If there isn't one by Monday (when I return to PB work), I'll get that filed.
chrisfromredfin @shaal ooh I wonder if that additional “soft dependency” might solve our issues!
shaal What is “soft dependency”?
chrisfromredfin Something that we were discussing before like being able to add additional packages into drupalpod that aren’t necessarily composer dependencies
chrisfromredfin Though as I type this I’m wondering if we could manage this with composer’s “recommended” (or “suggests” I forget what it’s called)
shaal yeah, I’m definitely going to add that “soft dependency” to DrupalPod
shaal Internally, DrupalPod would use that same mechanism to add (by default, as now) admin_toolbar, and devel
chrisfromredfin yes, love that.
tedbow re the symlinks the once is drush can be taken care of. if you have the help module on the error will link to the docs.re symlinks else where, right now symlinks are not supported for anything that "staged" in the update.We excluded some know folders that are not managed by composer from being staged such as the files folder and the node_modules module.and there is way in custom code you exclude other folders you know are not manage by composer.The problem is there is actually no way to 100% know what is managed by composer. We know the install_path  of the packages are but that is not all the is managed by composer. For instance index.php managed by composer because Drupal's scaffold. We have no way of knowing if any other composer package does something like that with any file at any path (edited)
tedbow we have an MR to explain this better #3319507: Add symlink support to Composer Stager 2.0, require that version, and simplify UX & tests accordingly
chrisfromredfin @bnjmnm - how did you work around the project_browser itself being symlinked? Or were you in a more native GitPod setup where it wasn't? I can almost get the beta2 working but I've finally landed here:Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires drupal/project_browser 1.0.x-dev, it is satisfiable by drupal/project_browser[dev-1.0.x, 1.0.x-dev (alias of dev-1.0.x)] from composer repo (https://packages.drupal.org/8) but drupal/project_browser[dev-main] from path repo (repos/project_browser) has higher repository priority. The packages from the higher priority repository do not match your constraint and are therefore not installable. That repository is canonical so the lower priority repo's packages are not installable. See https://getcomposer.org/repoprio for details and assistance.@shaal what I'm after is that even if I could even write up manual steps for people to get it working in DrupalPod, that would be a big win.
chrisfromredfin ^ p.s. this happened because I specifically, manually, removed the symlink then just copied (with cp -R) what was in repos to web/modules/contrib
bnjmnm Oh right! It's pretty hacky. Instead of composer installing I just dragged the module contents into /modules.
chrisfromredfin ahh ok right, so avoid that's in there with composer at all, that makes sense as a first step. thanks!
bnjmnm The modules project browser installs doesn't result in symlinks, fortunately
James Shields @chrisfromredfin Do we have somewhere to host the self hosting with ddev steps? I could stick them on my own blog if it would be helpful.
chrisfromredfin Yeah this all started cuz I was about to put them in a handbook page. Then I remembered I could try out this vendor-hardening thing and ended up down the rabbit hole. 🙂
chrisfromredfin But I was going to do a third one here: https://www.drupal.org/docs/contributed-modules/project-browser
James Shields I could have a go at adding there if you like.
chrisfromredfin that would be great!
chrisfromredfin if you can. I know guides have some sort of permissioning there, but I think anyone can create one and maybe I need to say it's "approved" or something
James Shields I seem to have the option to add. We can see how it goes...
chrisfromredfin great. I think you want it as a guide not a page
James Shields That's what I'll try first.
James Shields Not sure about that. Guide has summary and description, but not actually the guide text. It says to create pages within the guide for actual documentation content. Do I need to create a Guide, then a page inside that, or is the guide you linked above what I should add a page to?
chrisfromredfin OK right, so sorry just add a page from the page I linked
chrisfromredfin that page must be the 'guide' and you want to add one more 'page' to it (I'm new to this lol)
James Shields No worries. Learning together!
chrisfromredfin @James Shields I've also just create these manual instructions for getting it working in DrupalPod. @shaal can see what we're up against 🙂Open up from the [Try It Now] DrupalPod button on the Project Browser project page.

After it's up and running, execute the following in the terminal:
- composer require drupal/core-vendor-hardening drupal/automatic_updates
- composer remove drupal/project_browser
- rm -rf /workspace/DrupalPod/vendor/drush/drush/docs
- rm /workspace/DrupalPod/web/modules/contrib/project_browser
- cp -R /workspace/DrupalPod/repos/project_browser /workspace/DrupalPod/web/modules/contrib

Open up composer.json and remove:
- the "scripts" section starting around line 113. be very careful as json is fickle with commas and things.

Then in the UI:
- turn on the "Package manager" module from the [Extend] menu.
- go to Admin > Configuration > Development > Project Browser and check the box 'Allow installing via UI (experimental)' and hit Save at the bottom

Then go to Project Browser's main page (Admin > Extend > Browse modules)
- you can click "Add and Install" now for modules that are not on yet.(edited)

chrisfromredfin You may want to add that to your page? Like maybe one heading for DDEV and one for DrupalPod?
James Shields Currently my page has the title "Project Browser Beta 2 Setup on DDEV"
James Shields Not sure if you get notification that it needs review. Page is here:https://www.drupal.org/docs/contributed-modules/project-browser/project-...
James Shields Wait, I seem to have missed a section.
James Shields Okay everything should be there now.
chrisfromredfin Thanks, James - it's approved and shows up now. Really appreciate it!

3️⃣ I feel pretty confident about the content layout for the project detail page, I think that's an area that we could be focusing on now.

chrisfromredfin #3322594: Update project detail page layout & elements
chrisfromredfin I would absolutely 💙 if @Divya Mangadu or @Jillian Chueka wanted to refactor the Figma design for the detail page to something like the flow I've done here, but less ugly :wink:, so people could get started on that page. ? https://projects.invisionapp.com/freehand/document/pwOhQ6IFC
chrisfromredfin Otoh, someone could probably get started just pulling the data in in order even if it's ugly, for people who are itching to code some Svelte & APIs
rkoller uhhh that reminds me i completely forgot to post my comment on one of the two issues. gotta quickly do that now. but one detail in the context of the comment to write. the high level priority guide order looks good to go. but it might be helpful also to create a detail priority guide (see https://alistapart.com/article/priority-guides-a-content-first-alternati... and search for step 5: create a detailed priority guide)
rkoller commented: #3322594: Update project detail page layout & elements#comment-14807376 and in regards of comment 2. if the module name is moved to the page title the quick description could take the place of the module name right next to the logo in your mockup perhaps? https://projects.invisionapp.com/freehand/document/pwOhQ6IFC

Participants:

chrisfromredfin, shaal, leslieg, James Shields, phenaproxima, bnjmnm, tedbow, rkoller

Comments

chrisfromredfin created an issue. See original summary.

chrisfromredfin’s picture

Issue summary: View changes

chrisfromredfin’s picture

chrisfromredfin’s picture

Status: Active » Fixed

Status: Fixed » Closed (fixed)

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