Replies: 11 comments 5 replies
-
Hi @N-Coder Also you can define projects inside the organization itself and repos. That's similar to a Kanban or Trello board and could help maintaining the project. Another benefit of an organization: each project is an individual repo and so it can define its own workflow, CI, etc. So all in all, I think it could be worth the price for having the work of maintainers distributed on different shoulders. |
Beta Was this translation helpful? Give feedback.
-
Would it make sense to have a separate timeline module? |
Beta Was this translation helpful? Give feedback.
-
Hello 👋 About the pypi rights, @N-Coder it definitely makes sense for you to have the rights to publish! I just gave you the "maintainer" access. @aureooms, @tomschr if you feel like it would make sense for you to have access to pypi, please let me know. About the an umbrella GitHub organization it also makes sense but we have to be cautious as moving the repository to an organization will change the URL. Maybe we could have a look at how other projects have done before ? Maybe take the Pallets projects as an example ? Here is a non-exhaustive list of things that would break/would need to be updated:
Nevertheless, i already parked the github.com/ics-py and github.com/icspy namespaces just to be sure. 🤞 |
Beta Was this translation helpful? Give feedback.
-
You mean the The project I mentioned above is only for Timezones and only contains generic ics data files, which could e.g. also be parsed by |
Beta Was this translation helpful? Give feedback.
-
If you transfer the repository, GitHub will forward anyone using the old links to the new home of the project (see the very last point here), so nothing should break immediately, but we still should update all links to directly point to the right place as you said.
Should we also think about the organization on RTD?
Naming is, as always, the hardest part. I sometimes get confused whether I should type As github.com/ics is already taken (and we actually are a python-specific project) while the 'py' is also usually not part of the name in python code, I would prefer github.com/ics-py to icspy to show that the 'py' is something separate. If we instead were to use 'icspy' more often, we probably should also migrate to
|
Beta Was this translation helpful? Give feedback.
-
I agree with Nico, naming is the hardest part. Just to add one thing to this discussion: If we agree on a naming and it's done, maybe it is a good opportunity to release a new (major?) release? Just reflect this on PyPI, RTD, READMEs, etc. |
Beta Was this translation helpful? Give feedback.
-
Understood.
Can you explain precisely what kind of layer would |
Beta Was this translation helpful? Give feedback.
-
I can see a few python packages that seem to bundle these files (https://pypi.org/search/?q=olson). None of these are usable? |
Beta Was this translation helpful? Give feedback.
-
Sorry for the late reply, this week has been busy and the answers to Auréliens questions will be a bit longer, so I'll post them later to the corresponding PR #249, but you might want to start with reading my initial thoughts here.
Doing an (or at least one) intermediate release sounds good, we also have some smaller changes that could make it into a v0.7.1 release for anyone who doesn't want to do the necessarily manual upgrade to v0.8. We also have quite a few breaking changes, of which we should make our users aware before they do an auto-update without having the ics.py version pinned and then run into trouble. Examples are the removal of Arrow and the changed serialization / to string behaviour (see #240):
To summarize, the new methods are more aligned with python coding standards and work as follows:
So someone who blindly upgrades from v0.7 to v0.8 might still serialize their iCalendars using # old
cal = ics.Calendar("BEGIN:VCALENDAR...")
cals = ics.Calendar.parse_multiple(open("merged-calendars.ics"))
# new
cal = ics.load("BEGIN:VCALENDAR...")
cals = ics.load_multiple(open("merged-calendars.ics")) We could change the old methods so that they throw an exception with a helpful message pointing people at our migration guide. |
Beta Was this translation helpful? Give feedback.
-
Apart from all these changes, which are probably all necessary and useful, I would like to focus on an additional topic (usually completely underestimated): the migration from old to new. You can change names, move functions from one file to another, or add additional features. That is all fine and the daily work of any developer. However, I strongly believe all these changes needs to be documented. Especially if you introduce incompatible changes. 😉 I have the following use case in mind: if a developer using your project from an older version and wants to move to the new version: what does this developer need to know? What are the little (or big) traps? What does he or she need to do? It doesn't need much. A short chapter describing what needs to be done (and maybe why) is all what is needed. If the changes are self-explanatory and simple, this task can be done by a well maintained changelog. However, sometimes, this is too dense so a separate chapter/section etc. is probably the better solution. There you can give more background, add examples etc. Tl;dr: add a chapter or section describing all incompatible changes and how to migrate from the old to the new version. |
Beta Was this translation helpful? Give feedback.
-
While browsing GitHub i stumbled upon the @jazzband organisation. |
Beta Was this translation helpful? Give feedback.
-
For the Timezone handling in #249 we need to somehow ship the Olson timezone database in form of ics files. As this information changes with a schedule different from the releases of ics.py (and both have different licences), it would probably make sense to decouple the ics.py code and the timezone ics data files in two separate repos and packages. I created a new repo and pypi project using my personal account for this, currently called
ics_vtimezones
. While this works for development and testing, it would probably make sense to have both projects living next to each other once we release v0.8. Speaking of that new version, I guess I currently don't have the permission to push that to PyPi.So, in terms of truck factor and future development, it might make sense to move the
ics.py
project together with theics_vtimezones
project into a GitHub organization, resting on multiple people. Similarly for PyPi, I guess it would make sense to not have the projects with only a "single owner", but also with multiple maintainers.@C4ptainCrunch, what do you think about this? Maybe we should also ask other long-term contributors like @aureooms and @tomschr.
Beta Was this translation helpful? Give feedback.
All reactions