Find a file
2022-02-18 22:46:40 +00:00
.devcontainer feat: add nomcom questionnaires tabs tests 2021-11-22 19:34:22 +00:00
.github/workflows build: Add GitHub Actions workflow for automatic nightly datatracker DB image build 2021-12-07 03:19:26 +00:00
.vscode feat: cypress JS testing for agenda meetings + weekview swimlane (WIP) 2021-11-18 23:48:23 +00:00
bin Find references from submitted XML instead of rendering to text and parsing. Fixes #3342. Commit ready for merge. 2022-01-07 17:53:23 +00:00
bootstrap Update bootstrap to 3.4.1 2020-07-31 10:42:14 +00:00
buildbot Removed Henrik from several places that would send him mail at his request. 2021-03-04 18:44:09 +00:00
cypress misc: add .gitignore + fix cypress files to match JS style guide 2021-12-07 03:42:44 +00:00
data Updated docker-related files based on 6.17.0 2016-03-22 21:10:33 +00:00
djangobwr Merged in [19130] from lars@eggert.org: 2021-06-22 21:41:15 +00:00
docker Add de-gfm to the docker setup. Fixes #3494. Commit ready for merge. 2022-01-19 19:44:28 +00:00
env Removed some Py2 compatibility decorators. 2020-04-21 13:54:31 +00:00
etc Removed the crontab, because of too many drawbacks. 2016-06-17 13:07:52 +00:00
hooks Captured the last of the current commit hooks. Fixes #3297. Commit ready for merge. 2021-06-02 16:24:58 +00:00
ietf Only keep the first and most recent yang validator SubmissionCheck for any given submission. Fixes #3542. Commit ready for merge. 2022-02-18 22:46:40 +00:00
media misc: new README.md + docker dir cleanup 2021-12-21 01:55:31 +00:00
notes Move items from PLAN into Trac or to the notes directory. Commit ready for merge. 2021-07-09 16:36:05 +00:00
patch Remove oic patch - 1.3.0 contains the fix. Commit ready for merge. 2021-07-14 18:31:45 +00:00
pyzmail Pyflakes fixes to our copy of pyzmail 2019-07-22 18:27:49 +00:00
static - Legacy-Id: 14646 2018-02-16 13:14:37 +00:00
test Add import of YouTube session videos using YouTube Data API. Fixes #2249. Commit ready for merge. 2017-06-01 18:36:46 +00:00
vzic Changed the plain UTC.ics zoneinfo entry from symlink to file. 2020-09-16 18:16:28 +00:00
.bowerrc Added a .bowerrc pointing to the new bower registry location. 2018-09-30 14:09:44 +00:00
.editorconfig misc: add .gitignore + fix cypress files to match JS style guide 2021-12-07 03:42:44 +00:00
.eslintrc.js Add an ESLint config for use with datatracker javascript and apply it to 2015-12-10 09:02:58 +00:00
.gitignore feat: cypress JS testing for agenda meetings + weekview swimlane (WIP) 2021-11-18 23:48:23 +00:00
.pylintrc Added a pylint rc-file, and fixed or silenced a number of issues found by pylint using the settings .pylintrc (which enable only error checking). 2016-09-08 14:48:59 +00:00
changelog Changelog entry for 7.45.0 2022-02-15 14:51:17 +00:00
changelog.py Python2/3 compatibility: replaced six.ensure_text() with either six.text_type or django's force_text(), depending on the case, and fixed a variable scope issue. 2019-07-16 13:20:05 +00:00
CODE_OF_CONDUCT.md docs: add CONTRIBUTING.md (with associated assets) and CODE_OF_CONDUCT.md 2021-12-06 19:21:35 +00:00
CONTRIBUTING.md docs: add CONTRIBUTING.md (with associated assets) and CODE_OF_CONDUCT.md 2021-12-06 19:21:35 +00:00
control Removed Henrik from several places that would send him mail at his request. 2021-03-04 18:44:09 +00:00
cypress.json feat: cypress JS testing for agenda meetings + weekview swimlane (WIP) 2021-11-18 23:48:23 +00:00
debug.py Added a couple of functions to debug.py 2020-06-06 20:12:00 +00:00
hold-for-merge bring the meetecho api integration back into the queue 2022-02-14 18:41:00 +00:00
INSTALL Updated the installation instructions based on feedback from mlarson@amsl.com. 2017-01-26 19:19:24 +00:00
LICENSE Updated the LICENSE file to used the wording from https://opensource.org/licenses/BSD-3-Clause 2018-02-09 16:31:03 +00:00
mypy.ini Added a mypy .ini file 2019-09-30 15:38:22 +00:00
package-lock.json feat: cypress JS testing for agenda meetings + weekview swimlane (WIP) 2021-11-18 23:48:23 +00:00
package.json feat: cypress JS testing for agenda meetings + weekview swimlane (WIP) 2021-11-18 23:48:23 +00:00
README.md misc: new README.md + docker dir cleanup 2021-12-21 01:55:31 +00:00
ready-for-merge adjust mergequeue 2021-12-01 22:58:44 +00:00
release-coverage.json.gz Code coverage data for release 7.45.0 2022-02-15 14:50:59 +00:00
requirements.txt Add gunicorn to requirements to support new deployment model. Commit ready for merge. 2022-01-27 15:58:21 +00:00
tzparse.py Initial 2to3 patch with added copyright statement updates. 2019-06-27 14:40:54 +00:00

IETF Datatracker

Release License Nightly DB Build

The day-to-day front-end to the IETF database for people who work on IETF standards.

Getting Started

This project is following the standard Git Feature Workflow with Develop Branch development model. Learn about all the various steps of the development workflow, from creating a fork to submitting a pull request, in the Contributing guide.

Make sure to read the Styleguides section to ensure a cohesive code format across the project.

You can submit bug reports, enhancement and new feature requests in the discussions area. Accepted tickets will be converted to issues.

Prerequisites

  • Python 3.6
  • Django 2.x
  • Node.js 16.x
  • MariaDB 10

See the Docker Dev Environment section below for a preconfigured docker environment.

Code Tree Overview

The ietf/templates/ directory contains Django templates used to generate web pages for the datatracker, mailing list, wgcharter and other things.

Most of the other ietf sub-directories, such as meeting, contain the python/Django model and view information that go with the related templates. In these directories, the key files are:

File Description
urls.py binds a URL to a view, possibly selecting some data from the model.
models.py has the data models for the tool area.
views.py has the views for this tool area, and is where views are bound to the template.

Adding a New Web Page

To add a new page to the tools, first explore the models.py to see if the model you need already exists. Within models.py are classes such as:

class IETFWG(models.Model):
    ACTIVE = 1
    group_acronym = models.ForeignKey(Acronym, primary_key=True, unique=True, editable=False)
    group_type = models.ForeignKey(WGType)
    proposed_date = models.DateField(null=True, blank=True)
    start_date = models.DateField(null=True, blank=True)
    dormant_date = models.DateField(null=True, blank=True)
    ...

In this example, the IETFWG class can be used to reference various fields of the database including group_type. Of note here is that group_acronym is the Acronym model so fields in that model can be accessed (e.g., group_acronym.name).

Next, add a template for the new page in the proper sub-directory of the ietf/templates directory. For a simple page that iterates over one type of object, the key part of the template will look something like this:

{% for wg in object_list %}
<tr>
<td><a href="{{ wg.email_archive }}">{{ wg }}</a></td>
<td>{{ wg.group_acronym.name }}</td>
</tr>
{% endfor %}

In this case, we're expecting object_list to be passed to the template from the view and expecting it to contain objects with the IETFWG model.

Then add a view for the template to views.py. A simple view might look like:

def list_wgwebmail(request):
    wgs = IETFWG.objects.all();
    return render_to_response('mailinglists/wgwebmail_list.html', {'object_list': wgs})

The selects the IETFWG objects from the database and renders the template with them in object_list. The model you're using has to be explicitly imported at the top of views.py in the imports statement.

Finally, add a URL to display the view to urls.py. For this example, the reference to list_wgwebmail view is called:

urlpatterns += patterns('',
     ...
     (r'^wg/$', views.list_wgwebmail),
)

Testing your work

Assuming you have the database settings configured already, you can run the server locally with:

 $ ietf/manage.py runserver localhost:<port>

where <port> is arbitrary. Then connect your web browser to localhost:<port> and provide the URL to see your work.

When you believe you are ready to commit your work, you should run the test suite to make sure that no tests break. You do this by running

 $ ietf/manage.py test --settings=settings_sqlitetest

Docker Dev Environment

In order to simplify and reduce the time required for setup, a preconfigured docker environment is available.

Read the Docker Dev Environment guide to get started.

Continuous Integration

TODO

Database & Assets

Nightly database dumps of the datatracker are available at
https://www.ietf.org/lib/dt/sprint/ietf_utf8.sql.gz

Note that this link is provided as reference only. To update the database in your dev environment to the latest version, you should instead run the docker/cleandb script!

Additional data files used by the datatracker (e.g. instance drafts, charters, rfcs, agendas, minutes, etc.) are available at
https://www.ietf.org/standards/ids/internet-draft-mirror-sites/

A script is available at docker/scripts/app-rsync-extras.sh to automatically fetch these resources via rsync.