)]}'
{"yaml2ical/meeting.py":[{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"8e5103c55aa3effdd876e30465ba94f869e67559","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                \u0027first-tuesday\u0027: set([0]),"},{"line_number":152,"context_line":"                \u0027first-wednesday\u0027: set([0]),"},{"line_number":153,"context_line":"                \u0027first-thursday\u0027: set([0]),"},{"line_number":154,"context_line":"                \u0027first-friday\u0027: set([0]),"},{"line_number":155,"context_line":"            }"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"            return len(week[self.freq].intersection(week[other.freq])) \u003e 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_ba331e12","line":154,"updated":"2018-10-11 11:57:38.000000000","message":"It is unfortunately more complex than that. First Mondays will end up conflicting with anything else that is scheduled on that same slot (weekly, biweekly, quadweekly...) So I\u0027d argue that those should all be set([0,1,2,3,4])?","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"576eb4f35b1e07c94f9afd6ac6cf8fc924c45a1e","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                \u0027first-tuesday\u0027: set([0]),"},{"line_number":152,"context_line":"                \u0027first-wednesday\u0027: set([0]),"},{"line_number":153,"context_line":"                \u0027first-thursday\u0027: set([0]),"},{"line_number":154,"context_line":"                \u0027first-friday\u0027: set([0]),"},{"line_number":155,"context_line":"            }"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"            return len(week[self.freq].intersection(week[other.freq])) \u003e 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_ec1f0f58","line":154,"in_reply_to":"3f79a3b5_9115d29d","updated":"2018-10-31 17:30:16.000000000","message":"Done","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"d427b2a4a8b87bf4140aa9188c6ebd0843f9761e","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                \u0027first-tuesday\u0027: set([0]),"},{"line_number":152,"context_line":"                \u0027first-wednesday\u0027: set([0]),"},{"line_number":153,"context_line":"                \u0027first-thursday\u0027: set([0]),"},{"line_number":154,"context_line":"                \u0027first-friday\u0027: set([0]),"},{"line_number":155,"context_line":"            }"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"            return len(week[self.freq].intersection(week[other.freq])) \u003e 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_eef467d2","line":154,"in_reply_to":"3f79a3b5_ba331e12","updated":"2018-10-12 05:16:27.000000000","message":"The first Monday has to be in the first 7 days of the month so I can see set([0,1]) but not all of them.  Which would then make a monthly meeting clash (potentially) with the biweekly-odd and quadweekly-week-1 which I think is probably closer.","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"03a2353ac72b4f25a51fb5482a83a9e378cf4fea","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                \u0027first-tuesday\u0027: set([0]),"},{"line_number":152,"context_line":"                \u0027first-wednesday\u0027: set([0]),"},{"line_number":153,"context_line":"                \u0027first-thursday\u0027: set([0]),"},{"line_number":154,"context_line":"                \u0027first-friday\u0027: set([0]),"},{"line_number":155,"context_line":"            }"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"            return len(week[self.freq].intersection(week[other.freq])) \u003e 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_9115d29d","line":154,"in_reply_to":"3f79a3b5_eef467d2","updated":"2018-10-12 06:57:21.000000000","message":"The set is not related to months, only to conflicts in groups of 4 ISO weeks. For example, quadweekly-week-1 is not the first week of a month, it\u0027s actually the second week in groups of 4 ISO weeks, so it conflicts with weekly and biweekly-odd.\n\nfirst-* recurrences will end up potentially conflicting with any of the weeks in those groups of 4 weeks. So they should be set[0, 1, 2, 3].","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"}],"yaml2ical/recurrence.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ce63d217da62973320bcd1f03dd83cbe696ca60a","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    def next_occurence(self, current_date_time, day):"},{"line_number":143,"context_line":"        \"\"\"Return the date of the next meeting."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        :param ref_date: datetime object of meeting"},{"line_number":146,"context_line":"        :param day: weekday the meeting is held on"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        :returns: datetime object of the next meeting time"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_b8603c36","line":145,"range":{"start_line":145,"start_character":15,"end_line":145,"end_character":23},"updated":"2018-10-09 15:05:51.000000000","message":"nit: current_date_time *","commit_id":"3d5bcefaeadb285d8cf1aa3bd952d7c9708885a9"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"fc1fec37c77de14f4d98a6ed415106b6be08f4cf","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    def next_occurence(self, current_date_time, day):"},{"line_number":143,"context_line":"        \"\"\"Return the date of the next meeting."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        :param ref_date: datetime object of meeting"},{"line_number":146,"context_line":"        :param day: weekday the meeting is held on"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        :returns: datetime object of the next meeting time"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_4bad9482","line":145,"range":{"start_line":145,"start_character":15,"end_line":145,"end_character":23},"in_reply_to":"3f79a3b5_b8603c36","updated":"2018-10-09 15:31:31.000000000","message":"Done","commit_id":"3d5bcefaeadb285d8cf1aa3bd952d7c9708885a9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ce63d217da62973320bcd1f03dd83cbe696ca60a","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    \u0027first-tuesday\u0027: MonthlyRecurrence(week\u003d1, day\u003d\u0027Tuesday\u0027),"},{"line_number":207,"context_line":"    \u0027first-wednesday\u0027: MonthlyRecurrence(week\u003d1, day\u003d\u0027Wednesday\u0027),"},{"line_number":208,"context_line":"    \u0027first-thursday\u0027: MonthlyRecurrence(week\u003d1, day\u003d\u0027Thursday\u0027),"},{"line_number":209,"context_line":"    \u0027first-friday\u0027: MonthlyRecurrence(week\u003d1, day\u003d\u0027Friday\u0027),"},{"line_number":210,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_386d0c01","line":209,"updated":"2018-10-09 15:05:51.000000000","message":"Are we going to add these to the docs in a follow on?","commit_id":"3d5bcefaeadb285d8cf1aa3bd952d7c9708885a9"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"fc1fec37c77de14f4d98a6ed415106b6be08f4cf","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    \u0027first-tuesday\u0027: MonthlyRecurrence(week\u003d1, day\u003d\u0027Tuesday\u0027),"},{"line_number":207,"context_line":"    \u0027first-wednesday\u0027: MonthlyRecurrence(week\u003d1, day\u003d\u0027Wednesday\u0027),"},{"line_number":208,"context_line":"    \u0027first-thursday\u0027: MonthlyRecurrence(week\u003d1, day\u003d\u0027Thursday\u0027),"},{"line_number":209,"context_line":"    \u0027first-friday\u0027: MonthlyRecurrence(week\u003d1, day\u003d\u0027Friday\u0027),"},{"line_number":210,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_0bc79c48","line":209,"in_reply_to":"3f79a3b5_386d0c01","updated":"2018-10-09 15:31:31.000000000","message":"Done","commit_id":"3d5bcefaeadb285d8cf1aa3bd952d7c9708885a9"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"8e5103c55aa3effdd876e30465ba94f869e67559","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        }"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def __str__(self):"},{"line_number":192,"context_line":"        return \"Weekly\""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"supported_recurrences \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_3af62e60","line":192,"updated":"2018-10-11 11:57:38.000000000","message":"Should be Monthly IIUC","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"576eb4f35b1e07c94f9afd6ac6cf8fc924c45a1e","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        }"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def __str__(self):"},{"line_number":192,"context_line":"        return \"Weekly\""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"supported_recurrences \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_8c345be2","line":192,"in_reply_to":"3f79a3b5_3af62e60","updated":"2018-10-31 17:30:16.000000000","message":"Done","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"}],"yaml2ical/tests/sample_data.py":[{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"8e5103c55aa3effdd876e30465ba94f869e67559","unresolved":false,"context_lines":[{"line_number":403,"context_line":"    Weekly meeting for Subteam project."},{"line_number":404,"context_line":"agenda: |"},{"line_number":405,"context_line":"  * Top bugs this week"},{"line_number":406,"context_line":"\"\"\""},{"line_number":407,"context_line":"FIRST_WEDNESDAY_MEETING \u003d \"\"\""},{"line_number":408,"context_line":"project: OpenStack Random Meeting"},{"line_number":409,"context_line":"agenda_url: http://agenda.com/"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_ba979eea","line":406,"updated":"2018-10-11 11:57:38.000000000","message":"If you are redoing a patchset, add a line break here","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"576eb4f35b1e07c94f9afd6ac6cf8fc924c45a1e","unresolved":false,"context_lines":[{"line_number":403,"context_line":"    Weekly meeting for Subteam project."},{"line_number":404,"context_line":"agenda: |"},{"line_number":405,"context_line":"  * Top bugs this week"},{"line_number":406,"context_line":"\"\"\""},{"line_number":407,"context_line":"FIRST_WEDNESDAY_MEETING \u003d \"\"\""},{"line_number":408,"context_line":"project: OpenStack Random Meeting"},{"line_number":409,"context_line":"agenda_url: http://agenda.com/"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_ac3117f1","line":406,"in_reply_to":"3f79a3b5_ba979eea","updated":"2018-10-31 17:30:16.000000000","message":"Done","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"}],"yaml2ical/tests/test_meeting.py":[{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"8e5103c55aa3effdd876e30465ba94f869e67559","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            sample_data.FIRST_WEDNESDAY_MEETING)"},{"line_number":176,"context_line":"        self.should_not_conflict("},{"line_number":177,"context_line":"            sample_data.ALTERNATING_MEETING,"},{"line_number":178,"context_line":"            sample_data.FIRST_WEDNESDAY_MEETING)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def test_skip_meeting(self):"},{"line_number":181,"context_line":"        meeting_yaml \u003d sample_data.MEETING_WITH_SKIP_DATES"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_3aa4ee4b","line":178,"updated":"2018-10-11 11:57:38.000000000","message":"Should those not conflict ? I feel like the first Wednesday of a month can definitely conflict with a biweekly-odd Wednesday...","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"d427b2a4a8b87bf4140aa9188c6ebd0843f9761e","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            sample_data.FIRST_WEDNESDAY_MEETING)"},{"line_number":176,"context_line":"        self.should_not_conflict("},{"line_number":177,"context_line":"            sample_data.ALTERNATING_MEETING,"},{"line_number":178,"context_line":"            sample_data.FIRST_WEDNESDAY_MEETING)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def test_skip_meeting(self):"},{"line_number":181,"context_line":"        meeting_yaml \u003d sample_data.MEETING_WITH_SKIP_DATES"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_cef72bd1","line":178,"in_reply_to":"3f79a3b5_3aa4ee4b","updated":"2018-10-12 05:16:27.000000000","message":"Yeah I think if we fix the set() in meeting.py these will then conflict.","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"576eb4f35b1e07c94f9afd6ac6cf8fc924c45a1e","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            sample_data.FIRST_WEDNESDAY_MEETING)"},{"line_number":176,"context_line":"        self.should_not_conflict("},{"line_number":177,"context_line":"            sample_data.ALTERNATING_MEETING,"},{"line_number":178,"context_line":"            sample_data.FIRST_WEDNESDAY_MEETING)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def test_skip_meeting(self):"},{"line_number":181,"context_line":"        meeting_yaml \u003d sample_data.MEETING_WITH_SKIP_DATES"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_4c2e438e","line":178,"in_reply_to":"3f79a3b5_cef72bd1","updated":"2018-10-31 17:30:16.000000000","message":"Done","commit_id":"1f2a4c968fa1408e816c2448cba8eb30c893ca1f"}]}
