sdispater / pendulum

Python datetimes made easy
https://pendulum.eustace.io
MIT License
6.22k stars 385 forks source link

Looking for maintainers! #590

Open sdispater opened 2 years ago

sdispater commented 2 years ago

Due to a lot of my limited time dedicated mostly to Poetry, Pendulum has not received the amount of care it deserved.

There is currently a WIP to modernize the codebase (see #569) and the 3.0 version is planned for the first half of 2022 but it's not going as fast as I would like.

So, I am looking for people interested in co-maintaining the library. Any type of help (bug fixes, issue triage, improvements) is welcome.

If you are interested in helping, let me know by commenting on this issue so that I can add you as a member of the project.

NickFabry commented 2 years ago

You know, I'd be interested in maintaining the project. I use pendulum quite a bit, and I like it very much, both its goals and its performance.

However, I don't know if I have the skill to maintain it. There would probably be a substantial amount of time (months?) before I could usefully contribute patches or judge those of others.

With that caveat noted, I'd like to help.

anvit25 commented 2 years ago

I am interested in helping, but same as Nick, I'm not a 100% sure if I can do it completely independently (I can write/modernize the code independently, but it would be better if someone else approves it)

sdispater commented 2 years ago

@NickFabry and @anvit25, thanks for being willing to help with the project. I appreciate it.

I can add you as co-maintainers of the project and you can go at your own pace from there. Even small changes or bugfixes can go a long way, so any contribution is welcome.

And I'll try to supervise and review PR as much as I can if it can make you feel more comfortable.

NickFabry commented 2 years ago

@sdispater - thank you for starting the project! I'll try my best, and I'll give it a go. I definitely would appreciate the adult supervision & review for a while until I get a little more skilled & familiar.

patrickmckenna commented 2 years ago

@sdispater if you could use another hand, I'm happy to help.

Didah commented 2 years ago

I'd love to help, have used pendulum for work for years now and want to see it keep improving.

miko13 commented 2 years ago

if you still need more hands, I would love to help out!

sterlinm commented 2 years ago

@sdispater I'm also interested in helping out.

It looks like you're planning some changes to the interface (e.g. removing the dst_rule if I'm reading recent commits correctly). Do you have a write-up of your planned changes somewhere? No big deal if not, just curious!

hrishikeshrt commented 2 years ago

I would also love to help with bugfixes, small changes as best as I can.

rileyjohngibbs commented 2 years ago

Count me interested. ✋

GeoXydias commented 2 years ago

If you still need people, I could also do some things.

Jorricks commented 2 years ago

Hey @sdispater, First of all nice work on this library! Second, I would love to maintain the library, however, I feel like there are nice consortiums that make maintaining a library like this easier. One example is https://jazzband.co/ but I am pretty sure there must be more. Here everyone in the organization can maintain the repositories that are part of the group. This way, you have way less things to worry about and we get started on going through the issues :).

theonesean commented 2 years ago

Hi, @sdispater, I've been involved in other open source projects as a contributor, and have used Pendulum happily for several years in my day gig. I would need a bit of time to get up to speed, but this is a project I feel I could sink my teeth into, and potentially devote resources to in the long term.

Thanks!

lemerchand commented 1 year ago

I'm also interested in helping if I could. I may not be the most professionally experienced programmer and I'm not sure what I could help with, but if there is any thing I can do I'd be happy to help!

notatallshaw-gts commented 1 year ago

Out of curiosity did this go anywhere? To be clear I am not volunteering and therefore appreciate that I am not entitled to any update, I am just trying to assess the situation.

I see several important fixes (e.g. the timezone database is no longer correct by default) are pending release and there are some interesting PRs that look like they could be reviewed (e.g. https://github.com/sdispater/pendulum/pull/716).

I see a prerelease of 3.0 was published last year but it seems no further work to a new release has happened since then?

Gamrix commented 1 year ago

Given that this is a library used at the company I am at, I am happy to help once version 3 is in beta. (I can't handle the optics of using an "alpha-level" release for production work). There especially is a lot related to typing that I would be happy to improve.

jabak3r commented 1 year ago

I would like to help as well I use Pendulum daily and would love to give back to the community

josephmancuso commented 10 months ago

willing to maintain. will use my own resources and Masonite resources.

will need to be invited though

eaguad1337 commented 10 months ago

I'd love to help. I am currently contributing to Masonite too.

cunla commented 4 months ago

Hi, are you still looking for maintainers?

stripedpumpkin commented 2 weeks ago

Hello, I was wondering where you guys were standing on the pendulum maintenance situation. It seems like the issues and PR are piling up. Do you guys have an external channel? Do you guys need help?

Secrus commented 1 week ago

From my point of view, Pendulum is on life support. @sdispater is MIA and other than merging PRs I can't do much, including releases.

cunla commented 1 week ago

@Secrus, if the current maintainer is not interested in continuing to maintain, open a PEP541 request on pypi. See here: https://pypi.org/help/#project-name-claim

It takes some time since they will try to check with @sdispater first. Assuming there is no response, you will take over the pypi project. I am happy to support in maintaining this project and joining you as a maintainer.

notatallshaw-gts commented 1 week ago

@Secrus, if the current maintainer is not interested in continuing to maintain, open a PEP541 request on pypi. See here: https://pypi.org/help/#project-name-claim

I would not advise this.

  1. Pendulum has too many users to be removed as an abandoned project: https://peps.python.org/pep-0541/#reclaim-name
  2. To take over maintenance of the project you must first demonstrate you have a fork which has improvements: https://peps.python.org/pep-0541/#continued-maintenance-of-an-abandoned-project, and given how this project is important to so many users the PyPI admins will probably want a lot of further evidence that it's a good idea to let someone else take over the project

Until someone forks Pendulum and starts actively maintaining that fork it is a waste of time, for everyone involved, to raise a PEP 541 request.

And I should note, many of the reasons I personally picked pendulum are now satisfied by whenever, so at least for new projects I am trying that out: https://github.com/ariebovenberg/whenever?tab=readme-ov-file#-whenever

cunla commented 1 week ago

I did not mean to mark it as abandoned, but adopt it.

There is a proper process described for adopting a project. I have done it myself in the past (see fakeredis).

There is no point maintaining a fork which only one is using (might as well make it a part of the dependant project). Instead, it is better to adopt the existing package with an intention to maintain it.

Personally, I am happy to be a maintainer of pendulum, but would not want to be the sole responsible as I already have a bunch of packages.

mattsta commented 1 week ago

And I should note, many of the reasons I personally picked pendulum are now satisfied by whenever, so at least for new projects I am trying that out: https://github.com/ariebovenberg/whenever?tab=readme-ov-file#-whenever

I think we just need a compatibility wrapper for other libraries.

One nice thing about pendulum is it made common usage simple, so I could do things like:

pendulum.parse(user_input_date, tz="US/Eastern")

In [251]: %timeit pendulum.parse("2021-01-01", tz="US/Eastern")
4.97 µs ± 36.9 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)

but jumping to whenever it becomes:

whenever.LocalDateTime.from_py_datetime(
    dateutil.parser.parse(user_input_date)
).assume_tz("US/Eastern", disambiguate="compatible")

In [249]: %timeit whenever.LocalDateTime.from_py_datetime(dateutil.parser.parse("2021-01-01")).assume_tz("US/Eastern", disambiguate="compatible")
15.7 µs ± 40 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)

or maybe it's:

whenever.ZonedDateTime.from_timestamp(dateutil.parser.parse("2021-01-01").timestamp(), tz="US/Eastern")

In [252]: %timeit whenever.ZonedDateTime.from_timestamp(dateutil.parser.parse("2021-01-01").timestamp(), tz="US/Eastern")
16.1 µs ± 82.2 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)

but at that point, why not just use default libraries instead:

pytz.timezone("US/Eastern").localize(dateutil.parser.parse(user_input_date))

In [247]: %timeit pytz.timezone("US/Eastern").localize(dateutil.parser.parse("2021-01-01"))
26.1 µs ± 181 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

There's some middle ground between "good defaults, good usability" and over-specifying things everywhere.

The over-complex specification problem for simple actions is fixable by writing extra helper functions, but the entire point of a simple usable datetime library was to avoid writing all the helper functions in the first place. 🤷‍♂️

ericfrederich commented 6 days ago

Curious if the process with PyPI has been started to take over the project if in fact @sdispater is MIA.

mattsta commented 6 days ago

We tried to do a pypi transfer recently on another project and nobody ever responded.

It looks like pypi doesn't have enough people (or maybe anybody?) to run the program: https://github.com/pypi/support/issues

notatallshaw-gts commented 6 days ago

There is a proper process described for adopting a project. I have done it myself in the past (see fakeredis).

Yeah, sorry, I missed that @Secrus was also a maintainer, I would trust a fork from them with a PEP 541 request, if they are willing and able.

I just think any takeover of pendulum has to be done very carefully as its popularity, as indicated by PyPI downloads at least, puts it as quite a critical package.

And I should note, many of the reasons I personally picked pendulum are now satisfied by whenever, so at least for new projects I am trying that out: https://github.com/ariebovenberg/whenever?tab=readme-ov-file#-whenever

I think we just need a compatibility wrapper for other libraries.

One nice thing about pendulum is it made common usage simple, so I could do things like:

For those who hadn't noticed, whenever's author has opened an issue taking this feedback: https://github.com/ariebovenberg/whenever/issues/173

We tried to do a pypi transfer recently on another project and nobody ever responded.

This topic comes up often on https://discuss.python.org/, the response has been that they are hiring people and getting more done, but anecdotally I still see lots of people complaining they get no response. I hate to suggest nudging on discuss to get wider visibility, but if a pendulum request was not responded to for more than a few weeks, it seems important enough to raise there.

stripedpumpkin commented 6 days ago

Alternatively could we fork the project under a new name and release it under some collective account on pypi so we can avoid the situation of having just one person having the credentials ?

Secrus commented 4 days ago

To manage some expectations: I am not working in any way to take the project over. My role here was always more of a "helping hand" rather than a "driving force". Pendulum is a nice project, but needs proper care from someone who can put some time and love into making it great and fixing various bugs. I am not that person. If someone is willing to provide patches/PRs, I am more than happy to review and merge them, so that users can at least use git source to get patches.