[GH-ISSUE #311] Use Composer and Packagist.org for dependencies #273

Closed
opened 2026-02-25 21:34:36 +03:00 by kerem · 43 comments
Owner

Originally created by @marclaporte on GitHub (Jan 15, 2019).
Original GitHub issue: https://github.com/cypht-org/cypht/issues/311

Originally assigned to: @jasonmunro on GitHub.

Please see: https://en.wikipedia.org/wiki/Composer_(software)

FYI, if you are looking for ideas / examples or even code: The Tiki Wiki CMS Groupware project (LGPL) is a massive user of Composer (100+ dependencies): https://doc.tiki.org/Composer

We added a web-based installer
We use https://asset-packagist.org/ when we can't get from https://packagist.org/
We run our own Satis server

Originally created by @marclaporte on GitHub (Jan 15, 2019). Original GitHub issue: https://github.com/cypht-org/cypht/issues/311 Originally assigned to: @jasonmunro on GitHub. Please see: https://en.wikipedia.org/wiki/Composer_(software) FYI, if you are looking for ideas / examples or even code: The Tiki Wiki CMS Groupware project (LGPL) is a massive user of Composer (100+ dependencies): https://doc.tiki.org/Composer We added a web-based installer We use https://asset-packagist.org/ when we can't get from https://packagist.org/ We run our own [Satis server](https://github.com/composer/satis)
kerem 2026-02-25 21:34:36 +03:00
Author
Owner

@jasonmunro commented on GitHub (Jan 15, 2019):

I'm not sure Cypht is compatible with composer, but I will check into it more and let you know. Thanks for the suggestion!

<!-- gh-comment-id:454295975 --> @jasonmunro commented on GitHub (Jan 15, 2019): I'm not sure Cypht is compatible with composer, but I will check into it more and let you know. Thanks for the suggestion!
Author
Owner

@Yamakasi commented on GitHub (Jan 21, 2019):

@jasonmunro we already dived into this a little bit and it needs really some work to use composer, I might can give it a start as I made my own package for some own library but this needs to be tested a lot to be into the wild.

<!-- gh-comment-id:456112154 --> @Yamakasi commented on GitHub (Jan 21, 2019): @jasonmunro we already dived into this a little bit and it needs really some work to use composer, I might can give it a start as I made my own package for some own library but this needs to be tested a lot to be into the wild.
Author
Owner
<!-- gh-comment-id:457885167 --> @marclaporte commented on GitHub (Jan 27, 2019): This would permit to handle: https://github.com/jasonmunro/cypht/tree/master/third_party Ex.: https://packagist.org/packages/ezyang/htmlpurifier https://packagist.org/packages/paragonie/random_compat https://packagist.org/packages/html2text/html2text And when not on Packagist: https://asset-packagist.org/package/detail?fullname=npm-asset/push.js https://asset-packagist.org/package/detail?fullname=bower-asset/push.js Another idea to explore: should/could Cypht be available on Packagist.org? Thanks!
Author
Owner

@jasonmunro commented on GitHub (Feb 10, 2019):

I have a new branch using composer to get all our PHP requirements! :)

https://github.com/jasonmunro/cypht/tree/composer-issue-311

This leaves 3 javascript requirements, 2 of which are manually modified specifically for Cypht (removing bits we don't use to make the payload smaller). Because of this, combined with the complexity of building javascript packages (which can be a pain IMO), I'm not planning on using composer on these 3 but instead will continue to include them in the Cypht source.

I'm not sure if it makes sense to make Cypht available on packagist, it seems better suited to libraries as opposed to applications, and all the install steps requiring root would I think still need to be run by hand.

<!-- gh-comment-id:462101983 --> @jasonmunro commented on GitHub (Feb 10, 2019): I have a new branch using composer to get all our PHP requirements! :) https://github.com/jasonmunro/cypht/tree/composer-issue-311 This leaves 3 javascript requirements, 2 of which are manually modified specifically for Cypht (removing bits we don't use to make the payload smaller). Because of this, combined with the complexity of building javascript packages (which can be a pain IMO), I'm not planning on using composer on these 3 but instead will continue to include them in the Cypht source. I'm not sure if it makes sense to make Cypht available on packagist, it seems better suited to libraries as opposed to applications, and all the install steps requiring root would I think still need to be run by hand.
Author
Owner

@marclaporte commented on GitHub (Feb 11, 2019):

Super!

I see "ext-redis": "*" in composer.json, which I find a little surprising. It's not here: https://cypht.org/install.html

On the topic of server requirements, we have a fantastic script to help users prepare / configure a server for PHP apps:
https://doc.tiki.org/Server-Check

<!-- gh-comment-id:462211605 --> @marclaporte commented on GitHub (Feb 11, 2019): Super! I see "ext-redis": "*" in composer.json, which I find a little surprising. It's not here: https://cypht.org/install.html On the topic of server requirements, we have a fantastic script to help users prepare / configure a server for PHP apps: https://doc.tiki.org/Server-Check
Author
Owner

@jasonmunro commented on GitHub (Feb 13, 2019):

dependency management is merged to master. See https://github.com/jasonmunro/cypht/wiki/Announcements for new install/upgrade command. Next I'm going to look into listing Cypht on packagist.

<!-- gh-comment-id:463048606 --> @jasonmunro commented on GitHub (Feb 13, 2019): dependency management is merged to master. See https://github.com/jasonmunro/cypht/wiki/Announcements for new install/upgrade command. Next I'm going to look into listing Cypht on packagist.
Author
Owner

@jasonmunro commented on GitHub (Feb 13, 2019):

https://packagist.org/packages/jason-munro/cypht :)

<!-- gh-comment-id:463056172 --> @jasonmunro commented on GitHub (Feb 13, 2019): https://packagist.org/packages/jason-munro/cypht :)
Author
Owner

@jasonmunro commented on GitHub (Feb 13, 2019):

@marclaporte also I moved optional requirements in the compose.json (like ext-redis) to the suggest section with descriptions of how they can be used. I'm going to close this now that both dependency management is merged to master and we are listed at packagist. I will update the install instructions at cypht.org with a composer option and continue to fine tune the composer.json as needed.

<!-- gh-comment-id:463056766 --> @jasonmunro commented on GitHub (Feb 13, 2019): @marclaporte also I moved optional requirements in the compose.json (like ext-redis) to the suggest section with descriptions of how they can be used. I'm going to close this now that both dependency management is merged to master and we are listed at packagist. I will update the install instructions at cypht.org with a composer option and continue to fine tune the composer.json as needed.
Author
Owner

@marclaporte commented on GitHub (Feb 14, 2019):

wow
Just wow

You. Are. My. Hero!

<!-- gh-comment-id:463479663 --> @marclaporte commented on GitHub (Feb 14, 2019): wow Just wow You. Are. My. Hero!
Author
Owner

@marclaporte commented on GitHub (Mar 17, 2019):

Can we have released versions and not just dev-master?

Thanks!

<!-- gh-comment-id:473621391 --> @marclaporte commented on GitHub (Mar 17, 2019): Can we have released versions and not just dev-master? Thanks!
Author
Owner

@jasonmunro commented on GitHub (Mar 27, 2019):

Yes and no :) We would have to back-port the composer changes to the prior release to accomplish this with 1.1.0 - something I would rather not do. Instead, lets start the process of a 1.2.0 release (or 1.1.1 depending on the change-log). Then we have a composer friendly release packagist will recognize that includes at least the preliminary Tiki integration work. I Typically do a series of RC tags prior to a final, so we could set a target of say 4 weeks to squeeze any remaining fixes in.

<!-- gh-comment-id:476941374 --> @jasonmunro commented on GitHub (Mar 27, 2019): Yes and no :) We would have to back-port the composer changes to the prior release to accomplish this with 1.1.0 - something I would rather not do. Instead, lets start the process of a 1.2.0 release (or 1.1.1 depending on the change-log). Then we have a composer friendly release packagist will recognize that includes at least the preliminary Tiki integration work. I Typically do a series of RC tags prior to a final, so we could set a target of say 4 weeks to squeeze any remaining fixes in.
Author
Owner

@marclaporte commented on GitHub (Jul 1, 2019):

We are already at 5700 installs :-)
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:507457385 --> @marclaporte commented on GitHub (Jul 1, 2019): We are already at 5700 installs :-) https://packagist.org/packages/jason-munro/cypht
Author
Owner

@jasonmunro commented on GitHub (Jul 2, 2019):

WOW!

<!-- gh-comment-id:507516443 --> @jasonmunro commented on GitHub (Jul 2, 2019): WOW!
Author
Owner

@ulfgebhardt commented on GitHub (Jul 2, 2019):

How do we recruit those 5.8k installers to be contributors? Any strategies?

<!-- gh-comment-id:507710037 --> @ulfgebhardt commented on GitHub (Jul 2, 2019): How do we recruit those 5.8k installers to be contributors? Any strategies?
Author
Owner

@marclaporte commented on GitHub (Jul 2, 2019):

How do we recruit those 5.8k installers to be contributors? Any strategies?

Like this: https://github.com/jasonmunro/cypht/issues/352

<!-- gh-comment-id:507741120 --> @marclaporte commented on GitHub (Jul 2, 2019): > How do we recruit those 5.8k installers to be contributors? Any strategies? Like this: https://github.com/jasonmunro/cypht/issues/352
Author
Owner

@marclaporte commented on GitHub (Jul 23, 2019):

8.2k installs :-)
https://packagist.org/packages/jason-munro/cypht

And Jason created v1.2.0-rc1

<!-- gh-comment-id:514148208 --> @marclaporte commented on GitHub (Jul 23, 2019): 8.2k installs :-) https://packagist.org/packages/jason-munro/cypht And Jason created v1.2.0-rc1
Author
Owner

@marclaporte commented on GitHub (Aug 14, 2019):

Nearly 11k installs :-)

I guess we can close this now as it's part of the regular release process?

<!-- gh-comment-id:521209058 --> @marclaporte commented on GitHub (Aug 14, 2019): Nearly 11k installs :-) I guess we can close this now as it's part of the regular release process?
Author
Owner

@marclaporte commented on GitHub (Aug 22, 2019):

Nearly 12k installs :-)

<!-- gh-comment-id:524002795 --> @marclaporte commented on GitHub (Aug 22, 2019): Nearly 12k installs :-)
Author
Owner

@marclaporte commented on GitHub (Sep 22, 2019):

14k installs :-)

<!-- gh-comment-id:533922913 --> @marclaporte commented on GitHub (Sep 22, 2019): 14k installs :-)
Author
Owner

@jasonmunro commented on GitHub (Nov 12, 2019):

Just going to keep this open for the updates :)

<!-- gh-comment-id:552741571 --> @jasonmunro commented on GitHub (Nov 12, 2019): Just going to keep this open for the updates :)
Author
Owner

@marclaporte commented on GitHub (Nov 12, 2019):

15.5k installs now!

Already the top downloaded webmail that comes from an official source (others are re-packaged and may be out of sync with upstream)
https://packagist.org/search/?tags=webmail

1st JMAP solution:
https://packagist.org/search/?tags=jmap
https://jmap.io/

Once we have an official release branch (1.2.x, 1.2.y, ...), it will grow even faster. I predict we will be at over 100k by the end of 2020. And I will work hard to promote Cypht and make this prediction comes true :-)

<!-- gh-comment-id:552781994 --> @marclaporte commented on GitHub (Nov 12, 2019): 15.5k installs now! Already the top downloaded webmail that comes from an official source (others are re-packaged and may be out of sync with upstream) https://packagist.org/search/?tags=webmail 1st JMAP solution: https://packagist.org/search/?tags=jmap https://jmap.io/ Once we have an official release branch (1.2.x, 1.2.y, ...), it will grow even faster. I predict we will be at over 100k by the end of 2020. And I will work hard to promote Cypht and make this prediction comes true :-)
Author
Owner

@marclaporte commented on GitHub (Jan 6, 2020):

17k installs :-)

<!-- gh-comment-id:570978778 --> @marclaporte commented on GitHub (Jan 6, 2020): 17k installs :-)
Author
Owner

@marclaporte commented on GitHub (Feb 11, 2020):

Almost 18k installs :-)

<!-- gh-comment-id:584635547 --> @marclaporte commented on GitHub (Feb 11, 2020): Almost 18k installs :-)
Author
Owner

@marclaporte commented on GitHub (Mar 16, 2020):

19k!
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:599297326 --> @marclaporte commented on GitHub (Mar 16, 2020): 19k! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (Apr 23, 2020):

We passed 20k a few days ago!
https://packagist.org/packages/jason-munro/cypht

Please like or retweet:
https://twitter.com/MarcLaporte/status/1250821368377159683

<!-- gh-comment-id:618297191 --> @marclaporte commented on GitHub (Apr 23, 2020): We passed 20k a few days ago! https://packagist.org/packages/jason-munro/cypht Please like or retweet: https://twitter.com/MarcLaporte/status/1250821368377159683
Author
Owner

@marclaporte commented on GitHub (May 4, 2020):

21k!
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:623224994 --> @marclaporte commented on GitHub (May 4, 2020): 21k! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (May 31, 2020):

22k!
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:636468550 --> @marclaporte commented on GitHub (May 31, 2020): 22k! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (Jul 13, 2020):

23k!
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:657299999 --> @marclaporte commented on GitHub (Jul 13, 2020): 23k! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@Yamakasi commented on GitHub (Jul 16, 2020):

I think we can close this now instead of +1K extra each time? Packagists counts never said anything to me as lots of people just require and remove.

<!-- gh-comment-id:659657082 --> @Yamakasi commented on GitHub (Jul 16, 2020): I think we can close this now instead of +1K extra each time? Packagists counts never said anything to me as lots of people just require and remove.
Author
Owner

@marclaporte commented on GitHub (Aug 7, 2020):

I think Jason was going to close this once we have a stable release, but I have no objection to close now.

Thanks!

<!-- gh-comment-id:670278067 --> @marclaporte commented on GitHub (Aug 7, 2020): I think Jason was going to close this once we have a stable release, but I have no objection to close now. Thanks!
Author
Owner

@marclaporte commented on GitHub (Oct 29, 2020):

26k! https://packagist.org/packages/jason-munro/cypht

Closing this in favor of https://github.com/jasonmunro/cypht/issues/427

<!-- gh-comment-id:718294342 --> @marclaporte commented on GitHub (Oct 29, 2020): 26k! https://packagist.org/packages/jason-munro/cypht Closing this in favor of https://github.com/jasonmunro/cypht/issues/427
Author
Owner

@marclaporte commented on GitHub (Feb 23, 2021):

30k! https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:784238715 --> @marclaporte commented on GitHub (Feb 23, 2021): 30k! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (May 22, 2021):

33k! https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:846442252 --> @marclaporte commented on GitHub (May 22, 2021): 33k! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (May 27, 2022):

We now passed 50k!
https://packagist.org/packages/jason-munro/cypht

Now number 1 webmail on Packagist! https://packagist.org/search/?tags=webmail

Congrats @jasonmunro and all the community!

<!-- gh-comment-id:1139662795 --> @marclaporte commented on GitHub (May 27, 2022): We now passed 50k! https://packagist.org/packages/jason-munro/cypht Now number 1 webmail on Packagist! https://packagist.org/search/?tags=webmail Congrats @jasonmunro and all the community!
Author
Owner

@marclaporte commented on GitHub (Jul 10, 2022):

52k!
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:1179775773 --> @marclaporte commented on GitHub (Jul 10, 2022): 52k! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (Aug 12, 2022):

54k!
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:1213494577 --> @marclaporte commented on GitHub (Aug 12, 2022): 54k! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (Jun 27, 2023):

We have passed over 70 000 installs!
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:1610328745 --> @marclaporte commented on GitHub (Jun 27, 2023): We have passed over 70 000 installs! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (Aug 10, 2023):

Cypht is now at 72 000 installs!
https://packagist.org/packages/jason-munro/cypht

And Cypht has become the most popular webmail on Packagist:
https://packagist.org/search/?tags=webmail

It positions Cypht as the pluggable webmail of the PHP ecosystem.

To be fair, it's made easier because Roundcube (arguably the most popular Open Source webmail) has decided not to offer this: https://github.com/roundcube/roundcubemail/issues/5938

<!-- gh-comment-id:1672445885 --> @marclaporte commented on GitHub (Aug 10, 2023): Cypht is now at 72 000 installs! https://packagist.org/packages/jason-munro/cypht And Cypht has become the most popular webmail on Packagist: https://packagist.org/search/?tags=webmail It positions Cypht as **the pluggable webmail of the PHP ecosystem**. To be fair, it's made easier because Roundcube (arguably the most popular Open Source webmail) has decided not to offer this: https://github.com/roundcube/roundcubemail/issues/5938
Author
Owner

@marclaporte commented on GitHub (Nov 5, 2023):

75k installs! https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:1793613727 --> @marclaporte commented on GitHub (Nov 5, 2023): 75k installs! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (Apr 1, 2024):

82k installs!

https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:2030611666 --> @marclaporte commented on GitHub (Apr 1, 2024): 82k installs! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (Sep 10, 2024):

94k installs!
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:2341740867 --> @marclaporte commented on GitHub (Sep 10, 2024): 94k installs! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (Oct 14, 2024):

97k installs!
https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:2411618238 --> @marclaporte commented on GitHub (Oct 14, 2024): 97k installs! https://packagist.org/packages/jason-munro/cypht
Author
Owner

@marclaporte commented on GitHub (Nov 13, 2024):

We have passed 100k installs for Cypht! https://packagist.org/packages/jason-munro/cypht

<!-- gh-comment-id:2472338129 --> @marclaporte commented on GitHub (Nov 13, 2024): We have passed 100k installs for Cypht! https://packagist.org/packages/jason-munro/cypht
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cypht#273
No description provided.