diff --git a/app/models/project.rb b/app/models/project.rb
index 5c61c82dd..3262da1a6 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -22,6 +22,8 @@ class Project < ActiveRecord::Base
# Documentation
documentation_basics: ['MUST', false, false],
documentation_interface: ['MUST', false, false],
+ # Other
+ discussion: ['MUST', false, false],
# CHANGE CONTROL
# Public version-controlled source repository
repo_url: ['MUST', false, false],
diff --git a/app/views/projects/_form.html.erb b/app/views/projects/_form.html.erb
index 057a48032..63ef85166 100644
--- a/app/views/projects/_form.html.erb
+++ b/app/views/projects/_form.html.erb
@@ -278,6 +278,26 @@ The project MUST include reference documentation that describes its interface.},
The project MAY use hypertext links to non-project material as documentation.
}}) %>
+
+
+
Other
+
+ <%= render(partial: "status_chooser", locals: {f: f, is_disabled: is_disabled,
+ criteria: "discussion", desc: %{
+The project MUST have one or more mechanisms
+for discussion (including proposed changes and issues) that are
+searchable, allow messages and topics to be addressed by URL,
+enable new people to participate in some of the discussions, and
+do not require client-side installation of proprietary software.},
+ details: %{
+Examples of acceptable mechanisms include
+GitHub issue and pull request discussions, Bugzilla, Mantis, and Trac.
+Asynchronous discussion mechanisms (like IRC) are acceptable if
+they meet these criteria; make sure there is a URL-addressable
+archiving mechanism.
+Proprietary Javascript, while discouraged, is permitted.
+}}) %>
+
Change Control
diff --git a/db/migrate/20160130165746_add_discussion.rb b/db/migrate/20160130165746_add_discussion.rb
new file mode 100644
index 000000000..b3a59c84a
--- /dev/null
+++ b/db/migrate/20160130165746_add_discussion.rb
@@ -0,0 +1,20 @@
+class AddDiscussion < ActiveRecord::Migration
+ def change
+ add_column :projects, :discussion_status, :string, default: '?'
+ add_column :projects, :discussion_justification, :text
+
+ reversible do |dir|
+ dir.up do
+ execute <<-SQL
+ UPDATE projects
+ SET discussion_status='Met',
+ discussion_justification='GitHub issue tracker and pull requests support discussion'
+ WHERE project_homepage_url LIKE '%github.com%' OR
+ repo_url LIKE '%github.com%' ;
+ SQL
+ end
+ # dir.down do ...
+ # end
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index c83481c0d..ac569eecd 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20160123144005) do
+ActiveRecord::Schema.define(version: 20160130165746) do
create_table "projects", force: :cascade do |t|
t.integer "user_id"
@@ -156,6 +156,8 @@
t.string "test_continuous_integration_status", default: "?"
t.text "test_continuous_integration_justification"
t.string "cpe"
+ t.string "discussion_status", default: "?"
+ t.text "discussion_justification"
end
add_index "projects", ["user_id", "created_at"], name: "index_projects_on_user_id_and_created_at"
diff --git a/doc/criteria.md b/doc/criteria.md
index 94e07d1ba..d2bcf0dd8 100644
--- a/doc/criteria.md
+++ b/doc/criteria.md
@@ -195,6 +195,23 @@ Note that:
[documentation_interface]
- The project MAY use hypertext links to non-project material as documentation.
+
+*Other*
+
+- The project MUST have one or more mechanisms
+ for discussion (including proposed changes and issues) that are:
+ - searchable,
+ - allow messages and topics to be addressed by URL,
+ - enable new people to participate in some of the discussions, and
+ - do not require client-side installation of proprietary software.
+ Examples of acceptable mechanisms include
+ GitHub issue and pull request discussions, Bugzilla, Mantis, and Trac.
+ Asynchronous discussion mechanisms (like IRC) are acceptable if
+ they meet these criteria; make sure there is a URL-addressable
+ archiving mechanism.
+ Proprietary Javascript, while discouraged, is permitted.
+ [discussion]
+
### Change control
*Public version-controlled source repository*