├── tracopt ├── __init__.py ├── perm │ ├── __init__.py │ └── tests │ │ └── __init__.py ├── ticket │ ├── __init__.py │ ├── tests │ │ └── __init__.py │ └── htdocs │ │ └── ticketdeleter.js └── versioncontrol │ ├── __init__.py │ ├── git │ ├── __init__.py │ └── tests │ │ └── __init__.py │ └── svn │ ├── __init__.py │ └── tests │ ├── svnrepos.dump │ └── __init__.py ├── .github ├── vcpkg.txt ├── requirements-prepare.txt ├── release.sh ├── requirements-minimum.txt ├── requirements.txt ├── posix-test-minimum.sh ├── release-upload.sh ├── svn-swig41.patch ├── svn-expat272.patch └── windows-test-minimum.ps1 ├── doc ├── README ├── todo.rst ├── images │ ├── trac_logo.png │ ├── vertbars.png │ └── bkgnd_pattern.png ├── api │ ├── trac_log.rst │ ├── trac_dist.rst │ ├── trac_about.rst │ ├── trac_db_pool.rst │ ├── trac_resource.rst │ ├── trac_web_wsgi.rst │ ├── trac_db_schema.rst │ ├── trac_search_api.rst │ ├── trac_ticket_api.rst │ ├── trac_wiki_admin.rst │ ├── trac_wiki_model.rst │ ├── trac_admin_web_ui.rst │ ├── trac_prefs_web_ui.rst │ ├── trac_ticket_admin.rst │ ├── trac_ticket_batch.rst │ ├── trac_ticket_query.rst │ ├── trac_timeline_api.rst │ ├── trac_util_compat.rst │ ├── trac_util_daemon.rst │ ├── trac_web_session.rst │ ├── trac_wiki_parser.rst │ ├── trac_wiki_web_api.rst │ ├── trac_wiki_web_ui.rst │ ├── trac_admin_console.rst │ ├── trac_search_web_ui.rst │ ├── trac_ticket_report.rst │ ├── trac_ticket_web_ui.rst │ ├── trac_web_standalone.rst │ ├── trac_wiki_intertrac.rst │ ├── trac_wiki_interwiki.rst │ ├── trac_timeline_web_ui.rst │ ├── trac_util_autoreload.rst │ ├── tracopt_ticket_clone.rst │ ├── trac_db_mysql_backend.rst │ ├── trac_db_sqlite_backend.rst │ ├── trac_util_concurrency.rst │ ├── tracopt_ticket_deleter.rst │ ├── index.rst │ ├── trac_db_postgres_backend.rst │ ├── trac_ticket_notification.rst │ ├── trac_versioncontrol_admin.rst │ ├── trac_versioncontrol_cache.rst │ ├── tracopt_perm_authz_policy.rst │ ├── trac_ticket_default_workflow.rst │ ├── trac_versioncontrol_svn_authz.rst │ ├── tracopt_ticket_commit_updater.rst │ ├── trac_versioncontrol_web_ui_log.rst │ ├── trac_versioncontrol_web_ui_util.rst │ ├── tracopt_perm_config_perm_provider.rst │ ├── tracopt_versioncontrol_git_git_fs.rst │ ├── trac_versioncontrol_web_ui_browser.rst │ ├── tracopt_versioncontrol_svn_svn_prop.rst │ ├── trac_versioncontrol_web_ui_changeset.rst │ ├── trac_web_href.rst │ ├── trac_loader.rst │ ├── tracopt_versioncontrol_git_PyGIT.rst │ ├── trac_config.rst │ ├── trac_prefs_api.rst │ ├── trac_wiki_formatter.rst │ ├── trac_util_translation.rst │ ├── trac_wiki_macros.rst │ ├── trac_web_auth.rst │ ├── trac_ticket_model.rst │ ├── trac_notification_api.rst │ ├── trac_env.rst │ ├── trac_admin_api.rst │ ├── trac_web_main.rst │ ├── trac_perm.rst │ ├── trac_versioncontrol_diff.rst │ ├── trac_db_api.rst │ ├── trac_util_presentation.rst │ ├── tracopt_versioncontrol_svn_svn_fs.rst │ └── trac_attachment.rst ├── glossary.rst ├── utils │ ├── python.txt │ └── trac_dev_pdf.style ├── dev │ ├── testing-environment.rst │ └── testing.rst └── index.rst ├── .gitattributes ├── setup_wininst.bmp ├── .hgeol ├── trac ├── htdocs │ ├── asc.png │ ├── ics.png │ ├── desc.png │ ├── dots.gif │ ├── draft.png │ ├── feed.png │ ├── file.png │ ├── folder.png │ ├── grip.png │ ├── parent.png │ ├── python.png │ ├── trac.ico │ ├── wiki.png │ ├── download.png │ ├── envelope.png │ ├── expanded.png │ ├── extlink.gif │ ├── imggrid.png │ ├── inreply.png │ ├── loading.gif │ ├── attachment.png │ ├── batchmodify.png │ ├── changeset.png │ ├── collapsed.png │ ├── guide │ │ ├── admin.png │ │ ├── basic-workflow.png │ │ ├── admin-permissions.png │ │ ├── original-workflow.png │ │ └── admin-permissions-TICKET_ADMIN.png │ ├── lock-locked.png │ ├── milestone.png │ ├── newticket.png │ ├── trac_banner.png │ ├── vgradient.png │ ├── closedticket.png │ ├── edit_toolbar.png │ ├── editedticket.png │ ├── expander_open.png │ ├── expander_normal.png │ ├── topbar_gradient.png │ ├── topbar_gradient2.png │ ├── trac_logo_mini.png │ ├── expander_normal_hover.png │ ├── expander_open_hover.png │ ├── css │ │ ├── jquery-ui │ │ │ └── images │ │ │ │ ├── ui-icons_222222_256x240.png │ │ │ │ ├── ui-icons_444444_256x240.png │ │ │ │ ├── ui-icons_4b954f_256x240.png │ │ │ │ ├── ui-icons_505050_256x240.png │ │ │ │ ├── ui-icons_555555_256x240.png │ │ │ │ ├── ui-icons_707070_256x240.png │ │ │ │ ├── ui-icons_777620_256x240.png │ │ │ │ ├── ui-icons_777777_256x240.png │ │ │ │ ├── ui-icons_9b081d_256x240.png │ │ │ │ ├── ui-icons_b00000_256x240.png │ │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ │ ├── ui-icons_d7d7d7_256x240.png │ │ │ │ ├── ui-icons_ffffff_256x240.png │ │ │ │ ├── ui-bg_diagonals-thick_18_ffddcc_40x40.png │ │ │ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png │ │ │ │ ├── ui-bg_highlight-soft_30_303030_1x100.png │ │ │ │ ├── ui-bg_highlight-soft_75_c0f0c0_1x100.png │ │ │ │ └── ui-bg_highlight-soft_80_ffffdd_1x100.png │ │ ├── search.css │ │ ├── changeset.css │ │ └── prefs.css │ ├── js │ │ ├── noconflict.js │ │ ├── resizer.js │ │ ├── log_graph.js │ │ └── timeline_multirepos.js │ └── README ├── wiki │ ├── default-pages │ │ ├── RecentChanges │ │ ├── TitleIndex │ │ ├── SandBox │ │ ├── WikiDeletePage │ │ ├── PageTemplates │ │ ├── TracBatchModify │ │ ├── TracSupport │ │ ├── TracSearch │ │ └── WikiStart │ ├── __init__.py │ ├── templates │ │ └── wiki_page_path.html │ └── tests │ │ └── __init__.py ├── tests │ ├── figleaf-exclude │ ├── compat.py │ ├── functional │ │ └── compat.py │ ├── attachment-console-tests.txt │ ├── allwiki.py │ └── __init__.py ├── ticket │ ├── templates │ │ ├── batch_ticket_notify_email.txt │ │ ├── ticket_notify_email.txt │ │ ├── report_list.rss │ │ ├── milestone_edit.html │ │ └── report_delete.html │ ├── __init__.py │ ├── test.py │ ├── tests │ │ └── functional │ │ │ └── __init__.py │ └── workflows │ │ ├── original-workflow.ini │ │ └── basic-workflow.ini ├── templates │ ├── author_or_creator.rss │ ├── README │ ├── index.html │ ├── attach_file_form.html │ ├── preview_file.html │ └── page_index.html ├── search │ ├── templates │ │ └── opensearch.xml │ ├── __init__.py │ └── tests │ │ └── __init__.py ├── web │ ├── __init__.py │ ├── tests │ │ ├── wikisyntax.py │ │ └── __init__.py │ └── templates │ │ ├── deploy_trac.wsgi │ │ └── deploy_trac.fcgi ├── admin │ ├── __init__.py │ └── tests │ │ └── __init__.py ├── prefs │ ├── __init__.py │ ├── tests │ │ └── __init__.py │ └── api.py ├── mimeview │ ├── __init__.py │ └── tests │ │ ├── __init__.py │ │ └── functional.py ├── timeline │ ├── __init__.py │ └── tests │ │ └── __init__.py ├── upgrades │ ├── __init__.py │ ├── db42.py │ ├── db6.py │ ├── db4.py │ ├── db22.py │ ├── db3.py │ ├── db27.py │ ├── tests │ │ ├── __init__.py │ │ └── db44.py │ ├── db36.py │ ├── db5.py │ ├── db35.py │ ├── db7.py │ ├── db39.py │ ├── db10.py │ ├── db41.py │ ├── db9.py │ ├── db34.py │ ├── db8.py │ ├── db15.py │ ├── db19.py │ ├── db12.py │ ├── db31.py │ ├── db17.py │ ├── db20.py │ ├── db45.py │ ├── db29.py │ └── db16.py ├── versioncontrol │ ├── __init__.py │ ├── web_ui │ │ ├── __init__.py │ │ └── tests │ │ │ ├── __init__.py │ │ │ └── util.py │ ├── templates │ │ ├── revisionlog.txt │ │ ├── dirlist_thead.html │ │ ├── changeset.html │ │ └── sortable_th.html │ └── tests │ │ └── __init__.py ├── db │ ├── __init__.py │ └── tests │ │ ├── __init__.py │ │ ├── schema.py │ │ └── functional.py ├── __init__.py ├── util │ ├── dist.py │ ├── concurrency.py │ └── tests │ │ └── concurrency.py └── notification │ ├── __init__.py │ └── tests │ └── __init__.py ├── requirements-release.txt ├── contrib ├── workflow │ ├── README │ ├── trivial-workflow.ini │ ├── simple-workflow.ini │ ├── migrate_original_to_basic.py │ └── showworkflow ├── README └── checksum.py ├── tracini.cfg ├── ChangeLog ├── .gitignore ├── .hgignore ├── .tx └── config ├── messages-js.cfg ├── messages.cfg ├── AUTHORS ├── README.rst ├── sample-plugins ├── Timestamp.py └── permissions │ └── debug_perm.py ├── setup.py ├── RELEASE.rst └── COPYING /tracopt/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tracopt/perm/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tracopt/ticket/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tracopt/versioncontrol/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tracopt/versioncontrol/git/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tracopt/versioncontrol/svn/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/vcpkg.txt: -------------------------------------------------------------------------------- 1 | apr 2 | apr-util 3 | zlib 4 | -------------------------------------------------------------------------------- /.github/requirements-prepare.txt: -------------------------------------------------------------------------------- 1 | setuptools<81 2 | -------------------------------------------------------------------------------- /doc/README: -------------------------------------------------------------------------------- 1 | See the toplevel Makefile (make help). 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | tracopt/versioncontrol/svn/tests/svnrepos.dump eol=lf 2 | -------------------------------------------------------------------------------- /doc/todo.rst: -------------------------------------------------------------------------------- 1 | Documentation TODO 2 | ================== 3 | 4 | .. todolist:: 5 | -------------------------------------------------------------------------------- /setup_wininst.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/setup_wininst.bmp -------------------------------------------------------------------------------- /.hgeol: -------------------------------------------------------------------------------- 1 | [patterns] 2 | contrib/trac-svn-hook = LF 3 | **.cmd = CRLF 4 | ** = native 5 | -------------------------------------------------------------------------------- /trac/htdocs/asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/asc.png -------------------------------------------------------------------------------- /trac/htdocs/ics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/ics.png -------------------------------------------------------------------------------- /trac/htdocs/desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/desc.png -------------------------------------------------------------------------------- /trac/htdocs/dots.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/dots.gif -------------------------------------------------------------------------------- /trac/htdocs/draft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/draft.png -------------------------------------------------------------------------------- /trac/htdocs/feed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/feed.png -------------------------------------------------------------------------------- /trac/htdocs/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/file.png -------------------------------------------------------------------------------- /trac/htdocs/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/folder.png -------------------------------------------------------------------------------- /trac/htdocs/grip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/grip.png -------------------------------------------------------------------------------- /trac/htdocs/parent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/parent.png -------------------------------------------------------------------------------- /trac/htdocs/python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/python.png -------------------------------------------------------------------------------- /trac/htdocs/trac.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/trac.ico -------------------------------------------------------------------------------- /trac/htdocs/wiki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/wiki.png -------------------------------------------------------------------------------- /doc/images/trac_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/doc/images/trac_logo.png -------------------------------------------------------------------------------- /doc/images/vertbars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/doc/images/vertbars.png -------------------------------------------------------------------------------- /trac/htdocs/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/download.png -------------------------------------------------------------------------------- /trac/htdocs/envelope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/envelope.png -------------------------------------------------------------------------------- /trac/htdocs/expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/expanded.png -------------------------------------------------------------------------------- /trac/htdocs/extlink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/extlink.gif -------------------------------------------------------------------------------- /trac/htdocs/imggrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/imggrid.png -------------------------------------------------------------------------------- /trac/htdocs/inreply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/inreply.png -------------------------------------------------------------------------------- /trac/htdocs/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/loading.gif -------------------------------------------------------------------------------- /trac/htdocs/attachment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/attachment.png -------------------------------------------------------------------------------- /trac/htdocs/batchmodify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/batchmodify.png -------------------------------------------------------------------------------- /trac/htdocs/changeset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/changeset.png -------------------------------------------------------------------------------- /trac/htdocs/collapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/collapsed.png -------------------------------------------------------------------------------- /trac/htdocs/guide/admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/guide/admin.png -------------------------------------------------------------------------------- /trac/htdocs/lock-locked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/lock-locked.png -------------------------------------------------------------------------------- /trac/htdocs/milestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/milestone.png -------------------------------------------------------------------------------- /trac/htdocs/newticket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/newticket.png -------------------------------------------------------------------------------- /trac/htdocs/trac_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/trac_banner.png -------------------------------------------------------------------------------- /trac/htdocs/vgradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/vgradient.png -------------------------------------------------------------------------------- /doc/images/bkgnd_pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/doc/images/bkgnd_pattern.png -------------------------------------------------------------------------------- /trac/htdocs/closedticket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/closedticket.png -------------------------------------------------------------------------------- /trac/htdocs/edit_toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/edit_toolbar.png -------------------------------------------------------------------------------- /trac/htdocs/editedticket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/editedticket.png -------------------------------------------------------------------------------- /trac/htdocs/expander_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/expander_open.png -------------------------------------------------------------------------------- /trac/htdocs/expander_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/expander_normal.png -------------------------------------------------------------------------------- /trac/htdocs/topbar_gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/topbar_gradient.png -------------------------------------------------------------------------------- /trac/htdocs/topbar_gradient2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/topbar_gradient2.png -------------------------------------------------------------------------------- /trac/htdocs/trac_logo_mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/trac_logo_mini.png -------------------------------------------------------------------------------- /doc/api/trac_log.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.log` 2 | =============== 3 | 4 | .. automodule :: trac.log 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_dist.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.dist` 2 | ================ 3 | 4 | .. automodule :: trac.dist 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /trac/htdocs/expander_normal_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/expander_normal_hover.png -------------------------------------------------------------------------------- /trac/htdocs/expander_open_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/expander_open_hover.png -------------------------------------------------------------------------------- /trac/htdocs/guide/basic-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/guide/basic-workflow.png -------------------------------------------------------------------------------- /trac/wiki/default-pages/RecentChanges: -------------------------------------------------------------------------------- 1 | ''' [TitleIndex Index by Title] ''' | ''' Index by Date ''' 2 | 3 | [[RecentChanges]] -------------------------------------------------------------------------------- /doc/api/trac_about.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.about` 2 | ================= 3 | 4 | .. automodule :: trac.about 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /trac/htdocs/guide/admin-permissions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/guide/admin-permissions.png -------------------------------------------------------------------------------- /trac/htdocs/guide/original-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/guide/original-workflow.png -------------------------------------------------------------------------------- /doc/api/trac_db_pool.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.db.pool` 2 | =================== 3 | 4 | .. automodule :: trac.db.pool 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_resource.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.resource` 2 | ==================== 3 | 4 | .. automodule :: trac.resource 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_web_wsgi.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.web.wsgi` 2 | ==================== 3 | 4 | .. automodule :: trac.web.wsgi 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_db_schema.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.db.schema` 2 | ===================== 3 | 4 | .. automodule :: trac.db.schema 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /trac/wiki/default-pages/TitleIndex: -------------------------------------------------------------------------------- 1 | ''' Index by Title ''' | ''' [RecentChanges Index by Date] ''' 2 | 3 | [[TitleIndex(format=group,min=4)]] -------------------------------------------------------------------------------- /tracopt/versioncontrol/svn/tests/svnrepos.dump: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/tracopt/versioncontrol/svn/tests/svnrepos.dump -------------------------------------------------------------------------------- /doc/api/trac_search_api.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.search.api` 2 | ====================== 3 | 4 | .. automodule :: trac.search.api 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_ticket_api.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.ticket.api` 2 | ====================== 3 | 4 | .. automodule :: trac.ticket.api 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_wiki_admin.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.wiki.admin` 2 | ====================== 3 | 4 | .. automodule :: trac.wiki.admin 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_wiki_model.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.wiki.model` 2 | ====================== 3 | 4 | .. automodule :: trac.wiki.model 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_admin_web_ui.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.admin.web_ui` 2 | ======================== 3 | 4 | .. automodule :: trac.admin.web_ui 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_prefs_web_ui.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.prefs.web_ui` 2 | ======================== 3 | 4 | .. automodule :: trac.prefs.web_ui 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_ticket_admin.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.ticket.admin` 2 | ======================== 3 | 4 | .. automodule :: trac.ticket.admin 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_ticket_batch.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.ticket.batch` 2 | ======================== 3 | 4 | .. automodule :: trac.ticket.batch 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_ticket_query.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.ticket.query` 2 | ======================== 3 | 4 | .. automodule :: trac.ticket.query 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_timeline_api.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.timeline.api` 2 | ======================== 3 | 4 | .. automodule :: trac.timeline.api 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_util_compat.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.util.compat` 2 | ======================= 3 | 4 | .. automodule :: trac.util.compat 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_util_daemon.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.util.daemon` 2 | ======================= 3 | 4 | .. automodule :: trac.util.daemon 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_web_session.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.web.session` 2 | ======================= 3 | 4 | .. automodule :: trac.web.session 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_wiki_parser.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.wiki.parser` 2 | ======================= 3 | 4 | .. automodule :: trac.wiki.parser 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_wiki_web_api.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.wiki.web_api` 2 | ======================== 3 | 4 | .. automodule :: trac.wiki.web_api 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_wiki_web_ui.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.wiki.web_ui` 2 | ======================= 3 | 4 | .. automodule :: trac.wiki.web_ui 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /trac/htdocs/guide/admin-permissions-TICKET_ADMIN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/guide/admin-permissions-TICKET_ADMIN.png -------------------------------------------------------------------------------- /doc/api/trac_admin_console.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.admin.console` 2 | ========================= 3 | 4 | .. automodule :: trac.admin.console 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_search_web_ui.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.search.web_ui` 2 | ========================= 3 | 4 | .. automodule :: trac.search.web_ui 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_ticket_report.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.ticket.report` 2 | ========================= 3 | 4 | .. automodule :: trac.ticket.report 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_ticket_web_ui.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.ticket.web_ui` 2 | ========================= 3 | 4 | .. automodule :: trac.ticket.web_ui 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /trac/wiki/default-pages/SandBox: -------------------------------------------------------------------------------- 1 | = The Sandbox = 2 | 3 | This is just a page to practice and learn WikiFormatting. 4 | 5 | Go ahead, edit it freely. 6 | -------------------------------------------------------------------------------- /doc/api/trac_web_standalone.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.web.standalone` 2 | ========================== 3 | 4 | .. automodule :: trac.web.standalone 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_wiki_intertrac.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.wiki.intertrac` 2 | ========================== 3 | 4 | .. automodule :: trac.wiki.intertrac 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_wiki_interwiki.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.wiki.interwiki` 2 | ========================== 3 | 4 | .. automodule :: trac.wiki.interwiki 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_timeline_web_ui.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.timeline.web_ui` 2 | =========================== 3 | 4 | .. automodule :: trac.timeline.web_ui 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_util_autoreload.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.util.autoreload` 2 | =========================== 3 | 4 | .. automodule :: trac.util.autoreload 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/tracopt_ticket_clone.rst: -------------------------------------------------------------------------------- 1 | :mod:`tracopt.ticket.clone` 2 | =========================== 3 | 4 | .. automodule :: tracopt.ticket.clone 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_db_mysql_backend.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.db.mysql_backend` 2 | ============================ 3 | 4 | .. automodule :: trac.db.mysql_backend 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_db_sqlite_backend.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.db.sqlite_backend` 2 | ============================= 3 | 4 | .. automodule :: trac.db.sqlite_backend 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_util_concurrency.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.util.concurrency` 2 | ============================ 3 | 4 | .. automodule :: trac.util.concurrency 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/tracopt_ticket_deleter.rst: -------------------------------------------------------------------------------- 1 | :mod:`tracopt.ticket.deleter` 2 | ============================= 3 | 4 | .. automodule :: tracopt.ticket.deleter 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_4b954f_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_4b954f_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_505050_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_505050_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_707070_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_707070_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_9b081d_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_9b081d_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_b00000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_b00000_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_d7d7d7_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_d7d7d7_256x240.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /doc/api/index.rst: -------------------------------------------------------------------------------- 1 | ============= 2 | API Reference 3 | ============= 4 | 5 | .. toctree:: 6 | :maxdepth: 1 7 | :glob: 8 | 9 | trac_* 10 | tracopt_* 11 | -------------------------------------------------------------------------------- /requirements-release.txt: -------------------------------------------------------------------------------- 1 | # Packages needed to create a release. 2 | setuptools>=75.3.1,<81 3 | wheel 4 | jinja2 5 | babel 6 | setuptools_subversion 7 | twine 8 | pypandoc 9 | -------------------------------------------------------------------------------- /doc/api/trac_db_postgres_backend.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.db.postgres_backend` 2 | =============================== 3 | 4 | .. automodule :: trac.db.postgres_backend 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_ticket_notification.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.ticket.notification` 2 | =============================== 3 | 4 | .. automodule :: trac.ticket.notification 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_versioncontrol_admin.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.versioncontrol.admin` 2 | ================================ 3 | 4 | .. automodule :: trac.versioncontrol.admin 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_versioncontrol_cache.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.versioncontrol.cache` 2 | ================================ 3 | 4 | .. automodule :: trac.versioncontrol.cache 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/tracopt_perm_authz_policy.rst: -------------------------------------------------------------------------------- 1 | :mod:`tracopt.perm.authz_policy` 2 | ================================ 3 | 4 | .. automodule :: tracopt.perm.authz_policy 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_ticket_default_workflow.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.ticket.default_workflow` 2 | =================================== 3 | 4 | .. automodule :: trac.ticket.default_workflow 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_versioncontrol_svn_authz.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.versioncontrol.svn_authz` 2 | ==================================== 3 | 4 | .. automodule :: trac.versioncontrol.svn_authz 5 | :members: 6 | -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-bg_diagonals-thick_18_ffddcc_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-bg_diagonals-thick_18_ffddcc_40x40.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-bg_highlight-soft_30_303030_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-bg_highlight-soft_30_303030_1x100.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-bg_highlight-soft_75_c0f0c0_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-bg_highlight-soft_75_c0f0c0_1x100.png -------------------------------------------------------------------------------- /trac/htdocs/css/jquery-ui/images/ui-bg_highlight-soft_80_ffffdd_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edgewall/trac/HEAD/trac/htdocs/css/jquery-ui/images/ui-bg_highlight-soft_80_ffffdd_1x100.png -------------------------------------------------------------------------------- /doc/api/tracopt_ticket_commit_updater.rst: -------------------------------------------------------------------------------- 1 | :mod:`tracopt.ticket.commit_updater` 2 | ==================================== 3 | 4 | .. automodule :: tracopt.ticket.commit_updater 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/glossary.rst: -------------------------------------------------------------------------------- 1 | ======== 2 | Glossary 3 | ======== 4 | 5 | .. glossary:: 6 | :sorted: 7 | 8 | VCS 9 | Version Control System, what you use for versioning your source code 10 | -------------------------------------------------------------------------------- /doc/api/trac_versioncontrol_web_ui_log.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.versioncontrol.web_ui.log` 2 | ===================================== 3 | 4 | .. automodule :: trac.versioncontrol.web_ui.log 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_versioncontrol_web_ui_util.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.versioncontrol.web_ui.util` 2 | ====================================== 3 | 4 | .. automodule :: trac.versioncontrol.web_ui.util 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/tracopt_perm_config_perm_provider.rst: -------------------------------------------------------------------------------- 1 | :mod:`tracopt.perm.config_perm_provider` 2 | ======================================== 3 | 4 | .. automodule :: tracopt.perm.config_perm_provider 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/tracopt_versioncontrol_git_git_fs.rst: -------------------------------------------------------------------------------- 1 | :mod:`tracopt.versioncontrol.git.git_fs` 2 | ======================================== 3 | 4 | .. automodule :: tracopt.versioncontrol.git.git_fs 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/trac_versioncontrol_web_ui_browser.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.versioncontrol.web_ui.browser` 2 | ========================================= 3 | 4 | .. automodule :: trac.versioncontrol.web_ui.browser 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /doc/api/tracopt_versioncontrol_svn_svn_prop.rst: -------------------------------------------------------------------------------- 1 | :mod:`tracopt.versioncontrol.svn.svn_prop` 2 | ========================================== 3 | 4 | .. automodule :: tracopt.versioncontrol.svn.svn_prop 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /contrib/workflow/README: -------------------------------------------------------------------------------- 1 | There are two more workflows available, original-workflow and basic-workflow. 2 | Look in trac/ticket/workflows for them. (They are used internally by Trac, so 3 | they aren't here in the contrib tree.) 4 | -------------------------------------------------------------------------------- /doc/api/trac_versioncontrol_web_ui_changeset.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.versioncontrol.web_ui.changeset` 2 | =========================================== 3 | 4 | .. automodule :: trac.versioncontrol.web_ui.changeset 5 | :members: 6 | 7 | -------------------------------------------------------------------------------- /trac/tests/figleaf-exclude: -------------------------------------------------------------------------------- 1 | /usr/lib/python.*/.*.py 2 | /usr/local/lib/python.*/.*.py 3 | /var/lib/python-support/.* 4 | /System/Library/* 5 | /Library/* 6 | /opt/subversion/* 7 | genshi/ 8 | pygments/ 9 | .*.html 10 | \\lib\\ -------------------------------------------------------------------------------- /trac/htdocs/js/noconflict.js: -------------------------------------------------------------------------------- 1 | jQuery.noConflict(); // jQuery is now removed from the $ namespace 2 | // to use the $ shorthand, use (function($){ ... })(jQuery); 3 | // and for the onload handler: jQuery(function($){ ... }); -------------------------------------------------------------------------------- /doc/api/trac_web_href.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.web.href` -- Creation of URLs 2 | ======================================== 3 | 4 | .. module :: trac.web.href 5 | 6 | This module mainly proposes the following class: 7 | 8 | .. autoclass :: trac.web.href.Href 9 | :members: 10 | -------------------------------------------------------------------------------- /tracini.cfg: -------------------------------------------------------------------------------- 1 | # mapping file for extracting messages of `*Option` and `ConfigSection` from 2 | # python files into trac/locale/tracini.pot (see setup.cfg) 3 | 4 | [ignore: **/tests/**] 5 | 6 | [python: **.py] 7 | 8 | [extractors] 9 | python = trac.dist:extract_python 10 | -------------------------------------------------------------------------------- /.github/release.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -ex 4 | 5 | venvdir="$HOME/venv" 6 | python -m venv "$venvdir" 7 | . "$venvdir/bin/activate" 8 | python -m pip install --upgrade pip 9 | pip install -r requirements-release.txt 10 | pip install setuptools-git 11 | make compile sdist wheel 12 | -------------------------------------------------------------------------------- /doc/api/trac_loader.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.loader` 2 | ================== 3 | 4 | .. automodule :: trac.loader 5 | :members: 6 | 7 | .. autofunction :: get_plugin_info 8 | .. autofunction :: load_eggs 9 | .. autofunction :: load_py_files 10 | .. autofunction :: match_plugins_to_frames 11 | 12 | -------------------------------------------------------------------------------- /trac/htdocs/README: -------------------------------------------------------------------------------- 1 | This directory contains files used by Trac's default Genshi templates. 2 | 3 | Local modifications to these files might be lost during the installation of 4 | a new Trac version. This can be avoided by making a copy of this entire 5 | directory before beginning modifications. 6 | -------------------------------------------------------------------------------- /ChangeLog: -------------------------------------------------------------------------------- 1 | The ChangeLog can be viewed: 2 | * On the web at https://trac.edgewall.org/wiki/TracChangeLog 3 | * In the source at trac/wiki/default-pages/TracChangeLog 4 | * By navigating to the TracChangeLog page after installing or upgrading Trac. You must upgrade the wiki to get the latest TracChangeLog. 5 | -------------------------------------------------------------------------------- /contrib/README: -------------------------------------------------------------------------------- 1 | This directory contains useful contributed scripts and programs for Trac. 2 | 3 | Please note that these scripts are provided AS-IS are NOT tested to the same 4 | extent as the main sources. They are usually maintained by the original 5 | author, typically listed at the top of the source file. 6 | 7 | See ../THANKS for a list of contributors. -------------------------------------------------------------------------------- /doc/api/tracopt_versioncontrol_git_PyGIT.rst: -------------------------------------------------------------------------------- 1 | :mod:`tracopt.versioncontrol.git.PyGIT` 2 | ======================================= 3 | 4 | .. automodule :: tracopt.versioncontrol.git.PyGIT 5 | :members: 6 | 7 | .. autofunction :: parse_commit 8 | 9 | .. autoclass :: GitCore 10 | :members: 11 | 12 | .. autoclass :: SizedDict 13 | :members: 14 | -------------------------------------------------------------------------------- /doc/api/trac_config.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.config` 2 | ================== 3 | 4 | .. automodule :: trac.config 5 | :members: 6 | 7 | .. autoclass :: UnicodeConfigParser 8 | :members: 9 | 10 | .. autoclass :: Section 11 | :members: 12 | 13 | .. autofunction :: get_configinfo 14 | 15 | 16 | Components 17 | ---------- 18 | 19 | .. autoclass :: ConfigurationAdmin 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .*.sw[op] 3 | *.orig 4 | .svn 5 | .hg 6 | build 7 | dist 8 | Trac.egg-info 9 | *.py[co] 10 | testenv 11 | testing.log 12 | functional-testing.log 13 | trac/test.db 14 | geckodriver.log 15 | html 16 | htmlcov 17 | .coverage 18 | Makefile.cfg 19 | doc/.build 20 | *.mo 21 | trac/htdocs/js/messages/*.js 22 | .idea 23 | .project 24 | .pydevproject 25 | .settings 26 | -------------------------------------------------------------------------------- /doc/utils/python.txt: -------------------------------------------------------------------------------- 1 | Undocumented Python objects 2 | =========================== 3 | trac.ticket.roadmap 4 | ------------------- 5 | Classes: 6 | * MilestoneModule -- missing methods: 7 | 8 | - resource_exists 9 | 10 | trac.wiki.api 11 | ------------- 12 | Classes: 13 | * WikiSystem -- missing methods: 14 | 15 | - get_resource_description 16 | - resource_exists 17 | 18 | -------------------------------------------------------------------------------- /doc/dev/testing-environment.rst: -------------------------------------------------------------------------------- 1 | Test Environment Helpers 2 | ======================== 3 | 4 | Functional Test Environment 5 | --------------------------- 6 | 7 | .. automodule :: trac.tests.functional.testenv 8 | :members: 9 | 10 | .. _functional-tester: 11 | 12 | Functional Tester 13 | ----------------- 14 | 15 | .. automodule :: trac.tests.functional.tester 16 | :members: 17 | 18 | -------------------------------------------------------------------------------- /.hgignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | *~ 3 | .*.sw[op] 4 | *.orig 5 | .svn 6 | .git 7 | build 8 | dist 9 | Trac.egg-info 10 | *.py[co] 11 | testenv 12 | testing.log 13 | functional-testing.log 14 | trac/test.db 15 | geckodriver.log 16 | html 17 | htmlcov 18 | .coverage 19 | Makefile.cfg 20 | doc/.build 21 | *.mo 22 | trac/htdocs/js/messages/*.js 23 | .idea 24 | .project 25 | .pydevproject 26 | .settings 27 | -------------------------------------------------------------------------------- /.github/requirements-minimum.txt: -------------------------------------------------------------------------------- 1 | setuptools<81 2 | Jinja2 3 | multipart; python_version>='3.11' 4 | aiosmtpd; python_version>='3.10' 5 | selenium!=4.10.0 6 | pytidylib 7 | passlib; python_version>='3.11' or python_version<'3.7' or platform_system=='Darwin' or platform_system=='Windows' 8 | bcrypt<4.1.0; python_version>='3.11' or python_version<'3.7' or platform_system=='Darwin' or platform_system=='Windows' 9 | -------------------------------------------------------------------------------- /doc/dev/testing.rst: -------------------------------------------------------------------------------- 1 | Testing in Trac 2 | =============== 3 | 4 | So, you'd like to make sure Trac works in your configuration. 5 | Excellent. Here's what you need to know. 6 | 7 | .. toctree:: 8 | :maxdepth: 2 9 | 10 | testing-intro 11 | testing-core 12 | testing-environment 13 | testing-database 14 | testing-plugins 15 | 16 | .. todo :: write more, with testing-specific steps. 17 | -------------------------------------------------------------------------------- /contrib/workflow/trivial-workflow.ini: -------------------------------------------------------------------------------- 1 | [ticket-workflow] 2 | ; trivial-workflow.ini 3 | 4 | create = -> new 5 | 6 | resolve = new -> closed 7 | resolve.permissions = TICKET_MODIFY 8 | resolve.operations = set_resolution 9 | 10 | reopen = closed -> new 11 | reopen.permissions = TICKET_CREATE 12 | reopen.operations = del_resolution 13 | 14 | leave = * -> * 15 | leave.operations = leave_status 16 | leave.default = 1 17 | -------------------------------------------------------------------------------- /doc/api/trac_prefs_api.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.prefs.api` -- Trac Administration panels 2 | =================================================== 3 | 4 | .. module :: trac.prefs.api 5 | 6 | Primary interface for managing preference panels (tabs). 7 | 8 | 9 | Interfaces 10 | ---------- 11 | 12 | .. autoclass :: IPreferencePanelProvider 13 | :members: 14 | 15 | See also :extensionpoints:`trac.prefs.api.IPreferencePanelProvider` 16 | -------------------------------------------------------------------------------- /trac/ticket/templates/batch_ticket_notify_email.txt: -------------------------------------------------------------------------------- 1 | ${_("Batch modification to %(tickets)s by %(author)s:", 2 | tickets=tickets_descr, author=author)} 3 | ${changes_descr} 4 | # if action: 5 | 6 | ${_("Action: %(action)s", action=action)} 7 | # endif 8 | # if comment: 9 | 10 | ${_("Comment:")} 11 | ${comment} 12 | # endif 13 | 14 | ${'-- '} 15 | ${_("Tickets URL: <%(link)s>", link=ticket_query_link)} 16 | ${project.name} <${project.url or abs_href()}> 17 | ${project.descr} 18 | -------------------------------------------------------------------------------- /doc/api/trac_wiki_formatter.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.wiki.formatter` 2 | ========================== 3 | 4 | .. automodule :: trac.wiki.formatter 5 | :members: 6 | 7 | Components 8 | ---------- 9 | 10 | .. autoclass :: HtmlFormatter 11 | :members: 12 | 13 | .. autoclass :: InlineHtmlFormatter 14 | :members: 15 | 16 | .. autoclass :: LinkFormatter 17 | :members: 18 | 19 | .. autoclass :: OneLinerFormatter 20 | :members: 21 | 22 | .. autoclass :: OutlineFormatter 23 | :members: 24 | -------------------------------------------------------------------------------- /.github/requirements.txt: -------------------------------------------------------------------------------- 1 | setuptools<81 2 | Jinja2 3 | multipart; python_version>='3.11' 4 | aiosmtpd; python_version>='3.10' 5 | selenium!=4.10.0 6 | pytidylib 7 | Babel 8 | Pygments 9 | docutils 10 | textile 11 | pytz 12 | PyMySQL 13 | cryptography 14 | psycopg2 15 | passlib; python_version>='3.11' or python_version<'3.7' or platform_system=='Darwin' or platform_system=='Windows' 16 | bcrypt<4.1.0; python_version>='3.11' or python_version<'3.7' or platform_system=='Darwin' or platform_system=='Windows' 17 | -------------------------------------------------------------------------------- /trac/templates/author_or_creator.rss: -------------------------------------------------------------------------------- 1 | {# 2 | Generate an or a tag, based on the presence 3 | of an email or not in the author's information. 4 | 5 | Arguments: 6 | - author: the author to be used 7 | #} 8 | # if author: 9 | ## Try our best to retrieve an email address if wanted and possible 10 | # with author = format_author(author_email(author)) 11 | # if '@' in author: 12 | ${author} 13 | # else: 14 | ${author} 15 | # endif 16 | # endwith 17 | # endif 18 | -------------------------------------------------------------------------------- /trac/search/templates/opensearch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## jinjacheck: "no DTD found" OK 4 | Search ${project.name} 5 | UTF-8 6 | # if chrome.icon.abs_src: 7 | ${ 8 | chrome.icon.abs_src} 9 | # endif 10 | 12 | 13 | -------------------------------------------------------------------------------- /.github/posix-test-minimum.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -ex 4 | 5 | venvdir="$HOME/venv" 6 | python -m venv "$venvdir" 7 | . "$venvdir/bin/activate" 8 | python="$venvdir/bin/python" 9 | "$python" -m pip install --upgrade pip 10 | pip install -r .github/requirements-minimum.txt 11 | pip list --format=freeze 12 | { 13 | echo '.uri =' 14 | echo 'pythonopts = -Wdefault' 15 | } >Makefile.cfg 16 | make Trac.egg-info 17 | rc=0 18 | make unit-test || rc=$? 19 | if [ "$MATRIX_TESTS" = functional ]; then 20 | make functional-test testopts=-v || rc=$? 21 | fi 22 | exit $rc 23 | -------------------------------------------------------------------------------- /.github/release-upload.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -ex 4 | 5 | keyfile="$GITHUB_WORKSPACE/edgewall_github_key" 6 | known_hosts="$GITHUB_WORKSPACE/edgewall_host_key" 7 | 8 | if [ -n "$EDGEWALL_KEY_BASE64" ]; then 9 | echo "$EDGEWALL_KEY_BASE64" | base64 -d >"$keyfile" 10 | echo "$EDGEWALL_HOST_KEY" >"$known_hosts" 11 | chmod 0600 "$keyfile" 12 | scp -i "$keyfile" -o "UserKnownHostsFile $known_hosts" \ 13 | dist/trac-* github@edgewall.org:/var/ftp/pub/trac/incoming 14 | else 15 | echo "::warning:: Skipped uploading package files to edgewall.org" 1>&2 16 | fi 17 | -------------------------------------------------------------------------------- /.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | 4 | [o:cboos:p:trac:r:trunk-messages-js-pot] 5 | file_filter = trac/locale//LC_MESSAGES/messages-js.po 6 | source_file = trac/locale/messages-js.pot 7 | source_lang = en 8 | 9 | [o:cboos:p:trac:r:trunk-messages-pot] 10 | file_filter = trac/locale//LC_MESSAGES/messages.po 11 | source_file = trac/locale/messages.pot 12 | source_lang = en 13 | 14 | [o:cboos:p:trac:r:trunk-tracini-pot] 15 | file_filter = trac/locale//LC_MESSAGES/tracini.po 16 | source_file = trac/locale/tracini.pot 17 | source_lang = en 18 | 19 | -------------------------------------------------------------------------------- /doc/api/trac_util_translation.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.util.translation` 2 | ============================ 3 | 4 | .. automodule :: trac.util.translation 5 | :members: 6 | 7 | Functions 8 | --------- 9 | 10 | .. autofunction :: deactivate 11 | .. autofunction :: reactivate 12 | .. autofunction :: make_activable 13 | .. autofunction :: get_available_locales 14 | .. autofunction :: domain_functions 15 | .. autofunction :: s_dgettext 16 | .. autofunction :: s_gettext 17 | 18 | Internals 19 | --------- 20 | 21 | .. autoclass :: NullTranslationsBabel 22 | 23 | .. autoclass :: TranslationsProxy 24 | -------------------------------------------------------------------------------- /messages-js.cfg: -------------------------------------------------------------------------------- 1 | # mapping file for extracting messages from javascript files into 2 | # trac/locale/messages-js.pot (see setup.cfg) 3 | [extractors] 4 | javascript_script = trac.dist:extract_javascript_script 5 | 6 | [ignore: **/htdocs/js/jquery.js] 7 | [ignore: **/htdocs/js/jquery-ui.js] 8 | [ignore: **/htdocs/js/jquery-ui-addons.js] 9 | [ignore: **/htdocs/js/babel.js] 10 | [ignore: **/htdocs/js/excanvas.js] 11 | [ignore: **/htdocs/js/messages/*.js] 12 | [javascript: **.js] 13 | [javascript_script: **.html] 14 | 15 | -------------------------------------------------------------------------------- /trac/web/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2005-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/. 13 | 14 | from trac.web.api import * 15 | -------------------------------------------------------------------------------- /trac/admin/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2006-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from trac.admin.api import * 15 | -------------------------------------------------------------------------------- /trac/prefs/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2006-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from trac.prefs.api import * 15 | -------------------------------------------------------------------------------- /trac/search/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2006-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from trac.search.api import * 15 | -------------------------------------------------------------------------------- /trac/mimeview/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2005-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from trac.mimeview.api import * 15 | -------------------------------------------------------------------------------- /trac/timeline/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2006-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from trac.timeline.api import * 15 | -------------------------------------------------------------------------------- /trac/upgrades/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2013-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/. 13 | 14 | from trac.util import backup_config_file 15 | -------------------------------------------------------------------------------- /trac/versioncontrol/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2005-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/. 13 | 14 | from trac.versioncontrol.api import * 15 | -------------------------------------------------------------------------------- /trac/db/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2005-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from trac.db.api import * 15 | from trac.db.schema import * 16 | -------------------------------------------------------------------------------- /trac/tests/compat.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2013-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from trac.test import rmtree # for backward compatibility 15 | -------------------------------------------------------------------------------- /trac/tests/functional/compat.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2008-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from trac.test import rmtree 15 | from trac.util.compat import close_fds 16 | -------------------------------------------------------------------------------- /doc/api/trac_wiki_macros.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.wiki.macros` -- The standard set of Wiki macros 2 | ========================================================== 3 | 4 | .. module :: trac.wiki.macros 5 | 6 | The standard set of components corresponding to Wiki macros are not 7 | meant to be used directly from the API. You may study their 8 | implementation though, for getting inspiration. In particular, you'll 9 | see they all subclass the `WikiMacroBase` class, which provides a 10 | convenient way to implement a new `~trac.wiki.api.IWikiMacroProvider` 11 | interface. 12 | 13 | .. autoclass :: WikiMacroBase 14 | :members: 15 | 16 | See also :teo:`wiki/WikiMacros#DevelopingCustomMacros`. 17 | -------------------------------------------------------------------------------- /trac/htdocs/css/search.css: -------------------------------------------------------------------------------- 1 | #content.search .filters { color: #333; font-size: 85%; } 2 | 3 | #content.search form { margin: 1em 0 0 } 4 | #content.search form p { margin: .5em 0 } 5 | #content.search hr { clear: left; margin-bottom: 0 } 6 | #content.search #notfound { margin: 2em; font-size: 110% } 7 | 8 | #content.search #results { margin-right: 3em } 9 | #content.search #results dt { margin: 1.5em 0 0 } 10 | #content.search #results dt a { color: #33c } 11 | #content.search #results dd { font-size: 80%; margin: 0; padding: 0 } 12 | #content.search #results .trac-author, #results .date { color: #090; } 13 | 14 | #content.search #quickjump { font-style: italic; font-weight: bold; } 15 | -------------------------------------------------------------------------------- /trac/ticket/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2005-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from trac.ticket.api import * 15 | from trac.ticket.default_workflow import * 16 | from trac.ticket.model import * 17 | -------------------------------------------------------------------------------- /trac/versioncontrol/web_ui/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2005-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/. 13 | 14 | from trac.versioncontrol.web_ui.browser import * 15 | from trac.versioncontrol.web_ui.changeset import * 16 | from trac.versioncontrol.web_ui.log import * 17 | -------------------------------------------------------------------------------- /trac/wiki/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2005-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/. 13 | 14 | from trac.wiki.api import * 15 | from trac.wiki.formatter import * 16 | from trac.wiki.intertrac import * 17 | from trac.wiki.model import * 18 | from trac.wiki.parser import * 19 | -------------------------------------------------------------------------------- /trac/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2003-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | from pkg_resources import DistributionNotFound, get_distribution 15 | 16 | try: 17 | __version__ = get_distribution('Trac').version 18 | except DistributionNotFound: 19 | __version__ = '1.7.1' 20 | -------------------------------------------------------------------------------- /trac/util/dist.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2010-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | # Imports for backward compatibility 15 | from trac.dist import get_l10n_cmdclass, get_l10n_js_cmdclass 16 | try: 17 | from trac.dist import extract_javascript_script 18 | except ImportError: 19 | pass 20 | -------------------------------------------------------------------------------- /trac/htdocs/css/changeset.css: -------------------------------------------------------------------------------- 1 | /* Changeset overview */ 2 | #overview .files { padding: 1px 0 } 3 | #overview .files ul { margin: 0; padding: 0 } 4 | #overview .files li { list-style-type: none } 5 | #overview .files li .comment { display: none } 6 | #overview .files li div { 7 | border: 1px solid #999; 8 | float: left; 9 | margin: .2em .5em 0 0; 10 | overflow: hidden; 11 | width: .8em; height: .8em; 12 | } 13 | 14 | #overview .changeset { padding: 0 0 1px } 15 | #overview dd.changeset p { 16 | margin-bottom: 0; 17 | margin-top: 0; 18 | } 19 | #content.changeset p.message { margin-left: 8.5em; } 20 | 21 | .diff ul.props { 22 | font-size: 90%; 23 | list-style: disc; 24 | margin: .5em 0 0; 25 | padding: 0 .5em 1em 2em; 26 | } 27 | .diff ul.props li { margin: 0; padding: 0 } 28 | -------------------------------------------------------------------------------- /messages.cfg: -------------------------------------------------------------------------------- 1 | # mapping file for extracting messages from Jinja2 templates into 2 | # trac/locale/messages.pot (see setup.cfg) 3 | 4 | [ignore: **/tests/**] 5 | 6 | [python: **.py] 7 | 8 | [html: **/templates/**.html] 9 | variable_start_string = ${ 10 | variable_end_string = } 11 | line_statement_prefix = # 12 | line_comment_prefix = ## 13 | trim_blocks = yes 14 | lstrip_blocks = yes 15 | newstyle_gettext = yes 16 | silent = no 17 | 18 | [text: **/templates/**.txt] 19 | variable_start_string = ${ 20 | variable_end_string = } 21 | line_statement_prefix = # 22 | line_comment_prefix = ## 23 | trim_blocks = yes 24 | lstrip_blocks = yes 25 | newstyle_gettext = yes 26 | silent = no 27 | 28 | [extractors] 29 | python = trac.dist:extract_python 30 | html = trac.dist:extract_html 31 | text = trac.dist:extract_text 32 | -------------------------------------------------------------------------------- /trac/upgrades/db42.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2016-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/. 13 | 14 | 15 | def do_upgrade(env, version, cursor): 16 | """Drop ipnr column from attachment and wiki tables.""" 17 | 18 | with env.db_transaction as db: 19 | db.drop_column('attachment', 'ipnr') 20 | db.drop_column('wiki', 'ipnr') 21 | -------------------------------------------------------------------------------- /trac/ticket/templates/ticket_notify_email.txt: -------------------------------------------------------------------------------- 1 | ${ticket_body_hdr} 2 | ${ticket_props} 3 | # if ticket.new: 4 | ${ticket.description} 5 | # else: 6 | # if changes_body: 7 | ${_('Changes (by %(author)s):', author=change.author)} 8 | 9 | ${changes_body} 10 | # endif 11 | # if changes_descr: 12 | # if not changes_body and not change.comment and change.author: 13 | ${_('Description changed by %(author)s:', author=change.author)} 14 | # endif 15 | ${changes_descr} 16 | -- 17 | # endif 18 | # if change.comment: 19 | 20 | ${_('Comment:') if changes_body else 21 | _('Comment (by %(author)s):', author=change.author)} 22 | 23 | ${change.comment} 24 | # endif 25 | # endif 26 | ${'-- '} 27 | ${_('Ticket URL: <%(link)s>', link=ticket.link)} 28 | ${project.name} <${project.url or abs_href()}> 29 | ${project.descr} 30 | -------------------------------------------------------------------------------- /doc/api/trac_web_auth.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.web.auth` -- Trac Authentication 2 | =========================================== 3 | 4 | .. module :: trac.web.auth 5 | 6 | This module deals with web request authentication, and provides the 7 | default implementation for the `~trac.web.api.IAuthenticator` 8 | interface. 9 | 10 | 11 | Component 12 | --------- 13 | 14 | .. autoclass :: LoginModule 15 | :members: 16 | 17 | 18 | Support Classes 19 | --------------- 20 | 21 | A few classes are provided for directly computing the REMOTE_USER 22 | information from the HTTP headers for Basic or Digest authentication. 23 | This will be used by the 24 | `~trac.web.standalone.AuthenticationMiddleware`. 25 | 26 | .. autoclass :: BasicAuthentication 27 | :members: 28 | 29 | .. autoclass :: DigestAuthentication 30 | :members: 31 | 32 | -------------------------------------------------------------------------------- /trac/notification/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2014-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | # Imports for backward compatibility 15 | from trac.notification.api import IEmailSender, NotificationSystem 16 | from trac.notification.mail import (EMAIL_LOOKALIKE_PATTERN, MAXHEADERLEN, 17 | SmtpEmailSender, SendmailEmailSender) 18 | -------------------------------------------------------------------------------- /trac/upgrades/db6.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2004-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/. 13 | 14 | sql = """ 15 | CREATE TABLE ticket_custom ( 16 | ticket integer, 17 | name text, 18 | value text, 19 | UNIQUE(ticket,name) 20 | ); 21 | """ 22 | 23 | def do_upgrade(env, ver, cursor): 24 | cursor.execute(sql) 25 | -------------------------------------------------------------------------------- /tracopt/perm/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2012-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | import unittest 15 | 16 | from tracopt.perm.tests import authz_policy 17 | 18 | 19 | def test_suite(): 20 | suite = unittest.TestSuite() 21 | suite.addTest(authz_policy.test_suite()) 22 | return suite 23 | 24 | 25 | if __name__ == '__main__': 26 | unittest.main(defaultTest='test_suite') 27 | -------------------------------------------------------------------------------- /tracopt/versioncontrol/svn/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2012-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | import unittest 15 | 16 | from tracopt.versioncontrol.svn.tests import svn_fs 17 | 18 | def test_suite(): 19 | suite = unittest.TestSuite() 20 | suite.addTest(svn_fs.test_suite()) 21 | return suite 22 | 23 | if __name__ == '__main__': 24 | unittest.main(defaultTest='test_suite') 25 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | * Jonas Borgström 2 | * Daniel Lundin 3 | * Rocky Burt 4 | * Christopher Lenz 5 | * Francois Harvey 6 | * Mark Rowe 7 | * Matthew Good 8 | * Christian Boos 9 | * Emmanuel Blot 10 | * Alec Thomas 11 | * Tim Hatch 12 | * Eli Carter 13 | * Noah Kantrowitz 14 | * Jeroen Ruigrok van der Werven 15 | * Odd Simon Simonsen 16 | * Remy Blank 17 | * Jun Omae 18 | * Peter Suter 19 | * Ryan Ollos 20 | 21 | See also THANKS for people who have contributed to the project. 22 | -------------------------------------------------------------------------------- /doc/index.rst: -------------------------------------------------------------------------------- 1 | ================================ 2 | Trac |version| API Documentation 3 | ================================ 4 | 5 | :Release: |release| 6 | :Date: |today| 7 | 8 | *This is work in progress. The API is not yet fully covered, but what 9 | you'll find here should be accurate, otherwise it's a bug and you're 10 | welcome to open a ticket for reporting the problem.* 11 | 12 | Content 13 | ======= 14 | 15 | .. toctree:: 16 | :maxdepth: 1 17 | 18 | api/index 19 | dev/testing 20 | 21 | .. toctree:: 22 | :hidden: 23 | 24 | glossary 25 | 26 | .. ifconfig:: devel 27 | 28 | .. toctree:: 29 | :hidden: 30 | 31 | todo 32 | 33 | 34 | Indices and tables 35 | ================== 36 | 37 | * :ref:`General Index ` 38 | * :ref:`modindex` 39 | * :ref:`search` 40 | * :doc:`glossary` 41 | 42 | .. ifconfig:: devel 43 | 44 | * :doc:`todo` 45 | 46 | -------------------------------------------------------------------------------- /tracopt/ticket/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2013-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | import unittest 15 | 16 | from tracopt.ticket.tests import commit_updater 17 | 18 | 19 | def test_suite(): 20 | suite = unittest.TestSuite() 21 | suite.addTest(commit_updater.test_suite()) 22 | return suite 23 | 24 | 25 | if __name__ == '__main__': 26 | unittest.main(defaultTest='test_suite') 27 | -------------------------------------------------------------------------------- /doc/api/trac_ticket_model.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.ticket.model` 2 | ======================== 3 | 4 | .. automodule :: trac.ticket.model 5 | :members: 6 | 7 | Components 8 | ---------- 9 | 10 | .. autoclass :: MilestoneCache 11 | :members: 12 | :exclude-members: factory 13 | 14 | .. automethod :: 15 | factory(name_due_completed_description_tuple, milestone_component=None) 16 | 17 | .. autoclass :: Component 18 | :members: 19 | 20 | .. autoclass :: Milestone 21 | :members: 22 | 23 | .. autoclass :: Priority 24 | :members: 25 | 26 | .. autoclass :: Report 27 | :members: 28 | 29 | .. autoclass :: Resolution 30 | :members: 31 | 32 | .. autoclass :: Severity 33 | :members: 34 | 35 | .. autoclass :: Type 36 | :members: 37 | 38 | .. autoclass :: Version 39 | :members: 40 | 41 | Miscellaneous 42 | ------------- 43 | 44 | .. autofunction :: simplify_whitespace 45 | -------------------------------------------------------------------------------- /doc/api/trac_notification_api.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.notification.api` -- Trac notification system 2 | ======================================================== 3 | 4 | .. module :: trac.notification.api 5 | 6 | Interfaces 7 | ---------- 8 | 9 | .. autoclass:: INotificationDistributor 10 | :members: 11 | 12 | .. autoclass:: INotificationFormatter 13 | :members: 14 | 15 | .. autoclass:: INotificationSubscriber 16 | :members: 17 | 18 | .. autoclass:: IEmailAddressResolver 19 | :members: 20 | 21 | .. autoclass:: IEmailDecorator 22 | :members: 23 | 24 | .. autoclass:: IEmailSender 25 | :members: 26 | 27 | Classes 28 | ------- 29 | 30 | .. autoclass:: NotificationEvent 31 | :members: 32 | 33 | Components 34 | ---------- 35 | 36 | .. autoclass:: NotificationSystem 37 | :members: 38 | 39 | Functions 40 | --------- 41 | .. autofunction:: parse_subscriber_config 42 | 43 | .. autofunction:: get_target_id 44 | -------------------------------------------------------------------------------- /trac/prefs/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2008-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | import unittest 15 | 16 | from trac.prefs.tests import web_ui 17 | from trac.prefs.tests.functional import functionalSuite 18 | 19 | 20 | def test_suite(): 21 | suite = unittest.TestSuite() 22 | suite.addTest(web_ui.test_suite()) 23 | return suite 24 | 25 | 26 | if __name__ == '__main__': 27 | unittest.main(defaultTest='test_suite') 28 | -------------------------------------------------------------------------------- /trac/search/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2015-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | import unittest 15 | 16 | from trac.search.tests import web_ui 17 | from trac.search.tests.functional import functionalSuite 18 | 19 | 20 | def test_suite(): 21 | suite = unittest.TestSuite() 22 | suite.addTest(web_ui.test_suite()) 23 | return suite 24 | 25 | 26 | if __name__ == '__main__': 27 | unittest.main(defaultTest='test_suite') 28 | -------------------------------------------------------------------------------- /contrib/workflow/simple-workflow.ini: -------------------------------------------------------------------------------- 1 | [ticket-workflow] 2 | ; simple-workflow.ini 3 | 4 | ; This is action-centric 5 | leave = * -> * 6 | leave.operations = leave_status 7 | leave.default = 1 8 | 9 | create = -> new 10 | 11 | resolve_new = new -> closed 12 | resolve_new.label = resolve 13 | resolve_new.permissions = TICKET_MODIFY 14 | resolve_new.operations = set_owner_to_self,set_resolution 15 | 16 | accept = new,accepted -> accepted 17 | accept.permissions = TICKET_MODIFY 18 | accept.operations = set_owner_to_self 19 | 20 | resolve_accepted = accepted -> closed 21 | resolve_accepted.label = resolve 22 | resolve_accepted.permissions = TICKET_MODIFY 23 | resolve_accepted.operations = set_resolution 24 | 25 | unaccept = accepted -> new 26 | unaccept.permissions = TICKET_MODIFY 27 | unaccept.operations = del_owner 28 | 29 | reopen = closed -> new 30 | reopen.permissions = TICKET_CREATE 31 | reopen.operations = del_resolution 32 | -------------------------------------------------------------------------------- /tracopt/versioncontrol/git/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2012-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | import unittest 15 | 16 | from tracopt.versioncontrol.git.tests import PyGIT, git_fs 17 | 18 | 19 | def test_suite(): 20 | suite = unittest.TestSuite() 21 | suite.addTest(PyGIT.test_suite()) 22 | suite.addTest(git_fs.test_suite()) 23 | return suite 24 | 25 | 26 | if __name__ == '__main__': 27 | unittest.main(defaultTest='test_suite') 28 | -------------------------------------------------------------------------------- /trac/versioncontrol/templates/revisionlog.txt: -------------------------------------------------------------------------------- 1 | {##}# 2 | {##}# ${_("ChangeLog for %(path)s in %(repo)s", path=path, repo=reponame) if reponame 3 | else _("ChangeLog for %(path)s", path=path)} 4 | {##}# 5 | {##}# ${_('Generated by Trac %(version)s', version=trac.version)} 6 | {##}# ${format_datetime()} 7 | 8 | # for item in items: 9 | # with change = changes[item.rev], extra = extra_changes[item.rev] 10 | ${http_date(change.date)} ${format_author(change.author)} [${display_rev(item.rev)}] 11 | # for file in extra.files: 12 | # if 'FILE_VIEW' in perm(repos.resource.child('source', file, version=change.rev)): 13 | * ${file} (${dict(edit=_('modified'), add=_('added'), delete=_('deleted'), 14 | copy=_('copied'), move=_('moved'))[extra.actions[loop.index0]]}) 15 | # endif 16 | # endfor 17 | 18 | ${'\n' + (extra.message if verbose else shorten_line(extra.message))} 19 | 20 | 21 | # endwith 22 | # endfor 23 | -------------------------------------------------------------------------------- /trac/upgrades/db4.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2004-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/. 13 | 14 | sql = [ 15 | """CREATE TABLE session ( 16 | sid text, 17 | username text, 18 | var_name text, 19 | var_value text, 20 | UNIQUE(sid,var_name) 21 | );""", 22 | """CREATE INDEX session_idx ON session(sid,var_name);""" 23 | ] 24 | 25 | def do_upgrade(env, ver, cursor): 26 | for s in sql: 27 | cursor.execute(s) 28 | -------------------------------------------------------------------------------- /trac/upgrades/db22.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2009-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/. 13 | 14 | from trac.db import Table, Column, DatabaseManager 15 | 16 | def do_upgrade(env, ver, cursor): 17 | """Add the cache table.""" 18 | table = Table('cache', key='id')[ 19 | Column('id'), 20 | Column('generation', type='int') 21 | ] 22 | db_connector, _ = DatabaseManager(env).get_connector() 23 | for stmt in db_connector.to_sql(table): 24 | cursor.execute(stmt) 25 | -------------------------------------------------------------------------------- /trac/admin/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2005-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | import unittest 15 | 16 | from trac.admin.tests import console, web_ui 17 | from trac.admin.tests.functional import functionalSuite 18 | 19 | 20 | def test_suite(): 21 | 22 | suite = unittest.TestSuite() 23 | suite.addTest(console.test_suite()) 24 | suite.addTest(web_ui.test_suite()) 25 | return suite 26 | 27 | if __name__ == '__main__': 28 | unittest.main(defaultTest='test_suite') 29 | -------------------------------------------------------------------------------- /doc/api/trac_env.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.env` -- Trac Environment model and APIs 2 | ================================================== 3 | 4 | .. module :: trac.env 5 | 6 | Interfaces 7 | ---------- 8 | 9 | .. autoclass :: trac.env.IEnvironmentSetupParticipant 10 | :members: 11 | 12 | See also :extensionpoints:`trac.env.IEnvironmentSetupParticipant` 13 | 14 | .. autoclass :: trac.env.ISystemInfoProvider 15 | :members: 16 | 17 | See also :extensionpoints:`trac.env.ISystemInfoProvider` 18 | 19 | 20 | Components 21 | ---------- 22 | 23 | The `Environment` is special in the sense it is not only a 24 | `Component`, but also a `trac.core.ComponentManager`. 25 | 26 | .. autoclass :: trac.env.Environment 27 | :members: 28 | 29 | .. autoclass :: EnvironmentAdmin 30 | :members: 31 | 32 | 33 | Functions 34 | --------- 35 | 36 | .. autofunction :: trac.env.open_environment 37 | 38 | 39 | Exceptions 40 | ---------- 41 | 42 | .. autoexception :: BackupError 43 | :members: 44 | -------------------------------------------------------------------------------- /trac/notification/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2015-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | import unittest 15 | 16 | from . import api, mail, model, prefs 17 | 18 | 19 | def test_suite(): 20 | suite = unittest.TestSuite() 21 | suite.addTest(api.test_suite()) 22 | suite.addTest(mail.test_suite()) 23 | suite.addTest(model.test_suite()) 24 | suite.addTest(prefs.test_suite()) 25 | return suite 26 | 27 | 28 | if __name__ == '__main__': 29 | unittest.main(defaultTest='test_suite') 30 | -------------------------------------------------------------------------------- /doc/api/trac_admin_api.rst: -------------------------------------------------------------------------------- 1 | :mod:`trac.admin.api` -- Trac Administration panels 2 | =================================================== 3 | 4 | .. module :: trac.admin.api 5 | 6 | Primary interface for managing administration panels. 7 | 8 | 9 | Interfaces 10 | ---------- 11 | 12 | .. autoclass :: IAdminPanelProvider 13 | :members: 14 | 15 | See also :extensionpoints:`trac.admin.api.IAdminPanelProvider` 16 | 17 | .. autoclass :: IAdminCommandProvider 18 | 19 | See also :extensionpoints:`trac.admin.api.IAdminCommandProvider` 20 | 21 | Exceptions 22 | ---------- 23 | 24 | .. autoclass :: AdminCommandError 25 | :members: 26 | 27 | Components 28 | ---------- 29 | 30 | .. autoclass :: AdminCommandManager 31 | :members: 32 | 33 | Classes 34 | ------- 35 | 36 | .. autoclass :: PathList 37 | :members: 38 | 39 | .. autoclass :: PrefixList 40 | :members: 41 | 42 | Helper Functions 43 | ---------------- 44 | 45 | .. autofunction :: get_console_locale 46 | .. autofunction :: get_dir_list 47 | -------------------------------------------------------------------------------- /.github/svn-swig41.patch: -------------------------------------------------------------------------------- 1 | Index: subversion/bindings/swig/include/proxy.swg 2 | =================================================================== 3 | --- subversion/bindings/swig/include/proxy.swg (revision 1905172) 4 | +++ subversion/bindings/swig/include/proxy.swg (revision 1905173) 5 | @@ -66,7 +66,6 @@ 6 | fn() 7 | 8 | %} 9 | -#if defined(SWIGPYTHON_PY3) 10 | #if SWIG_VERSION >= 0x040000 11 | %pythoncode %{ 12 | # -classic and -modern options have been dropped and this variable 13 | @@ -76,7 +75,7 @@ 14 | _set_instance_attr = _swig_setattr_nondynamic_instance_variable(object.__setattr__) 15 | 16 | %} 17 | -#else 18 | +#elif defined(SWIGPYTHON_PY3) 19 | %pythoncode %{ 20 | # SWIG classes generated with -modern do not define this variable 21 | try: 22 | @@ -90,7 +89,6 @@ 23 | _set_instance_attr = _swig_setattr_nondynamic_method(object.__setattr__) 24 | 25 | %} 26 | -#endif 27 | #else 28 | %pythoncode %{ 29 | # SWIG classes generated with -classic do not define this variable, 30 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | About Trac 2 | ========== 3 | 4 | Trac is a minimalistic web-based software project management and 5 | bug/issue tracking system. It provides an interface to the Git and 6 | Subversion revision control systems, an integrated wiki, flexible 7 | issue tracking and convenient report facilities. 8 | 9 | Trac is distributed using the modified BSD License. 10 | 11 | * For installation instructions, please see INSTALL.rst or the 12 | trac/wiki/default-pages/TracInstall page for complete, up-to-date 13 | instructions 14 | 15 | * If you are upgrading from a previous Trac version, please read 16 | UPGRADE.rst or the trac/wiki/default-pages/TracUpgrade page for 17 | complete, up-to-date instructions 18 | 19 | You might also want to take a look at the RELEASE.rst and ChangeLog files 20 | for more information about this release. 21 | 22 | Otherwise, the primary source of information is the main Trac web site: 23 | 24 | 25 | 26 | We hope you enjoy it, 27 | 28 | /The Trac Team 29 | -------------------------------------------------------------------------------- /trac/timeline/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Copyright (C) 2008-2023 Edgewall Software 4 | # All rights reserved. 5 | # 6 | # This software is licensed as described in the file COPYING, which 7 | # you should have received as part of this distribution. The terms 8 | # are also available at https://trac.edgewall.org/wiki/TracLicense. 9 | # 10 | # This software consists of voluntary contributions made by many 11 | # individuals. For the exact contribution history, see the revision 12 | # history and logs, available at https://trac.edgewall.org/log/. 13 | 14 | import unittest 15 | 16 | from trac.timeline.tests import web_ui 17 | from trac.timeline.tests import wikisyntax 18 | from trac.timeline.tests.functional import functionalSuite 19 | 20 | 21 | def test_suite(): 22 | suite = unittest.TestSuite() 23 | suite.addTest(web_ui.test_suite()) 24 | suite.addTest(wikisyntax.test_suite()) 25 | return suite 26 | 27 | if __name__ == '__main__': 28 | unittest.main(defaultTest='test_suite') 29 | -------------------------------------------------------------------------------- /trac/wiki/templates/wiki_page_path.html: -------------------------------------------------------------------------------- 1 | {# Copyright (C) 2010-2023 Edgewall Software 2 | 3 | This software is licensed as described in the file COPYING, which 4 | you should have received as part of this distribution. The terms 5 | are also available at https://trac.edgewall.org/wiki/TracLicense. 6 | 7 | This software consists of voluntary contributions made by many 8 | individuals. For the exact contribution history, see the revision 9 | history and logs, available at https://trac.edgewall.org/. 10 | #} 11 | 12 |
13 | # with parts = page.name.split('/') 14 | wiki:{% 16 | for part in parts: 17 | %}${part}{% if not loop.last 20 | %}/{% endif %}{% 21 | endfor %} 22 | # endwith 23 |
24 | -------------------------------------------------------------------------------- /trac/templates/README: -------------------------------------------------------------------------------- 1 | This directory contains Trac's default Jinja2 templates. 2 | 3 | It is not advised to make local modifications to those files after 4 | installation, as they might be lost during the installation of a new 5 | Trac version. 6 | 7 | As an alternative, you can copy the templates you want to modify and 8 | place them in the templates/ directory of your Trac environment or in 9 | the location specified in the trac.ini file under the `[inherit] 10 | templates_dir` setting (the former having precedence over the latter). 11 | 12 | Nevertheless, if you use such a locally modified template, it will be 13 | easy to miss the functionality provided by a newer version of the 14 | template, after an upgrade. Because of that, the preferred way to 15 | alter the output would be to write plugins doing client-side 16 | JavaScript transformation (see for example tracopt/ticket/clone.py), 17 | as this is robust when upgrading to a newer version of Trac: you only 18 | have to check that your filtering still matches and that the 19 | transformation works as expected... 20 | -------------------------------------------------------------------------------- /trac/htdocs/js/resizer.js: -------------------------------------------------------------------------------- 1 | // Allow resizing