Pārlūkot izejas kodu

Release notes, readme, and doc updates for 0.16 release (#223)

Vince Salvino 5 gadi atpakaļ
vecāks
revīzija
3c552bb240
7 mainītis faili ar 120 papildinājumiem un 13 dzēšanām
  1. 25 4
      README.md
  2. 11 0
      ci/run_flake8.ps1
  3. 1 1
      coderedcms/__init__.py
  4. 46 8
      docs/contributing/index.rst
  5. 1 0
      docs/releases/index.rst
  6. 34 0
      docs/releases/v0.16.0.rst
  7. 2 0
      setup.py

+ 25 - 4
README.md

@@ -15,7 +15,17 @@
 
 
 
+## Status
+
+|                        |                      |
+|------------------------|----------------------|
+| Python Package         |[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/coderedcms)](https://pypi.org/project/coderedcms/) [![PyPI - Django Version](https://img.shields.io/pypi/djversions/coderedcms)](https://pypi.org/project/coderedcms/) [![PyPI - Wheel](https://img.shields.io/pypi/wheel/coderedcms)](https://pypi.org/project/coderedcms/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/coderedcms)](https://pypi.org/project/coderedcms/) [![PyPI](https://img.shields.io/pypi/v/coderedcms)](https://pypi.org/project/coderedcms/) |
+| Build                  | [![Build Status](https://dev.azure.com/coderedcorp/coderedcms/_apis/build/status/coderedcms?branchName=master)](https://dev.azure.com/coderedcorp/coderedcms/_build/latest?definitionId=1&branchName=master) [![Azure DevOps tests (branch)](https://img.shields.io/azure-devops/tests/coderedcorp/coderedcms/1/master)](https://dev.azure.com/coderedcorp/coderedcms/_build/latest?definitionId=1&branchName=master) [![Azure DevOps coverage (branch)](https://img.shields.io/azure-devops/coverage/coderedcorp/coderedcms/1/master)](https://dev.azure.com/coderedcorp/coderedcms/_build/latest?definitionId=1&branchName=master) |
+
+
+
 ## Note
+
 **This project is still early on in its development lifecycle.** It is possible for breaking changes to occur between versions until reaching a stable 1.0, however we will clearly note any breaking changes between releases if applicable. Feedback and pull requests are welcome.
 
 ## Quick start
@@ -38,11 +48,12 @@ See the [documentation](https://docs.coderedcorp.com/cms/) for next steps and cu
 
 
 ## Why use CodeRed CMS?
-In addition to the numerous benefits of [Wagtail](https://wagtail.io/features/), CodeRed has features that are *great* for marketing websites:
 
-* **The entire editing experience is tailored for marketing content.** Create flashy hero units, callouts, and forms using a beautiful editing interface. Full SEO attributes and detailed Google Analytics tracking is available out of the box. Editors and Designers can easily update content, designs, and layout without fear of breakage and without the need to consult developers. Developers can fully customize the site without relying on plugins or undocumented hacks.
+In addition to the numerous benefits of [Wagtail](https://wagtail.io/features/), CodeRed has features that are *specifically designed* for marketing websites:
+
+* **The editing experience is tailored for visual marketing content.** Create flashy hero units, callouts, and forms using a beautiful editing interface. Editors and Designers can easily update content, designs, and layout without fear of breakage and without the need to consult developers. Developers can fully customize the site using plain HTML/CSS/JavaScript without relying on plugins or undocumented hacks.
 
-* **Built-in SEO** including Open Graph, structured data, and many other meta tags automatically applied. A sitemap and robots.txt are also present and automatically updated. Articles and blog posts support Google’s preferred AMP format.
+* **Built-in SEO** Optimized metadata for Facebook, Twitter, LinkedIn, Google, Bing, and more are all included out of the box. A sitemap and robots.txt are also present and automatically updated. Articles, blog posts, and events support Google’s preferred AMP format to boost search ranking and support mobile devices.
 
 * **Responsive design** out of the box! Editors can build content using [Bootstrap 4](https://getbootstrap.com/) components including navbars, hero units, carousels, cards, modals, and the powerful grid system.
 
@@ -54,7 +65,14 @@ In addition to the numerous benefits of [Wagtail](https://wagtail.io/features/),
 
 
 
+## Quality Control
+
+In addition to manual testing by real humans between releases, we also employ many quality control tools to automatically catch some errors before they are introduced to the code. The CodeRed team has a strong focus on quality and security to ensure CodeRed CMS remains reliable for use in day-to-day business operations.
+
+
+
 ## Roadmap
+
 Officially, CodeRed CMS is in a beta stage. That being said, it is currently in use on production sites. However there are still many activities that are needed before hitting a 1.0 “stable” status.
 
 Work already in progress before 1.0 release:
@@ -84,6 +102,7 @@ Other future plans:
 ## Inspiration and Design Philosophy
 
 ### Inspiration from WordPress
+
 We the creators of CodeRed CMS deal with WordPress sites on a daily basis. While WordPress is fantastic for blogs and do-it-yourself websites, we feel it is very frustrating for use in a professional environment where the site needs to be actively enhanced, maintained, and secured on a daily basis. We designed CodeRed CMS as a marketing-focused WordPress replacement, *not* a WordPress clone. The intended audience is an agency, technology firm, business, or non-profit who has at least one full stack web developer managing the website.
 
 WordPress users will feel comfortable with CodeRed CMS, as many of the editing and design paradigms are similar such as:
@@ -105,6 +124,7 @@ PLUS many aspects are greatly enhanced:
 * The site can be professionally managed with better control over 3rd party plugins to prevent unplanned breakage (if you've ever managed a large WordPress site - you know exactly how painful this is).
 
 ### As an Extension of Wagtail
+
 CodeRed CMS is a pip package that essentially wraps Wagtail and provides marketing-specific features that are ready to be used out of the box. Everything that can be done with Wagtail can be done with CodeRed.
 
 One major point of difference between between CodeRed and stock Wagtail is the approach to design and content. Wagtail being more of a CMS framework, is focused on a clear separation between design (UX) and content. We agree with this approach for larger informational sites. But as is usually the case with marketing sites, design and information are more tightly coupled. Developers shouldn’t *need* to create a new page type or a new block just to handle a design deviation that is used in one place on the site. Designers and editors shouldn’t *need* to engage the developer for every minor design-related change such as changing a CSS class. For this reason, CodeRed blurs the lines of design and content by enabling editors to specify templates on a per-page and per-block basis, CSS classes per-block, and many other logo, layout, and branding settings. We realize this is not the right approach for every site - but we do believe it adds a lot of value for marketing sites.
@@ -112,4 +132,5 @@ One major point of difference between between CodeRed and stock Wagtail is the a
 
 
 ## Contact
-We would love to hear your questions, comments, and feedback. Contact us on GitHub or at info@coderedcorp.com.
+
+We would love to hear your questions, comments, and feedback. Open an issue on Github, message us on [#coderedcms in the Wagtail slack](https://wagtailcms.slack.com/messages/CEU45SBRR), or email us at info@coderedcorp.com.

+ 11 - 0
ci/run_flake8.ps1

@@ -1,3 +1,5 @@
+#!/usr/bin/env pwsh
+
 $ExitCode = 0
 $GitDiff = git diff origin/master
 # If there is no diff between master, then flake8 everything.
@@ -16,4 +18,13 @@ else {
         if ($LastExitCode -ne 0) { $ExitCode = $LastExitCode }
     }
 }
+
+# Write friendly output
+if ($ExitCode -eq 0) {
+    Write-Host -ForegroundColor Green "[✔] Flake8 passed with no errors"
+}
+else {
+    Write-Host -ForegroundColor Red "[❌] Flake8 exited with errors. Please resolve issues above."
+}
+
 exit $ExitCode

+ 1 - 1
coderedcms/__init__.py

@@ -1,4 +1,4 @@
-release = ['0', '15', '2']
+release = ['0', '16', '0']
 
 __version__ = "{0}.{1}.{2}".format(release[0], release[1], release[2])
 __shortversion__ = "{0}.{1}".format(release[0], release[1])

+ 46 - 8
docs/contributing/index.rst

@@ -3,7 +3,7 @@ Contributing
 
 
 Developing CodeRed CMS
----------------------------------
+----------------------
 
 To create a test project locally:
 
@@ -18,7 +18,7 @@ To create a test project locally:
    4 and 5 in :doc:`/getting_started/install` with a fresh database before making migrations.
 #. When model or block changes affect the local test project (i.e. the "website" app), run
    ``makemigrations website`` in the test project to generate the relevant migration files locally.
-   Apply and test the migrations. When satisfied, re-generate the 0001_initial.py migration in
+   Apply and test the migrations. When satisfied, re-generate the ``0001_initial.py`` migration in
    ``project_template/website/migrations/`` as so:
 
        #. Create a new test project using ``coderedcms start testproject``.
@@ -31,7 +31,7 @@ When making changes that are potentially destructive or backwards incompatible,
 version number until coderedcms reaches a stable 1.0 release. Each production project that uses
 coderedcms should specify the appropriate version in its requirements.txt to prevent breakage.
 
-.. note:
+.. note::
     When testing existing projects with coderedcms installed from the master or development branches,
     be sure to use a disposable database, as it is likely that the migrations in master will
     not be the same migrations that get released.
@@ -141,7 +141,39 @@ For example, here is how you would add tests for a new abstract page type, ``Cod
 10. Write any specific test cases that ``CoderedCustomPage`` and ``CustomPage`` may require.
 
 
-Contributor guidelines
+Static Analysis
+---------------
+
+Flake8 is used to check for syntax and style errors. To analyze the entire codebase, run:
+
+.. code-block:: console
+
+    $ flake8 .
+
+Alternatively, our continuous integration only analyzes the diff between your changes
+and master. To analyze just the diff of your current changes, run the
+`PowerShell Core <https://github.com/powershell/powershell>`_ script:
+
+.. code-block:: console
+
+    $ ./ci/run_flake8.ps1
+
+
+
+A Note on Cross-Platform Support
+--------------------------------
+
+CodeRed CMS works equally well on Windows, MacOS, and Linux. When adding new features
+or new dependencies, ensure that these utilize proper cross-platform utilities in Python.
+
+For shell or automation scripts, we default to
+`PowerShell Core <https://github.com/powershell/powershell>`_ because it provides high quality
+commercial support for Windows, MacOS, and Linux.
+
+Our goal is that users of any platform can develop or host a CodeRed CMS website easily.
+
+
+Contributor Guidelines
 ----------------------
 
 We are happy to accept pull requests from the community if it aligns with our vision for coderedcms.
@@ -155,8 +187,8 @@ Following submission of your pull request, a CodeRed member will review and test
 **All changes, even by CodeRed members, must go through a pull request process to ensure quality.**
 
 
-Building pip packages
----------------------
+Building Python Packages
+------------------------
 
 To build a publicly consumable pip package, run:
 
@@ -165,7 +197,7 @@ To build a publicly consumable pip package, run:
     $ python setup.py sdist bdist_wheel
 
 
-Building documentation
+Building Documentation
 ----------------------
 
 For every code or feature change, be sure to update the docs in the repository. To build and publish
@@ -177,10 +209,13 @@ the documentation run:
     $ make clean
     $ make html
 
+.. note::
+    Windows users should run ``make.bat`` instead of ``make`` above.
+
 Output will be in ``docs/_build/html/`` directory.
 
 
-Publishing a new release
+Publishing a New Release
 ------------------------
 
 First checkout the code/branch for release.
@@ -205,6 +240,9 @@ Finally build and update docs:
     $ make clean
     $ make html
 
+.. note::
+    Windows users should run ``make.bat`` instead of ``make`` above.
+
 If updating docs for an existing minor version release:
 
 #. Copy the contents of ``docs/_build/html/`` to the CodeRed docs server under the existing version directory.

+ 1 - 0
docs/releases/index.rst

@@ -17,6 +17,7 @@ CodeRed CMS follows the ``[major].[minor].[maintenance]`` versioning scheme.
 .. toctree::
     :maxdepth: 1
 
+    v0.16.0
     v0.15.2
     v0.15.1
     v0.15.0

+ 34 - 0
docs/releases/v0.16.0.rst

@@ -0,0 +1,34 @@
+CodeRed CMS 0.16.0 release notes
+================================
+
+
+New features
+------------
+
+* NEW spam protection on forms (ON by default). We have been piloting this out
+  for several months and have seen a 100% success rate so far. See :doc:`/features/page_types/form_pages`.
+* NEW support for Sass via a new starter template. See :doc:`/getting_started/install`.
+
+
+Bug fixes
+---------
+
+* Improved HTML5 validity by removing space within tags and ``href`` attributes.
+* Improved accessibility by adding title attribute to embedded iframes.
+
+
+Maintenance
+-----------
+
+* Major code cleanup to conform to Python best practices.
+* New continuous integration to enforce code quality standards outlined in :doc:`/contributing/index`.
+
+
+Upgrade considerations
+----------------------
+
+* You might need to run ``python manage.py makemigrations website`` and ``python manage.py migrate`` after upgrading.
+* Use of content delivery network for Bootstrap and jQuery has been replaced with local files.
+  This will improve local development and use behind firewalls/offline environments.
+  To continue using a CDN, override ``{% block frontend_assets %}`` , ``{% block required_scripts %}`` ,
+  and ``{% block frontend_scripts %}`` in your ``base.html`` file.

+ 2 - 0
setup.py

@@ -34,6 +34,8 @@ setup(
         'Programming Language :: Python :: 3 :: Only',
         'Framework :: Django',
         'Framework :: Django :: 2.0',
+        'Framework :: Django :: 2.1',
+        'Framework :: Django :: 2.2',
         'Framework :: Wagtail',
         'Framework :: Wagtail :: 2',
         'Topic :: Internet :: WWW/HTTP',