Release Schedule

Release Schedule#

Get Release Dates#
from datetime import datetime
import os
import math

yearmonth = datetime.today().strftime("%Y-%m")
year = datetime.today().strftime("%Y")
month = int(datetime.today().strftime("%m"))

listDateEnd = [ '2023-01-09','2023-02-06','2023-03-06','2023-04-10','2023-05-22','2023-06-26','2023-07-24','2023-08-21','2023-09-25','2023-10-23','2023-11-20','2023-12-25','2024-01-22','2024-02-19','2024-03-25','2024-04-22','2024-05-27','2024-06-24','2024-07-22','2024-08-26','2024-09-23','2024-10-21','2024-11-25','2024-12-23','2025-01-27','2025-02-24','2025-03-24','2025-04-21','2025-05-26','2025-06-23','2025-07-21','2025-08-25','2025-09-22','2025-10-27','2025-11-24','2025-12-22','2026-01-26','2026-02-23','2026-03-23','2026-04-20','2026-05-25','2026-06-22','2026-07-27','2026-08-24','2026-09-21','2026-10-26','2026-11-23','2026-12-21','2027-01-25','2027-02-22','2027-03-22','2027-04-26','2027-05-24','2027-06-21','2027-07-26','2027-08-23','2027-09-20','2027-10-25','2027-11-22','2027-12-27','2028-01-24','2028-02-21','2028-03-27','2028-04-24','2028-05-22','2028-06-26','2028-07-24','2028-08-21','2028-09-25','2028-10-23','2028-11-20','2028-12-25','2029-01-22','2029-02-19','2029-03-26','2029-04-23','2029-05-21','2029-06-25','2029-07-23','2029-08-27','2029-09-24','2029-10-22','2029-11-26','2029-12-24']

listDateBegin = [ '2023-01-23','2023-02-20','2023-03-27','2023-04-24', '2023-05-08','2023-06-05','2023-07-10','2023-08-07','2023-09-04','2023-10-09','2023-11-06','2023-12-04','2024-01-08','2024-02-05','2024-03-04','2024-04-08','2024-05-06','2024-06-10','2024-07-08','2024-08-05','2024-09-09','2024-10-07','2024-11-04','2024-12-09','2025-01-06','2025-02-10','2025-03-10','2025-04-07','2025-05-05','2025-06-09','2025-07-07','2025-08-04','2025-09-08','2025-10-06','2025-11-10','2025-12-08','2026-01-05','2026-02-09','2026-03-09','2026-04-06','2026-05-04','2026-06-08','2026-07-06','2026-08-10','2026-09-07','2026-10-05','2026-11-09','2026-12-07','2027-01-04','2027-02-08','2027-03-08','2027-04-05','2027-05-10','2027-06-07','2027-07-05','2027-08-09','2027-09-06','2027-10-04','2027-11-08','2027-12-06','2028-01-10','2028-02-07','2028-03-06','2028-04-10','2028-05-08','2028-06-05','2028-07-10','2028-08-07','2028-09-04','2028-10-09','2028-11-06','2028-12-04','2029-01-08','2029-02-05','2029-03-05','2029-04-09','2029-05-07','2029-06-04','2029-07-09','2029-08-06','2029-09-10','2029-10-08','2029-11-05','2029-12-10']

header = """
..
   ############################################################
   USAGE: adjust filename accordingly
   ############################################################
   .. include:: ../../melissa/release-schedule/scripts/test.rst
   ############################################################

.. table::
   :width: 100%
   :widths: 40 60
   :align: left

   ======================  ====
   Release Date Schedule
   ======================  ====
"""
h = listDateEnd.index(''.join([i for i in listDateEnd if i.startswith(yearmonth)]))

monthQuarter = year + '-'+ str(  "%02d" % ((math.floor((month-1)/3))*3 + 1,) )
j = listDateEnd.index(''.join([i for i in listDateEnd if i.startswith(monthQuarter)]))

monthBi =  year + '-'+ str(  "%02d" % ((math.floor((month-1)/2))*2 + 1,) )
k = listDateEnd.index(''.join([i for i in listDateEnd if i.startswith(monthBi)]))

monthAnnual =  year + '-'+ str(  "%02d" % ((math.floor((month-1)/12))*2 + 1,) )
l = listDateEnd.index(''.join([i for i in listDateEnd if i.startswith(monthAnnual)]))

monthlyEnd = header
monthlyBegin = header
bimonthly = header
quarterly = header
quarterlySpecial = header
annually = header

# Get the current script's directory
current_dir = os.getcwd()

# Build the relative path
relative_path_monthly_begin = os.path.join(current_dir, 'source', 'melissa', 'release-schedule', 'scripts', 'MonthlyBegin.rst')
relative_path_monthly_end = os.path.join(current_dir, 'source', 'melissa', 'release-schedule', 'scripts', 'MonthlyEnd.rst')
relative_path_bimonthly = os.path.join(current_dir, 'source', 'melissa', 'release-schedule', 'scripts', 'BiMonthly.rst')
relative_path_quarterly = os.path.join(current_dir, 'source', 'melissa', 'release-schedule', 'scripts', 'Quarterly.rst')
relative_path_quarterly_special = os.path.join(current_dir, 'source', 'melissa', 'release-schedule', 'scripts', 'QuarterlySpecial.rst')
relative_path_annually = os.path.join(current_dir, 'source', 'melissa', 'release-schedule', 'scripts', 'Annually.rst')

# Monthly End
for x in range(h, h+13):
  monthlyEnd += "   " + listDateEnd[x] + "\n"

monthlyEnd += "   ======================  ===="

with open(relative_path_monthly_end, "w") as f:
  print(monthlyEnd, file=f)

# Monthly Begin
for x in range(h, h+13):
  monthlyBegin += "   " + listDateBegin[x] + "\n"

monthlyBegin += "   ======================  ===="

with open(relative_path_monthly_begin, "w") as f:
  print(monthlyBegin, file=f)


# Bi-Monthly
for x in range(k, k+13, 2):
  bimonthly += "   " + listDateEnd[x] + "\n"

bimonthly += "   ======================  ===="

with open(relative_path_bimonthly, "w") as f:
  print(bimonthly, file=f)


# Quarterly
for x in range(j, j+13,3):
  quarterly += "   " + listDateEnd[x] + "\n"

quarterly += "   ======================  ===="

with open(relative_path_quarterly, "w") as f:
  print(quarterly, file=f)


# Quarterly Special
for x in range(j+1, j+14,3):
  quarterlySpecial += "   " + listDateBegin[x] + "\n"

quarterlySpecial += "   ======================  ===="

with open(relative_path_quarterly_special, "w") as f:
  print(quarterlySpecial, file=f)


# Annually
for x in range(l, l+13,12):
  annually += "   " + listDateEnd[x] + "\n"

annually += "   ======================  ===="

with open(relative_path_annually, "w") as f:
  print(annually, file=f)

Please find your product below, grouped by release frequency, to view its upcoming release date schedule.

Monthly#

DQ Suite (Address, Email, Name, Phone)

Release Date Schedule

2025-03-10

2025-04-07

2025-05-05

2025-06-09

2025-07-07

2025-08-04

2025-09-08

2025-10-06

2025-11-10

2025-12-08

2026-01-05

2026-02-09

2026-03-09

MAILERS+4

Release Date Schedule

2025-03-10

2025-04-07

2025-05-05

2025-06-09

2025-07-07

2025-08-04

2025-09-08

2025-10-06

2025-11-10

2025-12-08

2026-01-05

2026-02-09

2026-03-09

Zip*Data II

Release Date Schedule

2025-03-10

2025-04-07

2025-05-05

2025-06-09

2025-07-07

2025-08-04

2025-09-08

2025-10-06

2025-11-10

2025-12-08

2026-01-05

2026-02-09

2026-03-09

ZipInfo (Congressional District, County ZIP Code, National ZIP+4, ZIP List5)

Release Date Schedule

2025-03-10

2025-04-07

2025-05-05

2025-06-09

2025-07-07

2025-08-04

2025-09-08

2025-10-06

2025-11-10

2025-12-08

2026-01-05

2026-02-09

2026-03-09

Quarterly#

Canadian Geo*Data

Release Date Schedule

2025-01-27

2025-04-21

2025-07-21

2025-10-27

2026-01-26

DQC-SSIS

Release Date Schedule

2025-02-10

2025-05-05

2025-08-04

2025-11-10

2026-02-09

FONE*Data

Release Date Schedule

2025-01-27

2025-04-21

2025-07-21

2025-10-27

2026-01-26

GeoCoder Object

Release Date Schedule

2025-01-27

2025-04-21

2025-07-21

2025-10-27

2026-01-26

Geo*Data

Release Date Schedule

2025-01-27

2025-04-21

2025-07-21

2025-10-27

2026-01-26

MatchUp Object Global

Release Date Schedule

2025-01-27

2025-04-21

2025-07-21

2025-10-27

2026-01-26

Annually#

RightFielder Object

Release Date Schedule

2025-01-27

2026-01-26

Cleanser Object (DQC-SSIS)

Release Date Schedule

2025-01-27

2025-04-21

2025-07-21

2025-10-27

2026-01-26

Profiler (DQC-SSIS)

Release Date Schedule

2025-01-27

2025-04-21

2025-07-21

2025-10-27

2026-01-26