From 7e8a5a78e26dafde1c01e5350350d8153ce8eaab Mon Sep 17 00:00:00 2001 From: Antti Haapala Date: Wed, 14 Jan 2026 21:31:02 +0200 Subject: [PATCH 1/2] Update community pages and fix broken links - Add Discord as primary developer contact, IRC as secondary - Add GitHub Discussions link for future development discussions - Update Twitter references to X (x.com) - Fix spelling of "pharaohs" - Update broken repoze.catalog and repoze.workflow links to GitHub - Remove outdated Publications section with broken blog links - Remove outdated "Making good add-ons" and "Making Good Development Environments" sections from extending-pyramid page --- layouts/page/community-feeds.html | 6 +- layouts/page/community.html | 32 ++++---- layouts/page/extending-pyramid.html | 114 ---------------------------- layouts/partials/footer.html | 2 +- 4 files changed, 17 insertions(+), 137 deletions(-) diff --git a/layouts/page/community-feeds.html b/layouts/page/community-feeds.html index f60610b..d87cb5c 100644 --- a/layouts/page/community-feeds.html +++ b/layouts/page/community-feeds.html @@ -7,7 +7,7 @@

Feeds

Subscribe to the Google Group, pylons-discuss. - Follow us on Twitter @PylonsProject. Chat with us in + Follow us on X @PylonsProject. Chat with us in #pyramid on IRC.

@@ -18,9 +18,9 @@

Google Group

-

Twitter

+

X

diff --git a/layouts/page/community.html b/layouts/page/community.html index 1ac1719..97f82f3 100644 --- a/layouts/page/community.html +++ b/layouts/page/community.html @@ -39,7 +39,9 @@

Help

Stack Overflow questions tagged with "Pyramid" have over 600 followers.

-

Developers (150-250 participants) are also generally available on the Developers can be reached on the Pylons Project Discord. + Some may also linger on the #pyramid channel on the Libera.Chat IRC Network.

@@ -64,6 +66,12 @@

Participate

Report general issues on GitHub.

+
+ Future Development +
+
+

Discuss ideas and future development in GitHub Discussions.

+
Contributing @@ -79,20 +87,6 @@

Participate

-

Tools

@@ -116,7 +110,7 @@

href="https://www.jetbrains.com/">JetBrains products, including PyCharm, at no cost. Contact user stevepiercy in the - #pyramid IRC channel on irc.libera.chat. + Pylons Project Discord.

@@ -138,7 +132,7 @@

Podcasts and Videocasts

-

When hieroglyphs are not enough, these pharoahs and mummies rise to speak and broadcast.

+

When hieroglyphs are not enough, these pharaohs and mummies rise to speak and broadcast.

-
-
-

Making good add-ons

-

Add-on packages should be named pyramid_foo where foo describes the functionality - of the package. For example, pyramid_mailer is a great name for something that provides - outbound mail service. If the name you want has already been taken, try to think of another, for example, - pyramid_mailout. If the functionality of the package cannot easily be described with one word, - or the name you want has already been taken and you can't think of another name related to functionality, - use a codename, for example, pyramid_postoffice.

-

If your package provides "configuration" functionality, you will be tempted to create your own framework to - do the configuration, like the following:

- -

-

-              class MyConfigurationExtender(object):
-    def __init__(self, config):
-        self.config = config
-
-    def doit(self, a, b):
-        self.config.somedirective(a, b)
-
-extender = MyConfigurationExtender(config)
-extender.doit(1, 2)
-            
-

-

Instead of doing so, use the add_directive method of a configurator as documented at - Adding - Methods to the Configurator via add_directive:

- -

-

-              def doit(config, a, b):
-    config.somedirective(a, b)
-
-config.add_directive('doit', doit)
-            
-

-

If your add-on wants to provide some default behavior, provide an includeme method in your - add-on's __init__.py, so config.include('pyramid_foo') will pick it up. See - Including - Configuration From External Sources.

- -

Making Good Development Environments

- -

If you are creating a higher-level framework atop the Pyramid codebase that contains "template" code - (skeleton code rendered by a user via pcreate -t foo), for the purposes of uniformity with - other "development environment" packages, we offer some guidelines below.

-
    -
  • It should not be named with a pyramid_ prefix. For example, instead of - pyramid_foo it should just be named foo. The pyramid_ prefix is - best used for add-ons that plug some discrete functionality in to Pyramid, not for code that simply uses - Pyramid as a base for a separate framework with its own "opinions".
  • -
  • It should be possible to subsequently run pserve development.ini to start any - pcreate-rendered application.
  • -
  • development.ini should ensure that the pyramid_debugtoolbar package is active. -
  • -
  • There should be a production.ini file that mirrors development.ini but - disincludes pyramid_debugtoolbar.
  • -
  • The [server:main] section of both production.ini and - development.ini should start paste.httpserver on port 6543: -

    -

    -              [server:main]
    -use = egg:Paste#http
    -host = 0.0.0.0
    -port = 6543
    -            
    -

    -
  • -
  • development.ini and production.ini should configure logging (see any existing - template).
  • -
  • It should be possible to use pshell development.ini to visit an interactive shell using a - pcreate-rendered application.
  • -
  • Startup/configuration code should live in a function named main within the - __init__.py of the main package of the rendered template. This function should be linked - within a paster.app_factory section in the template's setup.py like so: -

    -

    -              entry_points = """\
    -[paste.app_factory]
    -main = {{ htmlEscape "{{package}}:main" }}
    -"""
    -            
    -

    -
  • -
  • This makes it possible for users to use the following pattern (particularly - {{ htmlEscape "use = egg:{{project}}" }}): -

    -

    -              {{ htmlEscape "[app:{{project}}]" }}
    -{{ htmlEscape "use = egg:{{project}}" }}
    -reload_templates = true
    -.. other config ..
    -            
    -

    -
  • -
  • WSGI middleware configuration should not be inlined into imperative code within the main function. - Instead, middleware should be configured within a [pipeline:main] section in the - configuration file: -

    -

    -              [pipeline:main]
    -pipeline =
    -    egg:WebError#evalerror
    -    tm
    -    {{ htmlEscape "{{project}}" }}
    -            
    -

    -
  • -
- -
-
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 9c972d6..5c1d3f4 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -2,7 +2,7 @@
-

- PyCharm - -

-

- PyCharm is an - integrated development environment for Python from - JetBrains. PyCharm - Professional Edition includes Pyramid as one of its Python web - frameworks, making it easy to create, debug, and run - Pyramid projects. -

-

- Core developers in Pyramid and any other project under the Pylons Project are eligible to receive a - renewable one-year free and open source software license for all JetBrains products, including - PyCharm, at no cost. Contact user - stevepiercy in the - Pylons Project Discord. -

-
-
-

- - PyCharm - -

-

- - JetBrains - -

-
-
- -
-

Podcasts and Videocasts

diff --git a/layouts/page/extending-pyramid.html b/layouts/page/extending-pyramid.html index e03afe2..d16a97d 100644 --- a/layouts/page/extending-pyramid.html +++ b/layouts/page/extending-pyramid.html @@ -28,6 +28,15 @@

Contributing add-ons

Testing Guidelines. All Pylons Project participants should strive to follow our Code of Conduct.

To add your project to the listing, see Adding an add-on to "Extending Pyramid" page in CONTRIBUTING.md.

+

Making good add-ons

+

Add-on packages should be named pyramid_foo where foo describes the functionality + of the package. For example, pyramid_mailer is a great name for something that provides + outbound mail service. If the name you want has already been taken, try to think of another, for example, + pyramid_mailout. If the functionality of the package cannot easily be described with one word, + or the name you want has already been taken and you can't think of another name related to functionality, + use a codename, for example, pyramid_postoffice.

+

For how to provide configuration hooks for your add-on, see + Extending Pyramid Configuration.